.dmm{--meter-boot:#c8541a;--meter-body:#2f3336;--meter-face:#3a4045;--lcd-glass:#c3d0c0;--lcd-lit:#1c261c;--lcd-ghost:#1c261c14;--silkscreen:#e8e6e1;--jack-brass:#b8894a;--lead-red:#b3261e;--lead-black:#1a1a1a;width:100%;max-width:352px;height:auto;margin:0 auto;display:block}.dmm-boot{fill:url(#dmm-boot-grad);stroke:#00000059;stroke-width:1px}.dmm-boot-edge{fill:none;stroke:url(#dmm-boot-edge);stroke-width:2px}.dmm-body{fill:var(--meter-body);stroke:#00000073;stroke-width:1px}.dmm-face{fill:var(--meter-face)}.dmm-face-bevel{fill:none;stroke:#ffffff12;stroke-width:1px}.dmm-silk{fill:var(--silkscreen);letter-spacing:.08em;font-family:inherit;font-weight:600}.dial-label{font-size:14px}.dial-sublabel{letter-spacing:.18em;opacity:.75;font-size:7px}.jack-label{font-size:11px}.dmm-cat{letter-spacing:.22em;opacity:.4;font-size:8px}.dmm-dc line{stroke:var(--silkscreen);stroke-width:1.6px;stroke-linecap:round}.dmm-ac path{stroke:var(--silkscreen);stroke-width:1.6px;stroke-linecap:round;fill:none}.dmm-sonar .sonar-dot{fill:var(--silkscreen)}.dmm-sonar .sonar-arc{fill:none;stroke:var(--silkscreen);stroke-width:1.6px;stroke-linecap:round}.lcd-bezel{fill:#202326;stroke:#0000008c;stroke-width:1px}.lcd-glass{fill:var(--lcd-glass)}.lcd-sheen{fill:#ffffff0e}.lcd-seg{fill:var(--lcd-ghost)}.lcd-seg.is-lit{fill:var(--lcd-lit)}.lcd-ann-text{fill:var(--lcd-ghost);letter-spacing:.1em;font-size:11px;font-weight:700}.lcd-ann-text.lcd-unit{letter-spacing:0;font-size:16px}.lcd-ann-text.is-lit{fill:var(--lcd-lit)}.lcd-ann .sonar-dot{fill:var(--lcd-ghost)}.lcd-ann .sonar-arc{fill:none;stroke:var(--lcd-ghost);stroke-width:1.7px;stroke-linecap:round}.lcd-ann.is-lit .sonar-dot{fill:var(--lcd-lit)}.lcd-ann.is-lit .sonar-arc{stroke:var(--lcd-lit)}.dial-tick{stroke:var(--silkscreen);stroke-width:2px;stroke-linecap:round;opacity:.85}.dial-tick-off{stroke-width:3.4px;opacity:1}.dial-shadow{fill:#00000059}.dial-knob{transition:transform .18s cubic-bezier(.3,.7,.2,1)}.dial-knob-body{fill:url(#dmm-knob-grad);stroke:#1b1e20;stroke-width:1.5px}.dial-flute{stroke:#00000061;stroke-width:2.6px;stroke-linecap:round}.dial-pointer{fill:var(--silkscreen)}.dial-pos{cursor:pointer;outline:none}.dial-hit{fill:#0000}.dial-focus{fill:none;stroke:#fff;stroke-width:2px;stroke-dasharray:4 3;opacity:0;pointer-events:none}.dial-pos:focus-visible .dial-focus{opacity:1}.dial-pos:hover .dial-focus{opacity:.35}.jack-recess{fill:#23262a}.jack-collar{fill:#2b2e32;stroke-width:2.5px}.jack-collar-red{stroke:var(--lead-red)}.jack-collar-black{stroke:#0d0e0f}.jack-ring{fill:var(--jack-brass);stroke:#7a5a2a;stroke-width:1.5px}.jack-bore{fill:#101214}.jack-glint{fill:none;stroke:#fff6;stroke-width:1.4px;stroke-linecap:round}.jack-btn{cursor:pointer;outline:none}.jack-hit{fill:#0000}.jack-focus{fill:none;stroke:#fff;stroke-width:2px;stroke-dasharray:4 3;opacity:0;pointer-events:none}.jack-btn:focus-visible .jack-focus{opacity:1}.jack-btn:hover .jack-focus{opacity:.35}.dmm-plug{pointer-events:none;transition:transform .18s cubic-bezier(.3,.7,.2,1)}.plug-lead{fill:none;stroke-width:5px;stroke-linecap:round}.dmm-plug-red .plug-lead{stroke:var(--lead-red)}.dmm-plug-black .plug-lead{stroke:var(--lead-black)}.dmm-plug-red .plug-body{fill:var(--lead-red);stroke:#7d1712;stroke-width:1px}.dmm-plug-black .plug-body{fill:#232323;stroke:#000;stroke-width:1px}.plug-ridge{fill:#00000047}.plug-hilite{fill:#ffffff47}.probe-sim-intro{color:#4a453c;margin:0;font-size:.9rem}.meter-nudge{color:#6b4a00;background:#fdf3e2;border:1px solid #d99a2b;border-left-width:4px;border-radius:8px;margin:0;padding:8px 12px;font-size:.85rem}.vbudget{--vb-face:#3a4045;--vb-body:#2f3336;--vb-silk:#e8e6e1;--vb-lcd:#c3d0c0;background:linear-gradient(180deg, var(--vb-face), var(--vb-body));color:var(--vb-silk);border:1px solid #00000073;border-radius:10px;padding:12px 14px 13px}.vbudget-head{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:baseline;gap:10px;padding-bottom:8px;display:flex}.vbudget-title{letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.vbudget-source{white-space:nowrap;margin:0;font-size:.78rem}.vbudget-caption{letter-spacing:.09em;text-transform:uppercase;opacity:.72;font-size:.72rem}.vbudget-num{color:var(--vb-lcd);font-variant-numeric:tabular-nums;font-weight:700}.vbudget-unit{color:var(--vb-lcd);opacity:.8;margin-left:3px;font-weight:600}.vbudget-empty{opacity:.65;margin:10px 0 0;font-size:.8rem}.vbudget-rows{margin:10px 0 0;padding:0;list-style:none}.vbudget-row{grid-template-columns:1fr auto;align-items:baseline;gap:5px 10px;display:grid}.vbudget-row+.vbudget-row{margin-top:9px}.vbudget-label{overflow-wrap:anywhere;font-size:.82rem;line-height:1.25}.vbudget-value{white-space:nowrap;font-size:.82rem}.vbudget-bar{background:#00000061;border-radius:4px;grid-column:1/-1;height:8px;display:block;overflow:hidden;box-shadow:inset 0 1px 2px #0000008c}.vbudget-bar-fill{background:linear-gradient(90deg,#b2470f,#e08a3c);border-radius:4px;height:100%;transition:width .22s cubic-bezier(.3,.7,.2,1);display:block}.vbudget-total{border-top:1px solid #ffffff29;grid-template-columns:1fr auto;align-items:baseline;gap:4px 10px;margin:11px 0 0;padding-top:9px;font-size:.82rem;display:grid}.vbudget-verdict{grid-column:1/-1;font-size:.78rem}.vbudget-total.is-balanced .vbudget-verdict{color:#8fe0a3;font-weight:600}.vbudget-total.is-under .vbudget-verdict{opacity:.7}.vbudget-total.is-over .vbudget-verdict{color:#ffb3ac;font-weight:600}.diagnose{--dg-face:#3a4045;--dg-body:#2f3336;--dg-silk:#e8e6e1;background:linear-gradient(180deg, var(--dg-face), var(--dg-body));color:var(--dg-silk);border:1px solid #00000073;border-radius:10px;padding:12px 14px 14px}.diagnose-head{border-bottom:1px solid #ffffff1a;padding-bottom:8px}.diagnose-title{letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.diagnose-sub{opacity:.75;margin:4px 0 0;font-size:.8rem}.diagnose-list{border:0;margin:10px 0 0;padding:0;display:block}.diagnose-option{cursor:pointer;background:#00000038;border:1px solid #ffffff24;border-radius:8px;align-items:center;gap:10px;min-height:48px;padding:6px 10px;font-size:.88rem;display:flex}.diagnose-option+.diagnose-option{margin-top:7px}.diagnose-option.is-chosen{background:#0000006b;border-color:#ffffff80}.diagnose-option input{accent-color:#e08a3c;flex:none;width:20px;height:20px}.diagnose-option:focus-within{outline-offset:2px;outline:2px solid #e08a3c}.diagnose-option-label{overflow-wrap:anywhere}.diagnose-foot{margin-top:10px}.diagnose-lock{opacity:.78;margin:0;font-size:.78rem}.diagnose-verdict{background:#0000004d;border-left:4px solid #ffb3ac;border-radius:8px;margin:8px 0 0;padding:9px 10px;font-size:.82rem;line-height:1.4}.diagnose-verdict-mark{color:#ffb3ac;font-weight:700}.diagnose .diagnose-call{width:100%;min-height:48px;margin-top:12px;display:flex}.diagnose .diagnose-call:disabled{opacity:.5;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.dial-knob,.dmm-plug,.vbudget-bar-fill{transition:none}}.clamp{--cl-face:#3a4045;--cl-body:#2f3336;--cl-silk:#e8e6e1;--lcd-glass:#c3d0c0;--lcd-lit:#1c261c;--lcd-ghost:#1c261c14;background:linear-gradient(180deg, var(--cl-face), var(--cl-body));color:var(--cl-silk);border:1px solid #00000073;border-radius:10px;padding:12px 14px 14px}.clamp-head{border-bottom:1px solid #ffffff1a;padding-bottom:8px}.clamp-title{letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.clamp-sub{opacity:.75;margin:4px 0 0;font-size:.8rem}.clamp-readout{margin-top:10px}.clamp-lcd{width:100%;max-width:260px;height:auto;margin:0 auto;display:block}.clamp-status{opacity:.85;justify-content:center;gap:8px;margin:8px 0 0;font-size:.8rem;display:flex}.clamp-status-zero{opacity:.7}.clamp-status-zero.is-ok{opacity:1;color:#8fe0a3;font-weight:600}.clamp-controls{gap:10px;margin-top:12px;display:flex}.clamp .clamp-arm,.clamp .clamp-zero{flex:1;min-height:48px;display:flex}.clamp .clamp-arm.is-armed{color:#1a1a1a;background:#e08a3c;box-shadow:0 0 0 3px #e08a3c59}.clamp .clamp-zero{letter-spacing:.1em;flex:0 0 92px;font-weight:700}.clamp .clamp-zero:disabled{opacity:.5;cursor:not-allowed}.clamp-note{opacity:.8;margin:9px 0 0;font-size:.78rem;line-height:1.4}.clamp-mode{gap:6px;margin-top:10px;display:flex}.clamp .clamp-mode-btn{letter-spacing:.1em;flex:1;min-height:44px;font-weight:700}.clamp .clamp-mode-btn.is-active{color:#1a1a1a;background:#e08a3c}.gfci{--gf-face:#e8e4da;--gf-body:#d9d3c4;background:linear-gradient(180deg, var(--gf-face), var(--gf-body));color:#2b2b2b;border:1px solid #00000059;border-radius:10px;padding:12px 14px 14px}.gfci-head{border-bottom:1px solid #0000001f;padding-bottom:8px}.gfci-title{letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.gfci-status{align-items:center;gap:8px;margin:6px 0 0;font-size:.85rem;display:flex}.gfci-lamp{background:#4caf6d;border-radius:50%;flex:none;width:12px;height:12px;box-shadow:0 0 6px #4caf6d99}.gfci-lamp.is-tripped{background:#c0392b;box-shadow:0 0 6px #c0392b99}.gfci-controls{gap:10px;margin-top:12px;display:flex}.gfci .gfci-test,.gfci .gfci-reset{letter-spacing:.12em;flex:1;min-height:48px;font-weight:700}.gfci .gfci-test:disabled,.gfci .gfci-reset:disabled{opacity:.5;cursor:not-allowed}.gfci-note{color:#8a2318;margin:9px 0 0;font-size:.78rem;font-weight:600;line-height:1.4}.part-clamp{cursor:pointer}.clamp-body{fill:#2f3336;stroke:#0000008c;stroke-width:1px}.clamp-trigger{fill:#e08a3c}.clamp-jaw{stroke:#cfd5da;stroke-width:5px;stroke-linecap:round;filter:drop-shadow(0 1px 1px #0006)}.clamp-arrow line{stroke:#e08a3c;stroke-width:2.4px;stroke-linecap:round}.clamp-arrow polygon{fill:#e08a3c}.clamp-lamp{fill:#4a4f53;stroke:#00000080;stroke-width:.8px}.part-clamp.is-zeroed .clamp-lamp{fill:#8fe0a3}.clamp-hit{fill:#0000}.part-clamp-aim{cursor:pointer}.clamp-aim-ring{fill:#e08a3c24;stroke:#e08a3c;stroke-width:2.2px;stroke-dasharray:5 4}@media (prefers-reduced-motion:no-preference){.clamp-aim-ring{animation:1.6s ease-in-out infinite clamp-aim-pulse}}@keyframes clamp-aim-pulse{0%,to{opacity:.75}50%{opacity:1}}.part-clamp:focus-visible,.part-clamp-aim:focus-visible{outline-offset:2px;outline:2px solid #e08a3c}:root{--bg:#f7f7f5;--ink:#1a1a1a;--accent:#c8541a;--ok:#1a7a3c;--warn:#b3261e;--card:#fff;--line:#ddd8d0;font-family:system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}main{max-width:640px;margin:0 auto;padding:16px}button{font:inherit;min-height:44px}.app-header{justify-content:space-between;align-items:center;gap:10px;max-width:640px;margin:0 auto;padding:16px 16px 0;display:flex}.app-header h1{margin:0;font-size:1.25rem}.portal-return{min-height:44px;color:var(--accent);white-space:nowrap;flex:none;align-items:center;padding:0 4px;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.portal-return:hover{text-decoration:underline}.update-toast{z-index:1000;background:var(--accent);color:#fff;min-height:44px;font:inherit;cursor:pointer;border:none;border-radius:999px;padding:0 20px;font-size:.9rem;font-weight:600;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000040}.update-toast-warn{background:var(--card);width:360px;max-width:calc(100vw - 32px);min-height:0;color:var(--ink);border:1px solid var(--warn);cursor:default;border-radius:14px;padding:14px 16px}.update-toast-warn p{margin:0 0 10px;font-size:.9rem}.update-toast-actions{gap:8px;display:flex}.update-toast-actions .btn{flex:1;min-height:40px}.course-picker-heading{margin:0 0 12px;font-size:1.1rem}.course-card-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.course-card{background:var(--card);border:1px solid var(--line);border-radius:10px;align-items:stretch;gap:10px;padding:10px 12px;display:flex}.course-card-main{min-width:0;min-height:44px;color:var(--ink);flex-direction:column;flex:1;justify-content:center;gap:2px;padding:4px 2px;font-weight:600;text-decoration:none;display:flex}.course-card-titlerow{justify-content:space-between;align-items:center;gap:10px;display:flex}.course-card-main:hover .course-card-title{text-decoration:underline}.course-card-open{color:var(--accent);font-size:1.4rem;line-height:1}.course-card-blurb{color:#5f5a52;font-size:.85rem;font-weight:400;line-height:1.35}.course-card-prereq{color:var(--accent);font-size:.8rem;font-weight:600}.course-card-prereq-hard{color:var(--warn);font-weight:400}.course-card-locked{background:var(--bg)}.course-card-locked .course-card-title{color:#5f5a52}.course-card-continue{align-self:center}.course-map-back{margin-bottom:8px}.lesson-back{margin:0 0 4px;font-size:.95rem}.lesson-back a{color:var(--muted,#5a6169);align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.lesson-back a:hover{text-decoration:underline}.course-map-back a{min-height:44px;color:var(--accent);align-items:center;padding:0 8px 0 2px;font-weight:600;text-decoration:none;display:inline-flex}.course-map-back a:hover{text-decoration:underline}.course-empty{background:var(--card);border:1px dashed var(--line);text-align:center;border-radius:10px;padding:20px 16px}.course-empty p{margin:0 0 6px;font-weight:600}.course-empty .course-empty-sub{color:#6b6558;margin:0;font-size:.9rem;font-weight:400}.course-map-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.course-map-header h2{margin:0;font-size:1.1rem}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:0 20px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(.95)}.banner{border:1px solid var(--warn);color:var(--warn);background:#fff4e9;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:8px 8px 8px 14px;font-size:.9rem;display:flex}.banner button{color:inherit;cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;font-size:1.25rem;line-height:1}.part-section{margin-bottom:24px}.part-label{text-transform:uppercase;letter-spacing:.04em;color:#6b6558;margin:0 0 8px;font-size:.8rem}.module-card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:12px 14px}.module-card h4{margin:0 0 8px;font-size:1rem}.lesson-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.lesson-row a,.lesson-row-locked{min-height:44px;color:var(--ink);border-radius:6px;align-items:center;gap:10px;padding:4px 6px;text-decoration:none;display:flex}.lesson-row a:hover{background:var(--bg)}.lesson-row.locked .lesson-row-locked{color:#9a9488}.lesson-row.completed .lesson-icon{color:var(--ok)}.lesson-row.unlocked .lesson-icon{color:var(--accent)}.lesson-icon{text-align:center;flex-shrink:0;width:1.4em}.lesson-title{flex:1}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lesson-view h2{margin:0 0 16px;font-size:1.2rem}.lesson-blocks{flex-direction:column;gap:16px;display:flex}.block-text :first-child{margin-top:0}.block-text :last-child{margin-bottom:0}.block-todo{border:1px dashed var(--line);color:#6b6558;border-radius:10px;padding:14px 16px;font-size:.9rem}.block-todo-button{text-align:left;cursor:pointer;background:0 0;width:100%;display:block}.block-figure{margin:0}.block-figure img{border:1px solid var(--line);border-radius:8px;max-width:100%;display:block}.block-figure figcaption{color:#6b6558;margin-top:6px;font-size:.85rem}.lesson-block-done{border:1px solid var(--ok);border-radius:10px;padding:4px}.lesson-block-done-badge{color:var(--ok);background:#eaf6ee;border-radius:999px;margin:0 0 8px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-block}.lesson-footer{background:var(--bg);border-top:1px solid var(--line);margin-top:24px;padding:12px 0 4px;position:sticky;bottom:0}.lesson-footer .btn{width:100%}.lesson-footer .btn:disabled{opacity:.5;cursor:not-allowed}.callout{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.callout-header,.callout-belief,.callout-truth{align-items:baseline;gap:8px;margin:0 0 8px;display:flex}.callout-belief s{color:var(--warn)}.callout-truth strong{color:var(--ok)}.callout-body :first-child{margin-top:0}.callout-body :last-child{margin-bottom:0}.callout-misconception{border-color:var(--warn)}.callout-safety{border-left:4px solid var(--warn)}.callout-rule{border-left:4px solid var(--accent)}.callout-shop-reality{border-left:4px solid #6b6558}.quiz{background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.quiz-progress{text-transform:uppercase;letter-spacing:.04em;color:#6b6558;margin:0;font-size:.8rem}.quiz-prompt{margin:0;font-weight:600}.quiz-choice{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.quiz-option{border:1px solid var(--line);border-radius:8px;overflow:hidden}.quiz-option-btn{text-align:left;cursor:pointer;width:100%;min-height:44px;font:inherit;color:var(--ink);background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.quiz-option-btn[aria-checked=true]{border-color:var(--accent);background:#fdf1e9}.quiz-option-btn:disabled{cursor:default}.quiz-option-mark{font-weight:700}.quiz-option-explain{color:#6b6558;margin:0;padding:8px 14px 12px;font-size:.85rem}.quiz-option-correct{border-color:var(--ok)}.quiz-option-correct .quiz-option-mark{color:var(--ok)}.quiz-option-incorrect{border-color:var(--warn)}.quiz-option-incorrect .quiz-option-mark{color:var(--warn)}.quiz-numeric{align-items:center;gap:8px;display:flex}.quiz-numeric-field{border:1px solid var(--line);min-height:44px;font:inherit;border-radius:8px;flex:1;padding:0 12px;font-size:1rem}.quiz-numeric-field:disabled{background:var(--bg)}.quiz-numeric-unit{color:#6b6558;font-weight:600}.quiz-predict{flex-direction:column;gap:10px;display:flex}.quiz-predict-figure{border:1px solid var(--line);border-radius:8px;max-width:100%;display:block}.quiz-sort-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.quiz-sort-item{border:1px solid var(--line);border-radius:8px}.quiz-sort-item-btn{text-align:left;cursor:pointer;width:100%;min-height:44px;font:inherit;color:var(--ink);background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;display:flex}.quiz-sort-item-btn:disabled{cursor:default}.quiz-sort-item-picked{border-color:var(--accent)}.quiz-sort-chip{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:24px;height:24px;font-size:.8rem;font-weight:700;display:inline-flex}.quiz-sort-reset{border:1px solid var(--line);color:var(--ink);background:0 0;align-self:flex-start}.quiz-feedback{border-radius:8px;padding:10px 14px}.quiz-feedback-verdict{margin:0 0 4px;font-weight:700}.quiz-feedback-explain{margin:0;font-size:.9rem}.quiz-feedback-correct{color:var(--ok);background:#eaf6ee}.quiz-feedback-correct .quiz-feedback-explain{color:var(--ink)}.quiz-feedback-incorrect{color:var(--warn);background:#fdecea}.quiz-feedback-incorrect .quiz-feedback-explain{color:var(--ink)}.quiz-actions{justify-content:flex-end;display:flex}.quiz-actions .btn{min-width:120px}.quiz-summary-score{text-align:center;margin:0;font-size:1.1rem;font-weight:700}.sim-viewport{width:100%;position:relative}.sim-viewport-svg{aspect-ratio:4/3;background:var(--card);width:100%;box-shadow:inset 0 0 0 1px var(--line);touch-action:none;border-radius:8px;display:block;overflow:hidden}.sim-viewport-bar{justify-content:flex-end;margin-top:6px;display:flex}.sim-viewport-fit-btn{border:1px solid var(--line);background:var(--card);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;border-radius:8px;padding:0 12px;font-weight:600}.wire-flow{stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:6 6;fill:none;animation:.6s linear infinite parts-flow}.wire-flow.flow-reverse{animation-direction:reverse}@keyframes parts-flow{to{stroke-dashoffset:-12px}}.battery-case{fill:#2b2b2b;stroke:#111;stroke-width:1px}.battery-cap{fill:#4a4a4a;stroke:#111;stroke-width:1px}.battery-post{fill:#c9a53b;stroke:#7a6420;stroke-width:1px}.battery-post-label{fill:var(--ink);font-size:12px;font-weight:700}.battery-label{fill:#fff;font-size:11px;font-weight:600}.acsource-body{fill:#fff;stroke:#2b3138;stroke-width:2.5px}.acsource-lead{stroke:#2b3138;stroke-width:3px;stroke-linecap:round}.acsource-lug{fill:#c9a53b;stroke:#7a6420;stroke-width:1px}.acsource-wave{stroke:#2b3138;stroke-width:2.5px;stroke-linecap:round}.acsource-label{fill:#1f2429;font-size:11px;font-weight:600}.lamp-lead{stroke:#6b6558;stroke-width:3px;stroke-linecap:round}.lamp-dome{fill:#eef1f4;stroke:#9aa3ad;stroke-width:1.5px}.lamp-filament{fill:#ffd45c;transition:opacity .12s linear}.lamp-glow{fill:#ffd45c;filter:blur(4px);transition:opacity .12s linear}.switch-hit{fill:#0000}.switch-lead{stroke:#6b6558;stroke-width:3px;stroke-linecap:round}.switch-base{fill:#c9c2b0;stroke:#8a8270;stroke-width:1.5px}.switch-post{fill:#c9a53b;stroke:#7a6420;stroke-width:1px}.switch-blade{stroke:var(--warn);transition:x2 .12s,y2 .12s}.part-switch.is-closed .switch-blade{stroke:var(--ok)}.switch-hinge{fill:#4a4a4a}.switch-knob{fill:#2b2b2b;stroke:#111;stroke-width:1px;transition:cx .12s,cy .12s}.wire-base{stroke:#2f6f4f;stroke-linecap:round;stroke-linejoin:round}.wire-hot-glow{stroke:var(--warn);stroke-linecap:round;stroke-linejoin:round;filter:blur(4px);opacity:.75;animation:.3s ease-in-out infinite alternate wire-heat-pulse}@keyframes wire-heat-pulse{0%{opacity:.45}to{opacity:.85}}.wire-fault-heat-stroke{stroke:var(--warn);stroke-linecap:round;stroke-linejoin:round;filter:blur(5px);animation:1.1s ease-in-out infinite alternate wire-fault-ember}@keyframes wire-fault-ember{0%{opacity:.6}to{opacity:.95}}.wire-crust{stroke-linecap:round;stroke-linejoin:round}.wire-crust-a{stroke:#6fae4a;stroke-dasharray:5 8}.wire-crust-b{stroke:#a8cf8a;stroke-dasharray:2.5 9;stroke-dashoffset:5px}@media (prefers-reduced-motion:reduce){.wire-fault-heat-stroke{opacity:.85;animation:none}}.frame-hatch-bg{fill:#7d8790}.frame-hatch-line,.chassis-rail{stroke:#5a626a;stroke-width:1.5px}.chassis-stem{stroke:#3a3a3a;stroke-width:2px}.chassis-bar{stroke:#3a3a3a;stroke-linecap:round}.chassis-bar-1{stroke-width:3px}.chassis-bar-2{stroke-width:2.5px}.chassis-bar-3{stroke-width:2px}.connection-blob{fill:#d9d2c2;stroke:#8a8270;stroke-width:1.5px}.connection-corrosion{fill:#6fae4a}.connection-heat{fill:var(--warn);filter:blur(3px)}.probe-ring{fill:#c8541a2e;stroke:var(--accent);stroke-width:1.5px}.probe-dot{fill:#1a1a1a73}.probe-hit{fill:#0000}.part-ammeter{pointer-events:none}.ammeter-face{fill:var(--card);stroke:var(--line);stroke-width:1.5px}.ammeter-reading{fill:var(--ink);text-anchor:middle;font-variant-numeric:tabular-nums;font-weight:700}.parts-workbench{flex-direction:column;gap:16px;display:flex}.parts-workbench h3{margin:16px 0 4px;font-size:1rem}.parts-workbench-grid{grid-template-columns:1fr;gap:16px;display:grid}.workbench-terminal-marker{fill:#0af;stroke:#003a66;stroke-width:1px}.resistor-body{fill:#eee6d6;stroke:#8a8270;stroke-width:1.5px}.resistor-label{fill:var(--ink);font-size:10px;font-weight:600}.probe-tool{cursor:pointer}.probe-tip{fill:#cfd5da;stroke:#7c868f;stroke-width:1px}.probe-collar{fill:#9aa3ad;stroke:#6f7a84;stroke-width:1px}.probe-tool-red .probe-handle{fill:#b3261e;stroke:#7d1712;stroke-width:1px}.probe-tool-black .probe-handle{fill:#232323;stroke:#000;stroke-width:1px}.probe-tool-red .probe-guard{fill:#8f1d17}.probe-tool-black .probe-guard{fill:#0d0d0d}.probe-ridge{fill:#00000047}.probe-hilite{fill:#ffffff47}.probe-lead{stroke-width:3px;opacity:.85}.probe-lead-red{stroke:#c0392b}.probe-lead-black{stroke:#1a1a1a}.probe-lead-hit{stroke:#0000;stroke-width:18px;pointer-events:stroke}.probe-sim{flex-direction:column;gap:12px;display:flex}.sim-canvas-frame{position:relative}.sim-armbar{z-index:2;pointer-events:none;justify-content:space-between;display:flex;position:absolute;top:8px;left:8px;right:8px}.sim-armbar .meter-probe-btn{pointer-events:auto;background:#ffffffed;box-shadow:0 1px 4px #1a1a1a38}.sim-armbar .meter-probe-red.is-armed{background:#c0392b}.sim-armbar .meter-probe-black.is-armed{background:#1a1a1a}.sim-armbar .meter-probe-clamp.is-armed{color:#1a1a1a;background:#e08a3c}.sim-armbar .meter-probe-btn.is-armed{box-shadow:0 0 0 3px #c8541a59,0 1px 4px #1a1a1a40}.probe-sim-corrosion{flex-direction:column;gap:4px;font-size:.85rem;display:flex}.probe-sim-corrosion input[type=range]{width:100%;min-height:44px}.meter-panel{background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;min-height:180px;padding:12px 14px;display:flex}.meter-task{border-bottom:1px solid var(--line);padding-bottom:8px}.meter-task-prompt{margin:0;font-weight:600}.meter-task-done{color:var(--ok);margin:0;font-weight:700}.meter-task-success{justify-content:space-between;align-items:center;gap:12px;display:flex}.meter-task-success-text{color:var(--ok);margin:0;font-weight:600}.meter-task-next{min-width:88px;padding:0 14px}.meter-toast{color:var(--warn);border:1px solid var(--warn);background:#fdecea;border-radius:8px;padding:8px 12px;font-size:.85rem}.meter-body{flex-direction:column;gap:10px;display:flex}.meter-lcd{border:1px solid var(--line);background:#dbe6d8;border-radius:6px;align-items:baseline;gap:6px;padding:8px 12px;font-family:Courier New,monospace;display:flex}.meter-lcd-reading{color:#1a2e1a;font-size:1.6rem;font-weight:700}.meter-lcd-unit{color:#1a2e1a;font-size:1rem;font-weight:600}.meter-lcd-beep{margin-left:auto;font-size:1.1rem}.meter-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.meter-dial,.meter-jacks,.meter-probes{gap:4px;display:flex}.meter-dial-btn,.meter-jack-btn,.meter-probe-btn{border:1px solid var(--line);background:var(--card);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;border-radius:8px;padding:0 12px;font-weight:600}.meter-dial-btn[aria-pressed=true],.meter-jack-btn[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.meter-probe-red{color:#c0392b;border-color:#c0392b}.meter-probe-red.is-armed{color:#fff;background:#c0392b;animation:.8s ease-in-out infinite probe-pulse}.meter-probe-red.is-placed{border-width:2px}.meter-probe-black{color:#1a1a1a;border-color:#1a1a1a}.meter-probe-black.is-armed{color:#fff;background:#1a1a1a;animation:.8s ease-in-out infinite probe-pulse}.meter-probe-black.is-placed{border-width:2px}@keyframes probe-pulse{0%,to{opacity:1}50%{opacity:.55}}.meter-fuse-btn{border:1px solid var(--warn);min-height:44px;color:var(--warn);cursor:pointer;touch-action:none;background:#fdecea;border-radius:8px;padding:0 14px;font-weight:700;position:relative;overflow:hidden}.meter-fuse-btn-label{z-index:1;position:relative}.meter-fuse-progress{pointer-events:none;position:absolute;inset:0;overflow:hidden}.meter-fuse-progress-fill{transform-origin:0;background:#c6282847;animation-name:meter-fuse-fill;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;inset:0;transform:scaleX(0)}@keyframes meter-fuse-fill{to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.meter-fuse-progress-fill{animation:none;transform:scaleX(1)}}.probe-dev-workbench,.loop-builder{flex-direction:column;gap:12px;display:flex}.loop-workspace{position:relative}.loop-grid-bg{pointer-events:none}.loop-grid-dot{fill:var(--line)}.loop-hint{text-align:center;color:#6b6558;pointer-events:none;justify-content:center;align-items:center;margin:0;padding:0 28px;font-size:.9rem;font-weight:500;line-height:1.4;display:flex;position:absolute;inset:0}.loop-toast{color:var(--warn);border:1px solid var(--warn);background:#fdecea;border-radius:8px;margin:0;padding:8px 12px;font-size:.85rem}.loop-part-hit{pointer-events:fill}.loop-part-handle.is-armed{filter:drop-shadow(0 0 6px var(--accent))}.part-terminal-dot.is-armed .probe-ring{stroke-width:2.5px;animation:.8s ease-in-out infinite probe-pulse}.loop-terminal-hit{pointer-events:fill}.part-terminal-dot.is-target .probe-ring{stroke-width:3px;fill:#2ea35d59;animation:.8s ease-in-out infinite probe-pulse}.loop-wire-draft{stroke:var(--accent);stroke-width:3px;stroke-dasharray:5 5;opacity:.7;pointer-events:none}.loop-connection-hit{stroke:#0000;stroke-width:22px;pointer-events:stroke}.loop-connection.is-cut .wire-base{stroke-dasharray:3 3}.loop-connection.is-burned .wire-base{stroke:#2b2b2b;stroke-dasharray:2 4}.loop-ghost{pointer-events:none;background:var(--accent);color:#fff;opacity:.85;z-index:20;border-radius:8px;padding:6px 12px;font-size:.85rem;font-weight:700;position:fixed;transform:translate(-50%,-50%)}.loop-tray{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.loop-tray-btn{border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--ink);cursor:grab;touch-action:none;border-radius:8px;padding:0 14px;font-weight:600}.loop-tray-btn.is-armed{background:var(--accent);color:#fff;border-color:var(--accent);animation:.8s ease-in-out infinite probe-pulse}.loop-tray-count{background:var(--bg);color:#6b6558;border-radius:8px;align-items:center;min-height:44px;padding:0 12px;font-size:.9rem;font-weight:600;display:inline-flex}.loop-tray-empty{color:#6b6558;margin:0;font-size:.9rem}.loop-tidy-btn{border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--ink);cursor:pointer;border-radius:8px;margin-left:auto;padding:0 14px;font-weight:600}.loop-task{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.loop-task-prompt{margin:0;font-weight:600}.loop-task-done{color:var(--ok);margin:0;font-weight:700}.loop-task-success{justify-content:space-between;align-items:center;gap:12px;display:flex}.loop-task-success-text{color:var(--ok);margin:0;font-weight:600}.loop-task-next{min-width:88px;padding:0 14px}.loop-task-warning{color:var(--warn);border:1px solid var(--warn);background:#fdecea;border-radius:8px;margin:0;padding:8px 12px;font-weight:600}.loop-dev-workbench{flex-direction:column;gap:12px;display:flex}.loop-dev-workbench h3{margin:16px 0 4px;font-size:1rem}.seesaw-sim{flex-direction:column;gap:12px;display:flex}.seesaw-intro{color:#6b6558;margin:0;font-size:.9rem}.seesaw-beam-strip{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:4px 8px 0}.seesaw-beam{width:100%;max-height:150px;display:block}.beam-tilt{transition:transform .18s}@media (prefers-reduced-motion:reduce){.beam-tilt{transition:none}}.beam-bar{stroke:#6b6558;stroke-width:5px;stroke-linecap:round}.beam-weight-v{fill:#c9a53b;stroke:#7a6420;stroke-width:1.5px}.beam-weight-r{fill:#7d8790;stroke:#5a626a;stroke-width:1.5px}.beam-weight-label{fill:#fff;paint-order:stroke;stroke:#00000059;stroke-width:2px;font-size:13px;font-weight:700}.beam-fulcrum{fill:#c9c2b0;stroke:#8a8270;stroke-width:1.5px}.beam-ground{stroke:var(--line);stroke-width:2px;stroke-linecap:round}.beam-caption{letter-spacing:.06em;text-transform:uppercase;fill:#8a8270;font-size:10px;font-weight:600}.beam-caption-center{fill:#b0a895}.seesaw-load-label{fill:#6b6558;font-size:10px;font-weight:600}.seesaw-ammeter-reading{fill:var(--ink);font-size:13px;font-weight:700}.seesaw-ammeter-unit{letter-spacing:.08em;fill:#8a8270;font-size:7.5px;font-weight:600}.seesaw-ammeter.is-overload .ammeter-face{stroke:var(--warn);stroke-width:2.5px}.seesaw-ammeter.is-overload .seesaw-ammeter-reading{fill:var(--warn)}.seesaw-wire.is-burned .wire-base{stroke:#2b2b2b;stroke-dasharray:2 4}.seesaw-warning{color:var(--warn);border:1px solid var(--warn);background:#fdecea;border-radius:8px;margin:0;padding:8px 12px;font-size:.9rem;font-weight:600}.seesaw-burned-strip{flex-direction:column;gap:8px;display:flex}.seesaw-burned-text{margin:0}.seesaw-replace-btn{border:1px solid var(--warn);min-height:44px;color:var(--warn);background:var(--card);align-self:flex-start;font-weight:700}.seesaw-sliders{flex-direction:column;gap:10px;display:flex}.seesaw-slider{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px}.seesaw-slider-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.seesaw-slider-label{font-weight:700}.seesaw-slider-sub{color:#8a8270;font-size:.85rem;font-weight:500}.seesaw-slider-value{font-variant-numeric:tabular-nums;font-weight:700}.seesaw-slider input[type=range]{width:100%;min-height:44px;accent-color:var(--accent)}.seesaw-slider.is-locked{opacity:.6}.seesaw-slider-lock{color:#8a8270;margin:0;font-size:.8rem}.seesaw-task{background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.seesaw-task-prompt{margin:0;font-weight:600}.seesaw-task-done{color:var(--ok);margin:0;font-weight:700}.seesaw-predict{border:none;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.seesaw-predict-legend{color:#6b6558;margin-bottom:2px;padding:0;font-size:.85rem}.seesaw-predict-option{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:center;gap:10px;min-height:44px;padding:0 12px;font-weight:600;display:flex}.seesaw-predict-option input[type=radio]{width:20px;height:20px;accent-color:var(--accent)}.seesaw-predict-option.is-chosen{border-color:var(--accent);background:#fdf1e9}.seesaw-commit{align-self:flex-start;min-height:44px}.seesaw-commit:disabled{opacity:.5;cursor:not-allowed}.seesaw-observe-hint{color:var(--ink);margin:0;font-size:.95rem}.seesaw-explain{flex-direction:column;gap:8px;display:flex}.seesaw-verdict{margin:0;font-weight:700}.seesaw-verdict.is-correct{color:var(--ok)}.seesaw-verdict.is-incorrect{color:var(--warn)}.seesaw-observation{margin:0;font-weight:600}.seesaw-rv-case{background:var(--bg);border-left:4px solid var(--accent);border-radius:6px;margin:0;padding:8px 12px;font-size:.95rem}.seesaw-explain-actions{justify-content:flex-end;display:flex}.seesaw-next{min-width:88px;min-height:44px}.seesaw-dev-workbench{flex-direction:column;gap:12px;display:flex}.block-schematic{flex-direction:column;gap:10px;margin:0;display:flex}.block-schematic figcaption{color:#6b6558;font-size:.85rem}.block-schematic-pending p{color:#6b6558;margin:0;font-size:.9rem}.schematic-viewport .sim-viewport-svg{aspect-ratio:var(--schematic-aspect,1.333);min-height:320px}.schematic-art,.schematic-halo-layer,.schematic-trace-layer,.schematic-ants-layer,.schematic-hotspot-layer{pointer-events:none}@keyframes sch-ants-a{0%{stroke-dashoffset:0}to{stroke-dashoffset:-20px}}@keyframes sch-ants-b{0%{stroke-dashoffset:-10px}to{stroke-dashoffset:-30px}}.sch-ants-a{animation:1.2s linear infinite sch-ants-a}.sch-ants-b{animation:1.2s linear infinite sch-ants-b}@media (prefers-reduced-motion:reduce){.sch-ants-a,.sch-ants-b{animation:none}}.schematic-pip-dot{fill:#1a1a1a;stroke:#fff;stroke-width:2px}.schematic-pip-num{fill:#fff;font-family:system-ui,sans-serif;font-weight:700}.schematic-pip-active .schematic-pip-dot{fill:var(--accent)}.schematic-panel{flex-direction:column;gap:8px;display:flex}.schematic-status{min-height:1.4em;margin:0;font-size:.95rem}.schematic-status strong{color:var(--accent)}.schematic-status-count{color:#4a4438}.schematic-status-idle{color:#6b6558}.schematic-status-detail{color:#4a4438;font-weight:600}.schematic-status-warn{color:var(--warn);font-weight:600}.schematic-note{background:var(--card);border-left:4px solid var(--accent);border-radius:6px;margin:0;padding:8px 12px;font-size:.9rem}.schematic-actions{flex-wrap:wrap;gap:8px;display:flex}.schematic-step-btn,.schematic-clear-btn{border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--ink);cursor:pointer;border-radius:8px;padding:0 16px;font-weight:600}.schematic-clear-btn:disabled{opacity:.45;cursor:not-allowed}.schematic-net-list>summary{cursor:pointer;align-items:center;min-height:44px;font-size:.9rem;font-weight:600;display:flex}.schematic-net-list ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.schematic-net-btn{text-align:left;border:1px solid var(--line);background:var(--card);width:100%;min-height:44px;color:var(--ink);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:6px 12px;font-size:.85rem;display:flex}.schematic-net-btn.is-on{border-color:var(--accent);background:#fdf1e9;font-weight:700}.schematic-net-btn-count{text-align:center;color:#6b6558;font-variant-numeric:tabular-nums;background:#0000000f;border-radius:999px;flex:none;min-width:32px;padding:2px 6px;font-size:.8em}.schematic-legend{color:#6b6558;margin:0;font-size:.8rem}.schematic-dev-workbench{flex-direction:column;gap:12px;display:flex}.schematic-dev-controls{flex-wrap:wrap;gap:6px;display:flex}.schematic-dev-controls .schematic-net-btn{flex:0 auto;width:auto}
