*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}.\!container{width:100%!important}@media (min-width: 640px){.container{max-width:640px}.\!container{max-width:640px!important}}@media (min-width: 768px){.container{max-width:768px}.\!container{max-width:768px!important}}@media (min-width: 1024px){.container{max-width:1024px}.\!container{max-width:1024px!important}}@media (min-width: 1280px){.container{max-width:1280px}.\!container{max-width:1280px!important}}@media (min-width: 1536px){.container{max-width:1536px}.\!container{max-width:1536px!important}}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.\!hidden{display:none!important}.shrink{flex-shrink:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-width:1px}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--ink-0: #0b1411;--ink-1: #101b17;--ink-2: #16241f;--ink-3: #1e3029;--line: #1f3029;--line-strong: #2c4038;--silk: #edf2ec;--silk-dim: #a5b4ab;--silk-faint: #6f8279;--copper: #d08c4c;--copper-hi: #eaa96a;--copper-ink: #1f1206;--copper-wash: rgba(208, 140, 76, .14);--copper-line: rgba(208, 140, 76, .5);--danger: #ef6a54;--danger-wash: rgba(239, 106, 84, .14);--warn: #e8b84a;--warn-wash: rgba(232, 184, 74, .12);--net-highlight: #e879f9;--radius-s: 6px;--radius-m: 8px;--radius-l: 12px;--font-ui: "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--header-height: 3.25rem;--rail-width: 4.25rem;--panel-width: 18.5rem;--nets-width: 17.5rem}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--line-strong);border:2px solid transparent;background-clip:padding-box;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:#3b5249}body{margin:0;padding:0;min-height:100vh;display:flex;flex-direction:column;font-family:var(--font-ui);font-size:14px;line-height:1.4;background-color:var(--ink-0);color:var(--silk);-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--copper-hi);outline-offset:2px}#root{display:contents}.app-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:.75rem;flex-shrink:0;height:var(--header-height);padding:0 .75rem 0 1rem;background-color:var(--ink-1);border-bottom:1px solid var(--line)}.brand-logo{display:flex;align-items:center;gap:.6rem;color:var(--silk);text-decoration:none}.brand-mark{width:26px;height:26px;flex-shrink:0}.brand-mark-copper{fill:var(--copper)}.brand-mark-shine{fill:none;stroke:#f6d2a8;stroke-width:1.6;stroke-linecap:round;opacity:.8}.brand-mark-hole{fill:var(--ink-1)}.brand-title{font-size:1.05rem;font-weight:600;letter-spacing:.01em;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-shrink:0}@media (min-width: 769px) and (max-width: 1000px){.brand-title{display:none}}.menu-bar{display:flex;align-items:center;gap:.15rem;min-width:0;margin-left:.75rem}.menu{position:relative}button.menu-trigger{padding:.4rem .7rem;background:none;border:none;border-radius:var(--radius-s);color:var(--silk-dim);font:inherit;font-size:.92rem;font-weight:500}button.menu-trigger:hover,button.menu-trigger[aria-expanded=true]{background-color:var(--ink-2);color:var(--silk)}.menu-panel{position:absolute;top:calc(100% + .35rem);left:0;z-index:60;display:flex;flex-direction:column;width:-moz-max-content;width:max-content;min-width:13rem;padding:.3rem;background-color:var(--ink-2);border:1px solid var(--line-strong);border-radius:var(--radius-m);box-shadow:0 14px 34px #00000080}.menu-panel[hidden]{display:none}.menu-panel button,.menu-panel a{justify-content:flex-start;padding:.5rem .65rem;background:none;border:none;border-radius:var(--radius-s);color:var(--silk);font:inherit;font-size:.88rem;text-align:left;text-decoration:none;cursor:pointer}.menu-panel button:hover,.menu-panel button:focus-visible,.menu-panel a:hover,.menu-panel a:focus-visible{background-color:var(--ink-3);outline:none}.menu-check{display:inline-block;width:1.2rem;margin-left:auto;padding-left:1.5rem;box-sizing:content-box;text-align:right;color:var(--copper-hi)}.menu-divider{height:1px;margin:.3rem .2rem;background-color:var(--line-strong)}button.project-name-btn{display:inline-block;max-width:16rem;margin-left:.6rem;padding:.3rem .75rem;overflow:hidden;background:none;border:1px solid var(--line-strong);border-radius:999px;color:var(--silk);font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}button.project-name-btn:hover{background-color:var(--ink-2);border-color:var(--copper-line)}.app-layout{flex:1;min-height:0;display:flex;width:100%}@media (min-width: 961px){body{height:100vh;overflow:hidden}}@media (max-width: 960px){.app-layout{flex-wrap:wrap}.canvas-viewport{min-height:75vh}.right-sidebar{width:100%!important;border-left:none!important;border-top:1px solid var(--line)}}.sidebar-collapsed{display:none!important}.tool-rail{display:flex;flex-direction:column;gap:2px;flex-shrink:0;width:var(--rail-width);padding:.5rem .4rem;background-color:var(--ink-1);border-right:1px solid var(--line);overflow-y:auto}.rail-divider{height:1px;margin:.45rem .4rem;background-color:var(--line-strong)}button.rail-btn{position:relative;flex-direction:column;gap:4px;padding:.55rem .2rem .45rem;background:none;border:none;border-radius:var(--radius-m);color:var(--silk-dim);font-size:.74rem;font-weight:500}button.rail-btn:hover{background-color:var(--ink-2);color:var(--silk)}button.rail-btn.is-active{background-color:var(--copper-wash);color:var(--copper-hi)}button.rail-btn.is-active:before{content:"";position:absolute;top:22%;bottom:22%;left:-.4rem;width:3px;border-radius:0 3px 3px 0;background-color:var(--copper)}button.rail-btn[hidden]{display:none}button.rail-btn svg.icon{width:21px;height:21px}.rail-key{position:absolute;top:4px;right:6px;color:var(--silk-faint);font-size:.62rem;font-weight:600}.tool-panel{display:flex;flex-direction:column;flex-shrink:0;min-height:0;overflow-y:auto;background-color:var(--ink-1)}#controls{width:var(--panel-width);border-right:1px solid var(--line)}.right-sidebar{width:var(--nets-width);border-left:1px solid var(--line)}.sidebar-section{border-bottom:1px solid var(--line)}#controls>#components{display:flex;flex-direction:column;flex:1 0 14rem;min-height:0}#controls>#components.is-collapsed{flex:none}#components>.section-body{flex:1;min-height:0;overflow-y:auto}.section-title{display:flex;align-items:center;gap:.5rem;width:100%;padding:.85rem 1rem .6rem;color:var(--silk);font-size:.9rem;font-weight:600;text-align:left}button.section-title{justify-content:flex-start;background:none;border:none;border-radius:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}button.section-title:hover{background:none}button.section-title:hover .collapse-chevron{color:var(--silk)}.section-icon{color:var(--silk-faint)}svg.section-icon{width:16px;height:16px}.collapse-chevron{margin-left:auto;color:var(--silk-faint);font-size:.7rem;line-height:1;transition:transform .15s ease}.is-collapsed .collapse-chevron{transform:rotate(-90deg)}.section-body{display:flex;flex-direction:column;gap:.7rem;padding:0 1rem 1rem}.section-body[hidden]{display:none}.active-color-dot{width:12px;height:12px;margin-left:.15rem;border-radius:50%;box-shadow:0 0 0 2px var(--ink-1),0 0 0 3px var(--line-strong);flex-shrink:0}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.5rem .85rem;background-color:var(--ink-2);border:1px solid var(--line-strong);border-radius:var(--radius-m);color:var(--silk);font-family:inherit;font-size:.88rem;font-weight:500;line-height:1.2;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}button:hover,.btn:hover{background-color:var(--ink-3);border-color:#3b5249}button:disabled{cursor:default;opacity:.45}button.btn-quiet{background:none;border-color:transparent;color:var(--silk-dim)}button.btn-quiet:hover{background-color:var(--ink-2);border-color:transparent;color:var(--silk)}button.btn-accent,button.btn-primary,button.btn-success{background-color:var(--copper);border-color:var(--copper);color:var(--copper-ink);font-weight:600}button.btn-accent:hover,button.btn-primary:hover,button.btn-success:hover{background-color:var(--copper-hi);border-color:var(--copper-hi)}button.btn-danger{background-color:var(--danger-wash);border-color:#ef6a5466;color:var(--danger)}button.btn-danger:hover{background-color:#ef6a543d;border-color:var(--danger);color:#ffdcd5}.active-mode,button.active-mode,button.active-mode:hover{background-color:var(--copper-wash);border-color:var(--copper-line);color:var(--copper-hi)}.tool-modes{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:.4rem;padding:.25rem .25rem .75rem}.tool-modes .tool-mode-btn{flex-direction:column;gap:4px;padding:.55rem .3rem;font-size:.8rem}.tool-modes .tool-mode-btn[hidden]{display:none}.board-switch,.gauge-selector{display:flex;gap:2px;padding:2px;background-color:var(--ink-0);border:1px solid var(--line);border-radius:var(--radius-m)}.board-switch[hidden]{display:none}.board-switch button,.gauge-selector .gauge-btn{flex:1;min-width:0;padding:.42rem .4rem;background:none;border:1px solid transparent;border-radius:var(--radius-s);color:var(--silk-dim);font-size:.84rem}.board-switch button:hover,.gauge-selector .gauge-btn:hover{background-color:var(--ink-2);border-color:transparent;color:var(--silk)}.board-switch button.active-mode,.gauge-selector .gauge-btn.active-mode{background-color:var(--copper-wash);border-color:var(--copper-line);color:var(--copper-hi)}.gauge-selector .gauge-btn{flex-direction:column;gap:5px;padding-top:.55rem}.gauge-line{display:block;width:70%;border-radius:2px;background-color:var(--silk-faint)}.gauge-thin{height:1px}.gauge-normal{height:3px}.gauge-thick{height:5px}.gauge-btn.active-mode .gauge-line{background-color:var(--copper)}.swatch-grid{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}button.color-swatch{width:24px;height:24px;padding:0;border:none;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff2e;transition:transform .12s ease,box-shadow .12s ease}button.color-swatch:hover{transform:scale(1.12)}button.color-swatch.is-active{box-shadow:inset 0 0 0 1px #ffffff2e,0 0 0 2px var(--ink-1),0 0 0 4px var(--copper)}button.color-swatch-add{background:none;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--silk-dim);font-size:1rem;line-height:1}button.color-swatch-add:hover{box-shadow:inset 0 0 0 1px var(--copper);color:var(--copper-hi)}.spectrum-picker{display:flex;flex-direction:column;gap:.6rem;padding:.75rem;background-color:var(--ink-0);border:1px solid var(--line);border-radius:var(--radius-m)}.spectrum-head,.spectrum-hex,.spectrum-hue{display:flex;align-items:center;gap:.5rem}.spectrum-head{justify-content:space-between;color:var(--silk-dim);font-size:.82rem;font-weight:500}.spectrum-hex input[type=text]{width:5.5rem;padding:.25rem .4rem;font-size:.8rem;font-variant-numeric:tabular-nums}.spectrum-preview{width:22px;height:22px;border-radius:var(--radius-s);box-shadow:inset 0 0 0 1px #ffffff40}.spectrum-area{position:relative;height:130px;overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--radius-s);cursor:crosshair}.spectrum-area canvas{display:block;width:100%;height:100%;touch-action:none}.spectrum-handle{position:absolute;width:12px;height:12px;border:2px solid #ffffff;border-radius:50%;box-shadow:0 0 4px #000c;pointer-events:none;transform:translate(-50%,-50%)}.spectrum-hue{color:var(--silk-dim);font-size:.82rem}.spectrum-hue input{flex:1;cursor:pointer}input[type=number],input[type=text],input[type=search],select{padding:.45rem .65rem;background-color:var(--ink-0);border:1px solid var(--line-strong);border-radius:var(--radius-s);color:var(--silk);font-family:inherit;font-size:.88rem;outline:none;transition:border-color .12s ease,box-shadow .12s ease}input[type=number]:focus,input[type=text]:focus,input[type=search]:focus,select:focus{border-color:var(--copper);box-shadow:0 0 0 3px var(--copper-wash)}input::-moz-placeholder{color:var(--silk-faint)}input::placeholder{color:var(--silk-faint)}.grid-inputs{display:flex;align-items:flex-end;gap:.4rem;margin:0}.grid-field{display:flex;flex-direction:column;gap:.25rem;color:var(--silk-faint);font-size:.75rem;font-weight:500}.grid-field input[type=number]{width:4.5rem;font-variant-numeric:tabular-nums}.grid-times{padding-bottom:.5rem;color:var(--silk-faint)}.grid-inputs button{margin-left:auto;padding:.45rem .75rem}.grid-presets{display:flex;flex-wrap:wrap;gap:.35rem}button.preset-btn{padding:.3rem .55rem;background:none;border-color:var(--line-strong);color:var(--silk-dim);font-size:.8rem;font-variant-numeric:tabular-nums}button.preset-btn:hover{color:var(--silk)}.canvas-viewport{position:relative;display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;background-color:var(--ink-0)}.board-stage{position:relative;display:flex;flex-direction:column;flex:1;width:100%;min-height:0}#canvas-container{overscroll-behavior:contain;display:flex;flex:1;justify-content:safe center;align-items:safe center;min-height:0;max-width:100%;padding:2rem;overflow:auto;background-color:var(--ink-0);background-image:radial-gradient(circle,rgba(237,242,236,.07) 1px,transparent 1.5px);background-size:24px 24px}#canvas-container:hover{scrollbar-color:#3b5249 transparent}#canvasZoomWrapper{position:relative;display:inline-block}#myCanvas{position:relative;display:block}.board-shadow{position:absolute;border-radius:3px;box-shadow:0 0 0 1px #00000073,0 18px 48px #0000008c}.status-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;width:100%;min-height:2.9rem;padding:.35rem .6rem .35rem 1rem;background-color:var(--ink-1);border-bottom:1px solid var(--line)}.status-lead{display:flex;align-items:center;gap:.4rem;flex:1 1 14rem;min-width:0}.status-badge{display:flex;align-items:baseline;gap:.15rem .65rem;min-width:0;overflow:hidden;font-size:.9rem;white-space:nowrap}.status-main{min-width:0;overflow:hidden;color:var(--silk);font-weight:600;text-overflow:ellipsis}.status-badge.is-armed .status-main{color:var(--copper-hi)}.status-hint{color:var(--silk-dim)}.status-swatch{width:10px;height:10px;align-self:center;flex-shrink:0;border-radius:50%;box-shadow:0 0 0 2px #00000059}.bar-groups{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;margin-left:auto}.bar-group{display:flex;align-items:center;gap:1px}.bar-group+.bar-group{margin-left:.2rem;padding-left:.45rem;border-left:1px solid var(--line)}button.bar-btn{gap:.35rem;min-width:2.1rem;min-height:2.1rem;padding:.3rem .55rem;background:none;border:none;border-radius:var(--radius-s);color:var(--silk-dim);font-size:.85rem}button.bar-btn:hover{background-color:var(--ink-2);color:var(--silk)}button.bar-btn.is-on{background-color:var(--copper-wash);color:var(--copper-hi)}button.bar-btn:disabled{background:none;opacity:.32}button.bar-btn[hidden]{display:none}.status-lead button.bar-btn{border:1px solid var(--line-strong)}.status-lead button.bar-btn-cancel{border-color:#ef6a5466;color:var(--danger)}.status-lead button.bar-btn-cancel:hover{background-color:var(--danger-wash)}.zoom-level{min-width:2.9rem;color:var(--silk-dim);font-size:.82rem;font-variant-numeric:tabular-nums;text-align:center}.stage-foot{display:flex;align-items:center;gap:1rem;flex-shrink:0;min-height:2.1rem;padding:.3rem 1rem;background-color:var(--ink-1);border-top:1px solid var(--line);font-size:.85rem}.status-hints{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-hints>span+span .status-hint:before{content:"";display:inline-block;width:1px;height:.85em;margin:0 .65rem;background-color:var(--line-strong);vertical-align:-.1em}#dotDescription{max-width:55%;margin-left:auto;overflow:hidden;color:var(--silk);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.empty-board{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:1rem;pointer-events:none}.empty-board-card{position:relative;max-width:25rem;padding:1.35rem 1.4rem 1.4rem;background-color:#101b17f2;border:1px solid var(--line-strong);border-top:3px solid var(--copper);border-radius:var(--radius-l);box-shadow:0 24px 60px #0000008c;pointer-events:auto;animation:empty-board-in .35s ease-out}@keyframes empty-board-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion: reduce){.empty-board-card{animation:none}}.empty-board-card h2{margin:0 0 .85rem;color:var(--silk);font-size:1.3rem;font-weight:600}.empty-board-setup{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 .75rem;padding:.55rem .55rem .55rem .75rem;background-color:var(--ink-0);border:1px solid var(--line);border-radius:var(--radius-m)}.empty-board-setup-text{display:flex;flex-direction:column;gap:.1rem;min-width:0;font-variant-numeric:tabular-nums}.empty-board-setup-text strong{color:var(--silk);font-size:.88rem;font-weight:600}.empty-board-setup-text span{color:var(--silk-faint);font-size:.75rem}button.empty-board-change{flex-shrink:0;padding:.35rem .7rem;font-size:.82rem}button.empty-board-change[aria-expanded=true]{border-color:var(--copper-line);color:var(--copper-hi)}.empty-board-card .board-setup{margin:0 0 .9rem}.empty-board-choices{display:flex;flex-direction:column;gap:.45rem}button.empty-board-choice,a.empty-board-choice{display:flex;align-items:flex-start;justify-content:flex-start;gap:.75rem;width:100%;padding:.7rem .8rem;background-color:var(--ink-2);border:1px solid var(--line-strong);border-radius:var(--radius-m);color:var(--silk);font-weight:400;text-align:left;text-decoration:none;transition:background-color .12s ease,border-color .12s ease}button.empty-board-choice:hover,a.empty-board-choice:hover{background-color:var(--ink-3);border-color:#3b5249}button.empty-board-choice.is-primary{background-color:var(--copper-wash);border-color:var(--copper-line)}button.empty-board-choice.is-primary:hover{background-color:#d08c4c38;border-color:var(--copper)}svg.empty-board-choice-icon{width:20px;height:20px;margin-top:.1rem;color:var(--silk-dim)}.empty-board-choice.is-primary svg.empty-board-choice-icon{color:var(--copper-hi)}.empty-board-choice-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.empty-board-choice-text strong{display:flex;align-items:center;gap:.35rem;font-size:.92rem;font-weight:600}.empty-board-choice-text>span{color:var(--silk-dim);font-size:.8rem;line-height:1.4}svg.empty-board-external{width:13px;height:13px;color:var(--silk-faint)}button.empty-board-close{position:absolute;top:.55rem;right:.55rem;padding:.25rem .45rem;background:none;border:none;color:var(--silk-faint);font-size:.85rem}button.empty-board-close:hover{background-color:var(--ink-2);color:var(--silk)}.nets-panel{flex-shrink:0}.nets-title{justify-content:space-between}.nets-count{margin-left:.35rem;color:var(--silk-dim);font-size:.85rem;font-weight:500;font-variant-numeric:tabular-nums}.nets-count:empty{display:none}#nets{display:flex;flex-direction:column;gap:1px;padding:0 .5rem .75rem;font-size:.84rem}.net{padding:.5rem .5rem .55rem .65rem;border-left:2px solid transparent;border-radius:var(--radius-s);cursor:pointer;transition:background-color .12s ease}.net:hover{background-color:var(--ink-2)}.net.power{border-left-color:var(--copper)}.net.selected{background-color:#e879f91a;border-left-color:var(--net-highlight)}.net:focus-visible,.nets-fold .net-pin:focus-visible{outline:2px solid var(--net-highlight);outline-offset:1px}.net-head{display:flex;align-items:baseline;gap:.45rem;margin-bottom:.3rem}.net-name{color:var(--silk);font-weight:600;letter-spacing:.01em}.net-name.unnamed{color:var(--silk-dim);font-weight:500}.net-size{color:var(--silk-faint);font-size:.78rem;font-variant-numeric:tabular-nums;white-space:nowrap}.nets-view{display:flex;gap:1px;padding:2px;background-color:var(--ink-0);border:1px solid var(--line);border-radius:var(--radius-s)}.nets-view button{padding:.15rem .45rem;background:none;border:none;border-radius:4px;color:var(--silk-faint);font-size:.72rem;font-weight:500}.nets-view button:hover{background-color:var(--ink-2);color:var(--silk)}.nets-view button.is-on{background-color:var(--copper-wash);color:var(--copper-hi)}.nets-help{margin:0 .5rem .4rem;color:var(--silk-faint);font-size:.75rem;line-height:1.4}svg.net-icon{align-self:center;width:14px;height:14px;color:var(--copper-hi)}.net-icon-signal{align-self:center;flex-shrink:0;width:7px;height:7px;margin:0 3.5px;background-color:var(--silk-faint);border-radius:50%}.net-head .net-size{margin-left:auto}.net-pins{display:flex;flex-wrap:wrap;gap:.25rem}.pin-icon{flex-shrink:0;width:16px;height:12px;-o-object-fit:contain;object-fit:contain}.pin-icon-none{display:inline-block}.net-pin .pin-icon{margin-right:4px}.net-pin{display:inline-flex;align-items:center;padding:1px 6px;background-color:var(--ink-2);border:1px solid var(--line);border-radius:4px;color:var(--silk-dim);font-size:.78rem;font-variant-numeric:tabular-nums}.net-pin-label{margin-left:.3rem;color:var(--silk);font-weight:500}.pin-rows{display:flex;flex-direction:column;gap:1px;margin:0;padding:0;list-style:none}.pin-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:.45rem;min-height:1.5rem;padding:1px 4px;border-radius:4px;font-size:.78rem}.pin-row .pin-icon{width:22px;height:16px}.pin-row-part{display:flex;align-items:baseline;gap:.35rem;min-width:0}.pin-row-part strong{flex-shrink:0;color:var(--silk);font-weight:600;font-variant-numeric:tabular-nums}.pin-row-name{overflow:hidden;color:var(--silk-dim);text-overflow:ellipsis;white-space:nowrap}.pin-row-role{color:var(--silk-faint);font-size:.74rem;font-variant-numeric:tabular-nums;white-space:nowrap}.pin-row.is-missing{opacity:.6}.pin-row.is-missing strong{text-decoration:line-through}.net.is-detailed .net-head{margin-bottom:.4rem}.pin-row.is-pickable{border-left:2px solid transparent;cursor:pointer}.pin-row.is-pickable:hover{background-color:var(--ink-2)}.pin-row.is-pickable.selected{background-color:#e879f91a;border-left-color:var(--net-highlight)}.pin-row.is-pickable:focus-visible{outline:2px solid var(--net-highlight);outline-offset:1px}.nets-fold .pin-rows{margin-top:.45rem}.nets-empty{padding:.25rem .5rem;color:var(--silk-dim);line-height:1.5}.nets-fold{padding:.35rem .5rem .5rem}.nets-fold summary{color:var(--warn);font-weight:500;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nets-fold .net-pins{margin-top:.45rem}.nets-fold .net-pin{cursor:pointer;opacity:.8}.nets-fold .net-pin:hover,.nets-fold .net-pin.selected{opacity:1}.nets-fold .net-pin.selected{border-color:var(--net-highlight)}.polarity-list{display:flex;flex-direction:column;gap:.3rem;margin:.45rem 0 0;padding:0;list-style:none}.polarity-item{display:flex;align-items:flex-start;gap:.25rem;padding:.15rem .2rem .15rem .35rem;background-color:var(--warn-wash);border-left:2px solid var(--warn);border-radius:var(--radius-s)}button.polarity-show{display:flex;flex:1;align-items:flex-start;justify-content:flex-start;gap:.45rem;min-width:0;padding:.25rem 0;background:none;border:none;color:var(--silk);font-size:.78rem;font-weight:400;line-height:1.4;text-align:left}button.polarity-show .pin-icon{flex-shrink:0;width:22px;height:16px;margin-top:.1rem}.polarity-text{display:flex;flex-direction:column;min-width:0}.polarity-part strong{font-weight:600;font-variant-numeric:tabular-nums}.polarity-detail{color:var(--silk-dim)}button.polarity-show:hover .polarity-detail{color:var(--silk)}button.polarity-fix{flex-shrink:0;gap:.25rem;margin-top:.15rem;padding:.2rem .35rem;background:none;border:none;color:var(--warn);font-size:.75rem;white-space:nowrap}button.polarity-fix:hover{background-color:var(--ink-2)}button.polarity-fix .icon{width:14px;height:14px}.shortcuts-section{margin-top:auto;border-top:1px solid var(--line)}.shortcuts-section>summary{list-style:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.shortcuts-section>summary::-webkit-details-marker{display:none}.shortcuts-section>summary:after{content:"\25be";margin-left:auto;color:var(--silk-faint);font-size:.7rem;transform:rotate(-90deg);transition:transform .15s ease}.shortcuts-section[open]>summary:after{transform:none}#shortcuts{padding:0 1rem 1rem;color:var(--silk-dim);font-size:.82rem;line-height:1.5}.shortcut-row{display:flex;align-items:baseline;gap:.6rem;padding:.15rem 0}.shortcut-keys{flex-shrink:0;min-width:5rem;white-space:nowrap}kbd{display:inline-block;min-width:1.35rem;padding:2px 5px;background-color:var(--ink-2);border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;color:var(--silk);font:600 .74rem/1 var(--font-ui);text-align:center;white-space:nowrap}.catalog-search-row{display:flex;align-items:center;gap:.25rem}.catalog-search-box{position:relative;flex:1;min-width:0}input.catalog-search{width:100%;padding-right:2rem}kbd.catalog-search-key{position:absolute;top:50%;right:.55rem;transform:translateY(-50%);color:var(--silk-faint);pointer-events:none}.catalog-tree[hidden],.catalog-results[hidden]{display:none}.catalog-tree,.catalog-results{display:flex;flex-direction:column;gap:1px}button.catalog-row{--depth: 0;width:100%;justify-content:flex-start;gap:.45rem;padding:.35rem .5rem .35rem calc(.5rem + var(--depth) * .9rem);font-size:.8rem;text-align:left;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--silk)}button.catalog-row:hover{background:var(--ink-2);border-color:transparent;transform:none}button.catalog-row.active-mode{background:var(--copper-wash);border-color:var(--copper-line);color:var(--copper-hi);font-weight:600}button.catalog-category-row{font-weight:600;color:var(--silk-dim)}.catalog-chevron{font-size:.7rem;width:.7rem;transition:transform .15s ease}.catalog-category.collapsed>.catalog-category-row .catalog-chevron{transform:rotate(-90deg)}.catalog-category.collapsed>.catalog-children{display:none}.catalog-children{display:flex;flex-direction:column;gap:1px}.catalog-icon{width:22px;height:14px;flex-shrink:0;-o-object-fit:contain;object-fit:contain;font-size:.8rem;line-height:14px;text-align:center}.catalog-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-count{font-size:.7rem;font-weight:500;color:var(--silk-dim);background:rgba(255,255,255,.06);border-radius:999px;padding:0 .4rem}button.catalog-action{color:var(--copper)}@keyframes catalog-flash{0%{background:rgba(208,140,76,.35)}to{background:transparent}}button.catalog-row.catalog-flash{animation:catalog-flash 1.5s ease-out}.catalog-item{display:flex;align-items:center}.catalog-item>.catalog-item-btn{flex:1;min-width:0}button.catalog-edit-btn{padding:.2rem .45rem;font-size:.75rem;font-weight:700;background:transparent;border-color:transparent;color:var(--copper-hi)}button.catalog-edit-btn:hover{background:var(--copper-wash);border-color:transparent;transform:none}button.catalog-delete-btn{padding:.2rem .45rem;font-size:.75rem;font-weight:700;background:transparent;border-color:transparent;color:var(--danger)}button.catalog-delete-btn:hover{background:var(--danger-wash);border-color:transparent;transform:none}.catalog-result-text{flex:1;min-width:0;display:flex;flex-direction:column}.catalog-breadcrumb{font-size:.7rem;font-weight:400;color:var(--silk-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.catalog-row.catalog-result-active:not(.active-mode){background:var(--ink-2);border-color:var(--line-strong)}.catalog-empty{font-size:.8rem;color:var(--silk-dim);padding:.35rem .5rem}.context-menu{position:fixed;z-index:100;background-color:var(--ink-2);border:1px solid var(--line-strong);border-radius:8px;padding:.35rem;box-shadow:0 10px 25px #00000080;display:flex;flex-direction:column;gap:.25rem;min-width:180px}.context-menu kbd{margin-left:auto;font-size:.65rem;color:var(--silk-dim)}.context-menu button{width:100%;justify-content:flex-start;gap:.6rem;font-size:.8rem;padding:.45rem .75rem;background:transparent;border:none;border-radius:4px}.context-menu button:hover{background-color:var(--ink-3)}.context-menu button.ctx-danger{color:var(--danger)}.context-menu button.ctx-danger:hover{background-color:var(--danger-wash)}.context-menu button.led-color-rgb-btn{background:linear-gradient(90deg,rgba(239,68,68,.25),rgba(34,197,94,.25),rgba(59,130,246,.25))}.context-menu button.led-color-rgb-btn:hover{background:linear-gradient(90deg,rgba(239,68,68,.4),rgba(34,197,94,.4),rgba(59,130,246,.4))}input[type=range].rainbow-slider{-webkit-appearance:none;height:10px;border-radius:5px;background:linear-gradient(to right,#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000);outline:none;border:1px solid var(--line-strong)}input[type=range].rainbow-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#ffffff;border:2px solid var(--ink-1);cursor:pointer;box-shadow:0 0 4px #00000080}body.fullscreen-active .app-header,body.fullscreen-active .right-sidebar{display:none!important}.app-layout.fullscreen-mode{position:fixed;inset:0;z-index:90;background-color:var(--ink-0)}.modal-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;background-color:#040907b8;backdrop-filter:blur(3px)}.file-drop{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:1rem;background-color:#040907b8;pointer-events:none}.file-drop-card{display:flex;flex-direction:column;align-items:center;gap:.35rem;max-width:26rem;padding:2rem 2.5rem;text-align:center;color:var(--silk-dim);background-color:var(--ink-1);border:2px dashed var(--copper);border-radius:var(--radius-l)}.file-drop-card strong{font-size:1.1rem;color:var(--silk)}.file-drop-icon{width:2rem;height:2rem;margin-bottom:.25rem;color:var(--copper-hi)}.modal-card{display:flex;flex-direction:column;width:100%;max-width:640px;max-height:90vh;overflow:hidden;background-color:var(--ink-1);border:1px solid var(--line-strong);border-radius:var(--radius-l);box-shadow:0 28px 70px #0009}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem .85rem;border-bottom:1px solid var(--line)}.modal-title{color:var(--silk);font-size:1.1rem;font-weight:600}button.close-btn{padding:.1rem .35rem;background:none;border:none;color:var(--silk-faint);font-size:1.4rem;line-height:1}button.close-btn:hover{background-color:var(--ink-2);color:var(--silk)}.modal-body{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.85rem 1.25rem;border-top:1px solid var(--line)}.tour-card{max-width:min(720px,calc((90vh - 21rem)*1.6))}.tour{display:flex;flex-direction:column;min-height:0;overflow-y:auto}.tour-chapters{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 1.25rem;border-bottom:1px solid var(--line)}button.tour-chapter{padding:.35rem .75rem;background:none;border-color:transparent;color:var(--silk-dim)}button.tour-chapter:hover{background-color:var(--ink-2);border-color:transparent;color:var(--silk)}button.tour-chapter.is-active{background-color:var(--copper-wash);color:var(--copper-hi)}.tour-media{aspect-ratio:16 / 10;background-color:var(--ink-0);border-bottom:1px solid var(--line)}.tour-media video{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.tour-body{gap:.4rem;overflow:visible}.tour-step{color:var(--copper);font-size:.8rem;font-weight:600}.tour-title{margin:0;color:var(--silk);font-size:1.25rem;font-weight:600}.tour-text{margin:0;color:var(--silk-dim);line-height:1.5}.tour-again{margin:.35rem 0 0;color:var(--silk-faint);font-size:.85rem}.tour-footer{align-items:center}.tour-dots{display:flex;gap:.15rem;margin-right:auto}button.tour-dot{width:1.4rem;height:1.4rem;padding:0;background:none;border:none}button.tour-dot:before{content:"";display:block;width:.5rem;height:.5rem;margin:auto;border-radius:50%;background-color:var(--line-strong)}button.tour-dot:hover{background:none}button.tour-dot:hover:before{background-color:var(--silk-faint)}button.tour-dot.is-active:before{background-color:var(--copper)}.custom-part-card{max-width:720px}.form-label{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--silk-dim)}.custom-part-colors,.custom-part-fill{display:flex;flex-wrap:wrap;gap:.4rem}.custom-part-fill .btn{padding:.35rem .65rem;font-size:.78rem}button.custom-part-color{width:28px;height:28px;padding:0;border:2px solid rgba(255,255,255,.2);border-radius:50%}button.custom-part-color[aria-checked=true]{border-color:#fff;box-shadow:0 0 0 2px var(--copper)}.custom-part-grid-scroll{max-height:45vh;overflow:auto;padding:.25rem}.custom-part-grid{display:inline-grid;gap:4px;padding:8px;border:2px solid var(--silk-faint);border-radius:6px}button.custom-part-hole{width:30px;height:30px;padding:0;border:2px dashed rgba(255,255,255,.35);border-radius:50%;background:rgba(0,0,0,.35);color:var(--ink-0);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:700}button.custom-part-hole:hover{border-color:#fff;transform:none}button.custom-part-hole.is-pin{border:2px solid #8a6a22;background:#e8d296}button.custom-part-hole.is-first{background:var(--copper-hi);border-color:#8a4f1c}.custom-part-pins{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.4rem}.custom-part-pins:empty:before{content:"No pins yet: click holes above.";color:var(--silk-dim);font-size:.8rem}.custom-part-pins label{display:flex;align-items:center;gap:.4rem;min-width:0}.custom-part-pins .pin-num{text-align:right}.custom-part-pins input{flex:1;min-width:0;padding:.35rem .5rem;font-size:.82rem}.custom-kind-card{max-width:640px}.custom-kind-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}button.custom-kind{display:grid;grid-template-columns:64px minmax(0,1fr);grid-template-rows:auto 1fr;-moz-column-gap:.85rem;column-gap:.85rem;row-gap:.25rem;align-items:start;justify-content:stretch;width:100%;height:100%;padding:.85rem;border-radius:10px;text-align:left}button.custom-kind:hover{border-color:var(--copper)}button.custom-kind:focus-visible{outline:2px solid var(--copper);outline-offset:2px}.custom-kind-picture{grid-row:1 / span 2;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:8px;background-color:var(--ink-0)}.custom-kind-picture img{max-width:48px;max-height:48px}.custom-kind-name{font-weight:600;color:var(--silk)}.custom-kind-text{font-size:.8rem;line-height:1.35;color:var(--silk-dim)}button.modal-back{margin-right:auto}.custom-shape-preview{display:flex;justify-content:safe center;overflow:auto;padding:1rem;border:1px solid var(--line);border-radius:6px;background-color:var(--ink-0)}.custom-shape-preview canvas{display:block;border-radius:3px;box-shadow:0 0 0 1px #00000073,0 8px 24px #00000073}.part-list-card{max-width:820px}.pdf-card{max-width:560px}.pdf-card .modal-footer button{flex-shrink:0;white-space:nowrap}.pdf-sections{display:flex;flex-direction:column;gap:.4rem}.pdf-section{display:flex;align-items:flex-start;gap:.75rem;padding:.6rem .8rem;border:1px solid var(--line-strong);border-radius:var(--radius-m);background:var(--ink-2);cursor:pointer;transition:border-color .12s,background .12s}.pdf-section:hover{background:var(--ink-3)}.pdf-section.is-on{border-color:var(--copper-line);background:var(--copper-wash)}.pdf-section input{flex-shrink:0;width:1rem;height:1rem;margin:.15rem 0 0;accent-color:var(--copper)}.pdf-paper{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--silk-dim);font-size:.9rem}.pdf-paper .board-switch{flex:0 0 auto;min-width:14rem}.pdf-section-text{display:flex;flex-direction:column;gap:.1rem}.pdf-section-text strong{color:var(--silk);font-weight:600}.pdf-section-text span{color:var(--silk-dim);font-size:.82rem}.part-list-scroll{max-height:60vh;overflow:auto;border:1px solid var(--line-strong);border-radius:8px}.part-list-table{width:100%;font-size:.82rem;font-variant-numeric:tabular-nums}.part-list-table th{position:sticky;top:0;padding:.5rem .65rem;background:var(--ink-2);color:var(--silk-dim);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap}.part-list-table td{padding:.45rem .65rem;border-top:1px solid var(--line);color:var(--silk);white-space:nowrap}.part-list-card .modal-footer button{flex-shrink:0;white-space:nowrap}.part-list-table .part-list-ref{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.part-list-table .part-list-muted{color:var(--silk-dim)}.part-list-table .part-list-number{text-align:right}.part-list-table tbody tr.is-clickable{cursor:pointer}.part-list-table tbody tr.is-clickable:hover,.part-list-table tbody tr.is-clickable:focus-visible{background:var(--ink-2);outline:none}.share-card{max-width:560px}.share-note{margin:0;font-size:.85rem;line-height:1.45;color:var(--silk-dim)}.share-note.is-warning{color:var(--warn)}input.share-link-input{width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem}.share-short{display:flex;flex-direction:column;gap:.6rem;padding-top:1rem;border-top:1px solid var(--line)}.share-row{display:flex;gap:.5rem}.share-short[hidden],.share-row[hidden]{display:none}.share-row input{flex:1;min-width:0}.share-row button{flex-shrink:0}.share-row-label{flex-shrink:0;width:2.5rem;align-self:center;color:var(--silk-dim);font-size:.8rem}.projects-card{max-width:820px}.projects-title{display:flex;align-items:center;gap:.5rem}.projects-count:not(:empty){padding:.1rem .5rem;border-radius:999px;background-color:var(--ink-3);color:var(--silk-dim);font-size:.72rem;font-weight:600}input.projects-search{width:100%;box-sizing:border-box;padding:.5rem .75rem;border:1px solid var(--line-strong);border-radius:8px;background-color:var(--ink-0);color:var(--silk);font:inherit;font-size:.85rem;outline:none}input.projects-search:focus{border-color:var(--copper);box-shadow:0 0 0 3px var(--copper-wash)}input.projects-search[hidden]{display:none}.projects-grid{list-style:none;margin:0;padding:.15rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem}.project-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line-strong);border-radius:12px;background-color:var(--ink-2);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.project-card:hover{border-color:#3b5249;box-shadow:0 10px 24px #00000059;transform:translateY(-2px)}.project-card.is-open{border-color:var(--copper);box-shadow:0 0 0 1px var(--copper),0 0 22px #d08c4c47}button.project-open,button.project-open:hover{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;height:100%;padding:0;border:none;border-radius:12px;background:none;text-align:left;transform:none}button.project-open:focus-visible{outline:2px solid var(--copper);outline-offset:2px}.project-thumb{position:relative;aspect-ratio:16 / 10;display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid var(--line);border-radius:11px 11px 0 0;background:radial-gradient(circle at 50% 35%,rgba(208,140,76,.07),transparent 60%),linear-gradient(160deg,#182821,#0b1411)}.project-thumb canvas{display:block;width:100%;height:100%}.project-thumb-missing{font-size:2rem;color:var(--silk-faint)}.project-badge{position:absolute;top:.55rem;left:.55rem;padding:.12rem .5rem;border-radius:999px;background-color:var(--copper);color:var(--copper-ink);font-size:.68rem;font-weight:700;letter-spacing:.02em;box-shadow:0 2px 8px #d08c4c73}.project-card-body{display:flex;flex-direction:column;gap:.2rem;min-width:0;padding:.65rem .8rem .75rem}.project-name{overflow:hidden;color:var(--silk);font-size:.9rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.project-meta{color:var(--silk-dim);font-size:.72rem}.project-edited{color:var(--silk-faint);font-size:.7rem}input.project-rename-input,input.project-new-input{width:100%;box-sizing:border-box;padding:.35rem .55rem;font-weight:600}button.project-menu-btn{position:absolute;top:.45rem;right:.45rem;width:2rem;height:2rem;padding:0;border:1px solid var(--line-strong);border-radius:8px;background-color:#0b1411d9;backdrop-filter:blur(4px);color:var(--silk);font-size:1rem;line-height:1;opacity:0}.project-card:hover button.project-menu-btn,button.project-menu-btn:focus-visible,button.project-menu-btn[aria-expanded=true]{opacity:1}@media (hover: none){button.project-menu-btn{opacity:1}}.project-menu{position:absolute;top:2.75rem;right:.45rem;z-index:5;min-width:10.5rem;padding:.3rem;display:flex;flex-direction:column;border:1px solid var(--line-strong);border-radius:8px;background-color:var(--ink-1);box-shadow:0 12px 28px #0000008c}.project-menu[hidden]{display:none}.project-menu button{justify-content:flex-start;gap:.6rem;padding:.45rem .6rem;border:none;border-radius:6px;background:none;font-size:.82rem}.project-menu button:hover{background-color:var(--ink-2);transform:none}.project-menu button.is-danger{color:var(--danger)}.project-menu button.is-danger:hover{background-color:var(--danger-wash)}.project-menu-icon{width:1rem;text-align:center}.project-confirm{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:1rem;border-radius:12px;background-color:#101b17f5;text-align:center;font-size:.88rem}.project-confirm strong{max-width:100%;overflow-wrap:anywhere}.project-confirm-note{color:var(--silk-dim);font-size:.75rem}.project-confirm-actions,.project-new-actions{display:flex;justify-content:flex-end;gap:.4rem;margin-top:.4rem}.project-confirm-actions button,.project-new-actions button{padding:.4rem .8rem}.project-card.project-new,.project-card.project-new:hover{border:none;background:none;box-shadow:none}button.project-new-btn{flex-direction:column;gap:.6rem;width:100%;height:100%;min-height:12rem;border:1.5px dashed var(--line-strong);border-radius:12px;background-color:#16241f59;color:var(--silk-dim);font-weight:600}button.project-new-btn:hover{border-color:var(--copper);background-color:var(--copper-wash);color:var(--silk)}.project-new-icon{width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:var(--copper-wash);color:var(--copper-hi);font-size:1.4rem;transition:transform .15s ease}button.project-new-btn:hover .project-new-icon{transform:scale(1.08)}.project-card.project-new.is-creating{grid-column:1 / -1}.project-new-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,15rem);grid-template-areas:"fields preview" "actions actions";gap:1rem 1.25rem;box-sizing:border-box;padding:1.1rem 1.15rem 1rem;border:1.5px solid var(--copper);border-radius:12px;background-color:#d08c4c12}@media (max-width: 640px){.project-new-form{grid-template-columns:minmax(0,1fr);grid-template-areas:"fields" "preview" "actions"}.project-new-preview canvas.project-new-board{width:min(100%,12rem);margin:0 auto}}.project-new-fields{grid-area:fields;display:flex;flex-direction:column;gap:.45rem;min-width:0}.project-new-label{color:var(--silk-dim);font-size:.78rem;font-weight:600}.project-new-fields .project-new-label+.board-setup,.project-new-fields input+.project-new-label{margin-top:.35rem}.project-new-preview{grid-area:preview;display:flex;flex-direction:column;justify-content:center;gap:.5rem;margin:0}canvas.project-new-board{display:block;width:100%;aspect-ratio:16 / 10;border-radius:var(--radius-m);background-color:var(--ink-0)}.project-new-preview figcaption{color:var(--silk-faint);font-size:.75rem;text-align:center;font-variant-numeric:tabular-nums}.project-new-form .project-new-actions{grid-area:actions;margin-top:0}.board-setup{display:flex;flex-direction:column;gap:.55rem;min-width:0}.board-setup-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.2rem,1fr));gap:.35rem}button.size-preset{flex-direction:column;align-items:flex-start;gap:.05rem;padding:.4rem .55rem;background-color:var(--ink-0);border-color:var(--line-strong);color:var(--silk-dim);font-variant-numeric:tabular-nums;text-align:left}button.size-preset:hover{background-color:var(--ink-2);color:var(--silk)}button.size-preset.is-on{background-color:var(--copper-wash);border-color:var(--copper-line);color:var(--copper-hi)}.size-preset-name{font-size:.84rem;font-weight:600}.size-preset-holes{color:var(--silk-faint);font-size:.72rem}button.size-preset.is-on .size-preset-holes{color:var(--copper)}.board-setup-size{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.4rem}.board-setup-span{padding-bottom:.5rem;color:var(--silk-faint);font-size:.75rem;font-variant-numeric:tabular-nums}.projects-empty{grid-column:1 / -1;padding:1.5rem 0;color:var(--silk-dim);font-size:.85rem;text-align:center}.projects-footer{justify-content:space-between;align-items:center}.projects-footer-hint{color:var(--silk-dim);font-size:.78rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.8rem;font-weight:600;color:var(--silk-dim)}.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:1rem}.form-row input{min-width:0;width:100%;box-sizing:border-box}.pin-grid{display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);-moz-column-gap:.5rem;column-gap:.5rem;row-gap:.4rem;padding:.25rem 0}.pin-grid-body{grid-column:2;position:relative;background-color:var(--ink-0);border:1px solid var(--line-strong);border-radius:4px}.pin-grid-body:before{content:"";position:absolute;top:-1px;left:50%;width:18px;height:9px;transform:translate(-50%);background-color:var(--ink-1);border:1px solid var(--line-strong);border-top:none;border-radius:0 0 9px 9px}.pin-input-item{display:flex;align-items:center;gap:.4rem;min-width:0}.pin-input-item.pin-left{grid-column:1}.pin-input-item.pin-right{grid-column:3;flex-direction:row-reverse}.pin-num{flex-shrink:0;min-width:1.75rem;font-size:.75rem;font-weight:600;color:var(--copper-hi);font-variant-numeric:tabular-nums}.pin-left .pin-num{text-align:right}.pin-input-item input{flex:1;min-width:0;padding:.4rem .6rem;font-size:.85rem}@media (max-width: 480px){.pin-grid{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)}}.icon,.section-icon,.tool-icon,.nav-icon{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}svg.icon{width:16px;height:16px}svg.section-icon{width:15px;height:15px}svg.tool-icon{width:20px;height:20px}.header-actions button{gap:.45rem}.selection-bar{position:absolute;left:50%;bottom:14px;z-index:20;display:flex;align-items:center;gap:2px;max-width:calc(100% - 24px);padding:4px;background:rgba(16,27,23,.94);backdrop-filter:blur(10px);border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 10px 30px #00000073;transform:translate(-50%);animation:selection-bar-in .15s ease-out}.selection-bar[hidden]{display:none}@keyframes selection-bar-in{0%{opacity:0;transform:translate(-50%,6px)}}@media (prefers-reduced-motion: reduce){.selection-bar{animation:none}}.selection-bar-label{max-width:12rem;margin-right:2px;padding:0 .65rem 0 .5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:600;color:var(--silk);border-right:1px solid var(--line-strong)}.selection-bar button{gap:.35rem;padding:.4rem .6rem;font-size:.78rem;color:var(--silk);background:transparent;border:none;border-radius:10px}.selection-bar button:hover{background:var(--ink-2);transform:none}.selection-bar button.is-danger{color:var(--danger)}.selection-bar button.is-on,.selection-bar button.is-on:hover{color:var(--copper-hi);background:var(--copper-wash)}.selection-bar button.is-danger:hover{background:var(--danger-wash)}.selection-bar button.is-primary{color:var(--copper-hi)}.selection-bar button.is-primary:hover{background:var(--copper-wash)}.selection-bar button:disabled:hover{background:transparent}.selection-bar button.selection-bar-close{color:var(--silk-dim)}.context-menu button[hidden]{display:none}.ask-card{max-width:420px}.ask-card .modal-body{gap:.75rem}.ask-message{margin:0;font-size:.9rem;line-height:1.5;color:var(--silk)}.ask-message[hidden],.ask-input[hidden],.ask-chips[hidden]{display:none}input.ask-input{width:100%;padding:.6rem .75rem;font-size:1rem}.ask-chips{display:flex;flex-wrap:wrap;gap:.4rem}button.ask-chip{padding:.35rem .7rem;font-size:.8rem;font-variant-numeric:tabular-nums;background:var(--ink-0);border-radius:999px}button.ask-chip:hover{border-color:var(--copper);transform:none}.ask-error{margin:0;font-size:.8rem;color:var(--danger)}.ask-error:empty{display:none}@media (pointer: coarse){.menu-panel button,.menu-panel a,.context-menu button{padding:.7rem .85rem;font-size:.9rem}.context-menu kbd{display:none}}#myCanvas{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sheet-header,.mobile-nav,.sheet-backdrop{display:none}@media (max-width: 768px),(pointer: coarse) and (max-width: 1024px),(pointer: coarse) and (max-height: 500px){:root{--mobile-nav-height:calc(3.6rem + env(safe-area-inset-bottom, 0px))}.tour-dots{display:none}.tour-footer{justify-content:flex-end}body{height:100vh;height:100dvh;min-height:0;overflow:hidden}.app-header{height:3rem;gap:.35rem;padding:0 max(.5rem,env(safe-area-inset-right,0px)) 0 max(.5rem,env(safe-area-inset-left,0px))}.brand-title,.btn-label{display:none}.brand-mark{width:24px;height:24px}.menu-bar{flex:1;min-width:0;gap:0;margin-left:.1rem}button.menu-trigger{padding:.4rem .45rem;font-size:.9rem}button.project-name-btn{min-width:0;margin-left:.2rem;padding:.25rem .6rem;font-size:.82rem}.header-actions{gap:.35rem}.header-actions button{padding:.45rem .6rem}.tool-rail,#toggleFullscreenBtn,#toggleSidebarBtn,#toggleShortcutsBtn,#canvasFullscreenTrigger,#zoomInBtn,#zoomOutBtn,.zoom-level,.status-bar .btn-text{display:none}.app-layout{flex-direction:column;flex-wrap:nowrap}.canvas-viewport{flex:1;min-height:0}.board-stage>.status-bar{position:absolute;top:8px;left:8px;right:8px;z-index:15;flex-wrap:wrap;justify-content:center;gap:6px;width:auto;min-height:0;margin:0;padding:0;background:none;border:none;pointer-events:none}.board-stage>.status-bar>*{pointer-events:auto}.bar-groups{order:1;flex-wrap:nowrap;gap:6px;width:100%;margin-left:0;pointer-events:none}.bar-group,.bar-group+.bar-group{margin-left:0;padding:2px;background-color:#101b17eb;backdrop-filter:blur(8px);border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 4px 14px #00000059;pointer-events:auto}.bar-group:first-child{margin-right:auto}button.bar-btn{min-width:40px;min-height:36px}.status-lead{order:2;flex:0 1 auto;justify-content:center;max-width:100%}.status-lead.is-quiet{display:none}.status-badge{flex-wrap:wrap;justify-content:center;min-width:0;padding:.45rem .9rem;background-color:#101b17f0;backdrop-filter:blur(8px);border:1px solid var(--line-strong);border-radius:999px;box-shadow:0 4px 14px #00000059;font-size:.85rem;text-align:center;white-space:normal}.status-badge.is-armed{border-color:var(--copper-line)}.status-hint:before{display:none}.status-lead button.bar-btn{background-color:#101b17eb;box-shadow:0 4px 14px #00000059}.selection-bar{bottom:8px;max-width:calc(100% - 12px)}.selection-bar-label{display:none}.selection-bar button{flex-direction:column;gap:3px;min-width:54px;padding:.4rem .5rem;font-size:.72rem}.selection-bar svg.icon{width:20px;height:20px}#canvas-container{padding:52px 0 0;background-size:20px 20px}.stage-foot{min-height:1.9rem;padding:.3rem .85rem;font-size:.82rem}#dotDescription{max-width:none;margin-left:0}#dotDescription:empty{visibility:hidden}#dotDescription:empty:before{content:"\a0"}.empty-board{align-items:flex-end}.empty-board-card{width:100%;max-width:none}#controls,#controls.sidebar-collapsed,#shortcutsPanel,#shortcutsPanel.sidebar-collapsed{display:flex!important;position:fixed;left:0;right:0;bottom:var(--mobile-nav-height);z-index:70;width:auto;min-width:0;max-height:70vh;max-height:70dvh;overflow-y:auto;padding:0 max(.75rem,env(safe-area-inset-right,0px)) .75rem max(.75rem,env(safe-area-inset-left,0px));background-color:var(--ink-1);border:1px solid var(--line-strong);border-bottom:none;border-radius:16px 16px 0 0;box-shadow:0 -12px 34px #00000080;transform:translateY(calc(100% + var(--mobile-nav-height)));visibility:hidden;transition:transform .2s ease,visibility .2s}#controls.sheet-open,#shortcutsPanel.sheet-open{transform:none;visibility:visible}#controls>#components{flex:none}#components>.section-body{overflow:visible}.sidebar-section:last-child{border-bottom:none}.section-title,.section-body{padding-left:.25rem;padding-right:.25rem}#controls[data-view=add] #toolModeSelector,#controls[data-view=add] #wire,#controls[data-view=add] #board,#controls[data-view=add] #components>.section-title,#controls[data-view=more] #components{display:none}#controls[data-view=add] #components{border-bottom:none}button.catalog-row{padding-top:.6rem;padding-bottom:.6rem;font-size:.92rem}input.catalog-search{font-size:1rem}kbd.catalog-search-key{display:none}#shortcutsPanel{gap:.5rem}.shortcuts-section{display:none}.sheet-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:.95rem .25rem .4rem;background-color:var(--ink-1);color:var(--silk);font-size:1rem;font-weight:600}.sheet-header:before{content:"";position:absolute;top:6px;left:50%;width:36px;height:4px;border-radius:2px;background-color:var(--line-strong);transform:translate(-50%)}button.sheet-close{padding:.3rem .6rem;background:none;border:none;color:var(--silk-dim);font-size:1rem}.sheet-backdrop{display:block;position:fixed;inset:0 0 var(--mobile-nav-height);z-index:65;background-color:#00000080}.sheet-backdrop[hidden]{display:none}.mobile-nav{position:relative;z-index:80;display:flex;flex-shrink:0;height:var(--mobile-nav-height);padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background-color:var(--ink-1);border-top:1px solid var(--line)}.mobile-nav button,.mobile-nav button:hover,.mobile-nav button.active-mode{flex:1;flex-direction:column;gap:3px;min-width:0;padding:.3rem 0;background:none;border:none;border-radius:0;color:var(--silk-dim);font-size:.74rem;font-weight:600}.mobile-nav button.active-mode{color:var(--copper-hi)}.mobile-nav button>.nav-icon{width:44px;height:26px;padding:3px 12px;border-radius:13px;transition:background-color .15s ease}.mobile-nav button.active-mode>.nav-icon{background-color:var(--copper-wash)}.nav-add-disc{display:flex;align-items:center;justify-content:center;width:46px;height:46px;margin-top:-20px;border-radius:50%;background-color:var(--copper);color:var(--copper-ink);box-shadow:0 6px 18px #d08c4c59,0 0 0 4px var(--ink-0);transition:transform .15s ease}.nav-add-disc .nav-icon{width:24px;height:24px;stroke-width:2.5}.mobile-nav button.nav-add.active-mode .nav-add-disc{transform:rotate(45deg)}@media (prefers-reduced-motion: reduce){.nav-add-disc{transition:none}}}.perma-setup{display:flex;flex-direction:column;gap:.6rem;min-width:0}.perma-setup .board-setup-presets{grid-template-columns:1fr}.perma-hint{margin:0;color:var(--silk-dim);font-size:.75rem;line-height:1.5}#boardTypeSelector{flex-wrap:wrap}.pin-inspector{padding:1rem;border-bottom:1px solid var(--line)}.pin-inspector h2{font-size:1rem;margin:0 0 .7rem}.assembly-options,.assembly-progress,.inspector-selected{display:flex;flex-direction:column;gap:.45rem}.assembly-options label,.inspector-selected label{display:flex;align-items:center;gap:.45rem;font-size:.8rem}.assembly-progress,.inspector-selected,.mount-options{margin-top:.8rem}.assembly-progress progress{width:100%;accent-color:var(--copper)}.inspector-buttons{display:flex;flex-wrap:wrap;gap:.3rem;margin:.5rem 0}.inspector-buttons button,.assembly-progress button{padding:.35rem .5rem;font-size:.76rem}.inspector-hint,.mount-options p{font-size:.76rem;color:var(--silk-dim);line-height:1.4}.inspector-search{width:100%;margin:.7rem 0;padding:.4rem;background:var(--ink-0);color:var(--silk);border:1px solid var(--line)}.inspector-pins{max-height:24rem;overflow:auto}.inspector-pin{display:flex;gap:.4rem;align-items:center;border-bottom:1px solid var(--line)}.inspector-pin button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:.4rem;text-align:left}.inspector-pin small,.inspector-pin span{color:var(--silk-dim);font-size:.72rem;white-space:normal;overflow-wrap:anywhere}.inspector-pin.is-unfitted{opacity:.6}.brand-title{letter-spacing:-.04em;font-weight:700}.assembly-map-card{width:min(1100px,96vw)}.assembly-map-preview{display:block;width:100%;height:auto;border-radius:.6rem;background:#eef2f6}.mounting-panel{padding:1rem;border-bottom:1px solid var(--line)}.mounting-panel h2{margin:0 0 .65rem;font-size:1rem}.mounting-metrics{display:flex;flex-wrap:wrap;gap:.6rem;font-size:.8rem;color:var(--silk-dim)}.mounting-metrics strong{color:var(--silk)}.mounting-panel summary{cursor:pointer;font-size:.8rem;line-height:1.5}.mounting-issue{width:100%;display:flex;flex-direction:column;text-align:left;gap:.2rem;padding:.6rem;margin-top:.4rem;border-left:3px solid #64748b;font-size:.77rem;line-height:1.5}.mounting-issue.is-error{border-left-color:#ef4444}.mounting-issue.is-warning{border-left-color:#e5a329}.mounting-issue span{color:var(--silk-dim)}.language-switcher{display:inline-flex;align-items:center;gap:.25rem;color:var(--silk-dim)}.language-switcher select{padding:.45rem;border:1px solid var(--line);border-radius:.4rem;background:var(--ink-1);color:var(--silk);font:inherit;max-width:115px}:lang(ru) button.rail-btn{font-size:.67rem}:lang(ru) button.rail-btn>span:not(.rail-key){max-width:100%;overflow-wrap:anywhere}:lang(ru) .tool-rail{--rail-width: 76px}.component-fields{display:grid;gap:.8rem}.component-fields label{display:grid;gap:.35rem}.component-json{width:100%;min-height:240px;resize:vertical;font:12px/1.5 ui-monospace,monospace;padding:.75rem}.component-preview{display:block;max-width:100%;height:auto;margin:.5rem auto 1rem}.component-fields table{width:100%;border-collapse:collapse}.component-fields th,.component-fields td{text-align:left;padding:.3rem;border-bottom:1px solid var(--line)}.save-error{color:var(--danger);font-size:.75rem}.routing-assistant-card{width:min(1100px,96vw)}.routing-assistant-card select{display:block;width:100%;margin:.5rem 0}.routing-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.routing-previews figure{margin:0;min-width:0}.routing-previews figcaption{margin-bottom:.4rem;color:var(--silk);font-weight:600}.routing-previews img{width:100%;height:auto}.assembly-guide>label{display:flex;align-items:center;gap:.4rem}.assembly-guide progress{width:100%;margin-top:.75rem;accent-color:var(--copper)}.assembly-current{border-left:2px solid var(--copper);padding:.7rem;margin:.7rem 0}.assembly-current>.btn-primary{margin-top:.6rem;width:100%}.assembly-current p{overflow-wrap:anywhere}.assembly-step-list{padding-left:1.6rem;max-height:18rem;overflow:auto}.assembly-step-list button{text-align:left;width:100%;padding:.4rem}.assembly-step-list [aria-current=step]{color:var(--copper);outline:1px solid var(--line)}.preflight-panel>p{margin:.5rem 0}@media (max-width: 700px){.routing-previews{grid-template-columns:1fr}}.mobile-panel-tabs,.mobile-route-actions,.mobile-move-actions,.mobile-assembly-dock{display:none}[data-panel]{display:contents}.touch-aim-label{position:fixed;z-index:45;pointer-events:none;transform:translate(-50%,calc(-100% - 20px));padding:.3rem .65rem;border-radius:var(--radius);background:var(--ink-0);border:1px solid var(--copper);color:var(--silk);font-weight:600}#canvas-container{touch-action:none;overscroll-behavior:contain}@media (max-width: 768px),(pointer: coarse) and (max-width: 1024px),(pointer: coarse) and (max-height: 500px){.app-header{display:grid;grid-template-columns:minmax(0,1fr) auto;height:auto;min-height:76px;padding-block:.2rem;z-index:90}.app-header .brand-logo,.header-actions>button,.language-switcher>span{display:none}.app-header .menu-bar{display:flex;flex-wrap:wrap;gap:0;width:100%;margin:0}.app-header .project-name-btn{order:-1;flex:1 0 100%;width:100%;min-height:30px;margin:0;padding:.15rem .4rem;text-align:left;font-size:.9rem}.app-header .menu-trigger{min-height:40px;padding:.3rem .5rem}.app-header .header-actions{align-self:start;padding-top:.1rem}.language-switcher select{width:82px;min-height:40px;font-size:1rem}.menu-panel{position:fixed;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:78px;width:auto;min-width:0;max-height:calc(var(--visual-height, 100dvh) - 90px);overflow:auto;overscroll-behavior:contain}.menu-panel button,.menu-panel a{white-space:normal;min-height:44px}.bar-groups{overflow-x:auto;scrollbar-width:none}.bar-group{flex:0 0 auto}#zoomInBtn,#zoomOutBtn{display:inline-flex}button.bar-btn{min-height:44px;min-width:44px}#canvas-container{padding-top:62px;padding-bottom:120px}.status-badge{border-radius:12px;max-height:6rem;overflow-y:auto}.status-badge .status-hint{font-size:.75rem}.status-lead{width:100%}.status-lead .status-badge{flex:1}.status-lead button{flex:0 0 44px}.mobile-nav{transform:translateY(calc(-1 * var(--keyboard-inset, 0px)))}#controls,#controls.sidebar-collapsed,#shortcutsPanel,#shortcutsPanel.sidebar-collapsed{bottom:calc(var(--mobile-nav-height) + var(--keyboard-inset, 0px));max-height:min(78dvh,calc(var(--visual-height, 100dvh) - var(--mobile-nav-height) - 90px));overscroll-behavior:contain;scroll-padding-top:100px}.sheet-backdrop{bottom:calc(var(--mobile-nav-height) + var(--keyboard-inset, 0px))}.sheet-header{flex:0 0 auto;min-height:54px;padding-top:12px}button.sheet-close{min-width:44px;min-height:44px}.mobile-panel-tabs{display:flex;flex:0 0 auto;position:sticky;top:54px;z-index:2;background:var(--ink-1);gap:.25rem;padding-bottom:.5rem}.mobile-panel-tabs button{flex:1;padding:.3rem .2rem;min-height:44px;min-width:0;font-size:.8rem}.mobile-panel-tabs [aria-selected=true]{color:var(--copper-hi);border-color:var(--copper)}#shortcutsPanel [data-panel]{display:none}#shortcutsPanel[data-pane=nets] [data-panel=nets],#shortcutsPanel[data-pane=inspector] [data-panel=inspector],#shortcutsPanel[data-pane=assembly] [data-panel=assembly],#shortcutsPanel[data-pane=checks] [data-panel=checks]{display:contents}.mobile-selection-bar{display:flex;flex-direction:column;padding:.4rem;gap:.25rem;width:calc(100% - 16px);max-width:30rem}.mobile-selection-title{width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-inline:.35rem;font-size:.8rem}.mobile-selection-bar>div{display:flex;width:100%;gap:.2rem}.mobile-selection-bar button{flex:1;min-width:0;min-height:48px;padding:.3rem .2rem;overflow-wrap:anywhere}.mobile-selection-list button{min-height:48px;justify-content:flex-start;gap:.75rem}.mobile-selection-list .is-danger{color:var(--danger)}.required-net-bar{display:flex;flex-wrap:wrap;gap:.4rem}.required-net-bar .selection-bar-label{display:block;flex:1 0 100%;text-align:center}.required-net-bar button{min-height:44px}.mobile-route-actions,.mobile-move-actions,.mobile-assembly-dock{position:absolute;left:8px;right:8px;bottom:8px;z-index:24;background:var(--ink-1);border:1px solid var(--line-strong);border-radius:var(--radius-l);padding:.5rem;box-shadow:0 4px 18px #00000059}.mobile-route-actions{display:flex;gap:.5rem}.mobile-route-actions button{flex:1;gap:.35rem;min-height:44px}.mobile-move-actions,.mobile-assembly-dock{display:flex;flex-direction:column;gap:.4rem}.mobile-move-actions>div,.mobile-assembly-dock>div{display:flex;gap:.3rem}.mobile-move-actions button,.mobile-assembly-dock button{flex:1;min-width:0;min-height:44px;padding:.35rem}.mobile-move-actions span,.mobile-assembly-dock strong,.mobile-assembly-dock small{overflow-wrap:anywhere}.mobile-assembly-dock small{max-height:2.6rem;overflow-y:auto}.mobile-assembly-dock>div>button:last-child{flex:0 0 44px}.modal-overlay{top:var(--visual-top, 0px);bottom:auto;height:var(--visual-height, 100dvh);padding:max(.5rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) max(.5rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));align-items:center}.modal-card{width:100%;max-width:100%;max-height:100%;min-width:0}.modal-header{flex-shrink:0;padding:.6rem .75rem;gap:.5rem}.modal-header .close-btn{min-width:44px;min-height:44px}.modal-title{overflow-wrap:anywhere;min-width:0}.modal-body{min-height:0;padding:.75rem;overscroll-behavior:contain;scroll-padding-block:.75rem}.modal-footer{flex-shrink:0;flex-wrap:wrap;padding:.65rem .75rem;gap:.4rem}.modal-footer button{min-height:44px;flex:1 1 auto;white-space:normal}.modal-body input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),.modal-body select,.modal-body textarea,.tool-panel input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),.tool-panel select{font-size:16px;min-height:44px;max-width:100%}.tool-panel button{min-height:44px}.assembly-options label,.inspector-selected label,.assembly-guide>label,.inspector-pin{min-height:44px}.custom-part-grid{grid-template-columns:repeat(var(--module-cols),44px)!important}button.custom-part-hole{width:44px;height:44px;min-width:44px;padding:0}.component-preview{max-width:100%;height:auto!important}.component-fields table{display:block;max-width:100%;overflow-x:auto}.pdf-sections,.share-row{min-width:0;flex-wrap:wrap}.shortcuts-section{display:none}}@media (max-width: 380px){.app-header .menu-trigger{padding-inline:.35rem;font-size:.85rem}.language-switcher select{width:72px}}@media (max-width: 768px),(pointer: coarse) and (max-width: 1024px),(pointer: coarse) and (max-height: 500px){:root{--mobile-nav-height:calc(4.25rem + env(safe-area-inset-bottom, 0px))}#toggleValuesBtn{display:none}.language-switcher select{width:64px}.mobile-nav button{gap:4px;font-size:.72rem}.mobile-nav button>span:last-child{white-space:nowrap}.nav-add-disc{width:44px;height:28px;margin-top:0;border-radius:14px;box-shadow:none}.nav-add-disc .nav-icon{width:22px;height:22px}.mobile-gesture-hint{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-foot #dotDescription:not(:empty){display:none}#canvas-container{padding-bottom:80px}@media (orientation: landscape) and (max-height: 500px){:root{--mobile-nav-height:calc(3.4rem + env(safe-area-inset-bottom, 0px))}.app-header{min-height:48px}.app-header .menu-bar{flex-wrap:nowrap}.app-header .project-name-btn{order:1;flex:1 1 8rem;width:8rem}.stage-foot{display:none}#canvas-container{padding-top:54px;padding-bottom:74px}.status-badge .status-hint{display:none}.menu-panel{top:49px;max-height:calc(var(--visual-height, 100dvh) - 60px)}.mobile-move-actions,.mobile-assembly-dock{left:auto;width:min(24rem,50%)}}.is-placing #canvas-container{padding-top:112px}.status-badge{max-height:3.6rem}.empty-board-card{max-height:calc(100% - 68px);overflow-y:auto}.modal-body button{min-height:44px}.catalog-edit-btn,.catalog-delete-btn{min-width:44px}.context-menu{max-height:calc(var(--visual-height, 100dvh) - 16px);overflow-y:auto}.context-menu button{min-height:44px}@media (orientation: landscape) and (max-height: 500px){.status-lead{position:absolute;top:0;left:100px;width:auto}.status-lead .status-badge{display:none}.is-placing #canvas-container{padding-top:54px}}}.reqs{margin:0 0 .5rem;padding:.35rem .5rem .5rem;border-bottom:1px solid var(--line)}.reqs summary{display:flex;align-items:center;gap:.5rem;color:var(--silk);font-weight:600;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;list-style:none}.reqs summary::-webkit-details-marker{display:none}.reqs summary:before{content:"\25b8";color:var(--silk-faint);font-size:.7rem;transition:transform .12s ease}.reqs[open] summary:before{transform:rotate(90deg)}.reqs-title{flex:1;min-width:0}.reqs-tag,.reqs-status{display:inline-flex;align-items:center;gap:.25rem;padding:1px 7px;border:1px solid var(--line-strong);border-radius:999px;color:var(--silk-faint);font-size:.72rem;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.reqs-status.is-good{border-color:var(--copper-line);color:var(--copper-hi)}.reqs-status.is-open{border-color:#e8b84a73;color:var(--warn)}.reqs-status.is-bad{border-color:#ef6a5480;color:var(--danger)}.reqs-status svg.icon{width:12px;height:12px}.reqs-body{display:flex;flex-direction:column;gap:.45rem;margin-top:.55rem}.reqs-intro,.reqs-muted{margin:0;color:var(--silk-dim);font-size:.8rem;line-height:1.45}.reqs-muted{color:var(--silk-faint);font-size:.75rem}.reqs-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.reqs-actions button{padding:.4rem .7rem;font-size:.8rem}button.reqs-link{padding:.15rem .3rem;background:none;border:none;color:var(--copper-hi);font-size:.78rem}button.reqs-link:hover{background:var(--ink-2)}.reqs-actions button.reqs-remove{margin-left:auto;padding:.3rem .4rem;color:var(--silk-faint);font-size:.75rem}.reqs-actions button.reqs-remove:hover{color:var(--danger)}.reqs-note{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;color:var(--silk-dim);font-size:.78rem;line-height:1.4}.reqs-problem{display:flex;align-items:flex-start;gap:.25rem;padding:.2rem .2rem .2rem .5rem;background-color:var(--danger-wash);border-left:2px solid var(--danger);border-radius:var(--radius-s)}button.reqs-problem-text{flex:1;justify-content:flex-start;padding:.25rem 0;background:none;border:none;color:var(--silk);font-size:.78rem;font-weight:400;line-height:1.4;text-align:left;overflow-wrap:anywhere}.reqs-problem button.reqs-link{flex-shrink:0;color:var(--danger)}.reqs-nets{display:flex;flex-direction:column;gap:1px;margin:0;padding:0;list-style:none}.reqs-net{position:relative;display:flex;align-items:flex-start;border-left:2px solid transparent;border-radius:var(--radius-s)}.reqs-net:hover{background-color:var(--ink-2)}.reqs-net.is-lit{background-color:#e879f91a;border-left-color:var(--net-highlight)}button.reqs-net-main{flex:1;min-width:0;flex-direction:column;align-items:stretch;gap:.3rem;padding:.45rem .3rem .5rem .5rem;background:none;border:none;color:var(--silk);font-weight:400;text-align:left}button.reqs-net-main:hover{background:none}button.reqs-net-main:focus-visible{outline:2px solid var(--net-highlight);outline-offset:1px}.reqs-net-head{display:flex;align-items:center;gap:.4rem;min-width:0}.reqs-mark{flex-shrink:0}svg.reqs-mark{width:14px;height:14px;color:var(--copper-hi)}.reqs-mark-open{width:10px;height:10px;margin:0 2px;border:1.5px solid var(--warn);border-radius:50%}.reqs-net-name{overflow:hidden;color:var(--silk);font-size:.84rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.reqs-net-state{margin-left:auto;color:var(--warn);font-size:.72rem;white-space:nowrap}.reqs-net.is-wired .reqs-net-state{color:var(--silk-faint)}.net-pin.is-missing{border-style:dashed;color:var(--silk-faint);text-decoration:line-through}.reqs-net-actions{position:absolute;top:.2rem;right:.2rem;display:flex;background-color:var(--ink-2);border-radius:var(--radius-s);opacity:0;pointer-events:none;transition:opacity .12s ease}.reqs-net:hover .reqs-net-actions,.reqs-net:focus-within .reqs-net-actions{opacity:1;pointer-events:auto}@media (hover: none){.reqs-net-actions{position:static;flex-shrink:0;padding:.3rem .2rem 0 0;background:none;opacity:1;pointer-events:auto}}.reqs-net-actions button{padding:.3rem;background:none;border:none;color:var(--silk-dim)}.reqs-net-actions button:hover{background-color:var(--ink-3);color:var(--silk)}.reqs-picking{display:flex;flex-direction:column;gap:.45rem;padding:.6rem .6rem .65rem;background-color:#e879f912;border:1px solid rgba(232,121,249,.45);border-radius:var(--radius-m)}.reqs-picking-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;font-size:.82rem}.reqs-picking-head strong{color:var(--silk);font-weight:600}.reqs-picking-head span{color:var(--silk-dim);font-size:.76rem}
