:root{color-scheme:light;--bg:#f6f5f1;--surface:#fcfcfb;--surface-2:#efeee8;--ink:#1d1d1b;--ink-2:#55544d;--ink-3:#7d7c74;--line:#dcdad2;--accent:#1c5cab;--accent-ink:#ffffff;--focus:#eda100;--block-bg:#fdeeee;--block-line:#d03b3b;--series-1:#2a78d6;--series-2:#eb6834;--good:#008300;--radius:10px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#121211;--surface:#1a1a19;--surface-2:#242422;--ink:#f4f3ee;--ink-2:#c3c2b7;--ink-3:#8f8e86;--line:#34332f;--accent:#5598e7;--accent-ink:#0d1b2e;--block-bg:#3a1b1b;--block-line:#e66767;--series-1:#3987e5;--series-2:#d95926;--good:#2fa52f}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.45}a{color:var(--accent)}h1,h2,h3{line-height:1.2;margin:0 0 .5rem}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:0 0 .75rem}code{font-size:.85em;background:var(--surface-2);padding:0 4px;border-radius:4px}.nav{display:flex;gap:1rem;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--line);background:var(--surface)}.nav .brand{font-weight:700;margin-right:auto;text-decoration:none;color:var(--ink)}.nav a:not(.brand){text-decoration:none;color:var(--ink-2)}.nav a[aria-current=page]{color:var(--ink);font-weight:600}main{max-width:920px;margin:0 auto;padding:1.25rem 1rem 4rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;margin-bottom:1rem}.card.block{border-color:var(--block-line);background:var(--block-bg)}.muted{color:var(--ink-2)}.small{font-size:.85rem}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.stack>*+*{margin-top:.75rem}.button,button{font:inherit;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:8px;padding:.5rem .9rem;cursor:pointer;text-decoration:none;display:inline-block}button:hover:not(:disabled){border-color:var(--ink-3)}button:disabled{opacity:.45;cursor:not-allowed}.button.primary,button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.danger{border-color:var(--block-line);color:var(--block-line);background:transparent}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}input[type=number],select{font:inherit;padding:.45rem .6rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);width:9rem}label.field{display:grid;gap:.25rem}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:0;border-radius:0;background:transparent;padding:.35rem .8rem}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--accent);color:var(--accent-ink)}.safety-list{list-style:none;padding:0;margin:0 0 1rem}.safety-list li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--line)}.checklist{list-style:none;padding:0;margin:.5rem 0}.checklist li{padding:.2rem 0}.checklist label{display:flex;gap:.5rem;align-items:flex-start;cursor:pointer}.fig{margin:0}.fig-frame{background:#fff;border:1px solid var(--line);border-radius:8px;aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden}.fig-frame img{width:100%;height:100%;object-fit:contain;display:block}.fig-md{max-width:420px}.fig-sm .fig-frame{aspect-ratio:4/3}.fig figcaption{font-size:.85rem;color:var(--ink-2);margin-top:.3rem}.fig .standin,.fig-loading{color:var(--ink-3)}.fig-loading{font-size:.85rem}.placeholder{background:repeating-linear-gradient(45deg,var(--surface-2),var(--surface-2) 8px,var(--surface) 8px,var(--surface) 16px);border-style:dashed;text-align:center;padding:.75rem;display:flex;flex-direction:column;justify-content:center;gap:.3rem}.ph-title{font-weight:600;color:var(--ink-2)}.ph-note{font-size:.8rem;color:var(--ink-3)}.test-head{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(0,360px)}@media (max-width:720px){.test-head{grid-template-columns:1fr}}.sides{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:1rem}.side{border:1px solid var(--line);border-radius:var(--radius);padding:.9rem;background:var(--surface)}.side.saved{border-color:var(--good)}.side h3{display:flex;justify-content:space-between}.rungs{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:.5rem 0}.rung{text-align:left;padding:.5rem;display:grid;gap:.35rem;align-content:start}.rung.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.rung .fig-frame{aspect-ratio:4/3}.saved-line{color:var(--good);font-weight:600}.flag{display:inline-block;font-size:.75rem;padding:0 6px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2);margin-left:4px}.progress{color:var(--ink-3);font-size:.85rem}.timer{display:flex;gap:.75rem;align-items:center;margin:.5rem 0}.timer-face{min-width:5.5rem;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;border:1px solid var(--line);border-radius:8px;padding:.3rem .5rem;background:var(--surface-2)}.timer-num{font-size:1.6rem;font-weight:700}.timer.running .timer-face{border-color:var(--accent)}.timer-label{font-size:.85rem;color:var(--ink-2)}.dial svg{display:block}.dial input[type=range],.dial svg{width:100%;max-width:260px}.score{font-size:2rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bar{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--accent);border-radius:0 4px 4px 0}.badge{display:inline-block;font-size:.75rem;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--focus);color:#1d1d1b;margin-left:.4rem;vertical-align:middle}.banner{border-left:4px solid var(--accent)}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .axis{stroke:var(--line)}.chart text{fill:var(--ink-3);font-size:10px}.chart .tip{pointer-events:none}.legend{display:flex;gap:.75rem;font-size:.8rem;color:var(--ink-2)}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:-1px}table.values{border-collapse:collapse;font-size:.85rem;margin-top:.4rem}table.values td,table.values th{border-bottom:1px solid var(--line);padding:2px 10px 2px 0;text-align:left;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}