:root{--bg: #0f1115;--surface: #171a21;--surface-2: #1e222b;--border: #2a2f3a;--text: #e6e8ec;--muted: #9aa3b2;--accent: #5b8def;--fail: #e5534b;--ok: #3fb950;--opt: #d29922;--radius: 10px;--font: ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, monospace;--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.site-head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.4rem;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0}.brand{font-family:var(--font);font-weight:700;font-size:1.1rem;color:var(--text)}.site-head nav a{margin-left:1.2rem;color:var(--muted)}main{max-width:820px;margin:0 auto;padding:1.6rem 1.4rem 4rem}.hero h1{margin:.4rem 0 .2rem;font-size:1.6rem}.hero .sub{color:var(--muted);margin-top:0}.crumbs{font-family:var(--font);font-size:.85rem;color:var(--muted);margin:.6rem 0 .2rem}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--accent)}.crumb-sep{margin:0 .5rem;opacity:.5}.crumb-cur{color:var(--text)}.topic{margin-top:2rem}.topic h2{font-family:var(--font);font-size:1.05rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding-bottom:.4rem}.lesson-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}.lesson-card{display:flex;flex-direction:column;gap:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;color:var(--text)}.lesson-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-1px)}.lesson-title{font-weight:600}.lesson-sum{font-size:.85rem;color:var(--muted);line-height:1.4}.progress-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.2rem 0}.due-badge{display:flex;align-items:baseline;gap:.5rem}.due-n{font-family:var(--font);font-size:2.2rem;font-weight:700;color:var(--accent)}.due-l{color:var(--muted)}.btn-study,.btn-reveal,.btn-grade{font-family:var(--font-ui);cursor:pointer}.btn-study{background:var(--accent);color:#fff;padding:.6rem 1.1rem;border-radius:var(--radius);font-weight:600}.btn-study:hover{text-decoration:none;opacity:.92}.progress-grid{display:grid;gap:.8rem}.prog-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem 1rem}.prog-top{display:flex;justify-content:space-between;margin-bottom:.5rem}.prog-name{font-family:var(--font);font-weight:600}.prog-due{color:var(--muted);font-size:.88rem}.bar{height:7px;background:var(--surface-2);border-radius:99px;overflow:hidden}.bar-fill{height:100%;background:var(--ok);border-radius:99px;transition:width .3s}.notes-index{margin-top:2.4rem}.notes-index h2{border-bottom:1px solid var(--border);padding-bottom:.4rem}.idx-group h3{font-family:var(--font);color:var(--muted);text-transform:lowercase;margin-bottom:.3rem}.idx-group ul{margin:0 0 1.2rem;padding-left:1.1rem}.idx-group li{margin:.2rem 0}.study-bar{display:flex;align-items:center;justify-content:space-between;margin:1.2rem 0;color:var(--muted)}.study-bar select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.35rem .5rem;font-family:var(--font-ui)}.study-count{font-family:var(--font);font-size:.9rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem}.card-meta{font-family:var(--font);font-size:.8rem;color:var(--muted);margin-bottom:.8rem}.card-q{font-size:1.2rem;font-weight:600;margin-bottom:1rem}.card-prompt{color:var(--muted);font-style:italic}.btn-reveal{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem 1.2rem;font-weight:600}.btn-reveal:hover{border-color:var(--accent)}.ans{border-left:3px solid var(--border);padding:.2rem 0 .2rem .9rem;margin:.9rem 0}.ans b{font-family:var(--font);font-size:.85rem}.ans p{margin:.3rem 0 0;color:#cfd4dc}.a-wrong{border-color:var(--fail)}.a-correct{border-color:var(--ok)}.a-optimal{border-color:var(--opt)}.grade-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:1.2rem}.grade-q{width:100%;color:var(--muted);font-size:.9rem}.btn-grade{display:flex;flex-direction:column;align-items:flex-start;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.55rem .9rem;font-weight:600}.btn-grade small{font-weight:400;color:var(--muted);font-size:.72rem}.g-fail:hover{border-color:var(--fail)}.g-ok:hover{border-color:var(--ok)}.g-opt:hover{border-color:var(--opt)}.study-empty{text-align:center;color:var(--muted);padding:2.5rem 1rem}.note .back{display:inline-block;margin-bottom:1rem;color:var(--muted)}.note :is(h1,h2,h3){line-height:1.25}.note h1{font-size:1.7rem}.note pre{background:var(--surface)!important;border:1px solid var(--border);border-radius:var(--radius);padding:1rem;overflow-x:auto}.note code{font-family:var(--font);font-size:.9em}.note :not(pre)>code{background:var(--surface-2);padding:.1rem .35rem;border-radius:5px}.note table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.note th,.note td{border:1px solid var(--border);padding:.5rem .7rem;text-align:left}.note blockquote{border-left:3px solid var(--accent);margin:1rem 0;padding-left:1rem;color:var(--muted)}
