:root{
--bg:#0b0f14;
--card:#07101a;
--muted:#9aa9b6;
--accent:#00e0ff;
--accent-2:#4cc9ff;
--glass: rgba(255,255,255,0.03);
--glow: 0 6px 30px rgba(0,224,255,0.08);
--radius:12px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
margin:0;
font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
background: linear-gradient(180deg, #041017 0%, #071421 50%);
color:#e6f7ff;
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
line-height:1.45;
padding-bottom:40px;
}

/* Header */
.header {
display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
padding:18px 28px;
background: linear-gradient(90deg, rgba(0,224,255,0.06), rgba(76,201,255,0.04));
border-bottom:1px solid rgba(255,255,255,0.03);
position:sticky;
top:0;
z-index:900;
backdrop-filter: blur(6px);
}
.brand {
display:flex;
gap:12px;
align-items:center;
}
.brand .logo {
width:44px;height:44px;border-radius:10px;
background:linear-gradient(135deg,var(--accent),var(--accent-2));
display:flex;align-items:center;justify-content:center;color:#021018;font-weight:800;
box-shadow: var(--glow);
font-family:monospace;
}
.brand h1{margin:0;font-size:18px;letter-spacing:0.4px}
.brand p{margin:0;font-size:12px;color:var(--muted)}

/* Nav */
.nav {
display:flex;gap:10px;align-items:center;
}
.nav a {
color:var(--muted);
text-decoration:none;
padding:8px 12px;
border-radius:10px;
font-weight:600;
transition: all .18s ease;
position:relative;
}
.nav a:hover{ color:var(--accent-2); transform:translateY(-2px); }
.nav a.active{
color:#021018;
background:linear-gradient(90deg,var(--accent),var(--accent-2));
box-shadow: 0 6px 28px rgba(0,204,255,0.08);
}

/* Layout */
.container{
max-width:1100px;
margin:28px auto;
padding:0 20px;
display:grid;
grid-template-columns:1fr 340px;
gap:22px;
}
@media(max-width:1000px){
.container{grid-template-columns:1fr;padding:0 12px}
}

/* Card */
.card{
background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
border-radius:var(--radius);
padding:18px;
box-shadow: 0 8px 28px rgba(2,10,20,0.35);
border:1px solid rgba(255,255,255,0.03);
}

/* Main headings */
h2{color:var(--accent-2);margin-top:0}
.lead{color:var(--muted)}

/* Course grid */
.course-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:16px;margin-top:12px;
}
.course-card{
padding:16px;border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,0.01),rgba(255,255,255,0.02));
border:1px solid rgba(76,201,255,0.06);
transition:transform .18s, box-shadow .18s;
cursor:pointer;
}
.course-card:hover{transform:translateY(-8px);box-shadow:0 18px 40px rgba(76,201,255,0.06)}
.course-card h3{margin:0;color:#cff7ff}
.course-card p{margin:8px 0 0;color:var(--muted);font-size:13px}
.course-card a{
display:inline-block;margin-top:12px;padding:8px 12px;border-radius:10px;background:transparent;
color:var(--accent-2);text-decoration:none;font-weight:700;border:1px solid rgba(76,201,255,0.08);
}

/* tooltip highlighted term */
.term {
position:relative;
color:var(--accent-2);
text-decoration: underline;
text-decoration-color: rgba(76,201,255,0.25);
text-underline-offset:4px;
cursor:help;
transition: color .12s;
}
.term:focus{outline:none}

/* tooltip box (created & positioned by JS) */
.tooltip {
position:fixed;
z-index:2000;
background:linear-gradient(180deg, rgba(2,10,25,0.96), rgba(2,20,30,0.95));
color:#e6fbff;
padding:10px 12px;
border-radius:10px;
box-shadow: 0 6px 26px rgba(0,220,255,0.08);
max-width:360px;
font-size:13px;
line-height:1.4;
pointer-events:none;
opacity:0;
transform:translateY(6px) scale(.98);
transition:opacity .14s ease, transform .14s ease;
}
.tooltip.show{opacity:1;transform:translateY(0) scale(1)}

/* Sidebar */
aside .mini-card{margin-bottom:12px;padding:14px;border-radius:12px;background:linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0.02));border:1px solid rgba(255,255,255,0.02)}
.mini-card h4{margin:0;color:#cff7ff}
.mini-card p{color:var(--muted);margin:8px 0 0}

/* iframe embed */
.embed-wrap{margin-top:12px;border-radius:12px;overflow:hidden;border:1px solid rgba(76,201,255,0.05);box-shadow: 0 10px 40px rgba(2,10,20,0.6)}
.embed-wrap iframe{display:block;width:100%;height:620px;border:0}

/* code or diagram placeholders */
.diagram{
width:100%;
height:260px;
border-radius:10px;
background:linear-gradient(135deg, rgba(0,224,255,0.04), rgba(76,201,255,0.02));
display:flex;align-items:center;justify-content:center;
color:var(--muted);
font-size:14px;
border:1px dashed rgba(76,201,255,0.05);
margin-top:12px;
}

/* quiz */
.quiz-question{margin-bottom:16px}
.quiz-options label{display:block;padding:10px;border-radius:10px;margin:6px 0;background:rgba(255,255,255,0.01);cursor:pointer;border:1px solid rgba(255,255,255,0.02)}
.quiz-options input{margin-right:8px}
.btn{
display:inline-block;padding:10px 14px;border-radius:10px;border:0;
background:linear-gradient(90deg,var(--accent),var(--accent-2));
color:#021018;font-weight:800;cursor:pointer;box-shadow:0 8px 26px rgba(0,220,255,0.06);
}
.result{margin-top:12px;font-weight:700;color:#cff7ff}

/* footer */
footer{max-width:1100px;margin:28px auto;padding:18px;border-radius:12px;background:linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0.015));border:1px solid rgba(255,255,255,0.02);text-align:center;color:var(--muted)}

/* small utilities */
.fade-in {animation:fadeIn .36s ease both}
@keyframes fadeIn {from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
