:root{--bg:#f5f7fb;--panel:#fff;--panel2:#eef2f8;--border:#d8e0ec;--text:#16233a;--muted:#5d6e87;--accent:#0e8a72;--accent-ink:#fff;--blue:#3b62d6;--amber:#b86b00;--danger:#c0392b;--ok:#0e8a72;--key:#e3f5ee;--trap:#fdeee0;--bn:#e8eeff;--r:14px;--font:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans Bengali","Nirmala UI",sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0f1b;--panel:#111a2b;--panel2:#172238;--border:#27334b;--text:#eef3fd;--muted:#9aaac5;--accent:#6fe3bd;--accent-ink:#06231b;--blue:#8aa9ff;--amber:#ffc77c;--danger:#ff9d9d;--ok:#6fe3bd;--key:#16302d;--trap:#352a29;--bn:#1a2540}}:root[data-theme=dark]{--bg:#0a0f1b;--panel:#111a2b;--panel2:#172238;--border:#27334b;--text:#eef3fd;--muted:#9aaac5;--accent:#6fe3bd;--accent-ink:#06231b;--blue:#8aa9ff;--amber:#ffc77c;--danger:#ff9d9d;--ok:#6fe3bd;--key:#16302d;--trap:#352a29;--bn:#1a2540}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 var(--font)}a{color:inherit}.app{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh}.side{position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:auto;background:var(--panel);border-right:1px solid var(--border);padding:22px 14px 40px}.brand{display:flex;align-items:center;gap:10px;font-size:18px;text-decoration:none;padding:0 8px}.brand,.logo{font-weight:800}.logo{width:34px;height:34px;border-radius:10px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center}.brand-sub{color:var(--muted);font-size:12.5px;padding:6px 8px 16px}.nav-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;text-decoration:none;font-size:14px;font-weight:600;margin:2px 0}.nav-link:hover{background:var(--panel2)}.nav-link.on{background:var(--accent);color:var(--accent-ink)}.nav-link .n{font:700 11px/1 ui-monospace,Consolas,monospace;opacity:.7;min-width:26px}.nav-link .t{flex:1 1}.nav-link.soon{opacity:.5}.dot{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--muted)}.dot.done{background:var(--ok)}.dot.done,.dot.part{border-color:var(--ok)}.dot.part{background:linear-gradient(90deg,var(--ok) 50%,transparent 50%)}.phase-h{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:16px 10px 4px}.main{min-width:0}.top{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;padding:10px 24px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.crumbs{flex:1 1;font-size:14px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumbs a{color:var(--text)}.tools{display:flex;gap:6px}.btn{font:inherit;font-weight:700;font-size:14px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:8px 14px;cursor:pointer;text-decoration:none;display:inline-block}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.btn.ghost{background:transparent}.menu{display:none}.view{padding:30px clamp(16px,4vw,56px) 90px}.wrap{max-width:860px;margin:0 auto}.wrap.wide{max-width:1000px}.eyebrow{font:700 12px/1 ui-monospace,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.eyebrow,h1{margin:0 0 12px}h1{font-size:clamp(28px,4.4vw,44px);line-height:1.12;letter-spacing:-.02em}h2{font-size:24px;margin:40px 0 10px;letter-spacing:-.01em}h3{font-size:19px;margin:28px 0 8px}.lead{font-size:18px;color:var(--muted);margin:0 0 20px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:20px 22px;margin:16px 0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:12px;gap:12px;margin:18px 0}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:16px}.stat b{display:block;font-size:30px;line-height:1.1}.stat span{color:var(--muted);font-size:13px}.bar{height:8px;border-radius:99px;background:var(--panel2);overflow:hidden}.bar i{display:block;height:100%;background:var(--accent);transition:width .25s}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:12px;gap:12px}.card{display:block;text-decoration:none;background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:16px}.card:hover{border-color:var(--accent)}.card .num{font:700 12px ui-monospace,Consolas,monospace;color:var(--accent)}.card b{display:block;margin:4px 0}.card small{color:var(--muted)}.card.soon{opacity:.55;pointer-events:none}.pill{display:inline-block;font-size:12px;font-weight:700;border-radius:99px;padding:2px 10px;background:var(--panel2);color:var(--muted);margin-left:6px;vertical-align:middle}.pill.ok{background:var(--key);color:var(--ok)}.day-row{display:flex;gap:14px;align-items:center;text-decoration:none;background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;margin:8px 0}.day-row:hover{border-color:var(--accent)}.day-row .d{font:700 12px ui-monospace,Consolas,monospace;color:var(--accent);min-width:34px}.day-row .tt{flex:1 1}.day-row small{display:block;color:var(--muted)}.meta{color:var(--muted);font-size:14px;margin:0 0 6px}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:22px 0 4px;position:-webkit-sticky;position:sticky;top:55px;z-index:4;background:var(--bg);padding:8px 0}.tab{font:inherit;font-weight:700;font-size:14px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:99px;padding:7px 14px;cursor:pointer}.tab[aria-selected=true]{background:var(--accent);color:var(--accent-ink);border-color:transparent}.tab .tick{margin-left:6px;color:var(--ok)}.tab[aria-selected=true] .tick{color:var(--accent-ink)}.sec-meta{color:var(--muted);font-size:14px;margin:-6px 0 14px}.eq{margin:14px 0;border-radius:12px;background:var(--panel2);font:600 20px/1.5 ui-monospace,Cambria,Cambria Math,serif;text-align:center;overflow-x:auto}.eq,.ex{padding:14px 18px;border:1px solid var(--border)}.ex{margin:16px 0;border-left:4px solid var(--blue);border-radius:12px;background:var(--panel)}.ex h4{margin:0 0 8px;font-size:16px}.ex ol{margin:0;padding-left:22px}.ex li{margin:4px 0}.bn,.key,.trap{border-radius:12px;padding:12px 16px;margin:14px 0}.key{background:var(--key);border:1px solid color-mix(in srgb,var(--ok) 45%,transparent)}.trap{background:var(--trap);border:1px solid color-mix(in srgb,var(--amber) 55%,transparent)}.key b.lab,.trap b.lab{display:block;font:800 11px/1 ui-monospace,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}.key b.lab{color:var(--ok)}.trap b.lab{color:var(--amber)}.bn{background:var(--bn);border-left:4px solid var(--blue);font-size:15.5px}.bn .lab{display:block;font:800 11px/1 ui-monospace,Consolas,monospace;letter-spacing:.1em;color:var(--blue);margin-bottom:6px}.nobn .bn{display:none}.lvl{margin:22px 0 6px;font-weight:800}.lvl small{color:var(--muted);font-weight:500;margin-left:8px}details.p{border:1px solid var(--border);border-radius:12px;background:var(--panel);margin:8px 0}details.p summary{cursor:pointer;padding:12px 16px;font-weight:600;list-style:none;display:flex;gap:10px}details.p summary:before{content:"▸";color:var(--accent)}details.p[open] summary:before{content:"▾"}details.p .ans{padding:0 16px 14px 38px;color:var(--ok)}.quiz .qq{padding:14px 0;border-bottom:1px solid var(--border)}.quiz .qq:last-of-type{border:0}.quiz .qq p{margin:0 0 8px;font-weight:700}.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:8px;gap:8px}.opt{font:inherit;text-align:left;border:1px solid var(--border);background:var(--panel2);color:var(--text);border-radius:10px;padding:10px 12px;cursor:pointer}.opt:hover:not(:disabled){border-color:var(--blue)}.opt.right{border-color:var(--ok);background:var(--key)}.opt.wrong{border-color:var(--danger);background:var(--trap)}.qexp{color:var(--muted);font-size:14px}.qexp,.qscore{margin:8px 0 0}.qscore{font-weight:800;color:var(--accent)}.graph{margin:18px 0}.graph svg{width:100%;height:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;display:block}.graph figcaption{color:var(--muted);font-size:14px;margin-top:8px}.g-grid{stroke:var(--border);stroke-width:1}.g-axis{stroke:var(--muted);stroke-width:1.5}.g-txt{fill:var(--muted);font:11px var(--font)}.g-lab{fill:var(--text);font:600 12px var(--font)}.tbl{width:100%;border-collapse:collapse;margin:14px 0;font-size:15px}.tbl td,.tbl th{border:1px solid var(--border);padding:8px 10px;text-align:left}.tbl th{background:var(--panel2)}textarea.notes{width:100%;min-height:150px;resize:vertical;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:14px;font:inherit}textarea.notes:focus{outline:2px solid var(--accent);border-color:transparent}.done-row{display:flex;align-items:center;gap:10px;margin:26px 0 4px;padding:14px 16px;border:1px dashed var(--border);border-radius:12px;font-weight:700}.done-row input{width:20px;height:20px;accent-color:var(--accent)}.navrow{display:flex;justify-content:space-between;gap:10px;margin-top:30px;flex-wrap:wrap}@media(max-width:900px){.app{grid-template-columns:1fr}.side{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);z-index:20;transform:translateX(-102%);transition:transform .2s;box-shadow:0 0 40px #0006}.side.open{transform:none}.menu{display:inline-block}.top{padding:8px 14px}.view{padding:22px 16px 80px}}@media print{.navrow,.side,.tabs,.top{display:none}.app,.pane[hidden],details.p:not([open]) .ans{display:block}}.lab-ctl{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px;margin:14px 0}.lab-var label{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--muted)}.lab-var strong{color:var(--accent)}.lab-var input{width:100%;accent-color:var(--accent);margin-top:8px}.lab-out{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px;margin:10px 0}.metric{background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:12px}.metric strong{display:block;font-size:22px;color:var(--accent)}.metric span{font-size:12.5px;color:var(--muted)}.funcg svg,.lab-plot svg{width:100%;height:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;display:block;margin-top:10px}.funcg{margin:18px 0}.funcg figcaption{color:var(--muted);font-size:14px;margin-top:8px}.exrow{display:flex;gap:8px;max-width:360px}.exrow input{flex:1 1;font:inherit;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:9px 12px}details.predict{border-style:dashed;border-color:var(--amber)}i{font-style:italic}code{font-family:ui-monospace,Cambria,Cambria Math,serif;background:var(--panel2);padding:1px 5px;border-radius:5px}:root{--topH:56px}html{scroll-padding-top:calc(var(--topH) + 14px)}.top{height:var(--topH);padding-top:0;padding-bottom:0}.tabs{top:var(--topH)}.view{padding-top:34px}.banner{margin:0 0 16px;padding:10px 14px;border-radius:12px;background:var(--trap);border:1px solid color-mix(in srgb,var(--amber) 55%,transparent);font-size:14px}.save-st{font-size:13px;color:var(--muted);margin:6px 0 0}.upl{display:grid;grid-gap:12px;gap:12px;margin:12px 0}.upl figure{margin:0;border:1px solid var(--border);border-radius:12px;padding:10px;background:var(--panel)}.upl img,.upl video{max-width:100%;border-radius:8px;display:block}.upl audio{width:100%}.upl figcaption{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--muted);margin-top:6px}.linkbtn{background:none;border:0;color:var(--danger);cursor:pointer;font:inherit;font-size:13px}.form{max-width:380px;margin:40px auto;display:grid;grid-gap:12px;gap:12px}.form input{font:inherit;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:11px 12px}.err{color:var(--danger);font-size:14px}table.audit{width:100%;border-collapse:collapse;font-size:14px}table.audit td,table.audit th{border-bottom:1px solid var(--border);padding:8px;text-align:left}.skeleton{color:var(--muted);padding:30px 0}.lab-var label{display:block}.lab-var label strong{margin-left:8px}