:root{--circuit-bg:var(--rs-surface);--circuit-panel:var(--rs-panel);--circuit-panel-strong:var(--rs-panel-strong);--circuit-line:var(--rs-line);--circuit-line-strong:var(--rs-line-strong);--circuit-text:var(--rs-text);--circuit-muted:var(--rs-muted);--circuit-soft:var(--rs-soft);--circuit-blue:var(--rs-blue);--circuit-blue-dark:#075bd8;--circuit-green:var(--rs-green);--circuit-amber:var(--rs-amber);--circuit-red:var(--rs-red);--circuit-shadow:var(--rs-shadow);--circuit-value-font:var(--rs-value-font);--shell-card-toggle-columns:minmax(0, 1fr) 14px;--shell-card-toggle-justify:space-between;--shell-card-toggle-padding-end:10px;--shell-card-toggle-hover-background:#f3f7fc;--shell-card-toggle-color:var(--circuit-text);--shell-card-title-flex:0 1 auto;--shell-card-title-min-width:auto;--shell-card-title-line-height:1.2;--shell-card-meta-flex:0 0 auto;--shell-card-meta-max-width:118px;--shell-card-meta-overflow:visible;--shell-card-meta-padding:2px 7px;--shell-card-meta-border:1px solid #d7dee9;--shell-card-meta-radius:999px;--shell-card-meta-background:#fff;--shell-card-meta-color:var(--circuit-muted);--shell-card-meta-text-overflow:clip;--shell-card-meta-white-space:normal;--shell-card-meta-line-height:1.2;--shell-card-chevron-idle-border:medium none #657183;--shell-card-chevron-transition:all 0s ease 0s;--shell-card-content-display:block;--shell-card-content-rows:none;--shell-card-content-transition:all 0s ease 0s;--shell-card-content-collapsed-display:none;--shell-card-content-collapsed-rows:none;--shell-card-inner-overflow:visible;--shell-card-inner-collapsed-padding-bottom:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--circuit-text);background:var(--circuit-bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#circuit-lab-app{width:100%;height:100%;margin:0}body{background:#101316;overflow:hidden}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.55}html.circuit-material-symbols-fallback .material-symbols-rounded{justify-content:center;align-items:center;line-height:1;overflow:hidden;font-family:ui-sans-serif,system-ui,sans-serif!important;font-size:0!important;display:inline-flex!important}html.circuit-material-symbols-fallback .material-symbols-rounded:before{box-sizing:border-box;content:"";border:1.5px solid;border-radius:3px;width:.875rem;height:.875rem;display:block}html.circuit-material-symbols-fallback .material-symbols-rounded.app-icon--page:before{border-radius:50%;width:1rem;height:1rem}#circuit-lab-app{grid-template-rows:auto minmax(0,1fr);display:grid}.circuit-shell{background-color:#12171a;background-image:linear-gradient(90deg,#ffffff0a 0 1px,#0000 1px 100%),linear-gradient(0deg,#ffffff08 0 1px,#0000 1px 100%),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;grid-template-columns:minmax(270px,330px) minmax(520px,1fr) minmax(320px,400px);min-height:0;display:grid}.circuit-panel{background:#11171a;border-color:#27323a;min-height:0;overflow:auto}.circuit-panel--left{border-right:1px solid #27323a}.circuit-panel--right{border-left:1px solid #27323a}.circuit-workflow-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px 10px 0;display:grid}.circuit-workflow-tabs button{color:#aebbc4;text-transform:uppercase;background:#101619;border:1px solid #34424b;border-radius:4px;min-height:34px;font-size:.7rem;font-weight:780}.circuit-field{color:#bdc8d0;gap:5px;min-width:0;font-size:.72rem;font-weight:700;display:grid}.circuit-field input,.circuit-field select,#circuit-source-file,.circuit-json-editor{color:#f8fafc;background:#0d1316;border:1px solid #3b4a54;border-radius:4px;outline:none;width:100%;min-width:0;font-size:.78rem;font-weight:620}.circuit-field input,#circuit-source-file{height:34px}.circuit-json-editor{resize:vertical;min-height:190px;padding:9px;font-family:Cascadia Mono,SFMono-Regular,ui-monospace,monospace;line-height:1.42}.circuit-field input{padding:0 9px}#circuit-source-file{padding:0 8px}.circuit-field input:focus,#circuit-source-file:focus,button:focus-visible{outline-offset:2px;outline:2px solid #14b8a6b8}.circuit-readout{color:#aebbc4;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;margin:0;font-size:.72rem;display:grid}.circuit-readout div{display:contents}.circuit-readout dd{color:#f8fafc;font-variant-numeric:tabular-nums;margin:0;font-weight:730}.starter-list,.hardware-list,.circuit-item-list,.circuit-test-list,.hardware-library-tools,.hardware-library-group{gap:8px;display:grid}.hardware-library-tools{border-bottom:1px solid #2f3b43;padding-bottom:2px}.hardware-filter-field{color:#9baab4;text-transform:uppercase;gap:4px;font-size:.68rem;font-weight:760;display:grid}.hardware-filter-field input,.hardware-filter-field select{color:#f8fafc;min-width:0;min-height:30px;font:inherit;text-transform:none;background:#0d1316;border:1px solid #34444c;border-radius:4px;font-size:.74rem}.hardware-library-tools span,.hardware-empty{color:#9baab4;margin:0;font-size:.7rem;font-weight:650}.hardware-filter-summary{line-height:1.35}.hardware-library-group>strong{color:#d7e2ea;text-transform:uppercase;font-size:.72rem;font-weight:800}.starter-card,.hardware-item,.circuit-item,.test-item{color:#e7eef3;background:#101619;border:1px solid #2f3b43;border-radius:5px;gap:6px;min-width:0;padding:9px;display:grid}.hardware-item{cursor:grab;grid-template-columns:12px minmax(0,1fr) auto;align-items:center}.hardware-item--custom{background:#0d1b20;border-color:#3f5f69}.hardware-item__actions{gap:5px;display:grid}.hardware-item:active{cursor:grabbing}.starter-card strong,.hardware-item strong,.circuit-item strong,.test-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:760;overflow:hidden}.starter-card span,.hardware-item span,.circuit-item span,.test-item span,.bringup-list li{color:#9baab4;font-size:.7rem;font-weight:620;line-height:1.32}.hardware-swatch{border:1px solid #ffffff4d;border-radius:50%;width:12px;height:12px}.starter-card button,.hardware-item button,.hardware-filter-clear,.circuit-item button,.circuit-primary-button,.circuit-danger-button,.circuit-rotation-actions button{color:#f8fafc;background:#172126;border:1px solid #46545f;border-radius:4px;min-height:32px;font-size:.73rem;font-weight:760}.hardware-filter-clear{background:#223039;border-color:#5d7282}.circuit-primary-button{background:#0f766e;border-color:#1eb7a6}.circuit-danger-button{color:#ffd5d0;background:#351719;border-color:#9a4c45}.circuit-item{cursor:pointer}.circuit-item.is-selected{border-color:#21b6a8;box-shadow:0 0 0 1px #14b8a652}.test-item.is-selected{border-color:#f59e0b;box-shadow:0 0 0 1px #f59e0b59}.circuit-item__meta{flex-wrap:wrap;gap:5px;display:flex}.circuit-item__meta span{background:#0c1114;border:1px solid #35424a;border-radius:4px;padding:2px 5px}.circuit-stage{background:radial-gradient(circle at 50% 45%,#f6bc5029,#0000 45%),#24201b;min-width:0;min-height:0;position:relative;overflow:hidden}.circuit-bench{touch-action:none;background-color:#eee9dd;background-image:linear-gradient(90deg,#5c40231f 0 1px,#0000 1px 100%),linear-gradient(0deg,#5c40231f 0 1px,#0000 1px 100%),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:30px 30px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;width:100%;height:100%;display:block}.circuit-mutation-confirmation{z-index:8;color:#202936;background:#fffaf0;border:1px solid #b45309;border-left:4px solid #dc2626;border-radius:6px;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(430px,100% - 32px);max-height:min(48vh,360px);padding:14px;display:grid;position:absolute;bottom:62px;left:16px;overflow:hidden;box-shadow:0 12px 28px #0f172a3d}.circuit-mutation-confirmation[hidden]{display:none}.circuit-mutation-confirmation p,.circuit-mutation-confirmation ul{margin:8px 0}.circuit-mutation-confirmation__scroll{scrollbar-gutter:stable;min-height:0;padding-right:4px;overflow:auto}.circuit-mutation-confirmation__endpoints{font-family:var(--circuit-value-font,monospace);font-size:.75rem;line-height:1.45}.circuit-mutation-confirmation__actions,.test-item__actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.circuit-mutation-confirmation__actions{background:#fffaf0;border-top:1px solid #e4c49b;padding-top:10px}.circuit-precision-hud{z-index:41;color:#172033;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#fffffff2;border:1px solid #94a3b8;border-left:4px solid #0f766e;border-radius:5px;width:min(420px,100% - 28px);max-height:min(58vh,480px);padding:12px;position:absolute;bottom:66px;left:14px;overflow:auto;box-shadow:0 14px 34px #0f172a38}.circuit-precision-hud__chooser,.circuit-precision-hud__zoom-actions,.circuit-precision-hud__chooser button,.circuit-precision-hud__zoom-actions button{pointer-events:auto}.circuit-precision-hud[hidden]{display:none}.circuit-precision-hud[data-invalid=true]{border-left-color:#dc2626}.circuit-precision-hud__header{justify-content:space-between;align-items:start;gap:10px;display:flex}.circuit-precision-hud__header strong{margin-top:2px;font-size:.86rem;line-height:1.3;display:block}.circuit-precision-hud__eyebrow{color:#64748b;letter-spacing:.08em;text-transform:uppercase;font-size:.65rem;font-weight:750;display:block}.circuit-precision-hud__state{border:1px solid;border-radius:999px;flex:none;padding:3px 7px;font-size:.68rem;font-weight:800}.circuit-precision-hud__state.is-valid{color:#0f766e}.circuit-precision-hud__state.is-invalid{color:#b91c1c}.circuit-precision-hud__body{grid-template-columns:112px minmax(0,1fr);gap:12px;margin-top:10px;display:grid}.circuit-precision-hud__cluster{width:112px;height:112px;display:block}.circuit-precision-hud__cluster rect{fill:#f8fafc;stroke:#cbd5e1}.circuit-precision-hud__cluster circle{fill:#d9a441;stroke:#72561d;stroke-width:1px}.circuit-precision-hud__cluster circle.is-target{fill:#14b8a6;stroke:#115e59;stroke-width:1.8px}.circuit-precision-hud__cluster path{fill:none;stroke:#0f172a;stroke-width:1.2px}.circuit-precision-hud dl{gap:3px;margin:0;font-size:.68rem;display:grid}.circuit-precision-hud dl>div{grid-template-columns:minmax(70px,.8fr) minmax(0,1.5fr);gap:6px;display:grid}.circuit-precision-hud dt{color:#64748b}.circuit-precision-hud dd{overflow-wrap:anywhere;min-width:0;font-family:var(--circuit-value-font,monospace);font-variant-numeric:tabular-nums;margin:0}.circuit-precision-hud__reason{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;margin:10px 0 0;padding:8px;font-size:.74rem;line-height:1.4}.circuit-precision-hud__chooser{gap:7px;margin-top:10px;display:grid}.circuit-precision-hud__chooser>strong{font-size:.74rem}.circuit-precision-hud__chooser button,.circuit-precision-hud__zoom-actions button{color:#172033;text-align:left;background:#fff;border:1px solid #94a3b8;border-radius:4px;min-width:44px;min-height:44px;padding:6px 9px}.circuit-precision-hud__chooser button:hover,.circuit-precision-hud__chooser button:focus-visible,.circuit-precision-hud__zoom-actions button:hover,.circuit-precision-hud__zoom-actions button:focus-visible{outline-offset:1px;border-color:#0f766e;outline:2px solid #0f766e42}.circuit-precision-hud__chooser button span,.circuit-precision-hud__chooser button small{display:block}.circuit-precision-hud__chooser button small{color:#64748b;font-family:var(--circuit-value-font,monospace);margin-top:2px}.circuit-precision-hud__zoom-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}@media (width<=820px){.circuit-precision-hud{width:min(390px,100% - 20px);bottom:62px;left:10px}.circuit-precision-hud__body{grid-template-columns:92px minmax(0,1fr)}.circuit-precision-hud__cluster{width:92px;height:92px}}.circuit-bench.is-pan-ready{cursor:grab}.circuit-bench.is-panning,.circuit-bench.is-panning *{cursor:grabbing}.bench-pan-surface{cursor:inherit}.bench-label{fill:#25201a;pointer-events:none;font-size:11px;font-weight:760}.bench-subtle-label{fill:#6f6a60;pointer-events:none;font-size:8px;font-weight:650}.bench-component{cursor:grab}.bench-component:active{cursor:grabbing}.bench-component.is-selected .component-body{stroke:#0ea5a4;stroke-width:3px}.bench-component.is-highlighted .component-body{stroke:#ef4444;stroke-width:3.2px}.bench-component.is-highlighted .photoreal-component-image{filter:drop-shadow(0 0 6px #ef4444cc)drop-shadow(0 7px 9px #0f172a33)}.component-body{stroke:#0000004d;stroke-width:1.5px;filter:drop-shadow(0 8px 10px #00000040)}.component-hitbox{fill:#0000;stroke:#0000;pointer-events:all}.photoreal-component-image{pointer-events:none;filter:drop-shadow(0 7px 9px #0f172a33)}.photoreal-state-overlay,.component-artwork text,.component-artwork line:not(.part-lead):not(.motor-shaft),.component-artwork rect:not(.resize-handle),.component-artwork circle:not(.terminal):not(.breadboard-hole),.component-artwork path{pointer-events:none}.component-artwork rect.component-hitbox,.component-artwork rect.component-body{pointer-events:all}.custom-component-svg,.custom-component-svg *{pointer-events:none}.component-print{fill:#f8fafc;letter-spacing:0;pointer-events:none;font-size:6px;font-weight:800}.component-print--muted{fill:#77716a}.component-print--dark{fill:#263238}.component-print--light{fill:#ecfeff}.component-print--red{fill:#dc2626}.breadboard-well{fill:#fffdf4;stroke:#dfd8ca;stroke-width:1px}.usb-port{fill:#42444b;stroke:#c6cbd3;stroke-width:1.4px}.barrel-jack{fill:#15171c;stroke:#050608;stroke-width:1px}.controller-chip{fill:#1e1f24;stroke:#090a0d;stroke-width:1px}.silver-part,.esp-shield,.ultrasonic-can{fill:#b9bec7;stroke:#747b86;stroke-width:1px}.reset-button,.button-cap{fill:#e9edf2;stroke:#7b8491;stroke-width:1px}.button-cap--pressed{fill:#cbd5e1;stroke:#475569}.antenna-zone{fill:#d9b667;stroke:#9f7b28;stroke-width:.8px}.printed-pad{fill:#f8d76a;stroke:#3e3420;stroke-width:.45px}.printed-pad--power{fill:#ef4444}.printed-pad--ground{fill:#1f2937}.servo-tab,.servo-gearbox{fill:#1b3458;stroke:#10213b;stroke-width:1px}.servo-horn{fill:#f1f5f9;stroke:#8b949e;stroke-width:1.2px}.servo-screw{fill:#777f89;stroke:#3f444b;stroke-width:.8px}.servo-arm{stroke:#dbe3ea;stroke-width:3px;stroke-linecap:round}.servo-pigtail{stroke-width:2.3px;stroke-linecap:round}.servo-pigtail--signal{stroke:#f59e0b}.servo-pigtail--power{stroke:#dc2626}.servo-pigtail--ground{stroke:#111827}.terminal-block{fill:#1f2937;stroke:#080b10;stroke-width:.8px}.terminal-block--red{fill:#dc2626}.terminal-block--black{fill:#111827}.terminal-block--green{fill:#22c55e;stroke:#14532d}.battery-highlight{fill:#fff3}.power-switch-slot{fill:#151b24;stroke:#59616c;stroke-width:.8px}.power-switch{fill:#0c1016;stroke:#59616c;stroke-width:.8px}.power-switch--on{fill:#16a34a}.power-switch--off{fill:#475569}.power-indicator{stroke:#0f172a;stroke-width:.4px}.power-indicator--on{fill:#bbf7d0}.power-indicator--off{fill:#64748b}.part-lead,.button-leg,.motor-shaft{fill:none;stroke:#8d949e;stroke-width:2px;stroke-linecap:round}.led-lens{opacity:.86;stroke:#991b1b;stroke-width:1px}.led-glint{stroke:#fee2e2;stroke-width:1.4px;stroke-linecap:round}.led-flat{stroke:#7f1d1d;stroke-width:1.2px}.resistor-body{fill:#d9b676;stroke:#8b6637;stroke-width:1px}.resistor-band--red{fill:#b91c1c}.resistor-band--brown{fill:#7c2d12}.resistor-band--gold{fill:#c08b22}.capacitor-can{stroke:#0f172a;stroke-width:1px}.capacitor-negative-stripe{fill:#e2e8f0;opacity:.86}.ultrasonic-mesh{fill:#6b7280;stroke:#343941;stroke-width:.8px}.driver-heatsink{fill:#1f2937;stroke:#0f172a;stroke-width:1px}.driver-fin{stroke:#94a3b8;stroke-width:.8px}.driver-capacitor{fill:#1f2937;stroke:#cbd5e1;stroke-width:.8px}.motor-can{stroke:#394656;stroke-width:1.2px}.motor-endcap,.motor-core,.motor-terminal{fill:#374151;stroke:#111827;stroke-width:1px}.potentiometer-body,.potentiometer-knob,.switch-slot,.switch-thumb{stroke:#111827;stroke-width:.9px}.potentiometer-knob{fill:#d6d3d1}.potentiometer-index{stroke:#111827;stroke-width:1.4px;stroke-linecap:round}.switch-slot{fill:#111827}.switch-thumb{fill:#e2e8f0}.breadboard-hole{cursor:crosshair;fill:#d6d0c3;stroke:#b9b0a2;stroke-width:.4px}.bench-layer--terminals,.bench-terminal-overlay,.bench-terminal-overlay *{pointer-events:none}.terminal-glyph{pointer-events:none;color:#475569}.terminal-glyph[data-kind=power]{color:#dc2626}.terminal-glyph[data-kind=ground]{color:#111827}.terminal-glyph[data-kind=signal]{color:#d97706}.terminal-glyph__body,.terminal-glyph__outline{fill:color-mix(in srgb, currentColor 72%, #fff);stroke:#172033;stroke-width:.58px;vector-effect:non-scaling-stroke}.terminal-glyph__outline{fill:#0000}.terminal-glyph__aperture{fill:#f8fafc;stroke:#172033;stroke-width:.45px;vector-effect:non-scaling-stroke}.terminal-glyph__pin{fill:#d6a84b;stroke:#72561d;stroke-width:.48px;vector-effect:non-scaling-stroke}.terminal-glyph__metal{fill:#cbd5e1;stroke:#475569;stroke-width:.55px;vector-effect:non-scaling-stroke}.terminal-glyph__slot,.terminal-glyph__lead{fill:none;stroke:#475569;stroke-width:.8px;stroke-linecap:round;vector-effect:non-scaling-stroke}.terminal-glyph.is-highlighted .terminal-glyph__body,.terminal-glyph.is-highlighted .terminal-glyph__outline,.terminal-glyph.is-highlighted .terminal-glyph__metal{stroke:#dc2626;stroke-width:2.2px}.terminal{cursor:crosshair;stroke:#111827;stroke-width:1px}.terminal[data-kind=power],.breadboard-hole[data-kind=power]{fill:#dc2626}.terminal[data-kind=ground],.breadboard-hole[data-kind=ground]{fill:#111827}.terminal[data-kind=signal]{fill:#f59e0b}.terminal[data-kind=passive],.terminal[data-kind=load],.breadboard-hole[data-kind=passive]{fill:#64748b}.terminal.is-pending,.breadboard-hole.is-pending{stroke:#0ea5a4;stroke-width:3px}.terminal.is-highlighted,.breadboard-hole.is-highlighted{stroke:#ef4444;stroke-width:3px}.terminal.is-snap-target,.breadboard-hole.is-snap-target{stroke:#14b8a6;stroke-width:3.2px;filter:drop-shadow(0 0 5px #14b8a6b3)}.terminal:focus-visible,.breadboard-hole:focus-visible{stroke:#1268e8;stroke-width:3.4px;filter:drop-shadow(0 0 5px #1268e899);outline:none}.bench-layer--transient,.bench-layer--transient *{pointer-events:none}.bench-component--ghost{opacity:.62;pointer-events:none;filter:saturate(.75)drop-shadow(0 0 5px #0ea5a46b)}.terminal-acquisition-halo{fill:#0ea5a417;stroke:#0f766e;stroke-width:1.5px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.terminal-exact-crosshair{fill:none;stroke:#0f172a;stroke-width:1.6px;stroke-linecap:square;vector-effect:non-scaling-stroke}.bench-targeting-overlay.is-invalid .terminal-acquisition-halo{fill:#dc262614;stroke:#dc2626}.bench-targeting-overlay.is-invalid .terminal-exact-crosshair{stroke:#991b1b}.bench-targeting-overlay.is-ambiguous .terminal-acquisition-halo{fill:#d977061a;stroke:#b45309;stroke-dasharray:2 2}.terminal-ambiguity-marker{fill:#fff7ed;stroke:#b45309;stroke-width:1.5px;vector-effect:non-scaling-stroke}.selection-overlay{pointer-events:none}.selection-box{fill:#14b8a614;stroke:#0ea5a4;stroke-dasharray:5 4;stroke-width:1.6px;pointer-events:none}.resize-handle{fill:#0ea5a4;stroke:#ecfeff;stroke-width:1.5px;cursor:nwse-resize;pointer-events:all}.selection-size-label{fill:#155e75;pointer-events:none;font-size:10px;font-weight:800}.wire-path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:4px;cursor:pointer;filter:drop-shadow(0 2px 1px #00000038)}.wire-path.is-selected{stroke-width:7px}.wire-path.is-highlighted{stroke:#ef4444;stroke-width:7px}.wire-path--bridge{stroke-width:3px}.wire-path--preview{stroke-dasharray:6 5;opacity:.82;pointer-events:none}.wire-path--stale-insertion{stroke:#dc2626;stroke-width:3.5px;stroke-dasharray:8 5;opacity:.9;pointer-events:none}.wire-end{pointer-events:all;stroke:#f8fafc;stroke-width:1.1px}.wire-end--bridge{stroke-width:.7px}.wire-end--dupont{filter:drop-shadow(0 1px 1px #00000047)}.wire-end--ferrule{rx:1;fill:#cbd5e1}.wire-end--servo{fill:#111827}.wire-end--solder{fill:#94a3b8}.wire-end--preview{fill:#0ea5a4;opacity:.8;pointer-events:none}.bench-connection-fittings{pointer-events:none}.physical-port-housing{pointer-events:none;fill:#0f172a14;stroke:#0f172a94;stroke-width:.42px;vector-effect:non-scaling-stroke}.physical-port-housing.is-keyed{stroke:#0f766e;stroke-width:.65px}.formed-component-lead{pointer-events:none;fill:none;stroke:#a7b0bb;stroke-width:.85px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.hardware-geometry-class{color:var(--muted-text,#64748b);letter-spacing:.02em;text-transform:uppercase;margin-top:2px;font-size:.68rem;font-weight:700;display:block}.hardware-geometry-class--approximate{color:#b42318}.connection-fitting{pointer-events:none;filter:drop-shadow(0 1px 1px #00000047)}.connection-fitting__plug,.connection-fitting__metal,.connection-fitting__socket-fill{stroke:#f8fafc;stroke-width:.55px}.connection-fitting__socket-fill{fill:#111827}.connection-fitting__inserted-lead{opacity:.9}.connection-fitting.is-highlighted .connection-fitting__plug,.connection-fitting.is-highlighted .connection-fitting__metal,.connection-fitting.is-highlighted .connection-fitting__socket-fill{stroke:#ef4444;stroke-width:1.6px}.circuit-floating{color:#27231d;background:#fffcf3eb;border:1px solid #0000001f;border-radius:6px;align-items:center;gap:8px;max-width:min(560px,100% - 28px);min-height:40px;padding:8px 10px;font-size:.76rem;font-weight:720;display:flex;position:absolute;bottom:14px;left:14px;box-shadow:0 16px 36px #00000038}.circuit-floating--view{min-height:38px;padding:6px;inset:14px 14px auto auto}.circuit-floating span:not(.app-icon){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.circuit-floating button{color:#312a20;background:#fff8e7;border:1px solid #b7ab94;border-radius:4px;flex:0 0 32px;width:32px;height:32px}.circuit-floating output{text-align:center;font-variant-numeric:tabular-nums;flex:0 0 50px;min-width:50px;padding:0 4px;font-size:.74rem}.circuit-selection-summary{color:#b9c6cf;border:1px dashed #44525d;border-radius:4px;min-height:38px;margin:0;padding:8px;font-size:.74rem;font-weight:650;line-height:1.35}.circuit-axis-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.circuit-details{background:#101619;border:1px solid #303b43;border-radius:5px;gap:8px;padding:8px;display:grid}.circuit-details summary{cursor:pointer;color:#dbeafe;font-size:.72rem;font-weight:780}.circuit-rotation-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.circuit-rotation-actions button{justify-content:center;align-items:center;gap:5px;display:inline-flex}.circuit-inline-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.test-item[data-severity=info]{border-color:#35505d}.bringup-list{margin:0;padding-left:28px}.bringup-list li{padding:2px 0}.circuit-source-preview{color:#dfe8ee;tab-size:2;background:#0b1013;border:1px solid #2e3b43;border-radius:5px;max-height:280px;margin:0;padding:10px;font-family:Cascadia Code,Consolas,SFMono-Regular,monospace;font-size:.72rem;line-height:1.42;overflow:auto}.circuit-status-list{gap:6px;display:grid}.circuit-status-row{color:#aebbc4;background:#101619;border:1px solid #303b43;border-radius:4px;grid-template-columns:minmax(0,1fr) minmax(80px,auto);align-items:start;gap:8px;padding:7px;font-size:.7rem;line-height:1.35;display:grid}.circuit-status-row strong{color:#f8fafc;text-align:right;font-size:.7rem}.circuit-status-row[data-status=blocked],.circuit-status-row[data-status=error]{border-color:#7f2d2d}.circuit-status-row[data-status=ready],.circuit-status-row[data-status=robot-ready]{border-color:#0f766e}.circuit-status-row[data-status=review-required],.circuit-status-row[data-status=warning],.circuit-status-row[data-status=ready-with-warnings]{border-color:#a16207}.circuit-table-stack{gap:8px;display:grid}.circuit-table-stack h3{color:#e7eef3;text-transform:uppercase;margin:6px 0 0;font-size:.72rem;font-weight:820}.circuit-table-scroll{border:1px solid #303b43;border-radius:4px;overflow-x:auto}.circuit-data-table{border-collapse:collapse;background:#0d1316;width:100%;min-width:760px;font-size:.68rem}.circuit-data-table th,.circuit-data-table td{color:#b9c5ce;text-align:left;vertical-align:top;border-bottom:1px solid #253039;max-width:220px;padding:6px 8px}.circuit-data-table th{color:#f8fafc;background:#182126;font-weight:780;position:sticky;top:0}.circuit-empty-note{color:#94a3b8;margin:0;padding:9px;font-size:.72rem}body{background:var(--circuit-bg);color:var(--circuit-text)}body,input,select,textarea,button,output,dd,strong{font-variant-numeric:tabular-nums}#circuit-lab-app{background:var(--circuit-bg);min-height:100vh}.shell-header--circuits .shell-header__brand{flex-basis:560px}.circuit-shell{background:var(--circuit-bg);background-image:none;grid-template-columns:320px minmax(520px,1fr) 360px}.circuit-panel{background:var(--circuit-panel);color:var(--circuit-text);border-color:var(--circuit-line)}.circuit-panel--left{border-right-color:var(--circuit-line)}.circuit-panel--right{border-left-color:var(--circuit-line)}.circuit-panel--right .circuit-section[hidden]{display:none}.circuit-section{margin:10px}.circuit-workflow-tabs{background:var(--circuit-panel);gap:6px;padding:10px 10px 0}.circuit-workflow-tabs button{border-color:var(--circuit-line);background:var(--circuit-panel-strong);color:#263241;text-transform:none;border-radius:4px;min-height:32px;font-size:.72rem;font-weight:650}.circuit-workflow-tabs button:hover{background:#eef5ff;border-color:#97a7bd}.circuit-workflow-tabs button.is-active{color:var(--circuit-blue-dark);background:#eaf2ff;border-color:#6aa2ff}.collapsible-card,.shell-card{border:1px solid var(--circuit-line);background:var(--circuit-panel-strong);box-shadow:none;border-radius:4px;overflow:hidden}.circuit-field{color:#2d3643;gap:5px;font-size:.74rem;font-weight:500}.circuit-field input,#circuit-source-file,.circuit-json-editor{color:#1c2430;background:#fbfcfe;border-color:#c4cedc;border-radius:4px;font-size:.76rem;font-weight:500}.circuit-field input,.circuit-field select,#circuit-source-file{min-height:34px}.circuit-field input:focus,.circuit-field select:focus,#circuit-source-file:focus,.circuit-json-editor:focus,button:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #1268e8b8}.circuit-readout,.starter-card span,.hardware-item span,.circuit-item span,.test-item span,.bringup-list li,.circuit-selection-summary,.circuit-empty-note{color:var(--circuit-muted)}.circuit-readout dd,.circuit-status-row strong{color:#202936;font-family:var(--circuit-value-font);font-weight:500}.starter-card strong,.hardware-item strong,.circuit-item strong,.test-item strong{color:#202936;font-family:inherit;font-weight:650}.starter-card,.hardware-item,.circuit-item,.test-item,.circuit-details,.circuit-status-row{color:#202936;background:#fff;border-color:#d7dde7;border-radius:4px}.hardware-item:hover,.circuit-item:hover,.starter-card:hover{background:#f8fbff;border-color:#97a7bd}.starter-card button,.hardware-item button,.circuit-item button,.circuit-rotation-actions button,#save-circuit-binding,#export-circuit-build-guide{color:#202936;box-shadow:none;background:#fbfcfe;border-color:#c2ccd9;border-radius:4px;font-size:.72rem;font-weight:600}.starter-card button:hover:not(:disabled),.hardware-item button:hover:not(:disabled),.circuit-item button:hover:not(:disabled),.circuit-rotation-actions button:hover:not(:disabled),#save-circuit-binding:hover:not(:disabled),#export-circuit-build-guide:hover:not(:disabled){background:#eef5ff;border-color:#97a7bd}.circuit-primary-button{background:linear-gradient(180deg, var(--circuit-blue), var(--circuit-blue-dark));color:#fff;border-color:#4f8df7;border-radius:4px;font-weight:600;box-shadow:inset 0 1px #ffffff3d}.circuit-danger-button{color:var(--circuit-red);background:#fff7f7;border-color:#efb3b1;border-radius:4px;font-weight:600}.circuit-item.is-selected{box-shadow:inset 3px 0 0 var(--circuit-blue);background:#eaf2ff;border-color:#6aa2ff}.test-item.is-selected{box-shadow:inset 3px 0 0 var(--circuit-amber);background:#fff8ea;border-color:#d8a447}.circuit-item__meta span{color:var(--circuit-muted);background:#f8fafc;border-color:#d7dee9}.test-item[data-severity=error]{background:#fff7f7;border-color:#efb3b1}.test-item[data-severity=warning]{background:#fff8ea;border-color:#efd296}.test-item[data-severity=info]{background:#f8fafc;border-color:#cbd6e4}.test-item{gap:7px;padding:12px}.test-item .test-item__title{color:#141922;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;font-size:.84rem;font-weight:760;line-height:1.25;display:block;overflow:visible}.test-item .test-item__message,.test-item .test-item__fix{color:#253244;max-width:58ch;font-size:.82rem;font-weight:500;line-height:1.45;display:block}.test-item .test-item__fix{color:#344154}.bringup-list{counter-reset:bringup-step;gap:10px;margin:0;padding:0;list-style:none;display:grid}.collapsible-card.is-collapsed .collapsible-card__inner.bringup-list{padding-bottom:0}.bringup-list li{color:#253244;counter-increment:bringup-step;grid-template-columns:1.45rem minmax(0,1fr);align-items:start;gap:8px;padding:0;font-size:.82rem;font-weight:500;line-height:1.45;display:grid}.bringup-list li:before{content:counter(bringup-step) ".";color:#5b6879;font-variant-numeric:tabular-nums;text-align:right;font-weight:650}.circuit-stage{background:radial-gradient(circle at 50% 42%,#ffffffc2,#0000 33%),linear-gradient(#f8fafc,#edf2f7),#edf2f7}.circuit-bench{background-color:#fbf6ea;background-image:linear-gradient(90deg,#cbd5e15c 1px,#0000 1px),linear-gradient(0deg,#cbd5e15c 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:30px 30px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;box-shadow:inset 0 0 0 1px #c9d0db}.circuit-floating{box-shadow:var(--circuit-shadow);color:#202936;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border-color:#cbd4e0;border-radius:4px}.circuit-floating button{color:#101822;background:#fff;border-color:#c7ced9;border-radius:4px}.circuit-floating button:hover:not(:disabled){background:#eef5ff;border-color:#97a7bd}.circuit-momentary{color:#202936;background:#fff;border:1px solid #c7ced9;border-radius:4px;width:100%;min-height:34px;font-weight:600}.circuit-momentary.is-active,.circuit-momentary:active{background:#e6f0ff;border-color:#3b76cf;box-shadow:inset 0 0 0 2px #4f8df733}.circuit-floating output,.selection-size-label,.circuit-source-preview,.circuit-json-editor,.circuit-data-table td{font-family:var(--circuit-value-font)}.circuit-selection-summary{background:#f8fafc;border-color:#cbd6e4;border-radius:4px;font-weight:500}.circuit-details{padding:8px}.circuit-details summary{color:#263241;font-weight:650}.circuit-source-preview{color:#dfe8ee;background:#0b1016;border-color:#172231;border-radius:4px}.circuit-status-row{color:var(--circuit-muted);border-left:3px solid #cbd6e4}.circuit-status-row[data-status=blocked],.circuit-status-row[data-status=error]{border-color:#efb3b1;border-left-color:var(--circuit-red);background:#fff7f7}.circuit-status-row[data-status=ready],.circuit-status-row[data-status=robot-ready]{border-color:#bfe3d5;border-left-color:var(--circuit-green);background:#f1fbf7}.circuit-status-row[data-status=review-required],.circuit-status-row[data-status=warning],.circuit-status-row[data-status=ready-with-warnings]{border-color:#efd296;border-left-color:var(--circuit-amber);background:#fff8ea}.circuit-table-stack h3{color:#202936;text-transform:none;font-size:.72rem;font-weight:800}.circuit-table-scroll{border-color:var(--circuit-line);border-radius:4px}.circuit-data-table{background:#fff}.circuit-data-table th,.circuit-data-table td{color:#263241;border-bottom-color:#e6ebf2}.circuit-data-table th{color:var(--circuit-muted);background:#f8fafc;font-weight:800}.circuit-empty-note{background:#f8fafc;font-weight:500}@media (width<=1260px){.circuit-shell{grid-template-columns:300px minmax(460px,1fr) 330px}.circuit-panel--left{max-width:none}}@media (width<=800px) and (resolution>=1.5x){.shell-header--circuits{grid-template-rows:44px 44px;grid-template-columns:max-content max-content;align-content:start;align-items:center;gap:4px;min-height:96px;max-height:96px;padding:4px 6px;display:grid;overflow:auto hidden}.shell-header--circuits .shell-header__brand{z-index:2;background:var(--shell-header-bg);flex-wrap:nowrap;flex:0 0 calc(100vw - 12px);grid-area:1/1/auto/span 2;width:calc(100vw - 12px);min-width:0;position:sticky;left:0}.shell-header--circuits .shell-header__pages{flex-wrap:nowrap}.shell-header--circuits .shell-header__page-link,.shell-header--circuits .shell-header__actions .shell-header__button{width:44px;min-width:44px;min-height:44px;padding:0;font-size:0}.shell-header--circuits .shell-header__actions{grid-area:2/2}.shell-header--circuits .shell-header__modes{grid-area:2/1}.shell-header--circuits .shell-header__status{flex:auto;min-width:0}}.circuit-sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:fixed!important;overflow:hidden!important}.circuit-shell{grid-template-columns:300px minmax(560px,1fr) 330px;position:relative}.circuit-drawer-trigger,.circuit-drawer-header{display:none}.circuit-workflow-panel{min-width:0}.circuit-field small{color:var(--circuit-muted);font-size:.68rem;font-weight:500;line-height:1.35}.circuit-bench:focus-visible{outline-offset:-4px;outline:3px solid #1268e8}.circuit-floating--view{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 28px)}.circuit-floating--view .circuit-view-text-action{white-space:nowrap;flex:none;width:auto;min-width:44px;min-height:44px;padding:0 10px;font-size:.72rem;font-weight:700}.circuit-floating--view output{flex-basis:74px;min-width:74px}.circuit-edge-cues{z-index:35;pointer-events:none;position:absolute;inset:0}.circuit-edge-cues[hidden],.circuit-edge-cues span[hidden]{display:none}.circuit-edge-cues span{color:#6f4300;text-align:center;background:#fff8eaf0;border:1px solid #c0841a;border-radius:999px;min-width:44px;min-height:28px;padding:5px 8px;font-size:.7rem;font-weight:800;line-height:16px;position:absolute;box-shadow:0 4px 12px #0f172a1f}.circuit-edge-cues [data-edge-direction=top]{top:14px;left:50%;transform:translate(-50%)}.circuit-edge-cues [data-edge-direction=right]{top:50%;right:14px;transform:translateY(-50%)}.circuit-edge-cues [data-edge-direction=bottom]{bottom:62px;left:50%;transform:translate(-50%)}.circuit-edge-cues [data-edge-direction=left]{top:50%;left:14px;transform:translateY(-50%)}.placement-preview__match{stroke:#0c7c59;stroke-width:2px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.placement-preview__bounds{fill:none;stroke:#0c7c59;stroke-width:2px;vector-effect:non-scaling-stroke}.placement-preview__contact{fill:#fff;stroke:#0c7c59;stroke-width:1.6px;vector-effect:non-scaling-stroke}.placement-preview__status-box{fill:#f1fbf7;stroke:#0c7c59;stroke-width:1px;vector-effect:non-scaling-stroke}.placement-preview__status-text{fill:#064e3b;font-size:9px;font-weight:800}.placement-preview--hazard .placement-preview__match,.placement-preview--hazard .placement-preview__contact,.placement-preview--hazard .placement-preview__bounds,.placement-preview--hazard .placement-preview__status-box{stroke:#b7791f}.placement-preview--hazard .placement-preview__bounds{stroke-dasharray:8 3}.placement-preview--hazard .placement-preview__status-box{fill:#fff8ea}.placement-preview--hazard .placement-preview__status-text{fill:#7c4a03}.placement-preview--blocked .placement-preview__match,.placement-preview--blocked .placement-preview__contact,.placement-preview--blocked .placement-preview__bounds,.placement-preview--blocked .placement-preview__status-box{stroke:#b42318}.placement-preview--blocked .placement-preview__bounds{stroke-dasharray:2 3}.placement-preview--blocked .placement-preview__status-box{fill:#fff7f7}.placement-preview--blocked .placement-preview__status-text{fill:#8f1d16}@media (pointer:coarse){.circuit-floating button,.circuit-workflow-tabs button,.circuit-mode-tabs button,.starter-card button,.hardware-item button,.circuit-item button,.circuit-inline-actions button,.circuit-rotation-actions button{min-width:44px;min-height:44px}}@media (width<=1199.98px){#circuit-lab-app{height:calc(100% - 58px);min-height:0}body #circuit-lab-app~.assistant-card{width:min(340px,100vw - 20px);max-height:min(320px,58vh - 20px);inset:auto 10px 10px auto}body #circuit-lab-app~.assistant-card.is-collapsed{width:min(250px,100vw - 20px)}.circuit-shell{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:0;display:grid;overflow:hidden}.circuit-stage{grid-area:1/1;width:100%;min-width:0;height:100%;min-height:0}.circuit-panel--left,.circuit-panel--right{z-index:60;visibility:hidden;pointer-events:none;background:var(--circuit-panel);width:min(360px,86vw);max-width:none;transition:transform .16s,visibility .16s linear;display:block;position:absolute;top:0;bottom:0;overflow:hidden auto}.circuit-panel--left{border-right:1px solid var(--circuit-line);grid-area:auto;left:0;transform:translate(-102%)}.circuit-panel--right{border-top:0;border-left:1px solid var(--circuit-line);grid-area:auto;right:0;transform:translate(102%)}.circuit-panel.is-open{visibility:visible;pointer-events:auto;transform:translate(0)}.circuit-drawer-header{z-index:8;border-bottom:1px solid var(--circuit-line);background:#f4f6f9fa;justify-content:space-between;align-items:center;gap:10px;min-height:52px;padding:4px 10px 4px 14px;display:flex;position:sticky;top:0}.circuit-drawer-header strong{color:#202936;font-size:.82rem}.circuit-drawer-header button,.circuit-drawer-trigger{color:#202936;background:#fff;border:1px solid #aab5c4;border-radius:4px;min-width:44px;min-height:44px;font-size:.72rem;font-weight:750}.circuit-drawer-trigger{z-index:52;padding:0 10px;display:block;position:absolute;top:10px;box-shadow:0 6px 18px #0f172a26}.circuit-drawer-trigger--hardware{left:10px}.circuit-drawer-trigger--workflow{right:10px}.circuit-floating--view{top:62px}.circuit-edge-cues [data-edge-direction=top]{top:64px}.circuit-workflow-tabs{z-index:7;background:var(--circuit-panel);position:sticky;top:52px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
