:root{--bg: #0d1117;--panel: #161b22;--panel-2: #1c2330;--border: #2d333b;--text: #e6edf3;--muted: #8b949e;--wire: #7c879b;--live: #ffd166;--live-glow: rgba(255, 209, 102, .35);--ok: #3fb950;--warn: #f0883e;--danger: #f85149;--down: #58a6ff;--up: #d2a8ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif}main{width:100%;margin:0;padding:18px 24px 28px}header h1{margin:0 0 4px;font-size:22px}.sub{margin:0 0 16px;color:var(--muted);font-size:13px}.sub code{background:var(--panel-2);padding:2px 6px;border-radius:4px}.chips{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.chip{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:6px 12px;display:flex;flex-direction:column;min-width:108px}.chip-label{font-size:10px;letter-spacing:1px;color:var(--muted);text-transform:uppercase}.chip-value{font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}.chip-warn .chip-value.warned{color:var(--danger)}.reset-fuse{background:var(--danger);color:#fff;border:none;border-radius:8px;padding:10px 16px;font-weight:700;cursor:pointer}.reset-fuse:hover{filter:brightness(1.15)}.hidden{display:none!important}.stage{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px;align-items:start}.schematic{background:radial-gradient(circle at 1px 1px,rgba(125,135,152,.14) 1px,transparent 0) 0 0 / 26px 26px,var(--panel);border:1px solid var(--border);border-radius:12px;padding:6px;min-height:min(78vh,53vw)}.schematic svg{width:100%;height:auto;display:block}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;align-self:start}.panel h2{margin:0 0 12px;font-size:16px}.ctrl-group{margin-bottom:14px}.ctrl-group h3{margin:0 0 6px;font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.btns{display:flex;gap:6px}.btns button{flex:1;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 0;font-size:13px;font-weight:600;cursor:pointer}.btns button:hover{border-color:var(--live)}.btns button.active{background:var(--live);color:#1c2330;border-color:var(--live)}.limitations{margin-top:20px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 20px}.limitations h2{margin:0 0 10px;font-size:15px;color:var(--warn)}.limitations ul{margin:0;padding-left:20px}.limitations li{margin-bottom:10px;font-size:13px;line-height:1.5;color:var(--muted)}.limitations strong{color:var(--text)}.sheet{font-family:Segoe UI,system-ui,sans-serif}.block{fill:#1c233080;stroke:var(--border);stroke-width:1.4;stroke-dasharray:6 5}.block-title{fill:var(--muted);font-size:11px;font-weight:700;letter-spacing:.7px}.note{fill:#6f7b8c;font-size:10.5px;font-weight:600;letter-spacing:.4px;font-style:italic}.wire{stroke:var(--wire);stroke-width:2.6;fill:none;stroke-linecap:square;stroke-linejoin:miter}.wire.live{stroke:var(--live);stroke-width:3.2;stroke-dasharray:9 7;animation:dashmove .5s linear infinite;filter:drop-shadow(0 0 4px var(--live-glow))}@keyframes dashmove{to{stroke-dashoffset:-16}}.lead{stroke:var(--wire);stroke-width:2.6;fill:none;stroke-linecap:square}.lead.live{stroke:var(--live);filter:drop-shadow(0 0 4px var(--live-glow))}.node{fill:var(--panel);stroke:var(--wire);stroke-width:1.6}.node.junction{fill:var(--wire);stroke:none}.node-label{fill:var(--muted);font-size:11px;font-family:Consolas,Courier New,monospace;letter-spacing:.2px}.tag{fill:var(--muted);font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.warn-text{fill:var(--danger)}.throw{fill:var(--panel);stroke:var(--wire);stroke-width:2}.throw-stub{stroke:var(--wire);stroke-width:2.6;stroke-linecap:round}.lever{stroke:var(--wire);stroke-linecap:round;stroke-width:4}.lever.live{stroke:var(--live);filter:drop-shadow(0 0 5px var(--live-glow))}.lever.broken{stroke:var(--warn)}.gang{stroke:var(--muted);stroke-width:1.4;stroke-dasharray:3 5;opacity:.75}.coil{fill:#58a6ff17;stroke:var(--muted);stroke-width:1.6}.coil-text{fill:var(--muted);font-size:10px;font-weight:700;letter-spacing:.8px}.coil.energised{fill:#ffd16624;stroke:var(--live);stroke-width:2.2;filter:drop-shadow(0 0 5px var(--live-glow))}.actuator{stroke:var(--muted);stroke-width:1.3;stroke-dasharray:3 4;opacity:.8}.tag.k1-on{fill:var(--live)}.diode-body{fill:var(--panel-2);stroke:var(--wire);stroke-width:2;stroke-linejoin:round}.diode-body.live{fill:var(--live);stroke:var(--live);filter:drop-shadow(0 0 5px var(--live-glow))}.diode-bar{stroke:var(--wire);stroke-width:3;stroke-linecap:round}.diode-bar.live{stroke:var(--live)}.plunger{stroke:var(--muted);stroke-width:2;stroke-linecap:round}.plunger-cap{stroke:var(--muted);stroke-width:3.4;stroke-linecap:round}.cell{stroke:var(--wire);stroke-linecap:round}.cell.long{stroke-width:3.4}.cell.short{stroke-width:6}.polarity{fill:var(--muted);font-size:15px;font-weight:700}.gnd-bar{stroke:var(--wire);stroke-width:3;stroke-linecap:round}.fuse-body{fill:none;stroke:var(--live);stroke-width:2.4}.fuse-body.dead{stroke:var(--danger)}.fuse-element{stroke:var(--live);stroke-width:2;opacity:.85}.fuse-break{fill:none;stroke:var(--danger);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.spark-on .spark-flash{animation:spark .9s ease-out}.spark-rays .ray{stroke:#ffe08a;stroke-width:2;stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:rayburst .9s ease-out}@keyframes spark{0%{opacity:1;r:4}to{opacity:0;r:34}}@keyframes rayburst{0%{opacity:1;transform:scale(.2)}to{opacity:0;transform:scale(1)}}.motor-body{fill:var(--panel-2);stroke:var(--wire);stroke-width:2.4}.motor-ring{fill:none;stroke:var(--border);stroke-width:3;stroke-dasharray:9 9}.motor-ring.spin{stroke:var(--up);stroke-dasharray:12 8;animation:spin .9s linear infinite;filter:drop-shadow(0 0 5px rgba(210,168,255,.4));transform-origin:center;transform-box:fill-box}@keyframes spin{to{transform:rotate(360deg)}}.motor-text{fill:var(--text);font-size:30px;font-weight:800}.chev{fill:none;stroke:var(--live);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;transform-box:fill-box;transform-origin:center}.dir-arrows.down .chev{animation:pulse-down .7s ease-in-out infinite}.dir-arrows.up .chev{animation:pulse-up .7s ease-in-out infinite}.dir-arrows .chev:nth-child(2){animation-delay:.18s;opacity:.6}@keyframes pulse-down{50%{transform:translateY(4px)}}@keyframes pulse-up{50%{transform:translateY(-4px)}}@media(max-width:1000px){.stage{grid-template-columns:1fr}}
