.survey{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);flex-direction:column;font-size:15px;line-height:1.4;display:flex;position:fixed;inset:0}.survey button{touch-action:manipulation;min-height:44px}.survey .muted{color:var(--muted)}.survey .small{font-size:13px}.sv-bar{padding:calc(6px + env(safe-area-inset-top)) 8px 6px;background:var(--bar);color:var(--bar-ink);border-bottom:1px solid var(--bar-line);flex:none;align-items:center;gap:6px;min-height:56px;display:flex}.sv-bar h1{min-width:0;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0 4px;font-size:24px;font-weight:800;line-height:1;overflow:hidden}.sv-bar img{margin-left:6px}.sv-bar .sv-icon-btn{color:var(--bar-ink)}.sv-bar .sv-link{color:var(--accent)}.sv-bar .sv-status{color:var(--bar-muted);background:#2a2d33}.sv-bar .sv-status.ok{color:#7ee2a8;background:#17402c}.sv-bar .sv-status.warn{color:#ffb067;background:#4a2a12}@media (hover:hover){.sv-bar button:hover:not(:disabled){background:var(--bar-hover)}}.sv-bar-end{gap:2px;display:flex}.sv-icon-btn{min-width:44px;color:var(--ink);border-radius:10px;place-items:center;padding:0;display:inline-grid}.sv-link{color:var(--accent-text);padding:0 10px;font-weight:550}.sv-status{white-space:nowrap;text-overflow:ellipsis;background:var(--panel-2);max-width:42vw;color:var(--muted);border-radius:999px;padding:3px 8px;font-size:12px;overflow:hidden}.sv-status.ok{color:var(--ok-fg);background:var(--ok-bg)}.sv-status.warn{color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, transparent)}.sv-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.sv-home .sv-scroll{padding:16px 16px calc(24px + env(safe-area-inset-bottom));width:100%;max-width:720px;margin:0 auto}.sv-pad{max-width:760px;margin:0 auto;padding:12px 16px 28px}.sv-intro{color:var(--muted);margin:0 0 14px}.sv-empty{color:var(--muted);text-align:center;padding:28px 8px}.survey section h2,.sv-section-head h2{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:18px 4px 8px;font-size:12px;font-weight:500}.sv-section-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.sv-section-head h2{margin-right:auto}.sv-primary,.sv-secondary,.sv-danger{border-radius:12px;padding:0 16px;font-weight:600}.sv-primary{background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;font-size:19px;font-weight:700}.survey .sv-primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.06)}.sv-secondary{background:var(--accent-soft);color:var(--accent-text)}.sv-danger{color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 35%, transparent)}.sv-block{width:100%;min-height:50px;margin:14px 0;display:block}.sv-row-buttons{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.sv-row-buttons .sv-danger{margin-left:auto}.sv-add-inline{margin:2px 0 8px;display:block}.sv-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.sv-row,.sv-row-wrap{text-align:left;border-bottom:1px solid var(--line);border-radius:0;align-items:center;gap:10px;width:100%;min-height:58px;padding:10px 12px;display:flex}.sv-row-wrap{padding:0 4px 0 0}.sv-row-wrap .sv-row,.sv-card>:last-child{border-bottom:0}.sv-row.on{background:var(--accent-soft)}.sv-row-action{color:var(--accent-text);min-height:48px;font-weight:600}.sv-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.sv-row-main strong{text-overflow:ellipsis;font-weight:600;overflow:hidden}.sv-row-main small{color:var(--muted);font-size:13px}.sv-row>svg{color:var(--muted);flex:none}.sv-warn{color:var(--warn);font-style:normal}.sv-badge{color:var(--accent-text);vertical-align:middle;font-size:10px}.sv-mini-icons{color:var(--muted);gap:2px;display:flex}.sv-code{min-width:34px;height:34px;font-family:var(--font-mono);background:var(--accent-soft);color:var(--accent-text);border-radius:9px;flex:none;place-items:center;padding:0 6px;font-weight:600;display:grid}.sv-note{background:var(--panel-2);border:1px dashed var(--line);border-radius:12px;flex-direction:column;gap:8px;margin:8px 0 4px;padding:12px 14px;font-size:14px;display:flex}.sv-form{gap:12px;display:grid}.sv-field{flex-direction:column;gap:4px;display:flex}.sv-field>span{color:var(--muted);font-size:13px;font-weight:550}.sv-field input,.sv-field select,.sv-field textarea{border:1px solid var(--line);background:var(--panel);border-radius:10px;width:100%;min-height:46px;padding:10px 12px;font-size:16px}.sv-field textarea{resize:vertical}.sv-field input:focus,.sv-field select:focus,.sv-field textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.sv-check{align-items:center;gap:10px;min-height:44px;display:flex}.sv-check input{width:22px;height:22px}.sv-chips{flex-wrap:wrap;gap:8px;margin:2px 0 8px;display:flex}.sv-chips button{background:var(--panel);border:1px solid var(--line);border-radius:999px;min-width:52px;padding:0 14px;font-weight:550}.sv-chips button.on{background:var(--accent);border-color:var(--accent-text);color:var(--accent-ink)}.sv-stepper{border:1px solid var(--line);border-radius:12px;flex:none;align-items:center;display:inline-flex;overflow:hidden}.sv-stepper button{border-radius:0;width:40px;min-height:40px;font-size:20px;line-height:1}.sv-stepper span{text-align:center;min-width:28px;font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.sv-point{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;grid-template-areas:"icon name step""icon circuit del";align-items:center;gap:6px 10px;padding:10px 8px 10px 12px;display:grid}.sv-point .sv-point-icon{grid-area:icon}.sv-point-name{grid-area:name;font-weight:600}.sv-point .sv-stepper{grid-area:step}.sv-point .sv-circuit-chip{grid-area:circuit;justify-self:start}.sv-point .sv-icon-btn{color:var(--muted);grid-area:del;justify-self:end}.sv-point-icon{color:var(--ink);place-items:center;display:inline-grid}.sv-circuit-chip{background:var(--accent-soft);max-width:100%;color:var(--accent-text);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:0 12px;font-size:14px;font-weight:600;overflow:hidden;min-height:36px!important}.sv-circuit-chip.none{background:color-mix(in srgb, var(--warn) 12%, transparent);color:var(--warn)}.sv-quick{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:12px;display:grid}.sv-quick button{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:76px;padding:8px 4px;font-size:13px;font-weight:550;display:flex}.sv-quick button:active{background:var(--accent-soft)}.sv-plus{color:var(--accent-text);font-size:24px;line-height:24px}.sv-photos{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.sv-photo,.sv-photo-add{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;flex:none;width:88px;height:88px;padding:0;overflow:hidden}.sv-photo img{object-fit:cover;width:100%;height:100%;display:block}.sv-photo.large{background:0 0;border:0;width:100%;height:auto;max-height:62vh}.sv-photo.large img{object-fit:contain;max-height:62vh}.sv-photo-add{color:var(--accent-text);border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.sv-board-tabs{gap:6px;margin-bottom:12px;display:flex;overflow-x:auto}.sv-board-tabs button{border:1px solid var(--line);background:var(--panel);white-space:nowrap;border-radius:999px;padding:0 16px}.sv-board-tabs button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.sv-group{margin-bottom:10px}.sv-group-head{margin:10px 4px 6px;font-size:14px;font-weight:600}.sv-group-head .sv-link{min-height:32px;padding:0}.sv-read-list{margin:8px 0;padding-left:18px}.sv-read-list ul{margin:2px 0 6px;padding-left:16px}.sv-gen{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-bottom:14px;padding:14px}.sv-gen p{margin:0;font-weight:550}.sv-gen.ok{border-color:#1d7a3e73}.sv-gen.stale{border-color:color-mix(in srgb, var(--warn) 55%, transparent)}.sv-findings{gap:8px;margin:0;padding:0;list-style:none;display:grid}.sv-findings button{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;align-items:flex-start;gap:12px;width:100%;padding:12px;display:flex}.sv-findings button:disabled{opacity:1;cursor:default}.sv-sev{background:var(--muted);border-radius:50%;flex:none;width:10px;height:10px;margin-top:6px}.sv-findings .error .sv-sev{background:var(--danger)}.sv-findings .warning .sv-sev{background:var(--warn)}.sv-tabs{background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);flex:none;display:flex}.sv-tabs button{min-height:56px;color:var(--muted);border-radius:0;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0 4px;font-size:12px;font-weight:600;display:flex;position:relative}.sv-tabs button.on{color:var(--accent-text);box-shadow:inset 0 3px 0 var(--accent)}.sv-dot{background:var(--warn);color:#fff;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-style:normal;line-height:18px;position:absolute;top:4px;left:calc(50% + 8px)}.sv-backdrop{z-index:50;background:#0a0c146b;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sv-sheet{background:var(--bg);width:100%;max-width:640px;max-height:88vh;box-shadow:var(--shadow);padding-bottom:env(safe-area-inset-bottom);border-radius:18px 18px 0 0;outline:none;flex-direction:column;animation:.18s ease-out sv-up;display:flex}@keyframes sv-up{0%{opacity:.4;transform:translateY(40px)}}@media (prefers-reduced-motion:reduce){.sv-sheet{animation:none}}.sv-sheet-head{align-items:center;padding:8px 8px 4px 18px;display:flex}.sv-sheet-head h3{flex:1;margin:0;font-size:17px}.sv-sheet-body{padding:4px 16px 16px;overflow-y:auto}.sv-project.wide .sv-tabs{border-top:0;border-bottom:1px solid var(--line);justify-content:center;padding-bottom:0}.sv-project.wide .sv-tabs button{flex-direction:row;flex:none;gap:8px;min-height:48px;padding:0 20px;font-size:14px}.sv-project.wide .sv-tabs button.on{box-shadow:inset 0 -2px 0 var(--accent)}.sv-project.wide .sv-dot{position:static}.sv-panes{flex:1;grid-template-columns:minmax(360px,440px) 1fr;min-height:0;display:grid}.sv-pane-main{border-right:1px solid var(--line)}.sv-pane-detail{background:var(--panel-2)}@media (min-width:900px){.sv-backdrop{align-items:center}.sv-sheet{border-radius:18px;max-height:80vh}}.sv-toast{z-index:60;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));background:var(--ink);max-width:min(92vw,520px);color:var(--bg);box-shadow:var(--shadow);border-radius:12px;padding:12px 16px;font-size:14px;position:fixed;transform:translate(-50%)}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(./geist-latin-ext-400-normal-CND6cjiG.woff2)format("woff2");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:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(./geist-latin-ext-500-normal-BovoTgeE.woff2)format("woff2");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:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(./geist-latin-ext-600-normal-CVFbg5dS.woff2)format("woff2");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:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(./geist-latin-400-normal-B40WzpMT.woff2)format("woff2");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}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(./geist-latin-500-normal-CTWBw9NS.woff2)format("woff2");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}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(./geist-latin-600-normal-CSETrqM2.woff2)format("woff2");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}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(./geist-mono-latin-ext-400-normal-DI-rJ0UV.woff2)format("woff2");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:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(./geist-mono-latin-ext-500-normal-Buglb9-a.woff2)format("woff2");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:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(./geist-mono-latin-400-normal-DTRLJnHl.woff2)format("woff2");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}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(./geist-mono-latin-500-normal-YINYabwD.woff2)format("woff2");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}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(./barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2");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:Barlow Condensed;font-style:normal;font-weight:800;font-display:swap;src:url(./barlow-condensed-latin-ext-800-normal-DGNyg4u8.woff2)format("woff2");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:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(./barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2");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}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:800;font-display:swap;src:url(./barlow-condensed-latin-800-normal-BKzMuPgK.woff2)format("woff2");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{--font-ui:"Geist", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-display:"Barlow Condensed", "Arial Narrow", sans-serif;--bg:#eceae5;--panel:#f7f6f3;--panel-2:#fff;--ink:#1b1d21;--muted:#55585e;--faint:#7a7d83;--line:#d9d6cf;--field-line:#cfcbc3;--accent:#ffc21a;--accent-ink:#1b1d21;--accent-text:#8a6300;--accent-soft:#fff3c7;--focus:#e0a400;--hover:#e6e3dc;--warn:#b5470b;--danger:#c92a2a;--ok:#1d7a3e;--ok-bg:#d8f0e2;--ok-fg:#14592f;--warn-bg:#fbe3cf;--warn-fg:#8a3b07;--err-bg:#f8d7d4;--err-fg:#8e1b14;--shadow:0 8px 28px #14141e2e;--bar:#1b1d21;--bar-ink:#eceae5;--bar-muted:#9ea3aa;--bar-line:#2a2d33;--bar-hover:#2a2d33;font:13px/1.4 var(--font-ui);color:var(--ink);background:var(--bg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1b1d21;--panel:#202327;--panel-2:#2a2d33;--ink:#eceae5;--muted:#a9aeb5;--faint:#7c8189;--line:#33373e;--field-line:#3a3e45;--accent:#ffc21a;--accent-ink:#1b1d21;--accent-text:#ffc21a;--accent-soft:#2e2a17;--focus:#ffc21a;--hover:#2a2d33;--warn:#ff9a4d;--danger:#ff6b6b;--ok:#3dbe7a;--ok-bg:#17402c;--ok-fg:#7ee2a8;--warn-bg:#4a2a12;--warn-fg:#ffb067;--err-bg:#4d1a18;--err-fg:#ff9a92;--shadow:0 8px 28px #00000080;--bar:#141619}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);overflow:hidden}button,select,input,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 9px}@media (hover:hover){button:hover:not(:disabled){background:var(--hover)}}button:disabled{opacity:.38;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink)}button.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.05)}button.primary{font-weight:600}button.primary.danger{background:var(--danger);color:#fff}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,.canvas:focus-visible{outline:2px solid var(--focus);outline-offset:1px}select,input,textarea{border:1px solid var(--field-line);background:var(--panel-2);border-radius:6px;min-width:0;padding:4px 7px}input[type=number],input.cell,#f-tag,td.num,td.code,kbd{font-family:var(--font-mono)}textarea{resize:vertical;width:100%}input[aria-invalid]{border-color:var(--warn)}h2{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:12px 12px 8px;font-size:11px;font-weight:500}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:11.5px}.pad{padding:0 12px}.grow{flex:1}.warn{color:var(--warn);margin:3px 0 0;font-size:11.5px}.app{grid-template:"top top top"48px"banner banner banner""pal stage insp"1fr"status status status"26px/230px 1fr 250px;height:100%;display:grid}.toolbar{background:var(--bar);color:var(--bar-ink);border-bottom:1px solid var(--bar-line);grid-area:top;align-items:center;gap:6px;min-width:0;padding:0 12px;display:flex}.toolbar select{color:var(--bar-muted);border-color:var(--bar-line);font-family:var(--font-mono);background:0 0;font-size:12px}.toolbar select option{color:var(--ink);background:var(--panel-2)}@media (hover:hover){.toolbar>button:hover:not(:disabled),.toolbar .tool-group button:hover:not(:disabled):not(.active),.toolbar .menu-trigger:hover:not(:disabled){background:var(--bar-hover)}}.brand{align-items:center;gap:8px;padding-right:6px;font-size:15px;display:flex}.brand strong{letter-spacing:-.01em;font-weight:600}.tool-group{border-left:1px solid var(--bar-line);gap:2px;padding:0 6px;display:flex}.icon-btn{place-items:center;width:32px;height:32px;padding:0;display:inline-grid}.icon-btn.active,.icon-btn.active:hover:not(:disabled){background:var(--accent);color:var(--accent-ink)}.icon{display:block}.menu{position:relative}.menu-trigger{align-items:center;gap:4px;display:inline-flex}.menu-label{font-weight:500}.menu-list{z-index:30;background:var(--panel-2);min-width:240px;color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:4px;position:absolute;top:calc(100% + 4px)}.menu-list.right{right:0}.menu-list.left{left:0}.menu-list button{text-align:left;justify-content:space-between;gap:16px;width:100%;padding:6px 10px;display:flex}.menu-list button.danger{color:var(--danger)}.menu-list kbd{font:inherit;font-family:var(--font-mono);color:var(--faint);font-size:11.5px}.menu-sep{background:var(--line);height:1px;margin:4px 2px}.banner{background:var(--accent-soft);border-bottom:1px solid var(--line);grid-area:banner;align-items:center;gap:12px;padding:8px 14px;display:flex}.banner>div{flex:1}.palette,.inspector{background:var(--panel);flex-direction:column;min-height:0;display:flex;overflow:hidden}.palette{border-right:1px solid var(--line);grid-area:pal}.inspector{border-left:1px solid var(--line);grid-area:insp;overflow-y:auto}.palette-head{border-bottom:1px solid var(--line);padding-bottom:8px}.search{border:1px solid var(--line);color:var(--muted);background:var(--panel-2);border-color:var(--field-line);border-radius:6px;align-items:center;gap:6px;margin:0 10px 6px;padding:0 8px;display:flex}.search input{color:var(--ink);background:0 0;border:0;outline:none;flex:1;padding:5px 0}.check{color:var(--muted);align-items:center;gap:6px;margin:0 12px;font-size:12px;display:flex}.palette-list{flex:1;padding-bottom:12px;overflow-y:auto}.palette-list h4{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:14px 12px 4px;font-size:11px;font-weight:500}.palette ul{margin:0;padding:0 6px;list-style:none}.palette li button{text-align:left;align-items:center;gap:8px;width:100%;padding:5px 8px;line-height:1.25;display:flex}.palette li button.active{background:var(--accent);color:var(--accent-ink)}.symbol-icon{flex:none}.inspector-body{padding:0 12px 16px}.inspector-body h2{margin-top:18px;margin-left:0}.symbol-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.field{flex-direction:column;gap:3px;min-width:0;margin-bottom:10px;display:flex}.field label{color:var(--muted);font-size:11.5px}.field.check label{color:var(--ink);align-items:center;gap:6px;font-size:13px;display:flex}.field .unit{color:var(--muted)}.field-row{align-items:flex-end;gap:10px;display:flex}.field-row .field{flex:1}.row-buttons{gap:4px;display:flex}.wide-btn{border-color:var(--line);width:100%;margin-top:6px}.stage{flex-direction:column;grid-area:stage;min-width:0;min-height:0;display:flex;position:relative}.canvas{touch-action:none;outline:none;flex:1;width:100%;min-height:0;display:block}.hint{color:var(--muted);pointer-events:none;background:color-mix(in srgb, var(--bg) 80%, transparent);border-radius:4px;margin:0;padding:2px 6px;font-size:11px;position:absolute;bottom:40px;left:10px}.sheet-tabs{background:var(--panel);border-top:1px solid var(--line);flex:none;align-items:center;gap:2px;height:34px;padding:0 6px;display:flex;overflow-x:auto}.tab{border-radius:6px 6px 0 0;align-items:center;display:flex}.tab button[role=tab]{white-space:nowrap;align-items:center;gap:6px;display:flex}.tab{box-shadow:inset 0 -2px #0000}.tab.active{box-shadow:inset 0 -2px 0 var(--accent)}.tab.active button[role=tab]{color:var(--ink);font-weight:600}.tab input{width:160px;margin:0 4px}.tab-no{font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:10.5px}.add-sheet{place-items:center;display:inline-grid}.status{color:var(--muted);background:var(--bg);border-top:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums;grid-area:status;align-items:center;gap:16px;padding:0 10px;font-size:11.5px;display:flex;overflow:hidden}.status .grow{text-overflow:ellipsis;overflow:hidden}.status .dirty{color:var(--warn)}.backdrop{z-index:50;background:#0a0c1061;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--panel);box-shadow:var(--shadow);border-radius:10px;width:min(420px,100%);max-height:90vh;padding:18px 20px 14px;overflow:auto}.dialog h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;margin:0 0 12px;font-size:24px;font-weight:800;line-height:1}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}@media (max-width:900px){.app{grid-template:"top"48px"banner""stage"1fr"status"26px/1fr}.palette,.inspector,.hint,.tool-group:nth-of-type(n+4){display:none}.form-grid{grid-template-columns:1fr}}.text-btn{align-items:center;gap:6px;height:30px;display:inline-flex}.text-btn.active{background:var(--bar-hover);color:var(--bar-ink);font-weight:600}.count{min-width:18px;height:18px;font-family:var(--font-mono);background:var(--hover);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:9px;place-items:center;padding:0 5px;font-size:11px;display:inline-grid}.count.bad{background:var(--err-bg);color:var(--err-fg)}.count.meh{background:var(--warn-bg);color:var(--warn-fg)}.count.good{background:var(--ok-bg);color:var(--ok-fg)}.toolbar .count{color:#a9aeb5;background:#2a2d33}.toolbar .count.bad{color:#ff9a92;background:#4d1a18}.toolbar .count.meh{color:#ffb067;background:#4a2a12}.toolbar .count.good{color:#7ee2a8;background:#17402c}.symbol-head strong{font-size:15px;font-weight:600}.ai-label{color:var(--accent);font-weight:600}.status-btn{color:var(--muted);padding:0 6px;font-size:11.5px}.status-btn.bad{color:var(--danger);font-weight:600}button.link{color:var(--accent-text);padding:2px 4px}.bottom-panel{background:var(--panel);border-top:1px solid var(--line);flex-direction:column;flex:none;height:38%;min-height:160px;max-height:60%;display:flex}.panel-tabs{border-bottom:1px solid var(--line);align-items:center;gap:2px;padding:4px 8px;display:flex}.panel-tabs [role=tab]{align-items:center;gap:6px;display:inline-flex}.panel-tabs [role=tab][aria-selected=true]{background:var(--panel-2);border-color:var(--line);color:var(--ink);font-weight:600}.panel-body{flex-direction:column;flex:1;display:flex;overflow:hidden}.panel-actions{flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.table-scroll{flex:1;overflow:auto}.circuit-table{flex-direction:column;flex:1;min-height:0;display:flex}table{border-collapse:collapse;width:100%;font-size:12.5px}th{background:var(--panel-2);text-align:left;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--faint);border-bottom:1px solid var(--line);white-space:nowrap;padding:6px;font-size:11px;font-weight:500;position:sticky;top:0}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:3px 6px}td.code{font-size:13px;font-weight:600}td.nowrap{white-space:nowrap}td.warn,.warn{color:var(--warn)}input.cell{padding:2px 5px}select[aria-invalid]{border-color:var(--warn)}.checks{flex:1;overflow-y:auto}.checks ul{margin:0;padding:0 6px 10px;list-style:none}.finding-head{text-align:left;align-items:center;gap:8px;width:100%;padding:5px 6px;display:flex}.finding .sev{text-align:center;width:14px}.finding.error .sev{color:var(--danger)}.finding.warning .sev{color:var(--warn)}.finding.info .sev{color:var(--accent-text)}.finding .msg{flex:1}.finding .rule{font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.badge{background:var(--hover);color:var(--muted);white-space:nowrap;border-radius:8px;padding:1px 6px;font-size:10.5px}.finding-body{color:var(--muted);padding:2px 10px 8px 34px;font-size:12.5px}.finding-body p{margin:2px 0}.ok{color:var(--ok)}.to-place{border-bottom:1px solid var(--line);padding-bottom:8px}.chips{flex-wrap:wrap;gap:4px;display:flex;padding:0 10px!important}.chips li button{border:1px solid var(--line);border-radius:14px;gap:4px;width:auto!important;padding:2px 8px 2px 4px!important;display:inline-flex!important}.notice{background:var(--warn-bg);color:var(--warn-fg);border:1px solid color-mix(in srgb, var(--warn-fg) 30%, transparent);border-radius:6px;padding:8px 10px;font-size:12.5px}.ai-photo{align-items:center;gap:12px;margin:10px 0;display:flex}.ai-photo img,.ai-placeholder{object-fit:cover;border:1px dashed var(--line);background:var(--panel-2);border-radius:6px;width:160px;height:110px}.ai-table{max-height:46vh}tr.uncertain td{background:#f59f002e}td.conf{font-variant-numeric:tabular-nums;color:var(--muted)}.dialog textarea{margin:6px 0}.described{margin:8px 0;padding-left:18px}.dialog.wide{width:min(860px,100%)}.sheet-banner{background:var(--panel);border:1px solid var(--line);z-index:2;border-radius:8px;align-items:center;gap:10px;max-width:min(720px,100% - 32px);padding:6px 10px;font-size:12.5px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000014}.sheet-banner.stale{background:color-mix(in srgb, #f59f00 14%, var(--panel));border-color:#f59f00}.template-list{flex-direction:column;gap:6px;display:flex}.template{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.template.active{border-color:var(--accent-text);background:var(--accent-soft)}.template>span{flex-direction:column;gap:2px;display:flex}.chat{flex-direction:column;gap:8px;min-height:120px;max-height:46vh;padding:4px 2px;display:flex;overflow:auto}.bubble{background:var(--panel-2);border-radius:10px;max-width:85%;padding:8px 10px}.bubble p{margin:0}.bubble.user{background:var(--accent-soft);align-self:flex-end}.proposal{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.proposal ul{margin:4px 0 8px;padding-left:18px}.chat-input{align-items:flex-end;gap:8px;margin-top:8px;display:flex}.chat-input textarea{flex:1;margin:0}.sheet-banner.diff{border-color:#e8590c}.dialog-sub{margin:14px 0 2px}.sym-editor{grid-template-columns:220px 1fr;gap:16px;display:grid}.sym-form{flex-direction:column;gap:8px;display:flex}.sym-form label{flex-direction:column;gap:2px;font-size:12.5px;display:flex}.sym-form label.check{flex-direction:row;align-items:center;gap:6px}.sym-form .row2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sym-form fieldset{border:1px solid var(--line);border-radius:6px;padding:6px 8px}.sym-tools{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.sym-tools button.active{background:var(--accent-soft);border-color:var(--accent-text)}.sym-svg{background:var(--panel-2);border:1px solid var(--line);touch-action:none;cursor:crosshair;border-radius:6px}.sym-svg .frame{fill:var(--panel);stroke:none}.sym-svg .g{stroke:var(--line);stroke-width:.03px}.sym-svg .g5{stroke:var(--muted);stroke-width:.05px}.sym-svg path{fill:none;stroke:var(--ink,currentColor);stroke-width:.25px;stroke-linecap:round}.sym-svg path.filled{fill:var(--ink,currentColor)}.sym-svg .preview{stroke:var(--focus);stroke-dasharray:.6 .4}.sym-svg text{fill:var(--ink,currentColor);font-family:var(--font-ui)}.sym-svg .port circle,.sym-svg .port text{fill:#e03131}.palette-list li{align-items:center;display:flex}.palette-list li>button:first-child{flex:1;min-width:0}.palette-list button.mini{opacity:.6;flex:none;width:24px;padding:2px}.palette-list button.mini:hover{opacity:1}.macro-badge{background:var(--accent-soft);min-width:22px;height:22px;font-family:var(--font-mono);border-radius:6px;place-items:center;font-size:11px;font-weight:600;display:inline-grid}.palette-actions{flex-wrap:wrap;gap:4px;padding:10px 8px 16px;display:flex}.palette-actions button{font-size:12px}td.num{white-space:nowrap;font-variant-numeric:tabular-nums}.sym-form input{width:100%;min-width:0}.welcome-steps{padding-left:20px;line-height:1.5}.welcome-steps li{margin-bottom:6px}.segmented{border:1px solid var(--line);border-radius:8px;margin:8px 0;display:inline-flex;overflow:hidden}.segmented button{border:0;border-radius:0;padding:5px 12px}.segmented button.active{background:var(--accent-soft);font-weight:600}.cloud-form{max-width:420px}.cloud-head,.cloud-team{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.cloud-head{justify-content:space-between}.cloud-list{max-height:44vh;margin:0;padding:0;list-style:none;overflow:auto}.cloud-list li button{text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;justify-content:space-between;width:100%;padding:8px 10px;display:flex}.cloud-list li button:hover{background:var(--accent-soft)}table.members td{padding:4px 8px 4px 0}.share-list{padding:0;list-style:none}.share-list li{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.share-list li>div{flex-direction:column;flex:1;gap:6px;display:flex}.share-list input{width:100%;font-size:12px}.share-actions{flex-wrap:wrap;gap:6px;display:flex}.qr svg{width:96px;height:96px;display:block}.viewer-banner{z-index:3;background:var(--panel);border:1px solid var(--accent);border-radius:8px;align-items:center;gap:10px;padding:6px 12px;font-size:13px;display:flex;position:fixed;top:52px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000001a}.dxf-layers{border:1px solid var(--line);border-radius:8px;margin-top:12px;overflow:hidden}.dxf-layers-head{background:var(--panel-2);border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:6px 10px;display:flex}.dxf-layers-head strong{margin-right:auto}.dxf-layers ul{max-height:240px;margin:0;padding:4px 0;list-style:none;overflow:auto}.dxf-layers label{align-items:center;gap:8px;padding:3px 10px;display:flex}.dxf-layer-name{font-family:var(--font-mono);text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.dialog small.warn,.dialog p.warn{color:var(--warn-fg)}.quote-prices{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 12px;padding:8px 10px;display:flex}.quote-prices span{min-width:160px;color:var(--muted);flex:1}.quote-table{border:1px solid var(--line);border-radius:8px;max-height:280px;margin-top:10px;overflow:auto}.quote-table table{border-collapse:collapse;width:100%}.quote-table th,.quote-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:4px 8px}.quote-table th{background:var(--panel-2);font-family:var(--font-mono);text-transform:uppercase;font-size:11px;position:sticky;top:0}.quote-table .num{text-align:right;white-space:nowrap}.quote-table .mono{font-family:var(--font-mono);white-space:nowrap}.quote-table tr.unpriced td:last-child{color:var(--muted)}
