:root{--topbar-h:56px;--sidebar-w:272px;--content-w:880px;--content-w-wide:1100px;--radius:14px;--radius-sm:10px}:root,[data-theme=light]{--bg:#f7f5f0;--panel:#ece9df;--side:#ffffff;--card:#ffffff;--topbar-bg:#ffffff;--content-top:#ffffff;--text:#1c1c1e;--text-m:#111827;--text-sub:#6b7280;--text-faint:#9ca3af;--accent:#0066ff;--accent-soft:rgba(0,102,255,.07);--accent-line:rgba(0,102,255,.2);--purple:#7c3aed;--purple-soft:rgba(124,58,237,.05);--purple-line:rgba(124,58,237,.2);--amber:#d97706;--success:#16a34a;--cyan:#0891b2;--danger:#dc2626;--border:rgba(0,0,0,.07);--hover:#f9fafb;--hover2:rgba(0,0,0,.04);--search-bg:#f9fafb;--shadow-card:0 1px 3px rgba(0,0,0,.04);--shadow-pop:0 8px 30px rgba(0,0,0,.1);--tcount-bg:#f3f4f6;--tcount-fg:#9ca3af}[data-theme=dark]{--bg:#0d0d14;--panel:#0a0a10;--side:#13131f;--card:#1b1b28;--topbar-bg:#0a0a10;--content-top:#13131f;--text:#f3f4f6;--text-m:#ffffff;--text-sub:rgba(255,255,255,.62);--text-faint:rgba(255,255,255,.4);--accent:#5b8bff;--accent-soft:rgba(91,139,255,.14);--accent-line:rgba(91,139,255,.3);--purple:#a78bfa;--purple-soft:rgba(167,139,250,.08);--purple-line:rgba(167,139,250,.25);--amber:#fbbf24;--success:#34d399;--cyan:#22d3ee;--danger:#f87171;--border:rgba(255,255,255,.08);--hover:rgba(255,255,255,.05);--hover2:rgba(255,255,255,.06);--search-bg:rgba(255,255,255,.05);--shadow-card:0 1px 3px rgba(0,0,0,.3);--shadow-pop:0 8px 30px rgba(0,0,0,.45);--tcount-bg:rgba(255,255,255,.08);--tcount-fg:rgba(255,255,255,.45)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:PingFang SC,Noto Sans SC,Source Han Sans SC,Microsoft YaHei,-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;background:var(--bg);color:var(--text-m);-webkit-font-smoothing:antialiased;overflow:hidden;transition:background .25s ease,color .25s ease}a{color:inherit}.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);z-index:100;display:flex;align-items:center;gap:12px;padding:0 20px;background:var(--topbar-bg);border-bottom:1px solid var(--border);transition:background .25s ease,border-color .25s ease}.nav-exits{display:flex;gap:8px;padding:10px 14px 2px}.exit-link{flex:1;display:inline-flex;align-items:center;justify-content:center;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--side);color:var(--text-sub);font-size:12px;font-weight:700;text-decoration:none;transition:all .2s}.exit-link:hover{background:var(--hover2);color:var(--text-m)}.menu-btn{display:none;width:36px;height:36px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:var(--text-sub);font-size:18px;flex-shrink:0;align-items:center;justify-content:center;transition:all .2s}.menu-btn:hover{background:var(--hover2);color:var(--text-m)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}.brand-mark{width:32px;height:32px;border-radius:8px;flex-shrink:0;overflow:hidden;background:var(--card);display:flex;align-items:center;justify-content:center}.brand-logo{width:100%;height:100%;object-fit:contain;display:none}[data-theme=light] .brand-logo.light,[data-theme=dark] .brand-logo.dark{display:block}.brand-text{min-width:0}.brand-name{font-size:14px;font-weight:800;color:var(--text-m);letter-spacing:-.2px;white-space:nowrap}.brand-sub{font-size:11px;color:var(--text-faint);white-space:nowrap;margin-top:1px}.topbar-space{flex:1}.theme-btn,.top-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;border-radius:9px;border:1px solid var(--border);background:var(--side);color:var(--text-sub);font-size:13px;font-weight:700;text-decoration:none;cursor:pointer;font-family:inherit;transition:all .2s}.theme-btn{width:36px;padding:0}.top-btn{padding:0 14px;white-space:nowrap}.theme-btn:hover,.top-btn:hover{border-color:var(--accent);color:var(--accent)}.layout{position:fixed;top:var(--topbar-h);left:0;right:0;bottom:0;display:flex}.sidebar{width:var(--sidebar-w);flex-shrink:0;height:100%;background:var(--side);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:background .25s ease,border-color .25s ease,transform .3s cubic-bezier(.4,0,.2,1)}.search-wrap{height:52px;min-height:52px;flex-shrink:0;display:flex;align-items:center;padding:0 14px;border-bottom:1px solid var(--border)}.search-wrap input{width:100%;height:36px;border:1px solid var(--border);border-radius:10px;padding:0 12px 0 34px;font-size:13px;background:var(--search-bg);color:var(--text-m);outline:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23aaa' stroke-width='2.5'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");background-repeat:no-repeat;background-position:11px center;transition:all .2s}.search-wrap input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-wrap input::placeholder{color:var(--text-faint)}.search-wrap input:disabled{cursor:not-allowed;opacity:.7}.nav-tree{flex:1;overflow-y:auto;padding:10px 8px 16px}.nav-tree::-webkit-scrollbar{width:4px}.nav-tree::-webkit-scrollbar-thumb{background:var(--tcount-bg);border-radius:4px}.part-divider{display:flex;align-items:center;gap:10px;padding:16px 10px 8px;margin-top:6px;user-select:none}.part-divider:first-child{margin-top:0;padding-top:4px}.part-bar{width:3px;height:30px;border-radius:2px;flex-shrink:0}.part-info{flex:1;min-width:0}.part-num{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;line-height:1.3}.part-name{font-size:13px;font-weight:800;color:var(--text-m);line-height:1.4}.lesson-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;cursor:pointer;font-size:13px;font-weight:600;color:var(--text-sub);text-decoration:none;margin:1px 0;transition:background .15s}.lesson-item:hover{background:var(--hover2)}.lesson-item .check{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border);flex-shrink:0;position:relative;transition:all .15s}.lesson-item.active{background:var(--accent-soft);color:var(--accent);font-weight:800}.lesson-item.active .check{background:var(--accent);border-color:var(--accent)}.lesson-item.active .check:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.lesson-item.learned .check{background:var(--success);border-color:var(--success)}.lesson-item.learned .check:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.lesson-item.pending{opacity:.55}.lesson-item .ltitle{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-item .badge{font-size:10px;font-weight:700;color:var(--text-faint);background:var(--tcount-bg);padding:2px 6px;border-radius:6px;flex-shrink:0}.sidebar-foot{flex-shrink:0;padding:14px 14px 16px;border-top:1px solid var(--border)}.au-name{font-size:13px;font-weight:800;color:var(--text-m)}.au-name .au-site{color:var(--accent);font-weight:700}.au-desc{font-size:11px;color:var(--text-faint);line-height:1.5;margin-top:4px}.au-links{display:flex;gap:6px;margin-top:10px}.au-links a{width:28px;height:28px;border-radius:7px;border:1px solid var(--border);background:var(--card);display:flex;align-items:center;justify-content:center;color:var(--text-sub);transition:all .2s}.au-links a:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.au-links svg{width:14px;height:14px}.content{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--panel)}.content-top{height:52px;min-height:52px;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:0 24px;background:var(--content-top);border-bottom:1px solid var(--border)}.crumb{font-size:13px;color:var(--text-sub);display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.crumb .sep{color:var(--text-faint)}.crumb .cur{font-weight:800;color:var(--text-m)}.lesson-scroll{flex:1;overflow-y:auto}.lesson-scroll::-webkit-scrollbar{width:8px;height:8px}.lesson-scroll::-webkit-scrollbar-track{background:transparent}.lesson-scroll::-webkit-scrollbar-thumb{background:#0000001f;border-radius:4px}[data-theme=dark] .lesson-scroll::-webkit-scrollbar-thumb{background:#ffffff1f}.lesson{max-width:var(--content-w);margin:0 auto;padding:56px 28px 40px}.lesson.wide{max-width:var(--content-w-wide)}.lesson-header{margin-bottom:20px}.lesson-header .kicker{font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--part-color);margin-bottom:10px}.lesson-header h1{font-size:32px;font-weight:800;line-height:1.35;color:var(--text);letter-spacing:-.5px}.lesson-header .subtitle{font-size:15px;color:var(--text-sub);margin-top:12px;line-height:1.7}.desc{font-size:14px;color:var(--text-sub);line-height:1.8;margin-bottom:14px}.sec-label{font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--text-sub);margin:40px 0 16px;display:flex;align-items:center;gap:10px}.sec-label:after{content:"";flex:1;height:1px;background:var(--border)}.l-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow-card)}.l-card .lbl{font-weight:800;color:var(--text);font-size:16px}.l-card p{color:var(--text);line-height:1.85;font-size:15.5px}.l-card p+p{margin-top:12px}.l-card b{color:var(--text)}.l-card p b,.lead b,.l-callout b,.qq-exp b,.dual-desc b,.pre-note b,.vis-note b,.pw-note b,.fire-verdict b,.card-note b,.boot-note b,.mf-status b,.cg-verdict b{background:var(--hl-bg,#e8f0ff);color:var(--hl-fg,#0044aa);font-weight:800;padding:0 5px;border-radius:5px;box-decoration-break:clone;-webkit-box-decoration-break:clone}[data-theme=light]{--hl-bg:rgba(0,102,255,.1);--hl-fg:#0044aa}[data-theme=dark]{--hl-bg:rgba(91,139,255,.2);--hl-fg:#9db9ff}.l-callout{background:var(--accent-soft);border:1.5px solid var(--accent-line);border-radius:var(--radius);padding:18px 22px;color:var(--text);font-size:15px;line-height:1.8}.l-callout b{color:var(--accent)}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);padding:24px;text-align:center;box-shadow:var(--shadow-card)}.stat-card .num{font-size:36px;font-weight:800;color:var(--accent);line-height:1;letter-spacing:-1px;font-variant-numeric:tabular-nums}.stat-card .lab{font-size:13px;color:var(--text-sub);margin-top:8px;font-weight:600}.stat-card .delta{font-size:12px;font-weight:800;color:var(--success);margin-top:6px}.anchor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.anchor-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-card)}.anchor-card .a-num{font-size:11px;font-weight:800;color:var(--accent);letter-spacing:.5px;text-transform:uppercase}.anchor-card .a-title{font-size:20px;font-weight:800;color:var(--text);margin:6px 0;font-variant-numeric:tabular-nums}.anchor-card .a-desc{font-size:13px;color:var(--text-sub);line-height:1.6}code{font-family:SF Mono,Fira Code,Menlo,monospace;font-size:.88em;background:var(--hover);padding:1px 6px;border-radius:5px;color:var(--accent)}.demo-hd{font-size:12px;font-weight:800;color:var(--text-sub);letter-spacing:.5px;text-transform:uppercase;margin:24px 0 10px}.strat-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.strat-btn{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;border:1.5px solid var(--border);background:var(--card);cursor:pointer;transition:all .2s;font-family:inherit;text-align:left}.strat-btn:hover{border-color:var(--accent-line)}.strat-btn.active{border-color:var(--accent);box-shadow:0 2px 12px var(--accent-soft);background:var(--accent-soft)}.strat-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.sb{min-width:0}.sb h4{font-size:14px;font-weight:800;color:var(--text)}.sb p{font-size:12px;color:var(--text-sub)}.vis-wrap{background:var(--card);border:1.5px solid var(--border);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-card)}.vis-bar{padding:10px 16px;border-bottom:1px solid var(--border);background:var(--hover);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.vis-bar-title{font-size:13px;font-weight:700;color:var(--text)}.vis-meta{font-size:11px;color:var(--text-faint);font-family:SF Mono,Menlo,monospace}.vis-body{padding:14px 16px}.mmsg.ok{background:#16a34a14;color:var(--success);font-weight:600}.pf-row{display:flex;align-items:center;gap:10px;margin:8px 0}.pf-tok{width:30px;font-size:15px;font-weight:800;color:var(--text);font-family:SF Mono,Menlo,monospace;text-align:center;flex-shrink:0}.pf-track{height:11px;background:var(--tcount-bg);border-radius:4px;overflow:hidden}.pf-fill{height:100%;border-radius:4px}.pf-fill.p{background:var(--success);opacity:.65}.pf-fill.f{background:var(--accent)}.pf-meta{width:118px;font-size:11px;color:var(--text-faint);font-variant-numeric:tabular-nums;line-height:1.55;flex-shrink:0}.len-note{text-align:center;font-size:12px;color:var(--text-faint);margin-top:12px}.g2-slider-row{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0 6px;flex-wrap:wrap}.g2-slider-row label{font-size:14px;font-weight:800;color:var(--text);font-family:SF Mono,Menlo,monospace;min-width:118px}.g2-read{background:var(--card);border:1.5px solid var(--border);border-radius:10px;padding:9px 18px;text-align:center;min-width:126px}.g2-read b{display:block;font-size:20px;font-weight:800;font-family:SF Mono,Menlo,monospace;color:var(--part-color)}.g2-read span{font-size:11px;color:var(--text-faint);font-weight:600}.schema-svg{width:100%;height:auto;display:block;max-width:640px;margin:0 auto}.schema-cap{text-align:center;font-size:12px;color:var(--text-faint);margin-top:10px;line-height:1.6}.big-claim{font-size:25px;font-weight:800;line-height:1.5;color:var(--text);text-align:center;margin:18px 8px 30px;letter-spacing:-.3px}.big-claim .em{color:var(--part-color)}.big-claim .em-red{color:var(--danger)}.lead{font-size:15.5px;color:var(--text-sub);line-height:1.85;text-align:center;margin:-12px 8px 26px}.hcard{border-radius:14px;padding:18px 22px;margin:14px 0;border:1.5px solid var(--border);background:var(--card);box-shadow:var(--shadow-card)}.hcard.blue{border-color:var(--accent-line);background:var(--accent-soft)}.hcard.blue .hl-label{color:var(--accent)}.hcard.green{border-color:#16a34a47;background:#16a34a12}.hcard.green .hl-label{color:var(--success)}.hcard.amber{border-color:#d977064d;background:#d9770612}.hcard.amber .hl-label{color:var(--amber)}.hcard.red{border-color:#dc262647;background:#dc26260f}.hcard.red .hl-label{color:var(--danger)}.hl-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.hl-val{font-size:15px;color:var(--text);line-height:1.8}.hl-val b{color:var(--text)}.algo-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:16px 0}.algo-tab{padding:10px 20px;border-radius:10px;border:1.5px solid var(--border);background:var(--card);cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;color:var(--text-sub);transition:all .2s}.algo-tab:hover{border-color:var(--part-color)}.algo-tab.active{background:var(--part-color);color:#fff;border-color:var(--part-color)}.ctrl-row{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}.btn-replay{padding:9px 18px;border-radius:9px;border:1px solid var(--border);background:var(--card);color:var(--text-sub);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s}.btn-replay:hover{border-color:var(--accent);color:var(--accent)}.hint{font-size:12px;color:var(--text-faint)}.reveal{opacity:0;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease}.reveal.show{opacity:1;transform:translateY(0)}.lesson-foot{flex-shrink:0;display:flex;gap:12px;align-items:stretch;padding:12px 24px;background:var(--content-top);border-top:1px solid var(--border)}.foot-btn{flex:1;display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;border:1px solid var(--border);background:var(--side);color:var(--text-m);cursor:pointer;min-width:0;text-decoration:none;transition:all .2s}.foot-btn:hover{border-color:var(--accent);box-shadow:0 4px 16px var(--accent-soft);transform:translateY(-1px)}.foot-btn.disabled{opacity:.4;pointer-events:none}.foot-btn.pending{cursor:default}.foot-arr{font-size:20px;color:var(--text-faint);flex-shrink:0;line-height:1}.fb-info{min-width:0;display:flex;flex-direction:column;gap:1px}.fb-lbl{font-size:11px;color:var(--text-faint);font-weight:600;letter-spacing:.3px}.fb-name{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.foot-btn.next{flex-direction:row-reverse;text-align:right}.learned-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 24px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--success),#059669);color:#fff;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px #16a38159;white-space:nowrap;transition:all .2s;font-family:inherit}.learned-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #16a38173;filter:brightness(1.05)}.learned-btn.done{background:var(--side);color:var(--success);border:1.5px solid var(--success);box-shadow:none}.learned-btn.done:hover{transform:none;filter:none}.scrim{display:none;position:fixed;inset:0;top:var(--topbar-h);background:#00000073;backdrop-filter:blur(3px);z-index:39}.toast{position:fixed;bottom:88px;left:50%;transform:translate(-50%) translateY(16px);background:var(--text-m);color:var(--side);padding:11px 22px;border-radius:999px;font-size:13px;font-weight:600;box-shadow:var(--shadow-pop);opacity:0;pointer-events:none;transition:all .3s;z-index:200;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:900px){.menu-btn{display:flex}.sidebar{position:fixed;top:var(--topbar-h);bottom:0;left:0;z-index:40;transform:translate(-100%);box-shadow:8px 0 32px #0000001f}body.nav-open .sidebar{transform:translate(0)}body.nav-open .scrim{display:block}.content-top,.lesson-foot{padding-left:14px;padding-right:14px}}@media(max-width:768px){.lesson{padding:36px 18px 30px}.lesson-header h1{font-size:24px}.lesson-header .subtitle{font-size:14px}.l-card{padding:16px 18px}.anchor-grid,.stat-grid,.l-cols,.strat-list{grid-template-columns:1fr}.strat-list{grid-template-columns:1fr 1fr}.foot-btn .fb-lbl{display:none}.learned-btn{padding:10px 16px;font-size:13px}.lesson-foot{gap:8px}}@media(max-width:640px){.brand-sub{display:none}.top-btn{padding:0 10px}.top-btn .tb-txt{display:none}.strat-list{grid-template-columns:1fr}.pf-meta{width:88px}}
