
:root{
  --bg:#f5f7ff;
  --card:#ffffff;
  --card2:#eef1ff;
  --text:#1b1f38;
  --muted:#667085;
  --primary:#5b66f2;
  --primary2:#7c4dff;
  --accent:#19b889;
  --danger:#e84c67;
  --border:#dfe4f3;
  --shadow:0 12px 34px rgba(39,48,112,.10);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-rounded,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
body{padding-bottom:84px}
button,input{font:inherit}
button{cursor:pointer}
.topbar{
  position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;
  gap:12px;padding:14px 20px;background:color-mix(in srgb,var(--bg) 90%,transparent);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--border)
}
.brand{border:0;background:transparent;display:flex;align-items:center;gap:10px;color:var(--text);text-align:left;padding:0}
.brand-mark{
  width:42px;height:42px;border-radius:14px;display:grid;place-items:center;color:white;font-weight:900;
  background:linear-gradient(135deg,var(--primary),var(--primary2));box-shadow:var(--shadow)
}
.brand strong{display:block;font-size:1rem}.brand small{display:block;color:var(--muted);font-size:.75rem;margin-top:2px}
.header-stats{display:flex;gap:8px;align-items:center}
.stat-pill,.icon-btn{border:1px solid var(--border);background:var(--card);border-radius:999px;padding:8px 11px;color:var(--text)}
.icon-btn{width:42px;height:42px;padding:0}
main{width:min(1120px,calc(100% - 28px));margin:24px auto 0}
.hero{
  position:relative;overflow:hidden;border-radius:28px;padding:32px;color:white;
  background:linear-gradient(135deg,#5360ec,#7b4cff 58%,#8f69ff);box-shadow:var(--shadow)
}
.hero:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-60px;top:-70px;background:rgba(255,255,255,.10)}
.hero h1{font-size:clamp(2rem,6vw,4rem);margin:0 0 10px;max-width:720px;line-height:1}
.hero p{max-width:680px;font-size:1.05rem;line-height:1.6;margin:0 0 20px;color:#eef0ff}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
.btn{
  border:0;border-radius:14px;padding:12px 16px;font-weight:800;transition:.15s transform,.15s opacity;
  background:var(--primary);color:#fff
}
.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(1px)}
.btn.secondary{background:rgba(255,255,255,.18);outline:1px solid rgba(255,255,255,.32)}
.btn.ghost{background:var(--card2);color:var(--text)}
.btn.success{background:var(--accent)}
.btn.danger{background:var(--danger)}
.section-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:28px 0 14px}
.section-head h2,.section-head h1{margin:0}.section-head p{margin:4px 0 0;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.subject-card{
  border:1px solid var(--border);background:var(--card);border-radius:22px;padding:18px;box-shadow:var(--shadow);
  min-height:180px;display:flex;flex-direction:column;transition:.18s transform,.18s border-color
}
.subject-card:hover{transform:translateY(-3px);border-color:var(--primary)}
.subject-icon{font-size:2.2rem}.subject-card h3{margin:9px 0 5px;font-size:1.15rem}
.subject-card p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45;flex:1}
.progress-track{height:9px;background:var(--card2);border-radius:999px;overflow:hidden;margin-top:13px}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:999px}
.meta{display:flex;justify-content:space-between;color:var(--muted);font-size:.78rem;margin-top:7px}
.level-strip{display:flex;gap:8px;overflow-x:auto;padding:3px 1px 10px}
.level-btn{
  flex:0 0 auto;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:12px;
  min-width:48px;padding:9px 11px;font-weight:800
}
.level-btn.active{background:var(--primary);color:#fff;border-color:transparent}
.level-btn.master{min-width:78px}
.lesson-list{display:grid;gap:10px}
.lesson-card{
  display:flex;align-items:center;gap:13px;border:1px solid var(--border);background:var(--card);border-radius:18px;
  padding:14px;box-shadow:var(--shadow)
}
.lesson-num{width:42px;height:42px;border-radius:13px;background:var(--card2);display:grid;place-items:center;font-weight:900;color:var(--primary)}
.lesson-info{flex:1}.lesson-info h3{margin:0 0 4px;font-size:1rem}.lesson-info p{margin:0;color:var(--muted);font-size:.85rem}
.lesson-check{font-size:1.3rem}
.panel{background:var(--card);border:1px solid var(--border);border-radius:24px;padding:22px;box-shadow:var(--shadow)}
.lesson-view h1{margin-top:0}
.crumb{color:var(--muted);font-size:.9rem;margin-bottom:12px}
.lesson-section{padding:16px;background:var(--card2);border-radius:18px;margin:12px 0}
.lesson-section h3{margin:0 0 7px}.lesson-section p{margin:0;line-height:1.65;color:var(--text)}
.example-box{border-left:4px solid var(--primary)}
.remember-box{border-left:4px solid var(--accent)}
.quiz-card{max-width:720px;margin:0 auto}
.quiz-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.q-progress{font-size:.9rem;color:var(--muted);font-weight:800}
.question{font-size:1.45rem;line-height:1.35;margin:18px 0}
.options{display:grid;gap:10px}
.option{
  width:100%;text-align:left;border:2px solid var(--border);background:var(--card);color:var(--text);
  border-radius:15px;padding:13px 14px;font-weight:700
}
.option:hover{border-color:var(--primary)}
.option.correct{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}
.option.wrong{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--card))}
.option:disabled{cursor:default}
.feedback{margin-top:14px;padding:13px;border-radius:14px;background:var(--card2);line-height:1.45}
.search{width:100%;max-width:360px;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:13px;padding:11px 13px}
.progress-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:16px}
.progress-card h3{margin:0 0 8px}
.big-number{font-size:2rem;font-weight:900;margin:3px 0}
.small{color:var(--muted);font-size:.86rem}
.mastery-row{display:grid;grid-template-columns:150px 1fr 52px;gap:10px;align-items:center;margin:12px 0}
.badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:900;background:var(--card2);color:var(--primary)}
.bottom-nav{
  position:fixed;z-index:30;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);
  background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(14px);
  border-top:1px solid var(--border);padding:max(8px,env(safe-area-inset-bottom)) 10px max(8px,env(safe-area-inset-bottom))
}
.nav-btn{border:0;background:transparent;color:var(--muted);font-size:.76rem;font-weight:800;padding:5px;display:grid;place-items:center;gap:2px}
.nav-btn span{font-size:1.25rem}.nav-btn.active{color:var(--primary)}
.toast{
  position:fixed;z-index:50;left:50%;bottom:90px;transform:translate(-50%,20px);opacity:0;pointer-events:none;
  background:#171b2f;color:white;padding:11px 16px;border-radius:999px;font-weight:800;transition:.2s
}
.toast.show{transform:translate(-50%,0);opacity:1}
.empty{padding:30px;text-align:center;color:var(--muted)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
@media(max-width:700px){
  .topbar{padding:10px 12px}.header-stats .stat-pill:nth-child(2){display:none}
  main{width:min(100% - 18px,1120px);margin-top:14px}.hero{padding:24px 20px;border-radius:22px}
  .section-head{align-items:stretch;flex-direction:column}.search{max-width:none}
  .mastery-row{grid-template-columns:100px 1fr 42px;font-size:.82rem}
}
body.dark{
  --bg:#101322;--card:#171b2f;--card2:#202640;--text:#f5f7ff;--muted:#aeb6cf;--border:#303856;
  --shadow:0 12px 34px rgba(0,0,0,.22)
}
