:root{--bg:#f7f7f5;--bg-raised:#fff;--bg-sunken:#efefec;--text:#1a1d21;--text-2:#5c6470;--text-3:#8a919c;--border:#e3e3df;--border-strong:#cfcfc9;--accent:#2f6fed;--accent-soft:#e8effd;--accent-text:#2058c7;--green:#178a50;--green-soft:#e3f5ec;--red:#d33d3d;--red-soft:#fdecec;--amber:#b97d10;--amber-soft:#fdf3dd;--purple:#7c4dd4;--purple-soft:#f0e9fc;--shadow:0 1px 2px #14161a0d, 0 4px 16px #14161a0f;--shadow-lg:0 4px 12px #14161a14, 0 12px 40px #14161a1f;--radius:14px;--radius-sm:9px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, monospace;--nav-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#131519;--bg-raised:#1c1f25;--bg-sunken:#0e1013;--text:#eceef1;--text-2:#a3abb8;--text-3:#6e7683;--border:#2a2e36;--border-strong:#3a3f49;--accent:#5b8ef7;--accent-soft:#1d2a45;--accent-text:#8ab0fa;--green:#35b878;--green-soft:#14301f;--red:#e46060;--red-soft:#3a1d1d;--amber:#d9a13c;--amber-soft:#33270f;--purple:#a07ce8;--purple-soft:#271d3d;--shadow:0 1px 2px #0000004d, 0 4px 16px #0000004d;--shadow-lg:0 4px 12px #0006, 0 12px 40px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:16px;line-height:1.55}h1,h2,h3,h4{letter-spacing:-.015em;margin:0;line-height:1.25}p{margin:0}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none;padding:0}a{color:inherit;text-decoration:none}.shell{min-height:100dvh;display:flex}.sidebar{border-right:1px solid var(--border);background:var(--bg-raised);flex-direction:column;flex-shrink:0;gap:4px;width:232px;height:100dvh;padding:20px 14px;display:flex;position:sticky;top:0}.sidebar .brand{letter-spacing:-.02em;padding:4px 12px 18px;font-size:19px;font-weight:800}.sidebar .brand span{color:var(--accent)}.navlink{border-radius:var(--radius-sm);color:var(--text-2);align-items:center;gap:11px;padding:10px 12px;font-size:15px;font-weight:550;display:flex}.navlink svg{flex-shrink:0}.navlink:hover{background:var(--bg-sunken);color:var(--text)}.navlink.active{background:var(--accent-soft);color:var(--accent-text)}.sidebar .spacer{flex:1}.main{flex:1;min-width:0}.page{max-width:880px;margin:0 auto;padding:32px 24px 96px}.page-wide{max-width:1020px}.bottomnav{z-index:40;background:color-mix(in srgb, var(--bg-raised) 88%, transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:none;position:fixed;bottom:0;left:0;right:0}.bottomnav .row{display:flex}.bottomnav a{color:var(--text-3);flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 0 7px;font-size:10.5px;font-weight:600;display:flex}.bottomnav a.active{color:var(--accent-text)}@media (width<=800px){.sidebar{display:none}.bottomnav{display:block}.page{padding:20px 16px calc(var(--nav-h) + 40px)}body{font-size:15.5px}}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card.pad-lg{padding:26px}.btn{background:var(--accent);color:#fff;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:15px;font-weight:650;transition:transform 50ms,opacity .15s;display:inline-flex}.btn:hover{opacity:.92}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:default}.btn.secondary{background:var(--bg-raised);color:var(--text);border-color:var(--border-strong)}.btn.secondary:hover{background:var(--bg-sunken);opacity:1}.btn.ghost{color:var(--text-2);background:0 0}.btn.ghost:hover{background:var(--bg-sunken);color:var(--text)}.btn.danger{background:var(--red)}.btn.sm{border-radius:9px;padding:7px 13px;font-size:13.5px}.btn.lg{border-radius:13px;padding:14px 24px;font-size:16px}.btn.full{width:100%}.chip{white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:3px 10px;font-size:12.5px;font-weight:650;display:inline-flex}.chip.blue{background:var(--accent-soft);color:var(--accent-text)}.chip.green{background:var(--green-soft);color:var(--green)}.chip.red{background:var(--red-soft);color:var(--red)}.chip.amber{background:var(--amber-soft);color:var(--amber)}.chip.purple{background:var(--purple-soft);color:var(--purple)}.chip.gray{background:var(--bg-sunken);color:var(--text-2)}.muted{color:var(--text-2)}.small{font-size:13.5px}.tiny{font-size:12px}.row{align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:12px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}@media (width<=640px){.grid3{grid-template-columns:1fr 1fr}.grid2.collapse{grid-template-columns:1fr}}.progress-track{background:var(--bg-sunken);border-radius:99px;height:7px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:99px;height:100%;transition:width .4s}hr.sep{border:none;border-top:1px solid var(--border);margin:18px 0}.qstem{font-size:17.5px;font-weight:600;line-height:1.5}@media (width<=800px){.qstem{font-size:16.5px}}.choices{flex-direction:column;gap:10px;margin-top:18px;display:flex}.choice{text-align:left;border:1.5px solid var(--border);background:var(--bg-raised);border-radius:12px;align-items:flex-start;gap:12px;width:100%;padding:14px 16px;font-size:15.5px;line-height:1.45;transition:border-color .12s,background .12s;display:flex}.choice:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-sunken)}.choice.selected{border-color:var(--accent);background:var(--accent-soft)}.choice.correct{border-color:var(--green);background:var(--green-soft)}.choice.incorrect{border-color:var(--red);background:var(--red-soft)}.choice.dim{opacity:.6}.choice:disabled{cursor:default}.choice .key{background:var(--bg-sunken);width:26px;height:26px;color:var(--text-2);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:13px;font-weight:700;display:flex}.choice.selected .key{background:var(--accent);color:#fff}.choice.correct .key{background:var(--green);color:#fff}.choice.incorrect .key{background:var(--red);color:#fff}.feedback{border-radius:var(--radius);margin-top:16px;padding:18px 20px}.feedback.good{background:var(--green-soft);border:1px solid color-mix(in srgb, var(--green) 30%, transparent)}.feedback.bad{background:var(--red-soft);border:1px solid color-mix(in srgb, var(--red) 30%, transparent)}.feedback h4{margin-bottom:6px;font-size:15px}.explain-choice{color:var(--text-2);border-top:1px solid var(--border);gap:9px;padding:7px 0;font-size:14px;display:flex}.explain-choice:first-child{border-top:none}.explain-choice .mark{white-space:nowrap;flex-shrink:0;width:34px;font-weight:700}.lesson-body p{margin:0 0 14px}.lesson-body strong{font-weight:700}.fact-list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.fact-list li{gap:10px;font-size:15px;display:flex}.fact-list li:before{content:"▸";color:var(--accent);flex-shrink:0;font-weight:700}.trap-item{border-left:3px solid var(--amber);background:var(--amber-soft);border-radius:0 10px 10px 0;padding:8px 14px}.tabs{background:var(--bg-sunken);border-radius:12px;gap:4px;padding:4px;display:flex;overflow-x:auto}.tabs button{color:var(--text-2);white-space:nowrap;border-radius:9px;padding:8px 14px;font-size:14px;font-weight:600}.tabs button.active{background:var(--bg-raised);color:var(--text);box-shadow:var(--shadow)}.flashcard{text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg-raised);border:1px solid var(--border);min-height:260px;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;padding:32px;font-size:18px;font-weight:600;display:flex}.flashcard .back-text{color:var(--text);font-size:16px;font-weight:450}.exam-header{z-index:30;background:var(--bg);border-bottom:1px solid var(--border);margin-bottom:20px;padding:12px 0;position:sticky;top:0}.exam-timer{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.exam-timer.low{color:var(--red)}.qnav{flex-wrap:wrap;gap:6px;display:flex}.qnav button{border:1px solid var(--border);background:var(--bg-raised);width:34px;height:34px;color:var(--text-2);border-radius:8px;font-size:12.5px;font-weight:650}.qnav button.answered{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.qnav button.flagged{border-color:var(--amber);color:var(--amber)}.qnav button.current{outline:2px solid var(--accent);outline-offset:1px}.mastery-dot{border-radius:99px;flex-shrink:0;width:9px;height:9px}.ring{justify-content:center;align-items:center;display:inline-flex;position:relative}.ring svg{transform:rotate(-90deg)}.ring .label{text-align:center;position:absolute}.topic-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);align-items:center;gap:14px;padding:14px 16px;transition:border-color .12s;display:flex}.topic-row:hover{border-color:var(--border-strong)}.overlay{z-index:60;background:#0a0c1080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=641px){.overlay{align-items:center}}.sheet{background:var(--bg-raised);border-radius:18px 18px 0 0;width:100%;max-width:480px;max-height:85dvh;padding:24px;overflow-y:auto}@media (width>=641px){.sheet{border-radius:18px}}.fade-in{animation:.22s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}::selection{background:color-mix(in srgb, var(--accent) 25%, transparent)}
