:root{--bg:#f3f1ec;--panel:#fbfaf7;--ink:#1d2733;--muted:#5b6672;--line:#d8dde2;--navy:#16324f;--blue:#2f6db5;--orange:#a64f15;--chip:#e7edf3;
--sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;--mono:'IBM Plex Mono',ui-monospace,Consolas,monospace}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#10171f;--panel:#17212c;--ink:#e6ebf0;--muted:#a3afbb;--line:#2c3a48;--navy:#9fc1e6;--blue:#8fb8ea;--orange:#f0a35e;--chip:#1f2c3a;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#10171f;--panel:#17212c;--ink:#e6ebf0;--muted:#a3afbb;--line:#2c3a48;--navy:#9fc1e6;--blue:#8fb8ea;--orange:#f0a35e;--chip:#1f2c3a;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5}
.dcbar{position:sticky;top:0;z-index:1000;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;background:#16324f;font:600 14px var(--sans);border-bottom:1px solid #0b1a2a}
.dcbar a,.dcbar select,.dcbar button{font:inherit;color:#f5f3ee;background:#21456b;border:1px solid #2d5680;border-radius:8px;height:32px;padding:0 11px;display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap;cursor:pointer}
.dcbar a:hover,.dcbar select:hover,.dcbar button:hover{border-color:#f0a35e}
.dcbar :focus-visible{outline:3px solid #f0a35e;outline-offset:1px}
.dcbar .slides{background:#a64f15;border-color:#c9752e}
.dcbar .dis{opacity:.35;pointer-events:none}
.dcbar .sp{flex:1}
.dcbar select{max-width:280px}
@media (max-width:620px){.dcbar .wide{display:none}.dcbar select{max-width:150px}}
main.lab{max-width:1180px;margin:0 auto;padding:24px 16px 48px;display:flex;flex-direction:column;gap:18px}
main.lab header{border-bottom:3px solid var(--navy);padding-bottom:14px;display:flex;flex-direction:column;gap:4px}
.eyebrow{font:600 13px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--orange);margin:0}
main.lab h1{margin:0;font-size:clamp(26px,4.4vw,36px);color:var(--navy);line-height:1.15}
.intro{margin:0;color:var(--muted);max-width:80ch}
.tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line);padding-bottom:8px;position:sticky;top:49px;background:var(--bg);z-index:10;padding-top:6px}
.tabs button{font:600 15px var(--sans);color:var(--ink);background:var(--chip);border:1px solid var(--line);border-radius:999px;padding:7px 16px;cursor:pointer}
.tabs button.on{background:var(--navy);color:var(--bg);border-color:var(--navy)}
.tabs button:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.pane{display:flex;flex-direction:column;gap:16px}
.pane[hidden]{display:none}
.lp{margin:0;max-width:85ch}
.lh{margin:8px 0 0;font-size:20px;color:var(--navy)}
.lcode{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}
.tasks{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-size:15px}
.tasks b{color:var(--orange);font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.tasks ol{margin:6px 0 0;padding-left:1.2em;display:flex;flex-direction:column;gap:8px}
.tasks label{display:flex;gap:6px;align-items:flex-start;cursor:pointer}
.tasks input{margin-top:4px;accent-color:var(--orange)}
.tasks input:checked+span{color:var(--muted);text-decoration:line-through}
@media (max-width:900px){.lcode{grid-template-columns:1fr}}
details.qa{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 16px}
details.qa summary{cursor:pointer;font-weight:600}
details.qa summary span{font:600 13px var(--mono);color:var(--orange);margin-right:6px}
details.qa>div{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
details.qa table{border-collapse:collapse;font-variant-numeric:tabular-nums;margin:6px 0}
details.qa td,details.qa th{border:1px solid var(--line);padding:3px 10px;text-align:center;font-family:var(--mono);font-size:14px}
details.qa th{background:var(--chip);font-family:var(--sans)}
main.lab footer{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}
.katex{font-size:1.08em}
.lw{min-width:0}
:root[data-theme="dark"] .wg{--w-bg:#17212c;--w-plot:#0f1720;--w-ink:#e6ebf0;--w-mut:#a3afbb;--w-line:#2c3a48;--w-grid:#1f2b38;--w-chip:#1f2c3a;--w-c1:#7fb0ec;--w-c2:#f0a35e;--w-c3:#6cc492;--w-c4:#c39bf0;--w-c5:#ff8a7a;--w-hi:#3a2a1a}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .wg{--w-bg:#17212c;--w-plot:#0f1720;--w-ink:#e6ebf0;--w-mut:#a3afbb;--w-line:#2c3a48;--w-grid:#1f2b38;--w-chip:#1f2c3a;--w-c1:#7fb0ec;--w-c2:#f0a35e;--w-c3:#6cc492;--w-c4:#c39bf0;--w-c5:#ff8a7a;--w-hi:#3a2a1a}}
:root[data-theme="dark"] .wg-err{background:#3a1d1a;color:#ffb4a9;border-color:#6b2c25}
