@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef3f1;--surface:#fff;--surface-2:#f5f8f7;--tint:#e5eeea;--tint-strong:#d6e4de;--field:#f1f6f4;--ink:#15302b;--muted:#5b6f68;--faint:#8b9c96;--accent:#1b7a5a;--accent-strong:#135e45;--accent-soft:#dcefe6;--on-accent:#f2fbf7;--focus:#2f9b74;--in-soft:#d5ece1;--in-ink:#1b5a43;--out-soft:#f5e7c1;--out-ink:#6f5110;--bus-soft:#dce3f6;--bus-ink:#394a87;--ok-soft:#dcefe4;--ok-ink:#1f6440;--warn-soft:#fbf0d2;--warn-ink:#7a570c;--danger-soft:#fae4de;--danger-ink:#a03a29;--power-ink:#a24836;--mat:#1f4438;--mat-raise:#28524a;--mat-raise-2:#316155;--mat-ink:#e6f1ec;--mat-muted:#a8c4b9;--code-bg:#132520;--code-ink:#d9eae2;--lcd-bg:#c9dea8;--lcd-ink:#1f3417;--shadow-sm:0 1px 2px #15302b0f, 0 1px 1px #15302b0a;--shadow-md:0 6px 20px #15302b12, 0 1px 3px #15302b0d;--shadow-lg:0 18px 50px #15302b2e;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-pill:999px;--control-h:38px;--control-h-sm:30px;--field-ring:#15302b12;--field-ring-hover:#15302b29;--check-ring:#15302b42;--focus-glow:#2f9b7433;--danger-glow:#a03a2929;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%235b6f68' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");--check-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23f2fbf7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.6 6.2 5 8.5 9.4 3.8'/%3E%3C/svg%3E");--sans:"Plus Jakarta Sans Variable", "Plus Jakarta Sans", system-ui, sans-serif;--mono:ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1715;--surface:#15211e;--surface-2:#1a2824;--tint:#20322d;--tint-strong:#2a403a;--field:#1d2d29;--ink:#e2eee9;--muted:#9fb4ad;--faint:#6f8680;--accent:#4dbf94;--accent-strong:#72d4ad;--accent-soft:#1d3d33;--on-accent:#06201a;--focus:#62cda2;--in-soft:#1d3d33;--in-ink:#92dcbd;--out-soft:#3b3219;--out-ink:#eccb78;--bus-soft:#262f4c;--bus-ink:#b0bdf0;--ok-soft:#1b3a2a;--ok-ink:#93dcb1;--warn-soft:#3a3016;--warn-ink:#f0cf7c;--danger-soft:#43231d;--danger-ink:#f3a595;--power-ink:#f0a08f;--mat:#183a30;--code-bg:#0b1714;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 6px 20px #0000004d, 0 1px 3px #00000040;--shadow-lg:0 18px 50px #00000080;--field-ring:#e2eee912;--field-ring-hover:#e2eee92e;--check-ring:#e2eee947;--focus-glow:#62cda23d;--danger-glow:#f0826e33;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%239fb4ad' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");--check-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%2306201a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.6 6.2 5 8.5 9.4 3.8'/%3E%3C/svg%3E")}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1715;--surface:#15211e;--surface-2:#1a2824;--tint:#20322d;--tint-strong:#2a403a;--field:#1d2d29;--ink:#e2eee9;--muted:#9fb4ad;--faint:#6f8680;--accent:#4dbf94;--accent-strong:#72d4ad;--accent-soft:#1d3d33;--on-accent:#06201a;--focus:#62cda2;--in-soft:#1d3d33;--in-ink:#92dcbd;--out-soft:#3b3219;--out-ink:#eccb78;--bus-soft:#262f4c;--bus-ink:#b0bdf0;--ok-soft:#1b3a2a;--ok-ink:#93dcb1;--warn-soft:#3a3016;--warn-ink:#f0cf7c;--danger-soft:#43231d;--danger-ink:#f3a595;--power-ink:#f0a08f;--mat:#183a30;--code-bg:#0b1714;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 6px 20px #0000004d, 0 1px 3px #00000040;--shadow-lg:0 18px 50px #00000080;--field-ring:#e2eee912;--field-ring-hover:#e2eee92e;--check-ring:#e2eee947;--focus-glow:#62cda23d;--danger-glow:#f0826e33;--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%239fb4ad' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");--check-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%2306201a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.6 6.2 5 8.5 9.4 3.8'/%3E%3C/svg%3E")}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-width:0;color:var(--ink);font:400 14px/1.5 var(--sans);font-synthesis:none;-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{color:var(--ink)}button,a,input,select,summary{-webkit-tap-highlight-color:transparent;outline-offset:3px}button,summary,select{cursor:pointer}button{background:0 0;border:0}button:disabled{cursor:not-allowed;opacity:.45}:focus-visible{outline:2px solid var(--focus)}a{color:inherit}h1,h2,h3,p{margin:0}h1{letter-spacing:-.02em;font-size:26px;font-weight:700}h2{letter-spacing:-.015em;font-size:19px;font-weight:700;line-height:1.35}h3{font-size:14px;font-weight:650;line-height:1.45}p{color:var(--muted);line-height:1.6}small{font-size:12px}strong,b{font-weight:650}svg{flex-shrink:0}input,select{min-width:0}code,pre{font-family:var(--mono)}.muted{color:var(--muted);font-size:12px}.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}.skip-link{z-index:20;border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-md);padding:12px 16px;position:absolute;top:-100px;left:16px}.skip-link:focus{top:12px}:where(input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){max-width:100%;min-height:var(--control-h);border-radius:var(--r-sm);background-color:var(--field);color:var(--ink);box-shadow:inset 0 0 0 1px var(--field-ring);border:0;outline:none;margin:0;padding:0 12px;transition:box-shadow .15s,background-color .15s}textarea{resize:vertical;padding:9px 12px;line-height:1.5}:where(input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):hover{box-shadow:inset 0 0 0 1px var(--field-ring-hover)}:where(input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):focus{box-shadow:inset 0 0 0 1.5px var(--focus), 0 0 0 4px var(--focus-glow);outline:none}:where(input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea)[aria-invalid=true]{box-shadow:inset 0 0 0 1.5px var(--danger-ink)}:where(input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea)[aria-invalid=true]:focus{box-shadow:inset 0 0 0 1.5px var(--danger-ink), 0 0 0 4px var(--danger-glow)}:where(input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):disabled{opacity:.55;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--field-ring)}::placeholder{color:var(--faint);opacity:1}select{appearance:none;background-image:var(--chevron);text-overflow:ellipsis;white-space:nowrap;background-position:right 12px center;background-repeat:no-repeat;background-size:12px;padding-right:34px}input[type=number]{appearance:textfield;font-variant-numeric:tabular-nums}input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}input[type=checkbox]{appearance:none;background-color:var(--field);width:18px;height:18px;box-shadow:inset 0 0 0 1.5px var(--check-ring);cursor:pointer;background-position:50%;background-repeat:no-repeat;background-size:12px;border-radius:6px;flex:none;margin:0;transition:box-shadow .15s,background-color .15s}input[type=checkbox]:hover{box-shadow:inset 0 0 0 1.5px var(--accent)}input[type=checkbox]:checked{background-color:var(--accent);background-image:var(--check-mark);box-shadow:none}input[type=checkbox]:focus-visible{box-shadow:inset 0 0 0 1.5px var(--accent), 0 0 0 4px var(--focus-glow);outline:none}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;min-height:30px;margin:0}input[type=range]::-webkit-slider-runnable-track{border-radius:var(--r-pill);background:var(--tint-strong);height:6px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);border-radius:50%;width:18px;height:18px;margin-top:-6px;transition:box-shadow .15s;box-shadow:0 1px 3px #15302b4d}input[type=range]::-moz-range-track{border-radius:var(--r-pill);background:var(--tint-strong);height:6px}input[type=range]::-moz-range-progress{border-radius:var(--r-pill);background:var(--accent);height:6px}input[type=range]::-moz-range-thumb{background:var(--accent);border:0;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 3px #15302b4d}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px var(--focus-glow)}input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 5px var(--focus-glow)}progress{accent-color:var(--accent)}.inline-edit input,.component-options select,.component-options .inline-number,.speed select,.serial-baud select{min-height:var(--control-h-sm);font-size:13px}.pin-chip select{min-height:26px}:is(.component-options,.speed,.serial-baud,.pin-chip) select{background-position:right 11px center;background-size:10px;padding-right:30px}.button,.small-button{border-radius:var(--r-pill);background:var(--tint);white-space:nowrap;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:8px 14px;font-size:13px;font-weight:650;line-height:1.2;transition:background .15s,box-shadow .15s;display:inline-flex}.button:hover:not(:disabled),.small-button:hover:not(:disabled){background:var(--tint-strong)}.button.primary,.small-button.primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-sm)}.button.primary:hover:not(:disabled),.small-button.primary:hover:not(:disabled){background:var(--accent-strong)}.small-button{min-height:32px;padding:6px 12px;font-size:12px}.icon-button{border-radius:var(--r-pill);width:36px;min-width:36px;height:36px;color:var(--muted);justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.icon-button:hover:not(:disabled){background:var(--tint);color:var(--ink)}.icon-button.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger-ink)}.text-button{color:var(--accent);align-items:center;gap:5px;padding:0;font-size:12px;font-weight:600;display:inline-flex}.text-button:hover:not(:disabled){color:var(--accent-strong);text-underline-offset:3px;text-decoration:underline}.segmented{border-radius:var(--r-pill);background:var(--tint);gap:2px;padding:4px;display:flex}.segmented button{border-radius:var(--r-pill);color:var(--muted);padding:7px 14px;font-size:12px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.search-field{border-radius:var(--r-pill);background:var(--field);min-width:0;color:var(--muted);box-shadow:inset 0 0 0 1px var(--field-ring);flex:1;align-items:center;gap:8px;padding:0 14px;transition:box-shadow .15s;display:flex}.search-field:hover{box-shadow:inset 0 0 0 1px var(--field-ring-hover)}.search-field:focus-within{box-shadow:inset 0 0 0 1.5px var(--focus), 0 0 0 4px var(--focus-glow)}.search-field input,.search-field input:hover,.search-field input:focus{width:100%;min-height:var(--control-h);box-shadow:none;background-color:#0000;padding:0}.check-field{align-items:center;gap:10px;font-size:13px;display:flex}.check-field.small{color:var(--muted);margin-top:6px;font-size:12px}.inline-number{text-align:right;width:calc(5ch + 26px)}.count{border-radius:var(--r-pill);background:var(--tint);min-width:24px;height:24px;color:var(--muted);font-variant-numeric:tabular-nums;vertical-align:2px;justify-content:center;align-items:center;margin-left:4px;padding:0 7px;font-size:12px;font-weight:650;display:inline-flex}.empty{padding:20px 0;font-size:13px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.app-shell{max-width:1480px;margin:auto;padding:0 40px}.app-header{align-items:center;gap:18px;padding:20px 0 16px;display:flex}.brand{letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:10px;font-size:16px;font-weight:750;text-decoration:none;display:flex}.brand-icon{border-radius:var(--r-md);background:var(--accent);width:38px;height:38px;color:var(--on-accent);box-shadow:var(--shadow-sm);place-items:center;display:grid}.project-title.project-title{border-radius:var(--r-md);min-width:8rem;box-shadow:none;letter-spacing:-.02em;text-overflow:ellipsis;background-color:#0000;flex:1;padding:6px 12px;font-size:20px;font-weight:700}.project-title.project-title:hover{background-color:var(--surface)}.project-title.project-title:focus{background-color:var(--surface);box-shadow:inset 0 0 0 1.5px var(--focus), 0 0 0 4px var(--focus-glow)}.header-actions{align-items:center;gap:4px;display:flex}.save-state{color:var(--muted);white-space:nowrap;margin-right:6px;font-size:12px}.header-divider{background:var(--tint-strong);width:1px;height:22px;margin:0 6px}.header-actions .button{margin-left:4px}.project-toolbar{border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:flex-end;gap:14px 18px;margin-bottom:18px;padding:14px 18px;display:flex}.field{min-width:14rem;color:var(--muted);flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}.field select{color:var(--ink);font-size:14px;font-weight:600}.toolbar-note{font-variant-numeric:tabular-nums;margin-left:auto;padding-bottom:8px;font-size:13px}.notice{border-radius:var(--r-md);background:var(--warn-soft);color:var(--warn-ink);justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 10px 10px 16px;font-size:13px;display:flex}.notice>span{overflow-wrap:anywhere;flex:1}.notice .text-button{color:inherit}.circuit-status{border-radius:var(--r-md);background:var(--ok-soft);color:var(--ok-ink);justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;padding:12px 16px;display:flex}.circuit-status.invalid{background:var(--danger-soft);color:var(--danger-ink)}.circuit-status>div{align-items:center;gap:11px;display:flex}.circuit-status strong{font-size:13px;display:block}.circuit-status small{opacity:.85;margin-top:1px;display:block}.status-counts{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;font-weight:600}.error-list{border-radius:var(--r-md);background:var(--danger-soft);color:var(--danger-ink);margin:-6px 0 16px;padding:8px;font-size:13px;list-style:none}.error-list li,.advice li{align-items:baseline;gap:10px;display:flex}.error-list li{border-radius:var(--r-sm);padding:8px 10px}.error-list li+li{margin-top:2px}.error-list li:hover{background:#ffffff59}.error-list li>span,.advice li>span{flex:1}.error-list small{opacity:.85;display:block}.error-list .text-button{color:inherit}.workspace-nav{border-radius:var(--r-pill);background:var(--tint);gap:4px;width:fit-content;max-width:100%;margin-bottom:20px;padding:5px;display:flex}.workspace-nav button{border-radius:var(--r-pill);color:var(--muted);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:650;display:flex}.workspace-nav button:hover{color:var(--ink)}.workspace-nav button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.panel{border-radius:var(--r-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-md);padding:24px}.section-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}.section-heading p{margin-top:4px;font-size:13px}.section-heading>svg{color:var(--accent)}.stack{flex-direction:column;gap:20px;display:flex}.build-grid{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.card-label,.step-count{color:var(--muted);font-size:12px;font-weight:650;display:block}.workbench{border-radius:var(--r-lg);background:var(--mat);min-width:0;color:var(--mat-ink);box-shadow:var(--shadow-md);padding:20px 20px 14px}#circuit-view{scroll-margin-top:16px}.workbench-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.workbench h2{font-size:17px}.workbench-heading p{color:var(--mat-muted);font-size:12px}.live-dot{border-radius:var(--r-pill);background:var(--mat-raise);color:var(--mat-ink);white-space:nowrap;align-items:center;gap:7px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.live-dot:before{content:"";background:#8fe0b4;border-radius:50%;width:7px;height:7px}.live-dot.paused:before{background:var(--mat-muted)}.canvas-wrap{border-radius:var(--r-md);position:relative;overflow:hidden}.canvas-mount{touch-action:pan-y;width:100%;min-width:0;height:min(480px,62vh)}.canvas-mount canvas{touch-action:pan-y;max-width:100%;display:block}.wheel-hint{border-radius:var(--r-pill);color:var(--mat-ink);white-space:nowrap;pointer-events:none;background:#0a1a15d9;margin:0;padding:7px 14px;font-size:12px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.canvas-fallback,.loading{place-items:center;min-height:300px;padding:30px;font-size:13px;line-height:1.7;display:grid}.workbench-tools{flex-wrap:wrap;align-items:center;gap:6px;padding-top:12px;display:flex}.workbench-tools button{border-radius:var(--r-pill);background:var(--mat-raise);min-height:32px;color:var(--mat-ink);justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.workbench-tools button:hover:not(:disabled),.workbench-tools button.active{background:var(--mat-raise-2)}.workbench-tools output{text-align:center;font-variant-numeric:tabular-nums;min-width:44px;font-size:12px}.view-caption{color:var(--mat-muted);text-align:center;padding-top:10px;font-size:12px}.selection-readout{border-radius:var(--r-md);background:var(--mat-raise);overflow-wrap:anywhere;margin-top:10px;padding:12px 14px;font-size:13px}.selection-readout .actions{margin:8px 0}.selection-readout button{border-radius:var(--r-pill);background:var(--mat-raise-2);padding:6px 12px;font-size:12px;font-weight:600}.selection-readout p{color:var(--mat-muted);font-size:12px}.workbench .text-button{color:#b9e6cf}.workbench-heading-side{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.view-switch{border-radius:var(--r-pill);background:var(--tint);flex-shrink:0;padding:3px;display:inline-flex}.view-switch button{border-radius:var(--r-pill);min-height:30px;color:var(--muted);padding:5px 14px;font-size:12px;font-weight:650}.view-switch button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.workbench .view-switch{background:var(--mat-raise)}.workbench .view-switch button{color:var(--mat-muted)}.workbench .view-switch button[aria-pressed=true]{background:var(--mat-raise-2);color:var(--mat-ink)}.schematic{min-width:0;padding:20px;scroll-margin-top:16px}.schematic h2{font-size:17px}.schematic-scroll{border-radius:var(--r-md);background:var(--surface-2);margin-top:4px;padding:4px;overflow:auto hidden}.schematic-map{max-width:none;display:block}.schematic-map text{font:500 11px var(--sans);fill:var(--ink)}.sch-box{fill:var(--surface);filter:drop-shadow(0 1px 2px #15302b14)}.sch-block.part .sch-box{fill:var(--tint)}.sch-block.selected .sch-box{stroke:var(--focus);stroke-width:2px}.sch-block.dim{opacity:.4}.sch-block [role=button],.sch-end.link,.sch-passive{cursor:pointer}.sch-block [role=button]:focus-visible,.sch-end.link:focus-visible,.sch-passive:focus-visible{outline:none}.sch-block [role=button]:focus-visible .sch-box{stroke:var(--focus);stroke-width:2px}.schematic-map .sch-title{font-size:12px;font-weight:700}.schematic-map .sch-pin{fill:var(--muted)}.sch-wire{fill:none;stroke:var(--muted);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.sch-wire.strong{stroke:var(--ink);stroke-width:1.8px}.sch-fill,.sch-dot{fill:var(--ink)}.sch-hit{fill:#0000}.sch-passive.selected .sch-wire.strong,.sch-passive:focus-visible .sch-wire.strong{stroke:var(--focus)}.schematic-map .sch-value{fill:var(--muted);font-size:10px}.schematic-map .sch-small{font-size:10px}.sch-end.board rect{fill:var(--accent-soft)}.schematic-map .sch-end.board text{fill:var(--accent-strong);font-weight:700}.schematic-map .sch-end.power text{fill:var(--power-ink);font-weight:700}.schematic-map .sch-end.ground text,.schematic-map .sch-end.open text{fill:var(--faint)}.schematic-map .sch-end.link text{fill:var(--muted)}.schematic-map .sch-end.link:hover text,.schematic-map .sch-end.link:focus-visible text{fill:var(--accent)}.schematic-legend{color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin:12px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.schematic-legend .pill{border-radius:var(--r-pill);background:var(--tint);margin-right:4px;padding:1px 8px;font-weight:650;display:inline-block}.schematic-legend .pill.board{background:var(--accent-soft);color:var(--accent-strong)}.schematic-legend .pill.power{color:var(--power-ink);background:0 0}.configured{padding:20px}.configured h2{font-size:17px}.configured-list{flex-direction:column;gap:8px;display:flex}.component-row{border-radius:var(--r-md);background:var(--surface-2);padding:12px;transition:box-shadow .15s,background .15s}.component-row.selected-component{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.component-row-heading{align-items:center;gap:8px;display:flex}.component-icon{background:var(--in-soft);width:32px;min-width:32px;height:32px;color:var(--in-ink);font-variant-numeric:tabular-nums;border-radius:10px;place-items:center;font-size:11px;font-weight:700;display:grid}.component-icon.output{background:var(--out-soft);color:var(--out-ink)}.component-name{flex:1;min-width:0}.component-name h3{overflow-wrap:anywhere;font-size:13px}.component-name .muted{font-size:11px}.component-select{text-align:left;font-weight:inherit;padding:0}.component-select:hover{color:var(--accent)}.inline-edit{align-items:center;gap:2px;display:flex}.inline-edit input{width:100%;padding:0 10px}.pin-chips,.component-options{flex-wrap:wrap;gap:6px;padding:10px 0 0 40px;display:flex}.component-options{align-items:center;gap:8px 12px;padding-top:8px;font-size:12px}.component-options label{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.component-options small{color:var(--faint);flex-basis:100%;font-size:11px}.component-options .inline-number{width:calc(6ch + 22px)}.pin-chip{border-radius:var(--r-pill);background:var(--tint);color:var(--muted);align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:11px;font-weight:600;display:inline-flex}.pin-chip select{border-radius:var(--r-pill);background-color:var(--surface);max-width:12rem;color:var(--ink);padding-left:10px;font-size:11px;font-weight:650}.pin-chip.locked{background:var(--accent-soft);color:var(--accent-strong)}.pin-chip.invalid{background:var(--danger-soft);color:var(--danger-ink)}.pin-chip.fixed{padding-right:10px}.pin-chip.fixed b{color:var(--ink);font-weight:650}.pin-map-rows{border-radius:var(--r-md);background:var(--accent-soft);flex-direction:column;gap:14px;padding:16px;display:flex;overflow-x:auto}.pin-map-row{align-items:flex-end;gap:18px;min-width:max-content;display:flex}.pin-map-group{flex-direction:column;gap:5px;display:flex}.pin-map-label{color:var(--muted);font-size:11px;font-weight:600}.pin-map-group ol,.pin-map-legend{gap:4px;margin:0;padding:0;list-style:none;display:flex}.pin{border-radius:var(--r-sm);background:var(--surface);min-width:36px;height:28px;color:var(--ink);font-variant-numeric:tabular-nums;place-items:center;padding:0 7px;font-size:11px;font-weight:650;display:inline-grid}button.pin:hover{filter:brightness(.96)}button.pin[aria-pressed=true]{box-shadow:0 0 0 2px var(--accent)}.pin.used.input{background:var(--in-soft);color:var(--in-ink);box-shadow:inset 0 0 0 1.5px var(--accent)}.pin.used.output{background:var(--out-soft);color:var(--out-ink);box-shadow:inset 0 0 0 1.5px #c9a23c}.pin.used[aria-pressed=true]{box-shadow:0 0 0 2px var(--accent)}.pin.bus{background:var(--bus-soft);color:var(--bus-ink)}.pin.avoid{color:var(--faint);background:0 0}.pin.power{color:var(--muted);background:0 0;font-weight:500}.pin.power.v{color:var(--power-ink)}.pin.power.gnd{color:var(--ink)}.pin-map-legend{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin-top:12px;font-size:12px}.pin-map-legend li{align-items:center;gap:6px;display:flex}.pin-map-legend .pin{border-radius:4px;width:14px;min-width:14px;height:14px;padding:0}.pin-map-legend .pin.free{box-shadow:inset 0 0 0 1px var(--tint-strong)}.pin-map-legend .pin.avoid{background:var(--tint)}.pin-map-legend .pin.power.v{background:var(--power-ink)}.pin-map-legend .pin.power.gnd{background:var(--ink)}.projects-drawer{width:min(520px,100vw)}.current-project{border-radius:var(--r-lg);background:var(--accent-soft);gap:14px;margin-bottom:22px;padding:16px;display:grid}.current-project-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.current-project .project-summary strong{font-size:16px}.eyebrow{color:var(--accent);font-size:11px;font-weight:650}.share-box{border-radius:var(--r-md);background:var(--surface);justify-items:start;gap:8px;padding:14px;display:grid}.drawer-subheading{margin:0 0 10px;font-size:14px;font-weight:650}.part-stack{align-items:center;gap:8px;margin-top:6px;font-size:12px;display:flex}.part-stack-pics{display:flex}.part-stack-pics img{object-fit:contain;background:var(--surface);width:36px;height:24px;box-shadow:0 0 0 2px var(--surface-2);border-radius:8px}.part-stack-pics img+img{margin-left:-6px}.share-box p{font-size:12px}.share-link{border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--ink);padding:8px 12px;font-size:12px}.project-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.project-list li{border-radius:var(--r-md);background:var(--surface-2);justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 10px 16px;display:flex}.project-summary{gap:2px;min-width:0;display:grid}.project-summary strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-summary .muted{font-size:12px}.project-actions{flex:none;align-items:center;gap:4px;display:flex}.small-button.danger{background:var(--danger-soft);color:var(--danger-ink)}.notice.share-notice{background:var(--accent-soft);color:var(--ink)}.library-drawer{border-radius:var(--r-lg) 0 0 var(--r-lg);background:var(--surface);width:min(640px,100vw);max-width:none;height:100dvh;max-height:none;color:var(--ink);box-shadow:var(--shadow-lg);overscroll-behavior:contain;border:0;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow-y:auto}.library-drawer::backdrop{background:#0a1a1559}.library-drawer[open]{animation:.18s ease-out drawer-in}@keyframes drawer-in{0%{opacity:0;transform:translate(40px)}}.library-content{padding:24px}.drawer-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.drawer-heading p{margin-top:4px;font-size:13px}.library-filters{z-index:1;background:var(--surface);justify-content:space-between;align-items:center;gap:12px;margin:0 -24px 16px;padding:12px 24px;display:flex;position:sticky;top:-24px}.panel .library-filters{top:0}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.kind-pill{border-radius:var(--r-pill);padding:3px 10px;font-size:11px;font-weight:650}.kind-pill.input{background:var(--in-soft);color:var(--in-ink)}.kind-pill.output{background:var(--out-soft);color:var(--out-ink)}.catalog-card{border-radius:var(--r-md);background:var(--surface-2);flex-direction:column;gap:10px;min-width:0;padding:16px;transition:box-shadow .15s,transform .15s;display:flex}.catalog-card:hover{box-shadow:var(--shadow-md)}.catalog-shelf+.catalog-shelf{margin-top:26px}.catalog-shelf-title{margin:0 0 12px;font-size:14px;font-weight:650}.catalog-shelf-title .muted{margin-left:4px;font-weight:500}.catalog-photo{border-radius:calc(var(--r-md) - 4px);background:radial-gradient(120% 90% at 50% 30%, var(--surface) 0%, var(--tint) 100%);aspect-ratio:3/2;margin:-6px -6px 2px;position:relative;overflow:hidden}.catalog-photo img{object-fit:contain;width:100%;height:100%;transition:transform .25s;display:block}.catalog-card:hover .catalog-photo img{transform:scale(1.04)}.catalog-photo .kind-pill{position:absolute;top:8px;left:8px}.catalog-card h4{margin:0;font-size:14px;font-weight:650;line-height:1.3}.catalog-card p{overflow-wrap:anywhere;flex:1;font-size:12px}.catalog-bottom{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:10px;padding-top:8px;font-size:12px;display:flex}.behavior-controls{align-items:center;gap:10px;display:flex}.speed{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.speed select{border-radius:var(--r-pill)}.behavior-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.signal-inputs{flex-direction:column;justify-content:center;gap:14px;display:flex}.signal-control>label>span{justify-content:space-between;gap:10px;margin-bottom:4px;font-size:13px;display:flex}.signal-control strong{font-variant-numeric:tabular-nums}.signal-result{border-radius:var(--r-md);background:var(--surface-2);flex-direction:column;justify-content:flex-start;align-items:stretch;gap:8px;min-height:130px;padding:12px;display:flex}.signal-result[data-paused=true]{opacity:.6}.signal-result .on{color:var(--ok-ink)}.output-row{border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.output-row>strong{font-variant-numeric:tabular-nums;font-size:15px}.output-name{font-size:13px;font-weight:650}.servo-demo{align-items:center;gap:12px;display:flex}.servo-demo strong{font-variant-numeric:tabular-nums;font-size:15px}.servo-dial{background:var(--tint);border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:relative}.servo-dial:after{content:"";background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 3px var(--tint);border-radius:50%;position:absolute}.servo-dial span{background:var(--accent);transform-origin:50%;border-radius:4px;width:4px;height:30px;transition:transform 90ms linear;display:block}.rgb-readout{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:10px;font-size:13px;display:flex}.rgb-light{border-radius:50%;width:26px;height:26px;box-shadow:0 0 14px #78a08c59}.display-text{border-radius:var(--r-sm);background:var(--lcd-bg);color:var(--lcd-ink);font:13px/1.35 var(--mono);white-space:pre;flex-basis:100%;margin:0;padding:10px 12px;overflow-x:auto}.rule-status{margin-top:2px;font-size:13px}.rules{margin-top:22px}.rules h3{margin-bottom:10px}.rule-note{border-radius:var(--r-sm);background:var(--warn-soft);color:var(--warn-ink);margin-bottom:8px;padding:8px 12px;font-size:13px}.rule-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.rule-list li{border-radius:var(--r-md);background:var(--surface-2);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 10px 10px 14px;font-size:13px;line-height:2;display:flex}.rule-list small{color:var(--muted);display:block}.rule-list li:not(.editing) .inline-number{width:calc(4ch + 18px);min-height:26px;font-size:inherit;vertical-align:baseline;border-radius:7px;margin:0 2px;padding:0 8px}.rules-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.rules-heading h3{margin:0}.rule-actions{flex-shrink:0;gap:2px;display:inline-flex}.rule-list li.editing{background:var(--tint);padding:16px;line-height:1.5;display:block}.rule-editor{gap:12px;display:grid}.rule-editor .small,.rule-list .small{font-size:12px}.rule-kinds{flex-wrap:wrap;gap:6px;display:flex}.rule-kinds button{border-radius:var(--r-pill);background:var(--surface);color:var(--muted);box-shadow:var(--shadow-sm);padding:6px 12px;font-size:12px;font-weight:650}.rule-kinds button[aria-checked=true]{background:var(--accent);color:var(--on-accent)}.rule-fields{gap:10px;display:grid}.rule-field{grid-template-columns:minmax(90px,150px) minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.rule-field-label{color:var(--muted);font-size:12px;font-weight:650}.rule-field-body{flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0;display:flex}.rule-field-body select{max-width:100%}.display-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 8px;display:grid}.display-row input{min-width:0}.display-row small{grid-column:1/-1}.warn-text{color:var(--warn-ink);font-size:12px}@media (width<=600px){.rule-field{grid-template-columns:minmax(0,1fr);gap:4px}}.filter-label{align-items:center;gap:8px;font-size:13px;display:flex}.connection-list{flex-direction:column;gap:8px;display:flex}.connection-card{border-radius:var(--r-md);background:var(--surface-2);text-align:left;grid-template-columns:50px minmax(0,15rem) 22px minmax(0,15rem) minmax(0,1fr);align-items:center;gap:14px;width:100%;padding:14px 16px;transition:background .15s,box-shadow .15s;display:grid}.connection-card:hover{background:var(--tint)}.connection-card.selected{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.connection-terminal{overflow-wrap:anywhere;flex-direction:column;gap:4px;min-width:0;display:flex}.connection-terminal strong{font-size:13px}.connection-terminal code{color:var(--accent);font:600 12px var(--sans)}.connection-arrow{color:var(--faint);transform:rotate(-90deg)}.wire-number{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:12px;font-weight:650;display:flex}.wire-number i{border-radius:3px;width:5px;height:26px}.connection-notes{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.guided{border-radius:var(--r-md);background:var(--surface-2);text-align:center;padding:28px}.guided h3{margin:14px 0;font-size:19px}.guided>p{justify-content:center;align-items:center;gap:14px;font-size:14px;display:flex}.guided .actions{justify-content:center;margin-top:22px}.breadboard-guide label{gap:6px;min-width:0;font-size:13px;display:grid}.breadboard-guide select{width:100%}.breadboard-explainer{border-radius:var(--r-md);background:var(--surface-2);margin:16px 0;padding:16px 18px}.breadboard-explainer p{margin:8px 0;font-size:13px}.breadboard-explainer a{color:var(--accent);font-size:13px}.breadboard-grid{grid-template-columns:minmax(260px,400px) minmax(0,1fr);align-items:start;gap:28px;margin-top:22px;display:grid}.breadboard-grid>*{min-width:0}.breadboard-figure{margin:0}.breadboard-figure figcaption{margin-top:10px;font-size:12px;line-height:1.5}.breadboard-map{border-radius:var(--r-lg);width:100%;height:auto;box-shadow:var(--shadow-md);display:block}.breadboard-map text{font:600 10px var(--sans);fill:var(--muted)}.breadboard-map .bb-row{fill:var(--faint);font-size:8px}.breadboard-map .bb-rail-label{font-size:12px}.breadboard-map .bb-side-label{fill:var(--ink);font-size:9px}.bb-body{fill:var(--surface)}.bb-gap{fill:var(--tint)}.bb-hole{fill:var(--tint-strong)}.bb-rail{stroke-width:1.5px;stroke-linecap:round;opacity:.55}.bb-rail.plus{stroke:var(--power-ink)}.bb-rail.minus{stroke:var(--bus-ink)}.bb-jumper{fill:none;stroke-width:2.6px;stroke-linecap:round}.bb-lead{stroke:var(--surface);stroke-width:1.6px;cursor:pointer}.bb-lead.selected{stroke:var(--focus);stroke-width:2.4px}.bb-part{cursor:pointer;transition:opacity .15s}.bb-part.dim{opacity:.35}.bb-part:focus-visible,.bb-lead:focus-visible{outline:none}.bb-part.selected .bb-body-shape,.bb-part:focus-visible .bb-body-shape{stroke:var(--focus);stroke-width:2.5px}.bb-wire-leg{stroke:var(--faint);stroke-width:1.6px}.bb-leg{fill:var(--muted)}.bb-body-shape{stroke:#0000002e;stroke-width:1px}.bb-body-shape.resistor{fill:#d9c18e}.bb-body-shape.cap{fill:#d99a4e}.bb-body-shape.dark,.bb-notch{fill:#2c3632}.bb-notch{stroke:var(--surface);stroke-width:1.5px}.bb-band{fill:#6b4a2b}.bb-body-shape.dark+.bb-band,.bb-dot{fill:#c9d1ce}.bb-cap{fill:#2c3632;opacity:.85}.bb-part-label{pointer-events:none}.breadboard-map .bb-part-label{fill:#fff;paint-order:stroke;stroke:#00000059;stroke-width:2px;font-size:8px}.breadboard-steps{gap:16px;display:grid}.build-steps{counter-reset:step;gap:14px;margin:0;padding:0;list-style:none;display:grid}.build-steps>li{border-radius:var(--r-md);background:var(--surface-2);counter-increment:step;padding:14px 16px 14px 52px;position:relative}.build-steps>li:before{content:counter(step);border-radius:var(--r-pill);background:var(--accent-soft);width:26px;height:26px;color:var(--accent-strong);place-items:center;font-size:13px;font-weight:700;display:grid;position:absolute;top:13px;left:14px}.build-steps h3{margin:2px 0 8px;font-size:15px}.build-steps p{margin:6px 0;font-size:13px}.placed-part+.placed-part{margin-top:10px}.placed-part p,.jumper-list{flex-wrap:wrap;gap:6px 14px;display:flex}.leg{align-items:center;gap:6px;font-size:13px;display:inline-flex}.leg .hole-badge{padding:2px 7px;font-size:12px}.swatch{border-radius:var(--r-pill);flex-shrink:0;width:10px;height:10px;display:inline-block}.callout{border-radius:var(--r-md);margin:12px 0;padding:12px 16px;font-size:13px}.callout.warn{background:var(--warn-soft);color:var(--warn-ink)}.breadboard-leads{flex-direction:column;gap:8px;display:flex}.breadboard-leads article{border-radius:var(--r-md);background:var(--surface-2);gap:14px;padding:12px 14px;font-size:13px;display:flex}.breadboard-leads article>div{overflow-wrap:anywhere;min-width:0}.breadboard-leads p{font-size:13px}.breadboard-leads small{color:var(--muted);line-height:1.6;display:block}.hole-badge{border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-strong);font-variant-numeric:tabular-nums;flex-shrink:0;align-self:start;padding:7px 10px;font-size:14px;font-weight:700}.direct-wiring{border-radius:var(--r-md);background:var(--surface-2);margin-top:18px;padding:14px 16px}.direct-wiring summary{font-weight:650}details>summary{align-items:center;gap:8px;list-style:none;display:flex}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"";background:var(--chevron) center / 12px no-repeat;flex:none;width:12px;height:12px;transition:transform .15s;transform:rotate(-90deg)}details[open]>summary:before{transform:none}.direct-wiring p{overflow-wrap:anywhere;padding:10px 0 0;font-size:13px}.power-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.power-card{border-radius:var(--r-md);background:var(--surface-2);padding:18px}.power-card>strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:10px 0;font-size:26px;font-weight:700;display:block}.power-card strong small{color:var(--muted);font-size:12px;font-weight:600}.power-card p{font-size:12px}progress{border-radius:var(--r-pill);background:var(--tint-strong);appearance:none;border:0;width:100%;height:8px;margin:10px 0;overflow:hidden}progress::-webkit-progress-bar{border-radius:var(--r-pill);background:var(--tint-strong)}progress::-webkit-progress-value{border-radius:var(--r-pill);background:var(--accent)}progress::-moz-progress-bar{border-radius:var(--r-pill);background:var(--accent)}.bom-list{grid-template-columns:1fr 1fr;gap:8px;display:grid}.bom-list>div{border-radius:var(--r-md);background:var(--surface-2);align-items:flex-start;gap:14px;padding:12px 14px;display:flex}.battery-planner{border-radius:var(--r-md);background:var(--tint);grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:16px;margin-top:16px;padding:18px;display:grid}.battery-controls{align-content:start;gap:12px;display:grid}.battery-controls .field span{align-items:center;gap:6px;display:flex}.battery-controls .inline-number{width:100%;font-size:14px}.battery-result{border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm,0 2px 8px #15302b0f);padding:14px 16px}.battery-result.warn{background:var(--warn-soft)}.battery-result>strong{letter-spacing:-.01em;margin-bottom:6px;font-size:16px;font-weight:700;display:block}.battery-result p,.battery-result li{font-size:12px}.battery-result p+p{margin-top:6px}.battery-result ul{color:var(--muted);margin:10px 0 0;padding-left:18px}.battery-result li.problem{color:var(--warn-ink);margin-left:-18px;font-weight:600;list-style:none}.battery-result li.problem svg{vertical-align:-2px}.bom-meta{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin-top:4px;display:flex}.bom-meta a{color:var(--accent);align-items:center;gap:3px;text-decoration:none;display:inline-flex}.bom-meta a:hover{text-decoration:underline}.bom-list h3{font-size:13px}.bom-list p{overflow-wrap:anywhere;font-size:12px}.advice{color:var(--muted);margin:14px 0 0;padding:0;font-size:13px;line-height:1.7;list-style:none}.advice li{border-radius:var(--r-md);padding:10px 12px}.advice li+li{margin-top:6px}.advice li.warning{background:var(--warn-soft);color:var(--warn-ink)}.advice li.info{background:var(--surface-2)}.advice li>svg{flex:none;transform:translateY(3px)}.advice .text-button{color:inherit;margin-left:8px}.upload-panel{margin-top:16px}.upload-routes{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.upload-routes article{border-radius:var(--r-md);background:var(--surface-2);align-content:start;gap:10px;padding:16px;font-size:13px;display:grid}.upload-routes article.wide{grid-column:1/-1}.upload-routes h3{align-items:center;gap:8px;font-size:14px;display:flex}.upload-routes ol{gap:6px;margin:0;padding-left:20px;display:grid}.upload-routes p{color:var(--muted);font-size:12px}.upload-routes code{background:var(--tint);overflow-wrap:anywhere;border-radius:6px;padding:1px 6px;font-size:12px}.upload-routes .actions{flex-wrap:wrap;gap:8px;display:flex}.upload-routes a.button{text-decoration:none}.cli-commands,.serial-log{border-radius:var(--r-md);background:var(--code-bg);color:var(--code-ink);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:14px 16px;font-size:12px;line-height:1.7}.cli-commands+.small-button{justify-self:start}.upload-note{border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-strong);margin-top:12px;padding:12px 14px;font-size:12px}.serial-monitor{border-radius:var(--r-md);background:var(--tint);gap:10px;margin-top:16px;padding:16px;display:grid}.serial-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.serial-bar h3{margin-right:auto;font-size:14px}.serial-baud{align-items:center;gap:6px;font-size:12px;display:flex}.serial-baud select{border-radius:var(--r-pill);background-color:var(--surface);color:var(--ink)}.serial-monitor>p{font-size:12px}.serial-log{height:220px;overflow-y:auto}.serial-log:empty:before{content:"Nothing yet.";color:var(--code-muted,#ffffff80)}.serial-log a{color:inherit;text-decoration:underline}.code-content{border-radius:var(--r-md);background:var(--code-bg);color:var(--code-ink);white-space:pre-wrap;overflow-wrap:anywhere;margin:18px 0 0;padding:20px;font-size:12px;line-height:1.75}.code-content code{counter-reset:line}.code-content.folded{padding-bottom:72px;position:relative}.code-content.folded:after{content:"";border-radius:0 0 var(--r-md) var(--r-md);background:linear-gradient(to bottom, transparent, var(--code-bg) 70%);pointer-events:none;height:160px;position:absolute;inset:auto 0 0}.code-fold{justify-content:center;margin-top:-58px;display:flex;position:relative}.code-content:not(.folded)+.code-fold{margin-top:12px}.code-content .line{text-indent:-5ch;padding-left:5ch;display:block}.code-content .line:before{counter-increment:line;content:counter(line);text-align:right;text-indent:0;color:#5f7d72;-webkit-user-select:none;user-select:none;width:3ch;margin-right:2ch;display:inline-block}.tok-comment{color:#86a397;font-style:italic}.tok-directive{color:#c9b3f2}.tok-keyword{color:#8fdcb9;font-weight:600}.tok-type{color:#f0cf7c}.tok-string{color:#f4b9a2}.tok-number{color:#b3c1f3}.tok-call{color:#fff}.library-note{border-radius:var(--r-md);background:var(--surface-2);padding:16px;font-size:13px}.library-note p{margin:6px 0;font-size:12px}.library-note small{color:var(--muted)}.wifi-options{gap:10px;display:grid}.wifi-options strong{align-items:center;gap:6px;display:flex}.wifi-options .check-field{align-items:flex-start}.wifi-options .check-field input{margin-top:1px}.library-note+.library-note{margin-top:10px}.library-note ul{color:var(--muted);margin:8px 0 0;padding-left:18px;font-size:12px}.library-note li+li{margin-top:4px}footer{color:var(--muted);justify-content:space-between;align-items:center;gap:20px;margin-top:36px;padding:24px 0 32px;font-size:12px;display:flex}footer a{align-items:center;gap:5px;text-decoration:none;display:flex}.recovery{max-width:680px;margin:60px auto}.recovery p{margin:16px 0}.recovery button{margin-right:10px}@media (width<=1100px){.app-shell{padding:0 24px}.build-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.save-state{display:none}}@media (width<=860px){.build-grid,.behavior-grid{grid-template-columns:minmax(0,1fr)}.app-header{flex-wrap:wrap;gap:10px 12px}.brand-name{display:none}.app-header .project-title.project-title{flex:1 1 0;padding:4px 8px}.header-actions{flex-basis:100%;order:3;gap:2px}.header-actions .header-divider+.button{margin-left:auto}.workspace-nav{border-radius:var(--r-lg);grid-template-columns:repeat(5,minmax(0,1fr));width:100%;display:grid}.workspace-nav button{border-radius:var(--r-md);white-space:nowrap;text-align:center;flex-direction:column;justify-content:flex-start;gap:4px;min-width:0;padding:8px 2px;font-size:12px;line-height:1.2}.workspace-nav .tab-label{display:none}.workspace-nav .tab-short{display:inline}.connection-card{grid-template-columns:50px minmax(0,1fr) 22px minmax(0,1fr)}.connection-notes{grid-column:2/-1}.code-panel .section-heading{flex-direction:column}}@media (width<=600px){.app-shell{padding:0 16px}.app-header{padding:14px 0 10px}.header-actions .label,.header-divider{display:none}.header-actions .button{width:38px;margin:0;padding:0}.project-title.project-title{font-size:19px}.project-toolbar{flex-direction:column;align-items:stretch;padding:12px 14px}.field{min-width:0}.battery-planner,.upload-routes{grid-template-columns:1fr}.toolbar-note{margin-left:0;padding:0}.circuit-status{align-items:flex-start}.status-counts{display:none}.workspace-nav button{font-size:11px}.panel{padding:18px 16px}.section-heading{flex-wrap:wrap;gap:12px;margin-bottom:16px}h2{font-size:17px}.workbench{padding:16px 12px 12px}.canvas-mount{height:min(380px,60vh)}.workbench-tools{justify-content:center}.workbench-tools button{min-height:38px}.pin-chips,.component-options{padding-left:0}.library-drawer{border-radius:0}.library-filters{flex-direction:column;align-items:stretch}.segmented button{flex:1}.panel .library-filters{margin-inline:-16px;padding-inline:16px}.connection-card{grid-template-columns:36px 18px minmax(0,1fr);gap:6px 8px;padding:12px 14px}.wire-number{grid-row:1/span 3}.connection-terminal{flex-flow:wrap;grid-column:2/-1;align-items:baseline;gap:2px 8px}.connection-arrow{grid-column:2;transform:rotate(-90deg)}.connection-arrow+.connection-terminal{grid-column:3}.connection-notes{grid-column:2/-1}.wire-number{align-self:start}.guided{padding:20px 14px}.guided>p{flex-wrap:wrap}.power-grid,.bom-list,.breadboard-grid{grid-template-columns:minmax(0,1fr)}.breadboard-map{max-width:320px;margin-inline:auto}.code-content{padding:14px 12px;font-size:11px}.code-panel .actions{width:100%}.code-panel .actions>.button{flex:1}.notice{flex-wrap:wrap}footer{flex-direction:column;align-items:flex-start;gap:10px}.recovery{margin:20px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.app-header,.project-toolbar,.workspace-nav,button,.actions,footer{display:none!important}body,.panel{box-shadow:none;background:#fff}.app-shell{padding:0}.code-content{color:#000;background:#fff}.connection-card{break-inside:avoid}}.tab-short{display:none}.bb-rows-toggle{margin-top:12px;font-size:13px}.empty-choice{border-radius:var(--r-md);background:var(--surface-2);justify-items:start;gap:14px;padding:18px 20px;display:grid}.empty-choice p{margin:0}@media (width>=900px){.breadboard-figure{position:sticky;top:16px}}@media (width<=600px){.catalog-grid{grid-template-columns:minmax(0,1fr);gap:10px}.catalog-card{grid-template-columns:92px minmax(0,1fr);grid-template-areas:"photo title""photo text""bottom bottom";gap:4px 12px;padding:12px;display:grid}.catalog-photo{grid-area:photo;align-self:start;margin:0}.catalog-photo .kind-pill{display:none}.catalog-card h4{grid-area:title}.catalog-card p{-webkit-line-clamp:3;-webkit-box-orient:vertical;grid-area:text;display:-webkit-box;overflow:hidden}.catalog-bottom{grid-area:bottom}}.bb-overhang{opacity:.3}
