@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f4f2ee;--panel:#fff;--panel-2:#f9f8f5;--panel-3:#f1efea;--ink:#1c1b19;--ink-2:#3d3a35;--muted:#77716a;--line:#e9e5de;--line-2:#dad4ca;--accent:#c25f2b;--accent-2:#a54d1d;--accent-soft:#fbece1;--accent-ink:#fff;--on-ink:#fff;--warn:#93600f;--warn-soft:#fbf1dc;--danger:#b42318;--ok:#2f7d4f;--stage:#ebe8e3;--paper:#fcfbf9;--glass:#ffffffc7;--glass-line:#ffffffb3;--radius:14px;--radius-sm:10px;--shadow:0 1px 1px #1e191408, 0 2px 6px #1e19140a, 0 10px 28px #1e19140d;--shadow-lg:0 2px 6px #1e19140f, 0 24px 64px #1e19142e;--ease:cubic-bezier(.2, .8, .2, 1);--font:"Inter Variable", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--mono:"Inter Variable", ui-monospace, "Cascadia Mono", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141412;--panel:#1c1b19;--panel-2:#22211e;--panel-3:#2a2925;--ink:#f1eee8;--ink-2:#d8d3ca;--muted:#9c958a;--line:#2f2d29;--line-2:#3d3a35;--accent:#e07a43;--accent-2:#f0945f;--accent-soft:#3a261a;--on-ink:#1c1b19;--warn:#e7b45a;--warn-soft:#3a2f19;--danger:#f2786d;--stage:#23221f;--glass:#201f1ccc;--glass-line:#ffffff14;--shadow:0 1px 2px #0000004d, 0 10px 28px #00000040;--shadow-lg:0 24px 64px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#141412;--panel:#1c1b19;--panel-2:#22211e;--panel-3:#2a2925;--ink:#f1eee8;--ink-2:#d8d3ca;--muted:#9c958a;--line:#2f2d29;--line-2:#3d3a35;--accent:#e07a43;--accent-2:#f0945f;--accent-soft:#3a261a;--on-ink:#1c1b19;--warn:#e7b45a;--warn-soft:#3a2f19;--danger:#f2786d;--stage:#23221f;--glass:#201f1ccc;--glass-line:#ffffff14;--shadow:0 1px 2px #0000004d, 0 10px 28px #00000040;--shadow-lg:0 24px 64px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.elev-wrap,.wizard-preview,.paper,.sheet,.drill-card,.spec-card,.asm-card,.labels,.tpl-img,.quote-elev{--ink:#1c1b19;--ink-2:#3d3a35;--muted:#77716a;--line:#e9e5de;--line-2:#dad4ca;--panel:#fff;--panel-2:#f9f8f5;--accent-soft:#fbece1;--on-ink:#fff;color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:14px/1.45 var(--font);font-feature-settings:"cv11", "ss01", "tnum" 0;letter-spacing:-.006em;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3{margin:0;line-height:1.2}h2{font-size:20px}h3{font-size:14px}button{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "zero" 1}.r{text-align:right}.row-gap{align-items:center;gap:8px;display:flex}.wrap{flex-wrap:wrap}.link{color:var(--accent-2);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}kbd{font-family:var(--mono);border:1px solid var(--line-2);background:var(--panel);border-bottom-width:2px;border-radius:5px;padding:0 5px;font-size:12px}.app{grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);height:100dvh;display:grid}.topbar{background:var(--panel);color:var(--ink);border-bottom:1px solid var(--line);z-index:3;align-items:center;gap:12px;padding:8px 14px;display:flex;position:relative}.brand{letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:9px;font-size:15px;font-weight:750;display:flex}.brand-name small{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:-2px;font-size:10.5px;font-weight:600;display:block}.proj-name{width:140px;min-width:0;max-width:420px;color:inherit;font:inherit;background:0 0;border:1px solid #0000;border-radius:9px;flex:140px;padding:7px 10px;font-size:14.5px;font-weight:600;transition:background .15s,border-color .15s}.proj-name:hover{background:var(--panel-2);border-color:var(--line)}.proj-name:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.top-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.save-state{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;padding:0 4px;font-size:12px;display:inline-flex}.save-state i{background:var(--ok);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 20%, transparent);border-radius:50%}.tabs{background:var(--panel);border-bottom:1px solid var(--line);scrollbar-width:none;gap:2px;padding:6px 10px;display:flex;overflow-x:auto}.tabs button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;padding:7px 13px;font-size:13.5px;font-weight:600;transition:color .15s,background .15s;display:flex;position:relative}.tabs button:hover{color:var(--ink);background:var(--panel-2)}.tabs button.is-on{color:var(--ink);background:var(--panel-3)}.tabs button.is-on svg{color:var(--accent)}.main{min-height:0;overflow:auto}.main-design{overflow:hidden}.btn{border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--panel);min-height:36px;color:var(--ink);cursor:pointer;white-space:nowrap;transition:background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), box-shadow .15s var(--ease), transform .1s var(--ease);justify-content:center;align-items:center;gap:6px;padding:0 13px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 1px 1px #00000008}.btn:active:not(:disabled){transform:translateY(1px)}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.4;cursor:default}.btn:focus-visible,.seg button:focus-visible,.chip:focus-visible,.tpl:focus-visible,.split-btn:focus-visible,.front-btn:focus-visible,.mat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-sm{min-height:32px;padding:0 10px;font-size:13px}.btn-icon{width:36px;padding:0}.btn-sm.btn-icon{width:32px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 1px 2px #963c1440,inset 0 1px #ffffff2e}.btn-primary:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2)}.btn-ghost{box-shadow:none;background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--panel-2);border-color:var(--line)}.btn-danger{color:var(--danger)}.btn.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-2)}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field-label{color:var(--ink-2);font-size:12px;font-weight:600}.field-hint{color:var(--muted);font-size:11.5px}.input{border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--panel);width:100%;min-height:36px;font:inherit;color:inherit;padding:7px 10px;transition:border-color .15s,box-shadow .15s}textarea.input{resize:vertical}.input:focus,.num:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.num{border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--panel);align-items:stretch;min-height:36px;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.num input{width:100%;min-width:0;font:inherit;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;color:inherit;background:0 0;border:0;flex:auto;padding:0 4px}.num input:focus{outline:none}.num input::placeholder{font-family:var(--font);color:var(--muted)}.num-suffix{color:var(--muted);white-space:nowrap;align-self:center;padding-right:4px;font-size:12px}.num-step{background:var(--panel-2);color:var(--muted);cursor:pointer;border:0;flex:0 0 30px;font-size:16px}.grid3 .num-step,.mat-line .num-step,.grid-hw .num-step,.inline-fields .num-step{display:none}.grid3 .num input,.mat-line .num input,.grid-hw .num input{padding-left:8px}.num-step:hover{background:var(--accent-soft);color:var(--accent-2)}.seg{background:var(--panel-3);border:1px solid var(--line);border-radius:11px;flex-wrap:wrap;gap:3px;padding:3px;display:flex}.seg button{min-height:30px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;flex:auto;justify-content:center;align-items:center;gap:5px;padding:0 9px;font-size:13px;font-weight:600;transition:color .15s,background .15s,box-shadow .15s;display:inline-flex}.seg button:hover{color:var(--ink)}.seg button.is-on{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #0000001a,0 2px 8px #0000000d}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--line-2);width:34px;height:20px;transition:background .2s var(--ease);border-radius:20px;flex:none;position:relative}.toggle-track:after{content:"";width:16px;height:16px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track:after{transform:translate(14px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-2);background:var(--panel);cursor:pointer;color:var(--ink-2);border-radius:999px;padding:4px 11px;font-size:12.5px;font-weight:600}.chip:hover{border-color:var(--muted)}.chip.is-on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.chips-tight .chip{font-family:var(--mono);padding:3px 9px;font-size:12px}.swatch{vertical-align:-2px;border:1px solid #0000002e;border-radius:4px;display:inline-block}.grid2,.grid3{gap:10px;display:grid}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.section{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px #1e191408}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;min-height:46px;padding:10px 14px 10px 16px;display:flex}.section-head h3{letter-spacing:-.01em;font-size:13.5px;font-weight:700}.section-body{flex-direction:column;gap:14px;padding:14px 16px 16px;display:flex}.design{grid-template-columns:290px minmax(0,1fr) 360px;height:100%;min-height:0;display:grid}.side{background:var(--panel-2);min-height:0;overflow:auto}.side-left{border-right:1px solid var(--line)}.side-right{border-left:1px solid var(--line)}.side-block{padding:14px}.side-block+.side-block{border-top:1px solid var(--line)}.side-title{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:10px;font-size:11px;font-weight:700}.gallery{flex-direction:column;gap:10px;display:flex}.tpl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.tpl{text-align:left;border:1px solid var(--line);background:var(--panel);cursor:pointer;transition:border-color .18s var(--ease), transform .18s var(--ease), box-shadow .18s var(--ease);border-radius:12px;flex-direction:column;align-items:stretch;gap:2px;padding:8px;display:flex}.tpl:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px)}.tpl:active{transform:translateY(0)}.tpl-img{background:linear-gradient(#f7f5f1,#efece6);border-radius:8px;height:78px;margin-bottom:6px;padding:4px;display:block}.tpl-img svg{width:100%;height:100%}.tpl-name{font-size:12.5px;font-weight:650;line-height:1.25}.tpl-desc{color:var(--muted);font-size:11px;line-height:1.3}.mod-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.mod-list li{border:1px solid #0000;border-radius:8px;align-items:center;display:flex}.mod-list li:hover{background:var(--panel);border-color:var(--line)}.mod-list li.is-sel{background:var(--accent-soft);border-color:var(--accent)}.mod-item{text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:8px;min-width:0;padding:7px 8px;display:grid}.mod-kind{text-transform:uppercase;letter-spacing:.04em;background:var(--ink);color:var(--on-ink);text-align:center;border-radius:5px;grid-row:span 2;min-width:46px;padding:3px 5px;font-size:10.5px;font-weight:700}.mod-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.mod-dims{font-family:var(--mono);color:var(--muted);grid-column:2;font-size:11.5px}.mod-warn{color:var(--warn);grid-area:1/3/span 2}.mod-actions{opacity:.55;display:flex}.mod-list li:hover .mod-actions,.link-chips{flex-wrap:wrap;gap:6px;display:flex}.link-chip{color:#2459b8;background:#2f6fd61a;border-radius:999px;align-items:center;gap:6px;padding:3px 4px 3px 9px;font-size:12px;display:inline-flex}.link-chip button{background:var(--panel,#fff);color:inherit;font:inherit;cursor:pointer;border:0;border-radius:999px;padding:2px 8px}.group-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.group-list li{border-radius:8px;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:4px 4px 4px 10px;font-size:13px;display:grid;box-shadow:inset 3px 0 #2f6fd6}.group-list li.is-primary{box-shadow:inset 3px 0 0 var(--accent);background:var(--accent-soft)}.group-list button{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.group-list .group-x{text-align:center;opacity:.6;border-radius:6px;width:24px;height:24px;font-size:16px}.group-list .group-x:hover{opacity:1;background:var(--panel-2)}.mod-list li.is-group{background:#2f6fd614;box-shadow:inset 3px 0 #2f6fd6}.mod-list li.is-sel .mod-actions{opacity:1}.empty-note{color:var(--muted);align-items:flex-start;gap:8px;margin:0;display:flex}.empty-note.pad{justify-content:center;padding:40px 20px}button.band-cell.is-edit{cursor:pointer;font:inherit;color:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;margin:-3px -7px;padding:2px 6px}button.band-cell.is-edit:hover,tr.is-editing button.band-cell.is-edit{border-color:var(--accent);background:var(--accent-soft)}.badge{background:var(--accent);color:#fff;border-radius:999px;padding:1px 6px;font-size:11px;font-weight:700}tr.is-editing td{background:var(--accent-soft)}.row-editor td{background:var(--accent-soft);padding:14px 16px 18px!important}.row-editor-body{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.row-editor-side{flex-direction:column;flex:240px;gap:10px;min-width:240px;max-width:380px;display:flex}.edge-pick{flex:none;width:260px;height:150px;position:relative}.edge-pick-body{border:1px solid var(--line-2);background:var(--panel);font-family:var(--mono);color:var(--muted);border-radius:3px;place-items:center;font-size:12px;display:grid;position:absolute;inset:34px 62px}.edge-btn{border:1px dashed var(--line-2);background:var(--panel);cursor:pointer;color:var(--muted);border-radius:8px;padding:0 6px;font-size:12px;position:absolute}.edge-btn.is-on{border:2px solid var(--accent);background:var(--accent);color:#fff;font-weight:700}.edge-l1{height:28px;bottom:0;left:62px;right:62px}.edge-l2{height:28px;top:0;left:62px;right:62px}.edge-w1{width:56px;top:34px;bottom:34px;left:0}.edge-w2{width:56px;top:34px;bottom:34px;right:0}.counter-grid{grid-template-columns:minmax(0,1fr) 300px;gap:18px;display:grid}@media (width<=900px){.counter-grid{grid-template-columns:minmax(0,1fr)}}.counter-grid .stats{margin-bottom:12px}.counter-grid .muted.small{margin-top:8px}.color-input{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;height:38px;padding:2px}.wizard-cta{text-align:left;cursor:pointer;color:#fff;width:100%;box-shadow:var(--shadow);background:linear-gradient(135deg,#2b2a28,#4a3a2c);border:0;border-radius:12px;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.wizard-cta svg{color:#f0a26a;flex:none}.wizard-cta span{flex-direction:column;gap:2px;display:flex}.wizard-cta small{color:#d9cfc4;font-size:12px;line-height:1.3}.wizard-cta:hover{background:linear-gradient(135deg,#34322f,#5a4634)}.wizard-cta:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wizard{grid-template-columns:280px minmax(0,1fr);gap:18px;display:grid}.wizard-form{flex-direction:column;gap:12px;display:flex}.wizard-preview{border:1px solid var(--line);background:#fbfaf8;border-radius:10px;flex-direction:column;gap:6px;min-height:260px;padding:10px;display:flex}.wizard-preview .elevation{width:100%;height:300px}@media (width<=700px){.wizard{grid-template-columns:minmax(0,1fr)}.wizard-preview .elevation{height:200px}}.stage{background:var(--stage);grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.stage-bar{background:var(--panel);border-bottom:1px solid var(--line);scrollbar-width:thin;align-items:center;gap:10px;padding:8px 10px;display:flex;overflow-x:auto}.stage-bar .seg{flex:none}.stage-tools{flex:none;gap:6px;display:flex}.stage-canvas{min-width:0;min-height:0;position:relative;overflow:hidden}.stage-canvas canvas{touch-action:none}.stage-hint{color:var(--muted);background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;border-radius:999px;margin:0;padding:4px 10px;font-size:11.5px;position:absolute;bottom:8px;left:10px}.stage-empty{text-align:center;height:100%;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.stage-empty h2{color:var(--ink)}.stage-empty p{max-width:380px;margin:0}.elev-wrap{background:var(--paper);padding:12px;position:absolute;inset:0}.elev-wrap .elevation{width:100%;height:100%}.summary{background:var(--panel);border-top:1px solid var(--line);color:var(--muted);white-space:nowrap;align-items:center;gap:16px;padding:8px 14px;font-size:13px;display:flex;overflow-x:auto}.summary b{color:var(--ink)}.summary-warn{color:var(--warn);background:var(--warn-soft);border-radius:6px;align-items:center;gap:4px;padding:2px 7px;font-weight:600;display:inline-flex}.summary-price{background:var(--accent-soft);color:var(--accent-2);cursor:pointer;border:0;border-radius:8px;margin-left:auto;padding:5px 11px}.summary-price b{color:var(--accent-2);font-family:var(--mono);margin-left:4px}.elevation{-webkit-user-select:none;user-select:none;display:block}.elevation .floor{stroke:#8b857b}.elevation .mod-bg{opacity:.55}.elevation .part{stroke:#3a3631}.elevation .part-shelf{stroke-dasharray:none}.elevation .part-rod{stroke:#6b7078}.elevation .leg{fill:#2a2c30;stroke:none}.elevation .cell{fill:#0000;stroke:none}.elevation .cell.is-leaf{cursor:pointer}.elevation .cell.is-hover{fill:#c2662a1a}.elevation .cell.is-on{fill:#c2662a2e;stroke:var(--accent)}.elevation .cell-label{fill:#3b3732;paint-order:stroke;stroke:#ffffffd9;stroke-linejoin:round;font-family:var(--font);font-weight:600}.elevation .cell-size{fill:#7a746a;font-family:var(--mono);font-weight:400}.elevation .front rect:first-child{fill-opacity:.78;stroke:#2b2824}.elevation .hinge{fill:none;stroke:#2b2824;stroke-dasharray:18 12;opacity:.55}.elevation .handle{fill:#2c2c2c;opacity:.75}.elevation .mod.is-draggable{touch-action:none}.elevation.is-dragging,.elevation.is-dragging *{cursor:grabbing!important}.section-fold>summary{cursor:pointer;list-style:none}.section-fold>summary::-webkit-details-marker{display:none}.section-fold>summary h3:after{content:" ▾";opacity:.5}.section-fold:not([open])>summary h3:after{content:" ▸"}.tips{gap:8px;margin:0;padding:0;list-style:none;display:grid}.tip{background:var(--panel-2);border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:6px 8px;padding:8px 10px;font-size:13px;line-height:1.35;display:grid}.tip>button{grid-column:2;justify-self:start}.tip-warn{background:var(--warn-soft);color:var(--warn)}.pro-switch{border:1px solid var(--line,#ddd);background:var(--panel,#fff);border-radius:999px;padding:2px;display:inline-flex}.pro-switch button{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:4px 11px;font-size:13px;font-weight:600}.pro-switch button.is-on{background:var(--accent);color:#fff;opacity:1}.cmd-input{width:100%;font:inherit;border:1px solid var(--line,#ddd);resize:vertical;background:var(--panel,#fff);color:inherit;border-radius:10px;padding:10px 12px;font-size:15px}.cmd-summary{background:#c2662a17;border-radius:10px;gap:4px;margin:0;padding:10px 12px;font-size:14px;list-style:none;display:grid}.cmd-summary svg{color:var(--accent);vertical-align:-2px}.plan{width:100%;height:100%;max-height:100%}.plan-floor{fill:#f3efe8}.plan-wall{fill:#6b665e}.plan-wall.is-faint{opacity:.2}.plan-counter{opacity:.55}.plan-mod polygon:first-child{fill:#fff;stroke:#4b4a47}.plan-mod.plan-wall polygon:first-child{fill:#3f7fbf1f;stroke:#3f7fbf;stroke-dasharray:18 10}.plan-mod.plan-tall polygon:first-child{fill:#ebe5da}.plan-mod.is-sel polygon:first-child{stroke:var(--accent)}.plan-mod{cursor:pointer}.plan-label,.plan-wall-name{fill:#4b4a47;pointer-events:none;font-weight:600}.plan-wall-name{fill:#8a857c}.drill-legend{flex-wrap:wrap;gap:6px 14px;margin:0 0 14px;font-size:13px;display:flex}.drill-legend i{vertical-align:-1px;border-radius:50%;width:11px;height:11px;display:inline-block}.drill-legend i.ring{border:2px solid #5b6b7a}.drill-legend i.bar{vertical-align:2px;background:#c2662a;border-radius:2px;width:16px;height:4px}.drill-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.drill-card{border:1px solid var(--line,#ddd);background:var(--panel,#fff);break-inside:avoid;border-radius:12px;gap:8px;margin:0;padding:10px;display:grid}.drill-card svg{width:100%;height:190px}.drill-card figcaption{gap:4px;display:grid}.drill-part{fill:#f6f1e8;stroke:#4b4a47}.drill-front{stroke:#c2662a}.drill-groove{fill:#4b4a4740}.drill-dim{fill:#6b665e}.drill-counts{flex-wrap:wrap;gap:4px;display:flex}.drill-chip{border:1px solid #aaa;border-radius:999px;padding:1px 7px;font-size:11.5px}.quote-walls{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.quote-walls figure{margin:0}.elevation .edge-grip{touch-action:none}.elevation .edge-hit{fill:#0000}.elevation .edge-grip-v{cursor:ew-resize}.elevation .edge-grip-h{cursor:ns-resize}.elevation .edge-knob{fill:#fff;stroke:var(--accent);filter:drop-shadow(0 1px 2px #0000004d)}.elevation .edge-grip:hover .edge-knob,.elevation .edge-grip.is-on .edge-knob{fill:var(--accent)}.elevation .edge-grip:hover .edge-hit,.elevation .edge-grip.is-on .edge-hit{fill:#c2662a24}.elevation .rz-badge{fill:var(--accent-2);paint-order:stroke;stroke:#fff;pointer-events:none;font-weight:800}.elevation .splitter{fill:#0000;touch-action:none}.elevation .splitter-v{cursor:col-resize}.elevation .splitter-h{cursor:row-resize}.elevation .splitter:hover,.elevation .splitter.is-on{fill:#c2662a73}.elevation .sel-frame.is-group{stroke:#2f6fd6;stroke-dasharray:6 4}.elevation .lock-glyph{cursor:pointer}.elevation .lock-glyph circle{fill:#fff;stroke:#9aa0a6;stroke-width:1.4px}.elevation .lock-glyph .lg-body{fill:#6b7079}.elevation .lock-glyph .lg-shackle{fill:none;stroke:#6b7079;stroke-width:2px;stroke-linecap:round}.elevation .lock-glyph.is-on circle{fill:var(--accent);stroke:var(--accent)}.elevation .lock-glyph.is-on .lg-body{fill:#fff}.elevation .lock-glyph.is-on .lg-shackle{stroke:#fff}.elevation .lock-glyph:hover circle{stroke:var(--accent);stroke-width:2.2px}.elevation .mod-hit{fill:#0000;cursor:pointer}.elevation .sel-frame{fill:none;stroke:var(--accent);stroke-dasharray:20 10}.elevation .dim line{stroke:#6d6760;stroke-width:1.5px;vector-effect:non-scaling-stroke}.elevation .dim text{fill:#4b463f;font-family:var(--mono)}.elevation .mod-name{fill:#4b463f;font-weight:600}.elevation.is-thumb .part{stroke:#57524b}.elevation.is-thumb .front rect:first-child{fill-opacity:.7}.inspector{flex-direction:column;gap:12px;padding:12px;display:flex}.inspector-empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:40px 24px;display:flex}.inspector-empty p{margin:0}.crumbs{flex-wrap:wrap;align-items:center;gap:2px;font-size:13px;display:flex}.crumbs span{color:var(--muted);align-items:center;gap:2px;display:inline-flex}.crumbs button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:6px;padding:3px 6px;font-weight:600}.crumbs button:hover{background:var(--panel-2)}.crumbs button.is-on{background:var(--accent-soft);color:var(--accent-2)}.section-body p{margin:0}.split-grid,.front-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.split-btn,.front-btn{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;color:var(--ink-2);border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:8px 4px 6px;font-size:12px;font-weight:600;display:flex}.split-btn:hover,.front-btn:hover{border-color:var(--accent);color:var(--accent-2);background:var(--panel)}.front-btn.is-on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2)}.mat-row{flex-wrap:wrap;gap:7px;display:flex}.mat{cursor:pointer;border:1px solid #0000002e;border-radius:8px;width:32px;height:32px;position:relative;overflow:hidden}.mat.is-on{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--accent)}.mat-grain{background:repeating-linear-gradient(90deg,#0000 0 3px,#00000024 3px 4px,#0000 4px 7px);position:absolute;inset:0}.warn-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.warn-list li{background:var(--warn-soft);color:#6f4a0e;border-radius:7px;align-items:flex-start;gap:6px;padding:7px 9px;font-size:12.5px;display:flex}.warn-list svg{flex:none;margin-top:2px}.dock{display:none}.report{flex-direction:column;gap:18px;max-width:1180px;margin:0 auto;padding:20px 20px 60px;display:flex}.report-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.report-head p{margin:4px 0 0}.report-block{flex-direction:column;gap:10px;display:flex}.mat-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.mat-title{align-items:center;gap:8px;font-size:15px;display:flex}.tag{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--panel-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 10px;font-size:11.5px;font-weight:700}.table th.r{text-align:right}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 10px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--panel-2)}.table tfoot td{border-top:1px solid var(--line-2);border-bottom:0;font-weight:600}.table tfoot .grand td{border-top:2px solid var(--ink);font-size:15px;font-weight:800}.band-cell{align-items:center;gap:8px;display:inline-flex}.edge-glyph .eg-body{fill:var(--panel-2);stroke:var(--line-2)}.edge-glyph .eg-band{stroke:var(--accent);stroke-linecap:square}.edge-glyph .eg-grain{fill:none;stroke:#8f877b;stroke-width:1px}.show-sm{display:none}.labels{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.label{background:var(--panel);border:1px dashed var(--line-2);break-inside:avoid;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px;display:grid}.label-side{flex-direction:column;align-items:center;gap:4px;display:flex}.label-id{font-family:var(--mono);letter-spacing:.04em;font-size:9px;line-height:1}.label-no{font-family:var(--mono);text-align:center;min-width:34px;font-size:22px;font-weight:800}.label-body{flex-direction:column;font-size:12px;line-height:1.3;display:flex}.stats{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;display:grid}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.stat span{color:var(--muted);font-size:12px}.stat b{font-size:18px;font-family:var(--mono);font-variant-numeric:tabular-nums}.alert{color:#7a1c12;background:#fdecea;border-radius:8px;margin:0;padding:10px 12px}.inline-fields{gap:10px;display:flex}.inline-fields .field{width:150px}.sheets{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px;display:grid}.sheet{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);break-inside:avoid;margin:0;padding:10px 12px 12px}.sheet figcaption{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:13px;display:flex}.sheet-svg{width:100%;height:auto;display:block}.sheet-bg{stroke:none}.hatch{stroke:#e4ddd2}.sheet-edge{fill:none;stroke:#59544c;stroke-width:4px}.offcut{fill:#f6f4ef;stroke:#cbc4b8;stroke-width:2px;stroke-dasharray:12 8}.offcut-label{fill:#9a9184;font-family:var(--mono)}.piece{stroke-width:3px}.piece-no{font-family:var(--mono);fill:#2a2622;font-weight:800}.piece-dim{font-family:var(--mono);fill:#4a453e}.grain-arrow line,.grain-arrow path{stroke:#8f877b;fill:#8f877b}.cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:4px;padding:12px;display:flex}.plain{flex-direction:column;gap:3px;margin:4px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.quote-grid{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;display:grid}.paper{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:6px;flex-direction:column;gap:18px;padding:32px 34px;display:flex}.quote-head{border-bottom:2px solid var(--ink);justify-content:space-between;gap:12px;padding-bottom:14px;display:flex}.quote-head h1{letter-spacing:-.01em;font-size:26px}.quote-head p{margin:3px 0 0}.quote-to{flex-direction:column;gap:1px;display:flex}.quote-elev{border:1px solid var(--line);background:#fcfbf9;border-radius:6px;padding:8px}.quote-elev .elevation{width:100%;height:260px}.quote .table th{background:0 0}.firm-name{color:var(--accent-2);font-size:15px;font-weight:800;margin:0 0 2px!important}.quote-terms{white-space:pre-wrap;margin:0;font-size:12.5px}.quote-head h1{margin-top:8px}.quote-note{white-space:pre-wrap;background:var(--panel-2);border-left:3px solid var(--accent);margin:0;padding:10px 12px}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:start;gap:14px;display:grid}.mat-table{flex-direction:column;gap:10px;display:flex}.mat-line{border-bottom:1px solid var(--line);grid-template-columns:38px minmax(160px,2fr) 130px 110px 120px 120px 130px auto 36px;align-items:end;gap:8px;padding-bottom:10px;display:grid}.mat-line:last-child{border-bottom:0;padding-bottom:0}.mat-line input[type=color]{border:1px solid var(--line-2);background:var(--panel);cursor:pointer;border-radius:8px;width:38px;height:36px;padding:2px}.mat-line .toggle{min-height:36px}.extra-line{grid-template-columns:minmax(120px,1.4fr) 120px 110px 90px minmax(150px,1.4fr) auto 36px;align-items:end;gap:8px;display:grid}.edge-checks{flex-wrap:wrap;align-items:center;gap:4px 10px;min-height:36px;display:flex}.edge-check{white-space:nowrap;align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.grid-band{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.grid-band .num-step{display:none}.grid-hw{grid-template-columns:minmax(0,1fr) 150px;gap:8px;display:grid}.modal-back{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in .18s var(--ease);z-index:50;background:#14120f66;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);width:min(520px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-lg);animation:pop-in .22s var(--ease);border-radius:18px;outline:none;overflow:auto}.modal.is-wide{width:min(880px,100%)}.modal-head{border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;padding:14px 16px 10px 20px;display:flex;position:sticky;top:0}.modal-body{flex-direction:column;gap:12px;padding:16px 20px 22px;display:flex}.modal-body p{margin:0}.share-url{font-family:var(--mono);word-break:break-all;font-size:12px}.proj-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.proj-list li{border:1px solid var(--line);border-radius:9px;align-items:center;gap:6px;padding-right:6px;display:flex}.proj-list li.is-cur{border-color:var(--accent);background:var(--accent-soft)}.proj-open{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:auto;align-items:flex-start;padding:10px 12px;display:flex}.help{flex-direction:column;gap:10px;margin:0;padding-left:20px;display:flex}.toast{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;z-index:60;background:#1c1b19eb;border-radius:999px;max-width:calc(100vw - 32px);padding:10px 16px;font-weight:600;animation:.2s ease-out toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000040}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (width<=1180px){.design{grid-template-columns:250px minmax(0,1fr) 330px}.tpl-grid{grid-template-columns:minmax(0,1fr)}.tpl{grid-template-columns:64px 1fr;column-gap:8px;display:grid}.tpl-img{grid-row:span 2;height:52px;margin:0}.mat-line{grid-template-columns:38px repeat(3,minmax(0,1fr))}.extra-line{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));padding-bottom:10px}.mat-line>:nth-child(2){grid-column:span 3}}@media (width<=900px){.topbar{gap:8px;padding:6px 10px}.brand-name,.hide-sm{display:none}.show-sm{display:inline}.top-actions{gap:2px}.top-actions .btn{gap:0;width:34px;padding:0}.toast{bottom:76px}.tabs{padding:0 4px}.tabs button{padding:10px 10px 9px;font-size:13px}.design{grid-template-rows:54dvh minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.stage{border-bottom:1px solid var(--line);grid-row:1}.side{border:0;grid-row:2}.side-left,.side-right{display:none}.design[data-panel=add] .side-left,.design[data-panel=list] .side-left{display:block}.design[data-panel=add] .p-list,.design[data-panel=list] .p-add{display:none}.design[data-panel=edit] .side-right{display:block}.side-block+.side-block{border-top:0}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.tpl{display:flex}.tpl-img{height:70px;margin-bottom:4px}.dock{background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);grid-row:3;grid-template-columns:repeat(3,1fr);display:grid}.dock button{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:12px;font-weight:600;display:flex}.dock button.is-on{color:var(--accent-2)}.stage-hint{display:none}.summary{gap:12px;padding:6px 10px;font-size:12px}.report{padding:14px 16px 40px}.quote-grid{grid-template-columns:minmax(0,1fr)}.paper{padding:18px 16px}.sheets{grid-template-columns:minmax(0,1fr)}.inline-fields .field{width:130px}.mat-line{grid-template-columns:38px repeat(2,minmax(0,1fr))}.mat-line>:nth-child(2){grid-column:span 2}.extra-line{grid-template-columns:minmax(120px,1.4fr) 120px 110px 90px minmax(150px,1.4fr) auto 36px;align-items:end;gap:8px;display:grid}.edge-checks{flex-wrap:wrap;align-items:center;gap:4px 10px;min-height:36px;display:flex}.edge-check{white-space:nowrap;align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.grid-hw{grid-template-columns:minmax(0,1fr) 130px}.settings-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=520px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.table td,.table th{padding:7px}.stage-tools .btn span{display:none}.stage-tools .btn{width:32px;padding:0}}@media print{@page{size:A4;margin:12mm}body{background:#fff;font-size:11px}.app{height:auto;display:block}.topbar,.tabs,.no-print,.toast,.report-head .btn,.report-head .toggle,.report-head .inline-fields{display:none!important}.main{overflow:visible}.report{max-width:none;padding:0}.quote-grid{display:block}.paper{box-shadow:none;border:0;padding:0}.table-wrap,.section,.stat,.sheet{border-color:#bbb}.sheets{grid-template-columns:repeat(2,minmax(0,1fr))}.table tbody tr:hover td{background:0 0}}@media (width<=520px){.pro-switch button{padding:3px 7px;font-size:12px}.top-actions>button[title^=İleri\ al]{display:none}}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes spin{to{transform:rotate(360deg)}}::selection{background:color-mix(in srgb, var(--accent) 28%, transparent)}*{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.center{justify-content:center}.spinner{border:2px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}.stage-loading{flex-direction:row;gap:10px}.stage-empty-art{background:var(--panel);width:96px;height:96px;box-shadow:var(--shadow);border-radius:28px;place-items:center;margin-bottom:6px;display:grid}.wizard-cta{transition:transform .2s var(--ease), box-shadow .2s var(--ease);background:radial-gradient(120% 140% at 100% 0,#e07a4359,#0000 55%),linear-gradient(135deg,#22211e,#3b3027);position:relative;overflow:hidden}.wizard-cta:hover{box-shadow:var(--shadow-lg);background:radial-gradient(120% 140% at 100% 0,#e07a4373,#0000 55%),linear-gradient(135deg,#2a2925,#47392d);transform:translateY(-1px)}.view-dock{background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.4);border:1px solid var(--glass-line);box-shadow:var(--shadow);scrollbar-width:none;z-index:2;border-radius:16px;align-items:center;gap:2px;max-width:calc(100% - 24px);padding:5px;display:flex;position:absolute;bottom:14px;left:50%;overflow-x:auto;transform:translate(-50%)}.view-dock button{min-width:58px;color:var(--ink-2);cursor:pointer;letter-spacing:.01em;background:0 0;border:0;border-radius:11px;flex-direction:column;align-items:center;gap:2px;padding:6px 8px 5px;font-size:10.5px;font-weight:600;transition:background .15s,color .15s;display:flex}.view-dock button:hover{color:var(--ink);background:#7f7f7f1f}.view-dock button.is-on{background:var(--ink);color:var(--on-ink)}.view-dock button:focus-visible,.cam-dock button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.dock-sep{background:var(--line-2);flex:none;align-self:stretch;width:1px;margin:6px 4px}.cam-dock{background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.4);border:1px solid var(--glass-line);box-shadow:var(--shadow);z-index:2;border-radius:14px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;top:12px;right:12px}.cam-dock button{width:34px;height:34px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.cam-dock button:hover{background:#7f7f7f1f}.cam-dock button.is-on{background:var(--ink);color:var(--on-ink)}.cam-dock .flip{display:grid;transform:scaleX(-1)}.stage-hint{top:12px;bottom:auto;left:12px}.dim3d{font:600 11.5px/1.5 var(--font);font-variant-numeric:tabular-nums;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:999px;padding:2px 8px;display:inline-block;box-shadow:0 1px 3px #0000002e}.dim3d-main{color:#fff;background:#e0712b}.dim3d-soft{color:#45484e;background:#ffffffeb}.dim3d-tag{color:#fff;background:#1c1b19b8;padding:1px 7px;font-size:10.5px}.slider-field{flex-direction:column;gap:6px;display:flex}.slider-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.slider-head .field{flex:none;width:124px}.slider-head .num{min-height:32px}.slider-head .num-step{flex-basis:24px}.slider{--pct:50%;appearance:none;cursor:pointer;background:0 0;width:100%;height:22px;margin:0}.slider::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--ink) var(--pct), var(--line-2) var(--pct));border-radius:4px;height:4px}.slider::-moz-range-track{background:var(--line-2);border-radius:4px;height:4px}.slider::-moz-range-progress{background:var(--ink);border-radius:4px;height:4px}.slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--panel);border:2px solid var(--ink);width:20px;height:20px;transition:transform .15s var(--ease);border-radius:50%;margin-top:-8px;box-shadow:0 2px 6px #0000002e}.slider::-moz-range-thumb{background:var(--panel);border:2px solid var(--ink);border-radius:50%;width:16px;height:16px;box-shadow:0 2px 6px #0000002e}.slider:active::-webkit-slider-thumb{transform:scale(1.12)}.slider:hover::-webkit-slider-thumb{transform:scale(1.12)}.slider:focus-visible{outline:none}.slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--accent-soft);border-color:var(--accent)}.slider-marks{flex-wrap:wrap;gap:4px;display:flex}.slider-marks button{color:var(--muted);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:2px 6px;font-size:11.5px}.slider-marks button:hover{background:var(--panel-3);color:var(--ink)}.slider-marks button.is-on{color:var(--accent-2);background:var(--accent-soft)}.style-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.style-card{border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 7px;font-size:11.5px;transition:border-color .15s,color .15s,box-shadow .15s;display:flex}.style-card b{font-weight:650}.style-card:hover{border-color:var(--line-2);color:var(--ink)}.style-card.is-on{border-color:var(--ink);color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.swatch-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dot{cursor:pointer;width:26px;height:26px;transition:transform .15s var(--ease), box-shadow .15s;border:1px solid #00000024;border-radius:50%;padding:0;position:relative}.dot-lg{width:30px;height:30px}.dot:hover{transform:scale(1.08)}.dot.is-on{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--ink)}.dot-pick{color:#fff;background:conic-gradient(#e06a4f,#e7c34f,#6fbf73,#4fa3e0,#9a6fe0,#e06a4f);place-items:center;display:grid;overflow:hidden}.dot-pick input{opacity:0;cursor:pointer;position:absolute;inset:0}.mat{transition:transform .15s var(--ease), box-shadow .15s}.mat:hover{transform:translateY(-1px)}.inspector-intro{border-radius:var(--radius);background:var(--panel);border:1px dashed var(--line-2);color:var(--muted);align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;display:flex}.inspector-intro p{margin:0}.inspector-intro svg{color:var(--accent);flex:none;margin-top:1px}.op-add{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.op-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.op-item{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden}.op-item.is-open{border-color:var(--line-2);box-shadow:var(--shadow)}.op-head{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:9px;width:100%;padding:8px 10px;display:flex}.op-head:hover{background:var(--panel-2)}.op-ico{background:var(--panel-3);width:28px;height:28px;color:var(--ink-2);border-radius:8px;place-items:center;display:grid}.op-title{flex:auto;font-size:13px;font-weight:650}.op-title small{color:var(--muted);margin-left:4px;font-weight:500}.op-dims{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.op-body{flex-direction:column;gap:10px;padding:4px 10px 12px;display:flex}.tip-actions{flex-wrap:wrap;grid-column:2;gap:6px;display:flex}.hinge-row{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-items:end;gap:10px;display:grid}.elevation .opening rect{fill:#eef2f5;stroke:#9aa3ad}.elevation .op-window>rect:first-child{fill:#dde9f2}.elevation .op-door>rect:first-child{fill:#f1ece4}.elevation .op-column>rect,.elevation .op-pipe>rect{fill:#e4e0d9;stroke:#8b857b}.elevation .opening line,.elevation .op-swing{fill:none;stroke:#8f99a4;stroke-dasharray:18 12}.elevation .opening .op-sill{fill:#e9e5de;stroke:#9aa3ad}.elevation .op-label{fill:#6f7882;font-weight:600}.plan .plan-op polygon{fill:#dde9f2;stroke:#7d8a97}.plan .op-door polygon{fill:#f6f3ee}.plan .op-column polygon,.plan .op-pipe polygon{fill:#cfc9bf;stroke:#6b665e}.plan .op-swing{fill:none;stroke:#8f99a4;stroke-dasharray:30 20}.plan-op-name{fill:#6f7882;font-weight:600}.firm-logo{object-fit:contain;max-width:180px;max-height:56px;margin-bottom:8px;display:block}.quote-shot{border:1px solid var(--line);background:#ebe8e3;border-radius:10px;margin:0 0 14px;overflow:hidden}.quote-shot img{object-fit:cover;width:100%;max-height:420px;display:block}.logo-field{align-items:center;gap:10px;display:flex}.logo-field img{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:8px;max-width:140px;height:44px;padding:4px}.logo-empty{border:1px dashed var(--line-2);height:44px;color:var(--muted);border-radius:8px;place-items:center;padding:0 12px;font-size:12px;display:grid}.theme-btn svg{transition:transform .3s var(--ease)}.theme-btn:hover svg{transform:rotate(-20deg)}.palette-back{align-items:flex-start;padding-top:12vh}.palette{background:var(--panel);border:1px solid var(--line);width:min(560px,100%);box-shadow:var(--shadow-lg);animation:pop-in .18s var(--ease);border-radius:18px;overflow:hidden}.palette-input{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:10px;padding:14px 16px;display:flex}.palette-input input{font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:auto;font-size:15px}.palette ul{max-height:50vh;margin:0;padding:6px;list-style:none;overflow:auto}.palette li button{cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;display:flex}.palette li button small{color:var(--muted);margin-left:auto;font-size:11.5px}.palette li button.is-on{background:var(--panel-3)}.palette li button svg{color:var(--muted)}.palette-empty{text-align:center;color:var(--muted);padding:18px}@media (width<=760px){.view-dock{border-radius:14px;bottom:8px}.view-dock button{min-width:46px;padding:6px 6px 4px;font-size:9.5px}.cam-dock{top:8px;right:8px}.cam-dock button{width:30px;height:30px}.style-cards,.op-add{grid-template-columns:repeat(2,minmax(0,1fr))}.save-state{display:none}}@media print{.view-dock,.cam-dock{display:none}.quote-shot{break-inside:avoid}}.live-hud{z-index:4;background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(1.5);border:1px solid var(--glass-line);min-width:260px;max-width:min(640px,100% - 24px);box-shadow:var(--shadow-lg);pointer-events:none;animation:hud-in .14s var(--ease);font-variant-numeric:tabular-nums;border-radius:16px;gap:6px;padding:10px 14px 9px;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}@keyframes hud-in{0%{opacity:0;transform:translate(-50%,-4px)}}.live-main{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.live-title{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.live-value{letter-spacing:-.02em;color:var(--ink);font-size:26px;font-weight:700;line-height:1}.live-value small{color:var(--muted);margin-left:3px;font-size:12px;font-weight:600}.live-delta{background:var(--panel-3);color:var(--ink-2);border-radius:999px;padding:2px 8px;font-size:12.5px;font-weight:700}.live-delta.up{color:#2459b8;background:#e6f0fc}.live-delta.down{color:#a54d1d;background:#fbece1}.live-chip{color:#fff;animation:snap-pop .18s var(--ease);background:#13895f;border-radius:999px;align-self:center;align-items:center;gap:5px;padding:3px 10px 3px 8px;font-size:12.5px;font-weight:650;display:inline-flex}.live-chip.live-lock{background:var(--ink-2)}@keyframes snap-pop{0%{opacity:.4;transform:scale(.86)}}.live-hud.is-snap{box-shadow:0 0 0 3px #13895f24, var(--shadow-lg);border-color:#13895f73}.live-hud.is-snap .live-value{color:#0f7650}.live-hud.is-locked .live-value{color:var(--muted)}.live-items{color:var(--muted);flex-wrap:wrap;gap:4px 14px;font-size:12.5px;display:flex}.live-items b{color:var(--ink);font-weight:650}.live-keys{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:2px 12px;padding-top:6px;font-size:11px;display:flex}.live-keys kbd{border:1px solid var(--line-2);background:var(--panel);min-width:18px;font:600 10.5px/16px var(--font);text-align:center;color:var(--ink-2);border-bottom-width:2px;border-radius:5px;margin-right:3px;padding:0 5px;display:inline-block}.dim-editor{z-index:60;background:var(--panel);border:1px solid var(--line-2);width:206px;box-shadow:var(--shadow-lg);animation:hud-pop .12s var(--ease);border-radius:14px;padding:10px 12px 9px;position:fixed}@keyframes hud-pop{0%{opacity:0;transform:scale(.96)translateY(-3px)}}.dim-editor label{gap:6px;display:grid}.dim-editor label>span:first-child{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:650}.dim-editor-box{border:2px solid var(--accent);background:var(--panel);box-shadow:0 0 0 4px var(--accent-soft);border-radius:10px;align-items:center;gap:6px;padding:0 10px;display:flex}.dim-editor-box.is-bad{border-color:var(--danger);box-shadow:0 0 0 4px #b423181f}.dim-editor input{min-width:0;height:38px;font:700 20px/1 var(--font);font-variant-numeric:tabular-nums;color:var(--ink);background:0 0;border:0;outline:0;flex:1}.dim-editor small{color:var(--muted);font-size:12px;font-weight:600}.dim-editor p{color:var(--muted);margin:7px 0 0;font-size:11px}.elevation .dim-edit{cursor:text}.elevation .dim-edit:hover text{fill:var(--accent);text-decoration:underline}.elevation .snap-guide{stroke:#13895f;stroke-dasharray:6 5;vector-effect:non-scaling-stroke;stroke-width:1.5px;pointer-events:none}.elevation .rz-badge.is-snap{fill:#0f7650}.elevation .opening.is-movable{cursor:grab}.elevation .opening-sel-box{fill:none;stroke:#2f6fd6;stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}.elevation .opening.is-sel>rect:first-child{stroke:#2f6fd6;stroke-width:3px;vector-effect:non-scaling-stroke}.lock-btn{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;display:inline-grid}.lock-btn:hover{background:var(--panel-3);color:var(--ink)}.lock-btn.is-on{background:var(--ink);color:var(--on-ink)}.lock-field{position:relative}.lock-field .lock-btn{position:absolute;top:-4px;right:0}.dim-grid-locks .field-label{padding-right:28px}.swatch-row.is-cell{margin-top:4px}@media (width<=760px){.live-hud{min-width:0;padding:8px 10px;top:8px}.live-value{font-size:21px}.live-keys{display:none}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .live-delta.up{color:#9cc0ff;background:#2f6fd638}:root:not([data-theme=light]) .live-delta.down{color:#f3b38a;background:#e0712b38}}:root[data-theme=dark] .live-delta.up{color:#9cc0ff;background:#2f6fd638}:root[data-theme=dark] .live-delta.down{color:#f3b38a;background:#e0712b38}.elevation .opening-sel text{fill:#2459b8;paint-order:stroke;stroke:#fff;stroke-width:.28em;stroke-linejoin:round;font-weight:600}.elevation .opening-sel line{stroke:#2f6fd6}.spec-filters{align-items:end;margin:0 0 14px}.spec-list,.asm-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));gap:16px;display:grid}.asm-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,640px),1fr))}.spec-card,.asm-card{border:1px solid var(--line-2);color:var(--ink);break-inside:avoid;background:#fff;border-radius:12px;align-content:start;gap:10px;min-width:0;padding:14px;display:grid}.spec-head{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid}.spec-no{background:var(--ink);color:#fff;font-variant-numeric:tabular-nums;border-radius:10px;place-items:center;min-width:44px;height:44px;padding:0 8px;font-size:18px;font-weight:800;display:grid}.spec-title{gap:2px;min-width:0;display:grid}.spec-title b{font-size:16px}.spec-title span{color:var(--muted);overflow-wrap:anywhere;font-size:12.5px}.spec-title .spec-actions{color:inherit;flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.spec-card{scroll-margin-top:12px}.spec-link{all:unset;cursor:pointer;border-bottom:1px dashed;border-bottom-color:color-mix(in srgb, currentColor 40%, transparent)}.spec-link:hover,.spec-link:focus-visible{color:var(--accent);border-bottom-color:var(--accent)}@media print{.spec-link{border:0}}.spec-card.flash{animation:1.8s ease-out spec-flash}@keyframes spec-flash{0%,35%{box-shadow:0 0 0 4px var(--accent);border-color:var(--accent)}to{box-shadow:0 0 #0000}}.spec-draw{background:#fbfaf7;border-radius:8px;width:100%;height:230px}.spec-part{fill:#f3ece0;stroke:#3d3a35}.spec-groove{fill:#3d3a3538}.spec-grain path{fill:none;stroke:#b39a74}.spec-grain text{fill:#b39a74}.spec-edge-t{fill:#a39d94}.spec-edge-t.on{fill:#9a521f;font-weight:600}.spec-edge-t.halo{paint-order:stroke;stroke:#f3ece0;stroke-linejoin:round}.spec-table .nowrap{white-space:nowrap}.spec-legend{margin:-4px 0 0}.spec-origin{fill:#13895f}.spec-ord line,.spec-dim line{stroke:#6b665e}.spec-ord text{fill:#5d5850;font-variant-numeric:tabular-nums}.spec-dim text{fill:#1c1b19;font-variant-numeric:tabular-nums;font-weight:700}.spec-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}@media (width<=560px){.spec-grid{grid-template-columns:1fr}}.spec-facts{grid-template-columns:auto 1fr;gap:3px 10px;margin:0;font-size:12.5px;display:grid}.spec-facts dt{color:var(--muted)}.spec-facts dd{margin:0}.spec-facts dd i{vertical-align:-1px;border:1px solid #00000026;border-radius:3px;width:11px;height:11px;display:inline-block}.spec-table{border-collapse:collapse;width:100%;font-size:12.5px}.spec-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line-2);padding:3px 6px;font-weight:600}.spec-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:3px 6px}.spec-table .r{text-align:right}.spec-table tr.muted td{color:var(--muted)}.spec-holes td.mono{overflow-wrap:anywhere}.spec-band,.spec-dot{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.spec-dot{border-radius:50%}.spec-steps{counter-reset:step;gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.spec-steps li{align-items:baseline;gap:8px;display:flex}.spec-check{border:1.5px solid #6b665e;border-radius:3px;flex:none;width:12px;height:12px;transform:translateY(1px)}.spec-notes{color:#9a521f;margin:0}.asm-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:14px;display:grid}@media (width<=640px){.asm-grid{grid-template-columns:1fr}}.asm-elev .elevation{width:100%;height:auto;max-height:320px}.asm-hw{margin:8px 0 0}@media print{.spec-list,.asm-list{display:block}.spec-card,.asm-card{page-break-inside:avoid;border-color:#999;margin:0 0 6mm}.spec-draw{height:70mm}}@media (width<=560px){.spec-draw-wrap{-webkit-overflow-scrolling:touch;border-radius:8px;overflow-x:auto}.spec-draw{min-width:620px;height:240px}.spec-holes thead{display:none}.spec-holes tr{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto auto;gap:2px 10px;padding:5px 0;display:grid}.spec-holes td{border:0;padding:0 4px}.spec-holes td:nth-child(4){color:var(--ink-2);grid-area:2/1/auto/-1;font-size:12px}.spec-holes td:nth-child(5):before{content:"×";color:var(--muted)}}.hl-banner{z-index:5;background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.4);border:1px solid var(--accent);max-width:calc(100% - 84px);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:8px;padding:5px 6px 5px 12px;animation:.18s ease-out hud-in;display:flex;position:absolute;top:12px;left:12px}.hl-dot{background:#e0712b;border-radius:3px;flex:none;width:10px;height:10px}.hl-text{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.ctx-menu{z-index:70;background:var(--panel);min-width:224px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);color:var(--ink);border:1px solid var(--line-2);border-radius:12px;padding:5px;animation:.12s ease-out pop-in;position:fixed;overflow-y:auto;box-shadow:0 12px 40px #00000038}.ctx-menu hr{border:0;border-top:1px solid var(--line-2);margin:4px 2px}.ctx-title{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis;padding:6px 10px 3px;font-size:11.5px;font-weight:700;overflow:hidden}.ctx-menu button{width:100%;min-height:34px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:6px 10px;font-size:13.5px;display:flex}.ctx-menu button:hover:not(:disabled),.ctx-menu button:focus-visible{background:color-mix(in srgb, var(--accent) 12%, transparent);outline:none}.ctx-menu button:disabled{opacity:.5;cursor:default}.ctx-menu button.is-danger{color:#c0392b}.ctx-menu button[aria-checked=true] .ctx-ic{color:var(--accent)}.ctx-ic{width:16px;color:var(--muted);flex:none;place-items:center;display:grid}.ctx-label{flex:1;min-width:0}.ctx-hint{color:var(--muted);white-space:nowrap;font-size:11.5px}@media (pointer:coarse){.ctx-menu button{min-height:42px}}.shop-progress{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-bottom:14px;display:grid}.shop-bar{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 12px;font-size:13px;position:relative;overflow:hidden}.shop-bar span{z-index:1;position:relative}.shop-bar b{font-family:var(--mono);font-variant-numeric:tabular-nums}.shop-bar i{background:var(--ok);height:4px;transition:width .3s var(--ease);position:absolute;inset:auto 0 0}.shop-scan{flex-direction:column;gap:12px;display:flex}.scan-form{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.field.grow{flex:240px;min-width:0}.cam-scan{flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:relative}.cam-scan video{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);background:#000;width:100%;max-width:480px}.cam-aim{aspect-ratio:4/3;pointer-events:none;background:radial-gradient(closest-side,#0000 62%,#0000004d 63%);width:100%;max-width:480px;position:absolute;top:0;left:0}.scan-last{border-radius:var(--radius-sm);border:1px solid var(--line);border-left:4px solid var(--muted);background:var(--panel-2);flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px;display:flex}.scan-last.is-done,.scan-last.is-busy{border-left-color:var(--ok)}.scan-last.is-redo{border-left-color:var(--danger)}.scan-msg{margin:0;font-weight:600}.piece-info{align-items:center;gap:12px;display:flex}.piece-info>div:last-child{flex-direction:column;gap:2px;display:flex}.piece-no{background:var(--ink);min-width:44px;height:44px;color:var(--on-ink);border-radius:10px;place-items:center;padding:0 6px;font-size:17px;font-weight:700;display:grid}.piece-state{color:var(--muted);white-space:nowrap;font-size:12.5px;font-weight:600}.piece-state.is-done{color:var(--ok)}.piece-state.is-busy{color:var(--warn)}.piece-state.is-redo{color:var(--danger)}p.piece-state{white-space:normal;margin:10px 0}.stage-row{flex-wrap:wrap;gap:4px;display:flex}.stage-btn{border:1px solid var(--line-2);background:var(--panel);color:var(--ink-2);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.stage-btn:hover{border-color:var(--muted)}.stage-btn.is-on{background:var(--ok);border-color:var(--ok);color:#fff}.stage-row.is-big{margin-bottom:14px}.stage-row.is-big .stage-btn{border-radius:var(--radius-sm);flex:130px;justify-content:center;min-height:48px;font-size:15px}.redo-form{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:6px;display:flex}.redo-block h3{align-items:center;gap:8px;display:flex}.redo-block .badge{background:var(--danger)}.shop-table tr.is-redo td{background:color-mix(in srgb, var(--danger) 7%, transparent)}.shop-all>.row-gap{margin-bottom:10px}.shop-help{padding-left:18px;line-height:1.55}@media print{.shop-scan,.shop-progress,.shop .stage-btn:not(.is-on),.print-redo .shop>:not(.redo-block){display:none!important}}.ar-overlay{z-index:1000;padding:max(16px, env(safe-area-inset-top)) 16px max(20px, env(safe-area-inset-bottom));pointer-events:none;font-family:var(--font);flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.ar-hint{color:#fff;text-align:center;background:#0000008c;border-radius:12px;align-self:center;max-width:320px;margin:0;padding:10px 14px;font-size:15px}.ar-actions{justify-content:center;gap:12px;display:flex}.ar-actions button{pointer-events:auto;color:#1c1b19;min-width:110px;min-height:48px;font:600 16px var(--font);background:#ffffffeb;border:0;border-radius:999px}.remnant-panel{gap:12px;display:grid}.remnant-add{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.remnant-add .field{min-width:110px}.remnant-add .field:first-child{min-width:180px}.sheet.is-remnant{outline:2px dashed var(--accent);outline-offset:4px}tr.is-dim td{opacity:.55}
