:root{--bg:#fff;--fg:#1c1e21;--muted:#5f6670;--line:#e3e6ea;--accent:#0a6cff;--zh:#0b3f8a;--code-bg:#0f172a;--code-fg:#e2e8f0;--note-bg:#fff8e1;--note-line:#f0c419;--note-label:#8a6d00;--slide-bg:#f6f8fa;--ok:#0f9d58;--bad:#d93025;--yellow:#fff3b0;--red:#ffd6d6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1117;--fg:#e6edf3;--muted:#8b949e;--line:#30363d;--accent:#58a6ff;--zh:#9ecbff;--code-bg:#010409;--code-fg:#e6edf3;--note-bg:#2a2410;--note-line:#d4a017;--note-label:#e0b93c;--slide-bg:#161b22;--yellow:#5a4a00;--red:#5a1a1a}}:root[data-theme=dark]{--bg:#0d1117;--fg:#e6edf3;--muted:#8b949e;--line:#30363d;--accent:#58a6ff;--zh:#9ecbff;--code-bg:#010409;--code-fg:#e6edf3;--note-bg:#2a2410;--note-line:#d4a017;--note-label:#e0b93c;--slide-bg:#161b22;--yellow:#5a4a00;--red:#5a1a1a}*{box-sizing:border-box}html{font-size:16px}body{background:var(--bg);color:var(--fg);margin:0;font-family:-apple-system,Segoe UI,Roboto,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;line-height:1.7}a{color:var(--accent)}p{margin:0 0 .9em}h2{margin:1.6em 0 .5em;font-size:1.25rem}.layout{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}nav.side{border-right:1px solid var(--line);height:100vh;padding:16px 12px;font-size:.9rem;position:sticky;top:0;overflow:auto}nav.side h1{margin:0 0 10px;font-size:1rem}nav.side .sub{color:var(--muted);font-size:.8em;display:block}nav.side .home{color:inherit;border-radius:6px;margin-bottom:8px;padding:4px 6px;text-decoration:none;display:block}nav.side .home:hover{background:var(--slide-bg)}nav.side details.ch{border-top:1px solid var(--line)}nav.side summary{cursor:pointer;grid-template-columns:2em 1fr auto;align-items:start;gap:0 6px;padding:8px 6px;font-weight:600;line-height:1.4;list-style:none;display:grid}nav.side summary::-webkit-details-marker{display:none}nav.side summary:hover{background:var(--slide-bg)}nav.side .chnum{color:var(--muted);font-weight:600}nav.side .chstat{color:var(--muted);border:1px solid var(--line);border-radius:10px;margin-top:2px;padding:0 6px;font-size:.75em;font-weight:500;line-height:1.6}nav.side .chstat[data-done=all]{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 40%, transparent)}nav.side .chstat[data-done=some]{color:var(--zh)}nav.side ul{margin:0;padding:0 0 8px 2.4em;list-style:none}nav.side li{margin:0}nav.side .pg a{color:inherit;border-radius:6px;padding:5px 6px;text-decoration:none;display:block}nav.side .pg a:hover{background:var(--slide-bg);color:var(--accent)}nav.side .pg.active a{background:color-mix(in srgb, var(--accent) 10%, transparent);font-weight:700}main{max-width:1400px;padding:24px clamp(16px,4vw,48px) 80px}header.top{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:12px;display:flex}.crumb{color:var(--muted);font-size:.9rem}.controls{gap:12px;display:flex}.modes{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.modes button{color:var(--fg);cursor:pointer;font:inherit;background:0 0;border:0;padding:6px 12px}.modes button.on{background:var(--accent);color:#fff}html:not([data-mode=duo]) .modes.duo-only{visibility:hidden}h1.title{margin:0 0 4px;font-size:1.8rem;line-height:1.3}[data-lang]{display:none}html[data-mode=en] [data-lang=en],html[data-mode=zh] [data-lang=zh],html[data-mode=duo] [data-lang]{display:revert}html[data-mode=duo] [data-lang=zh]{color:var(--zh)}.untranslated{opacity:.45;font-style:italic}html[data-mode=duo] .blk.text{grid-template-columns:1fr 1fr;align-items:start;gap:0 28px;display:grid}html[data-mode=duo] .blk.text>*{margin:0 0 .9em}html[data-mode=duo] .blk.text>[data-lang=zh]{border-left:2px solid var(--line);padding-left:14px}html[data-mode=duo][data-duo=stack] .blk.text{grid-template-columns:1fr}html[data-mode=duo][data-duo=stack] .blk.text>[data-lang=zh]{border-left:0;margin-top:-.5em;padding-left:0;font-size:.95em}html[data-mode=duo] .label{display:block}html[data-mode=duo] .label[data-lang=zh]{font-size:.92em}html[data-mode=duo] .label.untranslated{display:none}html[data-mode=duo] .crumb-t,html[data-mode=duo] .toc-index h2 .label{display:inline}html[data-mode=duo] .crumb-t[data-lang=zh]:before,html[data-mode=duo] .toc-index h2 .label[data-lang=zh]:before{content:" · "}html[data-mode=duo] .ui[data-lang=en]{display:none}html[data-mode=duo] .inline[data-lang=zh],html[data-mode=duo] .cell-text[data-lang=zh]{font-size:.93em;display:block}html[data-mode=duo] h1.title{display:block}html[data-mode=duo] h1.title .title-lang{border:0;padding:0;display:block}html[data-mode=duo] h1.title .title-lang[data-lang=en]{color:var(--muted);font-size:.55em;font-weight:500}html[data-mode=duo] h1.title .title-lang[data-lang=zh]{order:2}html[data-translated=no] :is(article,h1.title) [data-lang=zh]{display:none!important}html[data-translated=no] :is(article,h1.title) [data-lang=en]{display:revert!important}html[data-translated=no] article .blk.text{grid-template-columns:1fr}html[data-translated=no] h1.title .title-lang[data-lang=en]{color:inherit;font-size:1em;font-weight:inherit}.notice{color:var(--muted);border:1px dashed var(--line);border-radius:6px;margin:8px 0 16px;padding:6px 10px;font-size:.9em}ul.list,ol.list{margin:.2em 0 1em;padding-left:1.4em}ul.list.dash{list-style:"– "}ul.list li,ol.list li{margin:.35em 0}.slide{background:var(--slide-bg);border:1px solid var(--line);border-radius:10px;margin:12px 0 20px;padding:16px}.slide .blk.text{margin-top:10px}figure.figure{text-align:center;margin:0}figure.figure img{border-radius:6px;max-width:100%;height:auto}pre.code{background:var(--code-bg);color:var(--code-fg);border-radius:8px;padding:14px 16px;font:.85rem/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}pre.code .CommandName,pre.code .Emph,pre.code .UserAction{color:#fff;font-weight:700}pre.code .SystemResponse{color:#a5b4c5}pre.code .SyntaxArg{color:#fcd34d;font-style:italic}pre.code .Highlight{color:#fff;background:#854d0e;border-radius:3px;padding:0 2px}aside.note{background:var(--note-bg);border-left:4px solid var(--note-line);border-radius:6px;gap:12px;margin:12px 0;padding:10px 14px;display:flex}.note-label{letter-spacing:.02em;color:var(--note-label);white-space:nowrap;font-size:.85em;font-weight:700;line-height:1.9}.note-body{flex:1;min-width:0}.note-body p:last-child{margin-bottom:0}.table-wrap{margin:12px 0 18px;overflow:auto}table.table{border-collapse:collapse;width:100%;font-size:.95em}table.table td{border:1px solid var(--line);vertical-align:top;padding:8px 10px}td.bg-yellow{background:var(--yellow)}td.bg-red{background:var(--red)}.caption p{color:var(--muted);text-align:center;font-size:.85em}.embed{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:8px;margin:12px 0;padding:14px}.step{border-left:3px solid var(--line);margin:14px 0;padding-left:14px}.step-title{margin-bottom:6px}.quiz{border:1px solid var(--line);border-radius:10px;margin:18px 0;padding:16px 18px}.q-stem{margin-bottom:10px;font-weight:600}.q-opts{gap:6px;display:grid}.q-opt{cursor:pointer;border-radius:6px;grid-template-columns:auto 1fr;column-gap:10px;padding:6px 8px;display:grid}.q-opt:hover{background:var(--slide-bg)}.q-opt input{grid-row:1/span 2;margin-top:.35em}.q-opt .inline{grid-column:2}.q-opt.correct{background:color-mix(in srgb, var(--ok) 15%, transparent)}.q-opt.wrong{background:color-mix(in srgb, var(--bad) 15%, transparent)}.q-check{border:1px solid var(--line);background:var(--slide-bg);color:var(--fg);cursor:pointer;font:inherit;border-radius:6px;margin-top:10px;padding:6px 12px}.q-check:disabled{opacity:.5;cursor:default}.q-result{margin-left:10px;font-weight:600}.q-result.ok{color:var(--ok)}.q-result.bad{color:var(--bad)}table.q-match{border-collapse:collapse}table.q-match td{border:1px solid var(--line);padding:6px 10px}.pager{border-top:1px solid var(--line);justify-content:space-between;gap:12px;margin-top:40px;padding-top:16px;display:flex}.toc-index h2{margin-top:2em}.toc-index ol{padding-left:1.4em}.toc-index li{margin:6px 0}@media (width<=1000px){.layout{grid-template-columns:1fr}nav.side{border-right:0;border-bottom:1px solid var(--line);height:auto;position:static}html[data-mode=duo] .blk.text{grid-template-columns:1fr}html[data-mode=duo] .blk.text>[data-lang=zh]{border-left:0;padding-left:0}}
