:root{--bg: #12161c;--panel: #1a2028;--panel-2: #222a34;--line: #333d4a;--fg: #e8e6e1;--muted: #8b929b;--accent: #ffb020;--accent-ink: #1a1305;--danger: #ff5a4f;--warn: #ffb020;--info: #5aa9ff;--ok: #3fbf7f;--tap: 44px;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg);overscroll-behavior:none}button,select{font:inherit;color:inherit}.app{height:100dvh;display:flex;flex-direction:column}.app>footer{color:var(--muted);font-size:10px;padding:0 12px 4px;text-align:right}.muted{color:var(--muted)}.small{font-size:12px}.game{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:8px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--panel)}.order{flex:1;min-width:0}.order h1{margin:0;font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order p{margin:2px 0 0;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:420px){.actions .btn{padding:0 10px}.order h1{font-size:15px}.topbar{flex-wrap:wrap;row-gap:6px}.order{flex-basis:100%}.actions{flex:1}.actions .btn{flex:1;min-height:40px}.order p{-webkit-line-clamp:1}}.actions{display:flex;gap:6px;flex-shrink:0}.btn{min-height:var(--tap);min-width:var(--tap);padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600}.btn:hover:not(:disabled){border-color:#4a5666}.btn:focus-visible,.chip:focus-visible,.palette-item:focus-visible,.card-head:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn[hidden]{display:none}.btn:disabled{opacity:.45;cursor:default}.btn.on{border-color:var(--accent)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,var(--line))}.btn.ghost{background:transparent}.btn.small-btn{min-height:36px;padding:0 10px;font-size:13px}.btn.power{font-weight:800;letter-spacing:.02em}.badge{min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--danger);color:#fff;font-size:12px;line-height:20px;text-align:center}.icon-btn{width:var(--tap);height:var(--tap);border-radius:10px;border:1px solid var(--line);background:transparent;cursor:pointer;flex-shrink:0}.palette{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;padding:6px 8px;background:var(--panel);border-bottom:1px solid var(--line)}.palette-item{min-height:52px;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;padding:4px 2px}.palette-item:disabled{opacity:.4;cursor:default}.palette-icon{height:22px;border-radius:3px;background:#e9ebe6;border-top:4px solid #c9cdc8;position:relative}.palette-icon:after{content:"";position:absolute;left:50%;top:5px;width:5px;height:8px;margin-left:-2.5px;background:#111418;border-radius:1px}.part-main_switch .palette-icon{border-top-color:#d64541}.part-rcd .palette-icon{border-top-color:#3d8bff}.part-rcbo .palette-icon{border-top-color:#8e6cff}.part-bus_n .palette-icon,.part-bus_pe .palette-icon{height:10px;border-top:0;margin:6px 0}.part-bus_n .palette-icon{background:#3d8bff}.part-bus_pe .palette-icon{background:repeating-linear-gradient(90deg,#58b84a 0 6px,#e3d34a 6px 10px)}.part-bus_n .palette-icon:after,.part-bus_pe .palette-icon:after{display:none}.palette-title{font-size:11px;font-weight:600;white-space:nowrap}.stage{position:relative;flex:1;min-height:0}.board{position:absolute;inset:0;overflow:hidden;touch-action:none}.board canvas{display:block}.scenario{color:var(--accent)}.drag-chip{position:fixed;transform:translate(-50%,-140%);pointer-events:none;z-index:30;padding:4px 10px;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:700}.sheet{position:absolute;left:0;right:0;bottom:0;z-index:10;max-height:62%;overflow-y:auto;background:var(--panel);border-top:1px solid var(--line);border-radius:16px 16px 0 0;padding:4px 12px max(12px,env(safe-area-inset-bottom));box-shadow:0 -12px 30px #00000073;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}@media(min-width:720px){.sheet{left:auto;top:0;width:380px;max-height:none;border-radius:0;border-top:0;border-left:1px solid var(--line)}}.sheet-head{position:sticky;top:0;display:flex;align-items:center;gap:8px;padding:8px 0;background:var(--panel);z-index:1}.sheet-head h2{flex:1;margin:0;font-size:15px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.field select{min-height:var(--tap);border-radius:10px;border:1px solid var(--line);background:var(--panel-2);padding:0 10px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{min-height:var(--tap);min-width:var(--tap);padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);cursor:pointer;font-weight:600}.chip small{font-weight:400;color:var(--muted)}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chip.on small{color:#4a3a12}.chip.dim{opacity:.55}.line-card{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:10px}.line-card.focus{border-color:var(--accent);scroll-margin-top:64px}.line-head{display:flex;align-items:center;justify-content:space-between}.line-head h3{margin:0;font-size:14px}.warn-line{margin:0;padding:8px 10px;border-radius:10px;background:#ff5a4f1f;color:#ffb3ad;font-size:13px}.line-card p{margin:0}.review{position:absolute;inset:0;z-index:20;overflow-y:auto;background:var(--bg);display:flex;justify-content:center}.review-inner{width:100%;max-width:560px;padding:20px 14px 32px;display:flex;flex-direction:column;gap:12px}.review h2{margin:0;font-size:22px;text-align:center;letter-spacing:.04em;text-transform:uppercase}.review .verdict{margin:-4px 0 4px;padding:10px 12px;text-align:center;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:10px;background:linear-gradient(90deg,rgba(255,176,32,.12),transparent);font-weight:700}.stars{display:flex;justify-content:center;gap:10px}.star{width:52px;height:52px;fill:#2a313b;stroke:#3a4452;stroke-width:1}.star.on{fill:var(--accent);stroke:#ffcf6b}.verdict{margin:0;text-align:center;font-weight:600}.notice{margin:0;padding:12px;border-radius:12px;border:1px dashed var(--line);color:var(--muted);text-align:center}.cards-title{margin:8px 0 0;font-size:14px;color:var(--muted)}.cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.card{border-radius:12px;background:linear-gradient(110deg,color-mix(in srgb,var(--panel) 90%,#000),var(--panel));border:1px solid var(--line);border-left:4px solid var(--info);overflow:hidden;box-shadow:0 5px 14px #00000024}.card.tone-danger{border-left-color:var(--danger)}.card.tone-warn{border-left-color:var(--warn)}.card .sev{letter-spacing:.06em;text-transform:uppercase;font-size:10px}.card.tone-danger .sev{color:#ff958e}.card.tone-warn .sev{color:#ffd071}.card.tone-ok .sev{color:#7ee2a8}.card-head{width:100%;min-height:56px;padding:10px 12px;background:none;border:0;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:3px}.card-head{position:relative;padding-right:42px}.severity-mark{position:absolute;right:12px;top:14px;width:28px;height:28px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;color:var(--info);font-size:16px}.tone-danger .severity-mark{color:var(--danger);background:#ff5a4f1a}.tone-warn .severity-mark{color:var(--warn);background:#ffb0201a}.tone-ok .severity-mark{color:var(--ok);background:#3fbf7f1a}.sev{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.tone-danger .sev{color:var(--danger)}.tone-warn .sev{color:var(--warn)}.card-title{font-weight:600}.card-body{padding:0 12px 12px;display:flex;flex-direction:column;gap:8px}.card-body p{margin:0;line-height:1.4}.norm{align-self:flex-start;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;padding:4px 8px;border-radius:6px;background:var(--panel-2);color:#c9d1da}.sheet.wiring{max-height:42%}.sheet.wiring .sheet-head .chips{flex-wrap:nowrap}.sheet.wiring .sheet-head h2{flex:0 1 auto}.sheet.wiring .sheet-head .chips{flex:1}@media(min-width:720px){.sheet.wiring{max-height:none}}.swatch{display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:6px;vertical-align:-2px;border:1px solid rgba(255,255,255,.35)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn.wide{width:100%}.badge.info{background:var(--info)}.scroll{flex:1;min-height:0;overflow-y:auto;padding:12px 12px 24px;display:flex;flex-direction:column;gap:12px}.scroll>*{width:100%;max-width:560px;margin-inline:auto}.topbar .icon-btn{color:var(--fg);font-size:18px}.start{align-items:center;justify-content:center;padding:24px 16px;overflow:hidden;background:radial-gradient(ellipse at 50% 25%,#263142 0%,var(--bg) 54%)}.start:before{content:"";position:absolute;inset:-20%;pointer-events:none;opacity:.32;background:linear-gradient(115deg,transparent 47%,#7cc5ff 49%,transparent 50%) 0 0 / 180px 180px;animation:start-arc 6s linear infinite}@keyframes start-arc{to{transform:translate(90px)}}.start-inner{width:100%;max-width:420px;display:flex;flex-direction:column;gap:14px;text-align:center}.start h1{margin:0;font-size:28px}.start .lead{margin:0;font-size:16px;line-height:1.45;color:#c9ced5}.logo{width:72px;height:72px;margin:0 auto;border-radius:20px;display:grid;place-items:center;font-size:38px;background:linear-gradient(145deg,#2d3745,var(--panel-2));border:1px solid #566477;box-shadow:inset 0 1px #ffffff14,0 12px 32px #0000004d}.logo:before,.logo:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#596575;box-shadow:inset 0 1px #9ba4ae}.logo{position:relative}.logo:before{left:8px;top:8px}.logo:after{right:8px;bottom:8px}.start h1{position:relative;padding:8px 14px;border-block:1px solid #4c596a;text-shadow:0 1px #000}.start .btn.primary{border-radius:7px;box-shadow:inset 0 -4px #7d4c002e,0 5px #8f5d09;transform:translateY(-2px)}.start .btn.primary:active{transform:translateY(2px);box-shadow:inset 0 2px #7d4c0038,0 1px #8f5d09}.start h1{letter-spacing:.08em;text-transform:uppercase}.map .rank{display:flex;flex-direction:column;gap:10px;position:relative;padding:10px 0 16px 14px;border-left:2px solid color-mix(in srgb,var(--line) 75%,#000)}.map .rank:after{content:"L · N · PE";position:absolute;right:0;top:12px;color:#536171;font:700 9px ui-monospace,monospace;letter-spacing:.12em}.map .rank:before{content:"";position:absolute;left:-5px;top:18px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--bg)}.map h2{margin:4px 0 0;font-size:18px}.map .rank.locked{opacity:.7;padding:12px;border:1px dashed var(--line);border-radius:12px}.map .rank.locked p{margin:4px 0 0}.chapter h3{margin:6px 0;font-size:14px;font-weight:600}.orders{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.order-tile{width:100%;min-height:60px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:var(--panel);display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer}.order-tile .tile-n{border:1px solid #3b4654;box-shadow:inset 0 0 0 3px #202731}.order-tile.locked .tile-n{position:relative;color:transparent}.order-tile.locked .tile-n:after{content:"";position:absolute;width:17px;height:17px;border-radius:50%;border:2px solid #b1a05b;box-shadow:inset 0 0 0 2px #26313b;background:repeating-radial-gradient(circle,transparent 0 2px,rgba(177,160,91,.7) 2px 3px);transform:rotate(-12deg)}.order-tile:hover:not(:disabled){border-color:#4a5666}.order-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.order-tile.current{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent),0 0 16px #ffb0201a}.order-tile.final .tile-n{background:color-mix(in srgb,var(--accent) 25%,var(--panel-2))}.order-tile.locked{opacity:.5;cursor:default}.tile-n{flex-shrink:0;width:40px;height:40px;border-radius:10px;background:var(--panel-2);display:grid;place-items:center;font-weight:700;font-size:14px}.tile-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.stars-mini{color:#3a4452;font-size:16px;letter-spacing:1px;flex-shrink:0}.stars-mini .on{color:var(--accent)}.tag{flex-shrink:0;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;background:var(--accent);color:var(--accent-ink)}.brief{display:flex;flex-direction:column;gap:14px}.brief:before{content:"WORK ORDER · WIRESMITH";color:var(--accent);font:700 11px ui-monospace,monospace;letter-spacing:.09em;padding:9px 11px;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));background:linear-gradient(90deg,rgba(255,176,32,.12),transparent)}.client{display:flex;align-items:center;gap:10px}.avatar{width:44px;height:44px;border-radius:50%;background:var(--panel-2);border:1px solid var(--line);display:grid;place-items:center;font-weight:700;color:var(--accent)}.quote{margin:0;padding:12px 14px;border-radius:4px 14px 14px;background:var(--panel);border:1px solid var(--line);line-height:1.45;font-size:15px}.brief .field{border-left:2px solid #3f4b5a;padding-left:10px}.brief p,.goal{margin-block:0;line-height:1.4}.goal{font-weight:600}.task{display:flex;flex-direction:column;gap:14px}.task-h{margin:0 0 8px;font-size:15px}.question{margin:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);display:flex;flex-direction:column;gap:10px}.question legend{padding:0 4px}.q-text{margin:0;line-height:1.4}.num-input{min-height:var(--tap);border-radius:10px;border:1px solid var(--line);background:var(--panel-2);padding:0 12px;font:inherit;font-size:18px;color:var(--fg);width:100%}.num-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.num-input.invalid{border-color:var(--danger)}.hint-err{color:#ffb3ad;font-size:12px}.steps,.pool{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.step{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 0;border-radius:12px;background:var(--panel);border:1px solid var(--line)}.step.dragging{border-color:var(--accent);box-shadow:0 6px 20px #0006}.handle{width:32px;align-self:stretch;display:grid;place-items:center;color:var(--muted);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;font-size:18px}.step-n{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--panel-2);display:grid;place-items:center;font-size:12px;font-weight:700}.step-text{flex:1;min-width:0;line-height:1.3;font-size:14px}.step{flex-wrap:wrap}.step-text{flex-basis:calc(100% - 80px);padding-top:6px}.step-tools{display:flex;gap:4px;flex-shrink:0;width:100%;justify-content:flex-end}@media(min-width:480px){.step{flex-wrap:nowrap}.step-text{flex-basis:auto;padding-top:0}.step-tools{width:auto}}.step-tools .icon-btn{color:var(--fg)}.step-tools .icon-btn:disabled{opacity:.3}.pool-item{width:100%;min-height:var(--tap);padding:10px 12px;border-radius:12px;border:1px dashed var(--line);background:transparent;text-align:left;cursor:pointer;display:flex;gap:10px;align-items:flex-start;line-height:1.3}.pool-item:hover{border-color:#4a5666}.pool-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plus{color:var(--accent);font-weight:800}.insp{display:grid;gap:0 6px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 8px}.insp-dev,.insp-line{min-height:var(--tap);border-radius:10px;border:1px solid var(--line);background:var(--panel-2);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 4px;font-size:12px;text-align:center}.insp-dev.empty{border:0;background:none}.insp-dev-face{width:18px;height:26px;border-radius:3px;background:#e9ebe6;border-top:4px solid #c9cdc8}.insp-dev.marked,.insp-line.marked{border-color:var(--danger);background:#ff5a4f24}.insp-dev.marked:after,.insp-line.marked:after{content:attr(data-mark);color:var(--danger);font-weight:700;font-size:11px}.insp-dev:focus-visible,.insp-line:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.insp-wires{width:100%;height:130px;display:block}.insp-wires .core{stroke-width:5;stroke-linecap:butt}.insp-wires .dot{stroke:#fff;stroke-width:10;stroke-linecap:round}.insp-wires .bus-n{stroke:#3d8bff;stroke-width:7;opacity:.55}.insp-wires .bus-pe{stroke:#58b84a;stroke-width:7;opacity:.55}.legend{display:flex;flex-wrap:wrap;gap:12px}.sw{display:inline-block;width:16px;height:6px;border-radius:3px;vertical-align:middle}.sw.n{background:#3d8bff}.sw.pe{background:repeating-linear-gradient(90deg,#58b84a 0 4px,#e3d34a 4px 8px)}.hint-sheet{z-index:25}.hint-text{margin:0;line-height:1.4}.review-extra{display:flex;flex-direction:column;gap:10px}.xp-line{margin:0;text-align:center;font-weight:700;font-size:16px;color:var(--accent)}.rank-up{margin:0;padding:12px;border-radius:12px;text-align:center;background:color-mix(in srgb,var(--accent) 18%,var(--panel))}.row-btns{display:flex;gap:8px}.row-btns .btn{flex:1}.card.tone-ok{border-left-color:var(--ok)}.tone-ok .sev{color:var(--ok)}.card-head.static{cursor:default}.order-screen .review{top:61px}.pause{position:absolute;inset:0;z-index:40;display:grid;place-items:center;background:#0c0f13cc;font-size:22px;font-weight:700}html.paused *,html.paused *:before,html.paused *:after{animation-play-state:paused!important}.order-strip{display:flex;align-items:center;gap:8px;padding:2px 8px;padding-top:max(2px,env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--line)}.order-strip .strip-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-strip .btn{min-height:var(--tap)}html{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text}.start-tools{position:absolute;top:max(8px,env(safe-area-inset-top));right:12px;display:flex;gap:6px;z-index:2}.logo svg{display:block;width:44px;height:44px;color:var(--accent)}.beta-note{margin:0;padding:6px 10px;border-radius:8px;border:1px dashed color-mix(in srgb,var(--warn) 45%,var(--line));color:var(--muted);font-size:11px;line-height:1.35;text-align:center}.center{text-align:center}.icon-btn{display:inline-grid;place-items:center;color:var(--fg)}.icon-btn[aria-pressed=false]{color:var(--muted)}.modal-back{position:fixed;inset:0;z-index:60;background:#080a0d99;display:flex;align-items:flex-end;justify-content:center}.modal-back>.sheet{position:relative;inset:auto;width:min(560px,100%);max-height:90dvh;overflow:auto;border-radius:16px 16px 0 0}.menu-sheet,.feedback-form{display:flex;flex-direction:column;gap:10px}.text-input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--fg);font:inherit;resize:vertical}.text-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.update-toast{position:fixed;left:50%;top:max(56px,calc(env(safe-area-inset-top) + 48px));transform:translate(-50%);z-index:70;display:flex;align-items:center;gap:10px;padding:8px 8px 8px 14px;border-radius:12px;background:var(--panel-2);border:1px solid var(--accent);box-shadow:0 8px 24px #00000073;white-space:nowrap}.ladder{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.ladder button{width:100%;min-height:var(--tap);border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;cursor:pointer;padding:4px 2px}.ladder .done button{color:var(--ok)}.ladder .current button{color:var(--fg);border-color:var(--accent);font-weight:700}.ladder-dot{font-size:11px}.ladder .current .ladder-dot{color:var(--accent)}.rank .preview{margin-top:6px}.rank .preview p{margin:0 0 4px}.rank .preview ul{margin:0;padding-left:18px}.coach{position:fixed;inset:0;z-index:50;pointer-events:none}.coach-ring{position:fixed;border:3px solid var(--accent);border-radius:12px;box-shadow:0 0 0 4000px #080a0d59;animation:coach-pulse 1.2s ease-in-out infinite}@keyframes coach-pulse{50%{border-color:color-mix(in srgb,var(--accent) 40%,transparent)}}.coach-card{position:fixed;pointer-events:auto;padding:10px 12px;border-radius:12px;background:var(--panel-2);border:1px solid var(--accent);box-shadow:0 8px 24px #00000080;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.coach-card p{margin:0;line-height:1.35}@media(prefers-reduced-motion:reduce){.coach-ring{animation:none}}@media(min-width:720px){.modal-back{align-items:center}.modal-back>.sheet{border-radius:16px;border:1px solid var(--line)}}@media(max-width:420px){.topbar.compact{flex-wrap:nowrap}.topbar.compact .order{flex-basis:auto}.topbar.compact .actions{flex:0 0 auto}}.hand-goals{list-style:none;margin:0;padding:6px 10px;display:flex;flex-wrap:wrap;gap:2px 14px;background:var(--panel);border-bottom:1px solid var(--line);font-size:12px;line-height:1.35}.hand-goals li{color:var(--muted)}.hand-goals.collapsed{display:none}.hand-goals-toggle{display:block;width:100%;text-align:left;padding:6px 10px;min-height:36px;font:inherit;font-size:13px;color:var(--text, #e8eaed);background:var(--panel);border:0;border-bottom:1px solid var(--line);cursor:pointer}.hand-goals-toggle .bad{color:#ffb3ad}.hand-goals li.met{color:var(--ok)}.hand-goals li.unmet{color:#ffb3ad}.review-goals{border:0;background:none;flex-direction:column;font-size:14px;padding:0}.brief-goals{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:2px}.hand-play{flex:1;min-height:0;display:flex;flex-direction:column}.hand-stage{position:relative;flex:1;min-height:0}.hand-scene{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:crosshair;background:var(--bg)}.hand-scene.shock-hit{animation:shock-screen .3s steps(2) 1}.hand-scene.short-hit:after{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;background:#fff;animation:short-screen-flash .1s steps(2) forwards}.hand-scene.shock-hit:before{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;box-shadow:inset 0 0 34px 18px #e02526e6;animation:shock-vignette .6s ease-out forwards}.hand-scene>svg{display:block}.zoom-btns{position:absolute;top:6px;right:8px;display:flex;gap:6px}.zoom-btns .icon-btn{width:40px;height:40px;background:#1a2028d9;font-size:18px}.hand-toast{position:absolute;left:8px;right:8px;bottom:8px;z-index:3;margin:0 auto;width:fit-content;max-width:calc(100% - 16px);padding:8px 12px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line);font-size:13px;line-height:1.3;text-align:center;pointer-events:none;animation:toast-in .18s ease-out}.hand-toast.danger{border-color:var(--danger);color:#ffb3ad}.hand-toast.ok{border-color:var(--ok);color:#b6f0d0}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.wire-used{position:absolute;left:8px;top:8px;margin:0;font-size:12px;padding:4px 8px;border-radius:8px;background:#1a2028d9;pointer-events:none}.wire-used.over{color:var(--danger)}.hand-tools{background:var(--panel);border-top:1px solid var(--line);padding:6px 8px;padding-bottom:max(6px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px}.tool-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tool-row .grow{flex:1}.tool-row .chip{min-height:36px;min-width:40px}.sections{display:inline-flex;gap:4px}.spool{width:44px;height:44px;border-radius:50%;border:2px solid var(--line);background:var(--panel-2);display:inline-grid;place-items:center;cursor:pointer;padding:0}.spool.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.reel{width:30px;height:30px;border-radius:50%}.reel.c-brown{background:radial-gradient(circle,#1a1d22 0 4px,transparent 5px),repeating-radial-gradient(circle,#9a5a2c 0 2px,#6b3c1b 2px 3px)}.reel.c-blue{background:radial-gradient(circle,#1a1d22 0 4px,transparent 5px),repeating-radial-gradient(circle,#3d8bff 0 2px,#2459a8 2px 3px)}.reel.c-yellow_green{background:radial-gradient(circle,#1a1d22 0 4px,transparent 5px),repeating-linear-gradient(45deg,#4fb043 0 3px,#e3d34a 3px 6px)}.reel.c-black{background:radial-gradient(circle,#555 0 4px,transparent 5px),repeating-radial-gradient(circle,#15181c 0 2px,#333 2px 3px)}.reel.c-grey{background:radial-gradient(circle,#1a1d22 0 4px,transparent 5px),repeating-radial-gradient(circle,#9ca3ab 0 2px,#6b7178 2px 3px)}.hand-scene text{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-user-select:none;user-select:none}.hand-scene .wall{fill:#1c2027;transition:fill .6s}.hand-scene .wall.lit{fill:#3b3426}.lamp-glow{animation:glow-in .6s ease-out}@keyframes glow-in{0%{opacity:0}}.jbox rect{fill:#ffffff08;stroke:#4a5562;stroke-width:.06;stroke-dasharray:.3 .2}.lbl{fill:var(--muted);font-size:.42px}.lbl.end{text-anchor:end}.lbl.center{text-anchor:middle}.lbl.tiny{font-size:.3px;fill:#4a525c}.panel-box{fill:#2b323c;stroke:#4a5562;stroke-width:.06;filter:drop-shadow(0 .16px .1px rgba(0,0,0,.6))}.panel-lbl{text-anchor:end;font-weight:700}.small-lbl{font-size:.32px}.din{fill:#9aa4b0}.supply-cable{stroke:#c9d1da;stroke-width:.35;stroke-linecap:round}.breaker{cursor:pointer}.breaker-body{fill:#e9ebe6;stroke:#c9cdc8;stroke-width:.04}.breaker-lbl{font-size:.34px;font-weight:700;fill:#1a1f26;text-anchor:middle}.device-rating,.fixture-name{paint-order:stroke;stroke:#eef0ec;stroke-width:.12px;stroke-linejoin:round}.lever-win{fill:#2a2f36}.lever{fill:#111418;transition:y .15s ease-in}.breaker.on .lever{fill:#d64541}.breaker.tripped .breaker-body{animation:trip-body 1.8s ease-out}.breaker.tripped .lever{animation:trip-lever .15s cubic-bezier(.2,.9,.2,1.25)}.trip-badge{fill:#fff3c4;font-size:.8px;font-weight:900;letter-spacing:.03px;text-anchor:middle;paint-order:stroke;stroke:#b3261e;stroke-width:.3px;stroke-linejoin:round;animation:trip-badge 1.8s ease-out forwards}.trip-badge.nuisance{fill:#1d1708;stroke:#ffce58}@keyframes trip-body{0%,16%{filter:brightness(1.7) drop-shadow(0 0 .45px #ffb020)}to{filter:none}}@keyframes trip-lever{0%{transform:translateY(-.36px)}72%{transform:translateY(.1px)}to{transform:translateY(0)}}@keyframes trip-badge{0%{opacity:0;transform:translateY(.22px)}12%,76%{opacity:1}to{opacity:0;transform:translateY(-.12px)}}.bus rect{stroke:#1a1d22;stroke-width:.04}.bus-n rect{fill:#3d8bff}.bus-pe rect{fill:#58b84a}.bus .lbl{font-weight:700}.hw path{fill:none;stroke-linecap:round}.hw-halo{stroke:#0b0d10;opacity:.7;fill:none;stroke-linecap:round}.hw-core{fill:none;stroke-linecap:round}.hw.hot .hw-core{stroke:#fff8df;animation:hot-pulse 1s ease-out forwards,wire-shiver .11s steps(2) 6}.hw.hot .hw-halo{stroke:#fff0a4;opacity:.9;filter:blur(.12px);animation:wire-cool 1s ease-out forwards}.hw-glow{stroke:#ff5a4f;opacity:.8;filter:blur(.16px);animation:wire-cool 1s ease-out forwards}.hw.scorched .hw-core{stroke:#24201e;stroke-dasharray:.12 .04}.hw.supply-wire .hw-core{filter:drop-shadow(0 0 .12px currentColor)}@keyframes hot-pulse{30%{stroke:#fff}to{stroke:#ff552f}}@keyframes wire-cool{0%{opacity:1}to{opacity:.2}}@keyframes wire-shiver{50%{transform:translate(.025px,-.025px)}}.drag-wire .hw-core,.drag-wire .hw-halo{fill:none;stroke-linecap:round}.len-lbl{font-size:.5px;fill:var(--accent);font-weight:700;paint-order:stroke;stroke:#12161c;stroke-width:.14px}.term-ring{fill:#20262e;stroke-width:.08}.term-screw{fill:#9aa3ad}.term-slot{stroke:#2a2f36;stroke-width:.06}.term.full .term-screw{fill:#c9a24a}.term.hot .term-ring{stroke:var(--accent);stroke-width:.16}.term-lbl{font-size:.34px;fill:var(--muted);text-anchor:middle;font-weight:600}.cores circle{fill:var(--accent)}.cores text{font-size:.28px;font-weight:800;text-anchor:middle;fill:#1a1305;dominant-baseline:middle}.probe{fill:none;stroke-width:.13}.probe.red{stroke:#ff3b2f}.probe.black{stroke:#e8e6e1;stroke-dasharray:.15 .1}.wago rect{fill:#e8a33a;fill-opacity:.22;stroke:#e8a33a;stroke-width:.05}.wago .lbl{font-weight:700}.switch{cursor:pointer}.switch .plate,.socket .plate,.lamp .rosette{fill:#e9ebe6;stroke:#c9cdc8;stroke-width:.05}.rocker{fill:#f5f6f2;stroke:#c9cdc8;stroke-width:.04}.rocker-pressed{fill:#cfd3cc;transition:y .1s}.cord{stroke:#c9d1da;stroke-width:.06}.shade{fill:#58616c}.bulb{fill:#353c46;stroke:#58616c;stroke-width:.05;transition:fill .3s}.lamp.lit .bulb{fill:#fff6d6;stroke:#ffd166}.ray{stroke:#ffd166;stroke-width:.09;stroke-linecap:round;animation:ray .9s infinite alternate}@keyframes ray{to{opacity:.35}}.cup{fill:#d5d8d2}.socket.on .cup{stroke:var(--ok);stroke-width:.1}.hole{fill:#2a2f36}.clip{fill:#9aa3ad}.kettle-body{fill:#c9d1da}.kettle-handle,.plug-cord{fill:none;stroke:#c9d1da;stroke-width:.12}.steam{fill:none;stroke:#e8e6e1;stroke-width:.07;opacity:0;animation:steam 1.6s infinite}@keyframes steam{30%{opacity:.8}to{opacity:0;transform:translateY(-.6px)}}.smoke circle{fill:#9aa0a6;opacity:0;transform-box:fill-box;transform-origin:center;animation:smoke 1.8s ease-out infinite}@keyframes smoke{0%{opacity:.9;transform:translateY(0) scale(.55)}35%{opacity:.72}to{opacity:0;transform:translateY(-3.1px) scale(2.25)}}.spark line{stroke:#fff3c4;stroke-width:.12;stroke-linecap:round;animation:spark-fly .75s cubic-bezier(.12,.7,.25,1) forwards}.spark circle{fill:#fff}.spark{animation:spark .12s steps(2) 7;filter:drop-shadow(0 0 .5px #fff3c4)}@keyframes spark{50%{opacity:.15}}@keyframes spark-fly{to{opacity:0;transform:translate(.35px,.55px)}}@keyframes short-screen-flash{to{opacity:0}}.fault-dim{fill:#07090c;opacity:.62;pointer-events:none;animation:fault-dim .32s ease-out forwards}@keyframes fault-dim{0%{opacity:.02}to{opacity:.55}}.shock-arc{fill:#fff;stroke:#8ed8ff;stroke-width:.13;stroke-linejoin:round;filter:drop-shadow(0 0 .55px #fff);animation:arc .15s steps(2) 4}@keyframes arc{50%{opacity:.08;transform:translate(.2px,-.12px)}}@keyframes shock-screen{0%,to{transform:none}20%{transform:translate(5px,-3px)}50%{transform:translate(-5px,3px)}75%{transform:translate(3px,2px)}}@keyframes shock-vignette{0%,45%{opacity:1}to{opacity:0}}.socket.overvoltage{animation:overload-flash .18s steps(2) 6}.socket.overvoltage .plate{fill:#30343a;stroke:#ffb020}.screen-crack{fill:none;stroke:#181b20;stroke-width:.08;stroke-linecap:round}.television .tv-case{fill:#252c35;stroke:#8994a1;stroke-width:.06}.television .tv-screen{fill:#263a4b;stroke:#10151a;stroke-width:.05}.television .tv-leg{stroke:#aab4bd;stroke-width:.08}.television.damaged .tv-screen{fill:#f4f9ff;animation:tv-blow .7s steps(2) 2}.television.damaged .tv-case{filter:drop-shadow(0 0 .45px #fff3c4)}@keyframes tv-blow{50%{fill:#fff;filter:brightness(3)}}.lamp.burned .bulb{fill:#272b30;stroke:#111}@keyframes overload-flash{45%{filter:brightness(2.8) drop-shadow(0 0 .5px #fff3c4)}}.mark{font-size:.8px;font-weight:800;paint-order:stroke;stroke:#12161c;stroke-width:.12px}.mark.ok{fill:var(--ok)}.mark.bad{fill:var(--danger)}.clamp{fill:none;stroke:#ffb020;stroke-width:.16;stroke-linecap:round}.mark.flag{fill:var(--accent)}.pyro circle,.pyro line{fill:none;stroke:#ff5a3c;stroke-width:.08;stroke-linecap:round}.term-heat{pointer-events:none;animation:heat .8s ease-in-out infinite alternate;filter:blur(.05px)}.term-heat.warm{fill:#ff962873}.term-heat.red{fill:#ff3c1e99}.temp-lbl{fill:#ffd166;font-size:.34px;font-weight:800;text-anchor:middle;paint-order:stroke;stroke:#12161c;stroke-width:.1px;animation:temp-pulse .65s ease-in-out infinite alternate}@keyframes temp-pulse{to{fill:#ff684f}}@keyframes heat{0%{opacity:.55}to{opacity:1}}.plug{fill:#e9eef3;stroke:#8d939a;stroke-width:.05}.plug-socket.unplugged .plug{fill:#b8bec5}.marks-list{position:absolute;left:8px;top:40px;z-index:3;max-width:min(340px,calc(100% - 16px));max-height:60%;overflow-y:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:3px;border-radius:10px;background:#1a2028eb;border:1px solid var(--line)}.marks-list .chip{min-height:32px}.marks-list-toggle{width:100%;justify-content:space-between;gap:8px}.marks-list.collapsed{padding:0;border:0;background:none}.marks-list.collapsed .marks-list-toggle{width:auto;background:#1a2028d9}.marks-list.collapsed .chip{display:none}.mark-choice .row-btns{display:flex;gap:6px;flex-wrap:wrap}.loupe-wrap{position:absolute;z-index:4;pointer-events:none;width:128px}.loupe{position:relative;width:128px;height:128px;border-radius:50%;overflow:hidden;border:2px solid var(--accent);box-shadow:0 6px 20px #00000080;pointer-events:none;background:#1c2027;z-index:4}.loupe svg{display:block}.loupe-dot{fill:none;stroke:var(--accent);stroke-width:.04}.meter{position:relative;margin:0 8px 6px;padding:6px 10px;border-radius:14px;background:#2d3540;border:3px solid #f0c419;box-shadow:0 -4px 16px #00000059;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"head lcd" "status count";gap:4px 12px;align-items:center}.meter-head{grid-area:head}.meter .lcd{grid-area:lcd}.meter-status{grid-area:status}.meter [data-testid=measures]{grid-area:count;text-align:right}.meter p{margin:0;line-height:1.3}.meter-head{display:flex;align-items:center;gap:6px}.meter .chip{min-height:32px;min-width:40px}.meter .lcd{display:block;font:700 28px/1.15 ui-monospace,SF Mono,Menlo,monospace;background:#b9c7a8;color:#1b2116;border-radius:6px;padding:4px 10px;text-align:right;box-shadow:inset 0 2px 4px #00000059}.meter .lcd.tester{text-align:center;letter-spacing:1px}.meter .lcd.tester.lit{background:#ffd166;color:#3a1f00;box-shadow:0 0 14px #ffd166b3}.meter.danger .lcd{background:#5a2a26;color:#ffb3ad}.meter.smoking{animation:shake .12s 8}@keyframes shake{25%{transform:translate(-2px)}75%{transform:translate(2px)}}.meter-smoke{position:absolute;left:50%;top:-6px;pointer-events:none}.meter-smoke i{position:absolute;width:22px;height:22px;border-radius:50%;background:#a0a5aabf;animation:meter-smoke 1.2s ease-out infinite}.meter-smoke i:nth-child(2){left:-16px;animation-delay:.3s}.meter-smoke i:nth-child(3){left:14px;animation-delay:.6s}@keyframes meter-smoke{0%{opacity:.85;transform:translateY(0) scale(.6)}to{opacity:0;transform:translateY(-46px) scale(1.8)}}.hand-chapter .tag{margin-right:4px;vertical-align:2px}.zoom-btns .fit-btn{min-height:40px;background:#1a2028d9}.loupe-lbl{position:absolute;left:50%;top:calc(100% + 4px);transform:translate(-50%);white-space:nowrap;font-size:11px;font-weight:700;padding:1px 6px;border-radius:6px;background:#12161ce6;color:var(--accent)}.supply-cable.thin{stroke-width:.14;fill:none}.din-tick{stroke:#59636e;stroke-width:.04}.panel.placing .din{fill:#c3ccd6}.breaker.selected .breaker-body,.bus.selected rect{stroke:var(--accent);stroke-width:.12}.dev-id{fill:var(--muted)}.ghost rect{fill:var(--accent);fill-opacity:.25;stroke:var(--accent);stroke-width:.08;stroke-dasharray:.25 .15}.ghost.bad rect{fill:var(--danger);stroke:var(--danger)}.fixture-generic .plate{fill:#d5d8d2;stroke:#9aa3ad;stroke-width:.05}.fixture-generic .generic-dot{fill:#8d939a}.fixture-generic.on .generic-dot{fill:var(--ok)}.palette-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.part-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:4px 10px 4px 4px;border-radius:10px;border:2px solid var(--line);background:var(--panel-2);color:inherit;font:inherit;font-size:13px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.part-btn.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.part-ico{display:inline-grid;place-items:center;min-width:30px;height:34px;padding:0 3px;border-radius:4px;background:#e9ebe6;color:#1a1f26;font-size:11px;font-weight:800}.part-ico.p-bus_n{background:#3d8bff;color:#fff}.part-ico.p-bus_pe{background:#58b84a;color:#fff}.device-panel{z-index:3;box-shadow:0 -4px 16px #0006;margin:0;padding:6px 10px;border-radius:12px;background:var(--panel-2);border:2px solid var(--accent);display:flex;flex-direction:column;gap:4px}.device-panel .setting{display:flex;align-items:center;gap:8px}.device-panel .setting .field-label{flex:0 0 92px;font-size:12px}.device-panel .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.device-panel .chip{min-height:36px;min-width:40px;flex:0 0 auto}.device-panel .grow{flex:1}.hand-play>.device-panel{flex:0 0 auto;border-inline:0;border-radius:0;box-shadow:none}@media(max-width:420px){.meter{padding:4px 8px;gap:2px 8px}.meter .lcd{font-size:22px;padding:2px 8px}.meter-status{display:none}.meter-head b{font-size:13px}.update-toast{max-width:calc(100% - 16px);font-size:12px;padding:5px 5px 5px 10px}.update-toast .btn{min-height:32px}}.btn.danger{border-color:var(--danger);color:#ffb3ad}@media(max-width:420px){.part-btn{padding:4px}.part-name{display:none}}.rank .mech{margin:-4px 0 8px}.rank.soon h2{color:var(--muted)}.muted-tag{background:var(--panel-2);color:var(--muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.ray,.smoke circle,.steam,.hw.hot .hw-core,.spark,.meter.smoking,.fault-dim,.shock-arc,.breaker.tripped .breaker-body,.breaker.tripped .lever,.socket.overvoltage,.hand-scene:has(.shock-arc){animation:none!important}.hw.hot .hw-core,.term-heat{filter:none}}@media(max-width:420px){.meter{padding:4px 8px;gap:2px 8px}.meter .lcd{font-size:22px;padding:2px 8px}.meter-status{display:none}.meter-head b{font-size:13px}}.breaker-sub{font-size:.26px;font-weight:600;fill:#4a525c;text-anchor:middle}.rcbo-cap{fill:#8e6cff}.meter .over{color:#ffb3ad}.fx-stand{min-height:100%;display:flex;flex-direction:column}.fx-stand .hand-play{flex:1;min-height:0}.fx-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px;border-top:1px solid var(--line);background:#171c23}.fx-controls .chip{min-width:0;min-height:42px;padding-inline:5px;border-color:#3d4857;font-size:12px}.fx-controls .chip.on{border-color:var(--accent);color:#17120a;background:var(--accent)}@media(max-width:360px){.fx-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.hand-scene:has(.spark):after,.temp-lbl{animation:none!important}}.restart-confirm{display:inline-flex;gap:6px;align-items:center}.restart-confirm .btn.danger{background:#b3261e;color:#fff;border-color:#b3261e}.lesson-screen{background:var(--bg)}.lesson-screen.overlay{position:absolute;inset:0;z-index:45}.lesson-kicker{margin:0 0 2px!important;text-transform:uppercase;letter-spacing:.06em;font-size:11px}.lesson-screen .order h1{white-space:normal}.lesson-scroll{padding-bottom:12px}.lesson-inner{display:flex;flex-direction:column;gap:12px}.lesson-goal{margin:0;padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));background:linear-gradient(90deg,rgba(255,176,32,.1),transparent);line-height:1.4}.lesson-goal b{color:var(--accent)}.lesson-dots{display:flex;gap:6px;list-style:none;margin:0;padding:0}.lesson-dots li{flex:1;height:4px;border-radius:2px;background:var(--line)}.lesson-dots li.done{background:color-mix(in srgb,var(--accent) 55%,var(--line))}.lesson-dots li.cur{background:var(--accent)}.lesson-dots li.q{border-radius:2px 2px 6px 6px}.lesson-page{animation:lesson-in .22s ease-out}@keyframes lesson-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}.lesson-text{margin:0;font-size:17px;line-height:1.5}.lesson-figure{margin:0;display:flex;flex-direction:column;gap:10px}.lesson-figure figcaption{line-height:1.4}.lesson-figure.demo figcaption{font-weight:600}.lesson-nav{display:flex;align-items:center;gap:8px;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--panel)}.lesson-nav .muted{flex:1;text-align:center}.lesson-quiz{display:flex;flex-direction:column;gap:10px}.lesson-q{margin:0;font-size:17px;font-weight:700;line-height:1.4}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-option{min-height:var(--tap);padding:10px 12px;text-align:left;border-radius:10px;border:1px solid var(--line);background:var(--panel-2);cursor:pointer;line-height:1.35}.quiz-option:disabled{cursor:default}.quiz-option.right{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 18%,var(--panel-2))}.quiz-option.wrong{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 16%,var(--panel-2))}.quiz-option.dim{opacity:.55}.lesson-link{align-self:flex-start}.lesson-tile .tile-n{font-size:18px;background:color-mix(in srgb,var(--info) 18%,var(--panel-2))}.lesson-tile{border-style:dashed}.lesson-tile.done{border-style:solid}.lesson-check{color:var(--ok);font-weight:800;padding:0 6px}.why-btn{align-self:flex-start;border-color:color-mix(in srgb,var(--info) 55%,var(--line))}.hint-text{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-bottom:1px solid var(--line)}.hint-text p{margin:0}.hint-tier{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--info)}.hint-text[data-tier="3"] .hint-tier{color:var(--accent)}.tool-pair{display:inline-flex;gap:2px}.tool-pair .btn.small-btn.info-btn{min-width:30px;padding:0 8px;font-family:Georgia,serif;font-style:italic;color:var(--info)}.guide-card{position:absolute;left:8px;right:8px;bottom:8px;z-index:30;max-width:520px;margin:0 auto;padding:10px 12px;border-radius:14px;background:var(--panel-2);border:2px solid var(--info);box-shadow:0 -6px 24px #00000080;display:flex;flex-direction:column;gap:6px;max-height:70%;overflow-y:auto}.guide-steps,.guide-mistakes{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;line-height:1.35}.guide-mistakes li::marker{content:"✕  ";color:var(--danger)}.guide-card .row-btns{justify-content:flex-end}.lz-stub{display:flex;align-items:center;justify-content:center;gap:8px;min-height:120px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);padding:12px;text-align:center}.lz-svg{width:100%;height:auto;display:block;border-radius:12px;background:#f3f1ea;color:#1d232b}.lz-label{font-size:10px;fill:#2c333c;font-weight:600}.lz-label.strong{font-size:11px;font-weight:700}.lz-label.small{font-size:9px}.lz-label.muted{fill:#6b7380;font-weight:500}.lz-label.danger{fill:#c62a1f;font-weight:800}.lz-label.ok{fill:#1d7a48;font-weight:700}.lz-tiny{font-size:8px;fill:#2c333c;font-weight:700}.lz-tiny.light{fill:#e8e6e1}.lz-wire.dim{opacity:.3}.lz-flow{stroke:#fffffff2;stroke-dasharray:1 11;animation:lz-flow .7s linear infinite}.lz-flow.rev{animation-direction:reverse}@keyframes lz-flow{to{stroke-dashoffset:-12}}.lz-heat{stroke:#ff4d1f;opacity:.55;filter:drop-shadow(0 0 4px #ff6a00)}.lz-wire.hot .lz-heat{opacity:.95;animation:lz-hot .5s ease-in-out infinite alternate}.lz-wire.warm .lz-heat{stroke:#ff9a3d;opacity:.45}@keyframes lz-hot{0%{opacity:.7}to{opacity:1}}.lz-smoke circle{fill:#8b8f96;opacity:0;animation:lz-smoke 1.6s ease-out infinite}.lz-smoke circle:nth-child(2){animation-delay:.5s}.lz-smoke circle:nth-child(3){animation-delay:1s}@keyframes lz-smoke{0%{opacity:.7;transform:translateY(0)}to{opacity:0;transform:translateY(-26px) scale(1.6)}}.lz-lamp .lz-bulb{fill:#fff;stroke:#737b86;stroke-width:2}.lz-lamp.lit .lz-bulb{fill:#ffe9a3;stroke:#e0a400}.lz-lamp .lz-glow{fill:#ffd25059;animation:lz-glow 1.4s ease-in-out infinite alternate}@keyframes lz-glow{to{fill:#ffd2508c}}.lz-lamp .lz-filament{stroke:#737b86;stroke-width:1.5}.lz-lamp.lit .lz-filament{stroke:#e07b00}.lz-lamp .lz-socket{fill:#9aa1aa}.lz-lamp.live .lz-socket{fill:#e2392c;animation:lz-live .7s ease-in-out infinite alternate}@keyframes lz-live{to{fill:#ff8a7f}}.lz-term{fill:#c9cdd2;stroke:#555d68;stroke-width:1.5}.lz-breaker .lz-body{fill:#fbfbf8;stroke:#69717c;stroke-width:1.5}.lz-breaker.trip .lz-body{stroke:#c62a1f;stroke-width:2.5}.lz-breaker .lz-slot{fill:#3a4048}.lz-breaker .lz-lever{fill:#1e5bd8}.lz-src{fill:#3a4048}.lz-load{fill:#dfe3e8;stroke:#69717c;stroke-width:1.5}.lz-load.danger{stroke:#c62a1f;stroke-width:3}.lz-sep{stroke:#c4c0b4;stroke-width:1;stroke-dasharray:3 4}.lz-spark path{fill:#ffd400;stroke:#ff6a00;stroke-width:1.5;animation:lz-spark .12s steps(2) infinite}@keyframes lz-spark{50%{opacity:.3}}.lz-body-dark{fill:#2c333c;stroke:#69717c;stroke-width:1.5}.lz-body-dark.trip{stroke:#e2392c;stroke-width:3}.lz-toroid{fill:none;stroke:#ffb020;stroke-width:5}.lz-half path{stroke:#e8e6e1}.lz-half.fired path{stroke:#ff6a5f}.lz-half.fired .lz-toroid{stroke:#ff6a5f}.lz-half.fired text{fill:#ff958e}.lz-zap{stroke:#e2392c;stroke-width:2.5}.lz-leak{stroke:#e2392c;stroke-width:2.5;stroke-dasharray:4 4;animation:lz-flow .6s linear infinite}.lz-person{fill:#1d232b;stroke:#1d232b}.lz-person.hurt{fill:#c62a1f;stroke:#c62a1f;animation:lz-shake .1s linear infinite}@keyframes lz-shake{50%{transform:translate(1px)}}.lz-ground{stroke:#1d232b}.lz-box{fill:#ecece6;stroke:#8b929b;stroke-width:2}.lz-clamp{fill:#f7f3d8;stroke:#8b929b;stroke-width:1.2}.lz-sock{fill:#fff;stroke:#69717c;stroke-width:1.5}.lz-sock.danger{stroke:#c62a1f;stroke-width:3}.lz-gone{opacity:.25}.lz-sock-face{fill:#fff;stroke:#8b929b;stroke-width:2}.lz-hole{fill:#2c333c}.lz-pe-clip{fill:#c9cdd2;stroke:#8b929b}.lz-meter{fill:#f2b01e;stroke:#8b6a10;stroke-width:2}.lz-lcd{fill:#c9d4b4;stroke:#556045}.lz-lcd-text{font:700 13px ui-monospace,Menlo,monospace;fill:#1d232b}.lz-probe{stroke-width:3;stroke-linecap:round}.lz-probe.red{stroke:#d33}.lz-probe.black{stroke:#222}.lz-cable{fill:#8b929b}.lz-jaw{stroke:#f2b01e;fill:none}.lz-jaw.bad{stroke:#e2392c}.lz-controls{display:flex;flex-direction:column;gap:8px}.lz-buttons{display:flex;flex-wrap:wrap;gap:6px}.lz-note{margin:0;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel);line-height:1.4}.lz-note.ok{border-color:color-mix(in srgb,var(--ok) 60%,var(--line))}.lz-note.danger{border-color:color-mix(in srgb,var(--danger) 60%,var(--line))}.fp-figure{display:flex;flex-direction:column;gap:8px}.fp-svg{max-height:340px;padding:6px 0}.fp-body{fill:#fbfbf8;stroke:#8b929b;stroke-width:2}.fp-screw{fill:#d5d8dc;stroke:#8b929b;stroke-width:1.5}.fp-slot{fill:#3a4048}.fp-lever{fill:#1e5bd8}.fp-test{fill:#ffd25a;stroke:#8b6a10;stroke-width:1.5}.fp-t{font:800 13px system-ui,sans-serif;fill:#1d232b}.fp-big{font:800 22px system-ui,sans-serif;fill:#1d232b}.fp-mid{font:700 11px system-ui,sans-serif;fill:#1d232b}.fp-small{font:600 10px system-ui,sans-serif;fill:#1d232b}.fp-small.strong{font-weight:800}.fp-frame{fill:none;stroke:#1d232b;stroke-width:1.5}.fp-ink-line{stroke:#1d232b;stroke-width:1.6}.fp-hl{fill:none;stroke:transparent;stroke-width:2.5}.fp-hit:not(.static){cursor:pointer}.fp-hit:not(.static):hover .fp-hl{stroke:#1e5bd873}.fp-hit.on .fp-hl{stroke:#e07b00;fill:#ffb0202e}.fp-hit:focus{outline:none}.fp-hit:focus-visible .fp-hl{stroke:#e07b00}.fp-callout line{stroke:#e07b00;stroke-width:1.5}.fp-callout circle{fill:#e07b00}.fp-callout text{font:800 11px system-ui,sans-serif;fill:#fff}.fp-legend{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:4px;line-height:1.35}.fp-legend li::marker{color:var(--accent);font-weight:800}.fp-explorer{display:flex;flex-direction:column;gap:8px}.fp-explorer .fp-svg{max-height:300px}.fp-explain{min-height:84px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel)}.fp-explain p{margin:4px 0 0;line-height:1.4}.shelf{display:flex;flex-direction:column;gap:6px}.shelf .sheet-head{background:transparent;padding:0}.shelf p{margin:0}.shelf-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.shelf-card{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;border-radius:12px;border:2px solid var(--line);background:var(--panel-2);cursor:pointer}.shelf-card.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel-2))}.shelf-face{height:120px;width:auto;max-width:100%}.shelf-name{font-size:12px;font-weight:600;text-align:center;line-height:1.25}.shelf-demo{display:flex;flex-direction:column;gap:8px}.shelf-wrap{position:absolute;left:8px;right:8px;bottom:8px;z-index:30;max-width:560px;margin:0 auto;padding:10px 12px;border-radius:14px;background:var(--panel);border:2px solid var(--accent);box-shadow:0 -6px 24px #00000080;max-height:75%;overflow-y:auto}@media(prefers-reduced-motion:reduce){.lz-flow,.lz-leak,.lz-smoke circle,.lz-lamp .lz-glow,.lz-wire.hot .lz-heat,.lz-person.hurt,.lz-spark path,.lz-lamp.live .lz-socket,.lesson-page{animation:none}}.lesson-action{margin:0;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--info) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--info) 40%,var(--line));line-height:1.4}.lz-ghost{stroke:#9aa1aa;stroke-width:3;stroke-dasharray:4 6}.lz-drum{fill:#c9d4dc;stroke:#69717c;stroke-width:2}.lz-tag{fill:#fbfbf8;stroke:#69717c}.lz-bus{fill:#8b929b}.lz-bus.bad{fill:#c62a1f}.lz-room{fill:#e7eef2;stroke:#8b929b;stroke-width:2}.lz-bath{fill:#fff;stroke:#8b929b;stroke-width:2}.lz-water{stroke:#3d7fe0;stroke-width:2}.lz-dot.rcd{fill:#3d7fe0}.lz-dot.pe{fill:#2f9e44}.lz-dot.fire{fill:#e07b00}.inst-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.inst-list li{padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;gap:2px}.inst-head{display:flex;align-items:center;gap:8px;justify-content:space-between}.inst-live{font-size:11px;font-weight:700;padding:2px 8px;border-radius:8px}.inst-live.ok{color:#7ee2a8;background:#3fbf7f24}.inst-live.danger{color:#ff958e;background:#ff5a4f24}.bvr-legend{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;line-height:1.35}.guide-what{margin:0;line-height:1.35}.guide-live{font-size:12px;font-weight:700}.guide-live.ok{color:#7ee2a8}.guide-live.danger{color:#ff958e}@media(max-width:420px){.hand-tools{gap:4px;padding-top:4px}.instr-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.instr-row::-webkit-scrollbar{display:none}.instr-row>*{flex:0 0 auto}.instr-row [data-tool=mark]{order:-1}.tool-pair .btn.small-btn.info-btn{min-width:26px;padding:0 6px}.meter{margin:0 8px 4px;padding:3px 6px;border-width:2px;border-radius:10px;gap:0 6px;grid-template-columns:auto 1fr auto;grid-template-areas:"head lcd count"}.meter-head b{display:none}.meter .chip{min-height:30px;min-width:36px}.meter .lcd{font-size:20px;padding:1px 8px}.meter [data-testid=measures]{font-size:11px;line-height:1.2;max-width:64px}.marks-list-toggle.btn.small-btn{min-height:32px;font-size:12px;padding:0 8px}.sections .chip{min-width:34px;padding:0 6px}.spool{width:40px;height:40px}.reel{width:28px;height:28px}}.screen-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;color:var(--muted)}.screen-loading-bar{width:140px;height:4px;border-radius:2px;background:var(--line);overflow:hidden}.screen-loading-bar>div{width:40%;height:100%;background:var(--accent);animation:screen-loading 1.1s ease-in-out infinite alternate}@keyframes screen-loading{0%{transform:translate(-60%)}to{transform:translate(210%)}}@media(prefers-reduced-motion:reduce){.screen-loading-bar>div{animation:none;transform:translate(80%)}}
