:root{--bg: #efe3dc;--panel: #faf7f4;--panel-2: #f7e9e4;--line: #e5d5cb;--text: #3b322e;--muted: #7a5a4a;--accent: #8a5240;--accent-2: #6f3f32;--danger: #a8453c;--stage: #e9dccb;--floor: #faf7f4;--plan-bg: #f7e9e4;--grid-line: #e7d1c6;--wall-fill: #e9dccb;--wall-stroke: #3b322e;--cad-text: #5c4033;--cad-halo: rgba(250, 247, 244, .88);--elev-wall: #efe3dc;--elev-cab: #e9dccb;--elev-cab-stroke: #b89486;--elev-toekick: #d9c7b4;--elev-counter: #7a5a4a;--elev-counter-stroke: #5c4033;--hint-bg: rgba(250, 247, 244, .86);--overlay-bg: rgba(250, 247, 244, .97);--overlay-bg-soft: rgba(250, 247, 244, .94);--overlay-line: rgba(122, 90, 74, .28);--overlay-line-soft: rgba(122, 90, 74, .45);--overlay-text: #3b322e;--overlay-strong: #2a231f;--overlay-muted: #7a5a4a;--overlay-soft: #5c4033;--gap-chip-text: #8a5a12;--draw-chip-bg: rgba(250, 247, 244, .96);--draw-chip-bg-soft: rgba(250, 247, 244, .94);--draw-chip-text: #5c4033;--draw-chip-strong: #2a231f;--draw-chip-line: #b89486;--draw-chip-muted: rgba(92, 64, 51, .7);--draw-chip-faint: rgba(92, 64, 51, .5);--title-block-bg: rgba(250, 247, 244, .82);--border: #ddc9bd;--warn: #8a5a12;--cad-label: #3b322e;--cad-recess-label: #7a5a4a;--cad-cl: #9c7a68;--cad-utility-label: #5c4033;--cad-dim-open: #2f6b3a;--cad-dim-dead: #8a5a12;--cad-dim-place: #2f6b3a;--cad-dim-appliance: #8a5a12;--opening-cut: #8c6a58;--utility-dot: #5c4033;--row-hover: #f0e0d8;--title-block-line: #b89486;font-synthesis:none}:root[data-theme=home3]{--bg: #efe3dc;--panel: #faf7f4;--panel-2: #f7e9e4;--line: #e5d5cb;--text: #3b322e;--muted: #7a5a4a;--accent: #8a5240;--accent-2: #6f3f32;--danger: #a8453c;--stage: #e9dccb;--floor: #faf7f4;--plan-bg: #f7e9e4;--grid-line: #e7d1c6;--wall-fill: #e9dccb;--wall-stroke: #3b322e;--cad-text: #5c4033;--cad-halo: rgba(250, 247, 244, .88);--elev-wall: #efe3dc;--elev-cab: #e9dccb;--elev-cab-stroke: #b89486;--elev-toekick: #d9c7b4;--elev-counter: #7a5a4a;--elev-counter-stroke: #5c4033;--hint-bg: rgba(250, 247, 244, .86);--overlay-bg: rgba(250, 247, 244, .97);--overlay-bg-soft: rgba(250, 247, 244, .94);--overlay-line: rgba(122, 90, 74, .28);--overlay-line-soft: rgba(122, 90, 74, .45);--overlay-text: #3b322e;--overlay-strong: #2a231f;--overlay-muted: #7a5a4a;--overlay-soft: #5c4033;--gap-chip-text: #8a5a12;--draw-chip-bg: rgba(250, 247, 244, .96);--draw-chip-bg-soft: rgba(250, 247, 244, .94);--draw-chip-text: #5c4033;--draw-chip-strong: #2a231f;--draw-chip-line: #b89486;--draw-chip-muted: rgba(92, 64, 51, .7);--draw-chip-faint: rgba(92, 64, 51, .5);--title-block-bg: rgba(250, 247, 244, .82);--border: #ddc9bd;--warn: #8a5a12;--cad-label: #3b322e;--cad-recess-label: #7a5a4a;--cad-cl: #9c7a68;--cad-utility-label: #5c4033;--cad-dim-open: #2f6b3a;--cad-dim-dead: #8a5a12;--cad-dim-place: #2f6b3a;--cad-dim-appliance: #8a5a12;--opening-cut: #8c6a58;--utility-dot: #5c4033;--row-hover: #f0e0d8;--title-block-line: #b89486}:root[data-theme=slate]{--bg: #1f2228;--panel: #282c34;--panel-2: #2f343d;--line: #3a404a;--text: #e6e8eb;--muted: #9aa3b0;--accent: #4f9cf9;--accent-2: #2b6fd4;--danger: #e05a5a;--stage: #14161a;--floor: #f4efe6;--plan-bg: #232831;--grid-line: #353b47;--wall-fill: #c3c8cf;--wall-stroke: #1b1f25;--cad-text: #bcd4f5;--cad-halo: rgba(18, 21, 26, .85);--elev-wall: #20242b;--elev-cab: #3a3326;--elev-cab-stroke: #1a1d22;--elev-toekick: #15171b;--elev-counter: #2b2f37;--elev-counter-stroke: #565f6b;--hint-bg: rgba(0, 0, 0, .55);--overlay-bg: rgba(18, 23, 31, .96);--overlay-bg-soft: rgba(18, 23, 31, .92);--overlay-line: rgba(188, 212, 245, .32);--overlay-line-soft: rgba(188, 212, 245, .5);--overlay-text: #e8f0fb;--overlay-strong: #f2f7ff;--overlay-muted: #9fb3ca;--overlay-soft: #c6d5e8;--gap-chip-text: #ffd79a;--draw-chip-bg: rgba(20, 22, 26, .94);--draw-chip-bg-soft: rgba(20,22,26,.92);--draw-chip-text: #f0d999;--draw-chip-strong: #fff;--draw-chip-line: #e6c06a;--draw-chip-muted: rgba(240,217,153,.6);--draw-chip-faint: rgba(240,217,153,.45);--title-block-bg: rgba(20, 22, 26, .6);--border: #3d444d;--warn: #c9922e;--cad-label: #cdd6e2;--cad-recess-label: #b7c2d0;--cad-cl: #8aa0bd;--cad-utility-label: #dce6f1;--cad-dim-open: #cce8b8;--cad-dim-dead: #ffd08a;--cad-dim-place: #cce8b8;--cad-dim-appliance: #ffe0a3;--opening-cut: #efe7d8;--utility-dot: #f7fafc;--row-hover: #313742;--title-block-line: #6b7280}:root[data-theme=paper]{--bg: #e9e6df;--panel: #f6f4ee;--panel-2: #ebe8e0;--line: #d7d2c7;--text: #2c2e33;--muted: #6c7079;--accent: #2b6fd4;--accent-2: #1f59b0;--danger: #c64646;--stage: #d8d4cb;--floor: #faf7f1;--plan-bg: #faf8f3;--grid-line: #dcd5c4;--wall-fill: #cfd5dc;--wall-stroke: #3a4049;--cad-text: #1e3a63;--cad-halo: rgba(250, 248, 243, .88);--elev-wall: #e4e0d6;--elev-cab: #d9cfb8;--elev-cab-stroke: #8a8270;--elev-toekick: #c3bba8;--elev-counter: #6f7681;--elev-counter-stroke: #3a4049;--hint-bg: rgba(246, 244, 238, .88);--overlay-bg: rgba(246, 244, 238, .97);--overlay-bg-soft: rgba(246, 244, 238, .94);--overlay-line: rgba(44, 46, 51, .24);--overlay-line-soft: rgba(44, 46, 51, .4);--overlay-text: #2c2e33;--overlay-strong: #14161a;--overlay-muted: #6c7079;--overlay-soft: #3f4550;--gap-chip-text: #7a4f08;--draw-chip-bg: rgba(246, 244, 238, .96);--draw-chip-bg-soft: rgba(246, 244, 238, .94);--draw-chip-text: #1e3a63;--draw-chip-strong: #14161a;--draw-chip-line: #8a8270;--draw-chip-muted: rgba(30, 58, 99, .7);--draw-chip-faint: rgba(30, 58, 99, .5);--title-block-bg: rgba(246, 244, 238, .85);--border: #cfc9bc;--warn: #7a4f08;--cad-label: #1f2937;--cad-recess-label: #4b5563;--cad-cl: #6b7280;--cad-utility-label: #374151;--cad-dim-open: #256029;--cad-dim-dead: #7a4f08;--cad-dim-place: #256029;--cad-dim-appliance: #7a4f08;--opening-cut: #8a8270;--utility-dot: #2c2e33;--row-hover: #e2ded3;--title-block-line: #8a8270}:root[data-theme=blueprint]{--bg: #0d2444;--panel: #123257;--panel-2: #173c68;--line: #2a5180;--text: #e9f1fb;--muted: #9fb8d6;--accent: #58cfff;--accent-2: #2f9bd0;--danger: #ff8080;--stage: #08182f;--floor: #dfeaf7;--plan-bg: #0a3568;--grid-line: #2d5e97;--wall-fill: #d3e2f6;--wall-stroke: #f4f9ff;--cad-text: #cfe4ff;--cad-halo: rgba(8, 24, 47, .85);--elev-wall: #0a2b52;--elev-cab: #164275;--elev-cab-stroke: #061a30;--elev-toekick: #071c35;--elev-counter: #1b4c86;--elev-counter-stroke: #5f93c9;--hint-bg: rgba(8, 24, 47, .62);--overlay-bg: rgba(8, 24, 47, .96);--overlay-bg-soft: rgba(8, 24, 47, .92);--overlay-line: rgba(159, 184, 214, .32);--overlay-line-soft: rgba(159, 184, 214, .5);--overlay-text: #e9f1fb;--overlay-strong: #f4f9ff;--overlay-muted: #9fb8d6;--overlay-soft: #c6d5e8;--gap-chip-text: #ffd79a;--draw-chip-bg: rgba(8, 24, 47, .94);--draw-chip-bg-soft: rgba(8, 24, 47, .92);--draw-chip-text: #cfe4ff;--draw-chip-strong: #fff;--draw-chip-line: #58cfff;--draw-chip-muted: rgba(207, 228, 255, .6);--draw-chip-faint: rgba(207, 228, 255, .45);--title-block-bg: rgba(8, 24, 47, .6);--border: #2a5180;--warn: #e0a44f;--cad-label: #dceaff;--cad-recess-label: #b9cde8;--cad-cl: #8fb3d9;--cad-utility-label: #e6f0ff;--cad-dim-open: #cce8b8;--cad-dim-dead: #ffd08a;--cad-dim-place: #cce8b8;--cad-dim-appliance: #ffe0a3;--opening-cut: #dfeaf7;--utility-dot: #f7fafc;--row-hover: #1b4c86;--title-block-line: #5f93c9}:root[data-theme=graphite]{--bg: #1c1b18;--panel: #252320;--panel-2: #2e2b26;--line: #423d35;--text: #ece8e0;--muted: #a49d90;--accent: #e0a44f;--accent-2: #c0852f;--danger: #e06a5a;--stage: #131210;--floor: #f2ece0;--plan-bg: #211f1b;--grid-line: #3b352c;--wall-fill: #cbc6bc;--wall-stroke: #1a1813;--cad-text: #e8d9b8;--cad-halo: rgba(19, 18, 16, .85);--elev-wall: #221f1a;--elev-cab: #3a3326;--elev-cab-stroke: #17150f;--elev-toekick: #141210;--elev-counter: #2f2b24;--elev-counter-stroke: #5d5547;--hint-bg: rgba(0, 0, 0, .55);--overlay-bg: rgba(19, 18, 16, .96);--overlay-bg-soft: rgba(19, 18, 16, .92);--overlay-line: rgba(164, 157, 144, .32);--overlay-line-soft: rgba(164, 157, 144, .5);--overlay-text: #ece8e0;--overlay-strong: #f6f2ea;--overlay-muted: #a49d90;--overlay-soft: #cdc6b8;--gap-chip-text: #ffd79a;--draw-chip-bg: rgba(19, 18, 16, .94);--draw-chip-bg-soft: rgba(19, 18, 16, .92);--draw-chip-text: #f0d999;--draw-chip-strong: #fff;--draw-chip-line: #e6c06a;--draw-chip-muted: rgba(240, 217, 153, .6);--draw-chip-faint: rgba(240, 217, 153, .45);--title-block-bg: rgba(19, 18, 16, .6);--border: #423d35;--warn: #e0a44f;--cad-label: #ece8e0;--cad-recess-label: #cdc6b8;--cad-cl: #a49d90;--cad-utility-label: #f2ece0;--cad-dim-open: #cce8b8;--cad-dim-dead: #ffd08a;--cad-dim-place: #cce8b8;--cad-dim-appliance: #ffe0a3;--opening-cut: #efe7d8;--utility-dot: #f7fafc;--row-hover: #33302a;--title-block-line: #5d5547}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}.app{display:flex;flex-direction:column;height:100vh}.stilepath-host-mount{display:flex;flex-direction:column;height:100%;min-height:0}.stilepath-host-mount>.app{height:auto;flex:1 1 auto;min-height:0}.toolbar{display:flex;align-items:center;gap:12px;padding:0 14px;height:50px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{font-weight:700;font-size:18px;letter-spacing:.2px}.brand span{color:var(--accent)}.brand em{font-style:normal;font-size:10px;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 5px;margin-left:8px;vertical-align:2px}.doc-name{color:var(--text);font-size:14px;background:transparent;border:1px solid transparent;border-radius:5px;padding:4px 8px;min-width:160px}.doc-name:hover{border-color:var(--line)}.doc-name:focus{border-color:var(--accent);background:var(--panel-2);outline:none}.spacer{flex:1}.toolbar button{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px}.toolbar button:hover{border-color:var(--accent)}.toolbar button:disabled{opacity:.4;cursor:default;border-color:var(--line)}.toolbar button.doc-selections{margin-left:4px}.toolbar button.doc-selections.on{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.tb-sep{width:1px;height:22px;background:var(--line);align-self:center;flex:0 0 auto}.error-fallback{padding:18px;color:var(--text);font-size:13px;display:flex;flex-direction:column;gap:8px;height:100%;overflow:auto}.error-fallback strong{color:var(--danger);font-size:14px}.error-fallback p{margin:0;color:var(--muted)}.error-actions{display:flex;gap:8px}.error-actions button{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:6px 12px;cursor:pointer}.error-actions button:hover{border-color:var(--accent)}.error-detail{margin:4px 0 0;padding:8px;background:var(--stage);border-radius:6px;color:var(--muted);font-size:11px;white-space:pre-wrap;word-break:break-word;max-height:160px;overflow:auto}.theme-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--panel-2);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%23889' stroke-width='1.5' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:6px 26px 6px 12px;cursor:pointer;font-size:13px}.theme-select:hover{border-color:var(--accent)}.theme-select:focus{outline:none;border-color:var(--accent)}.workspace{display:flex;flex:1;min-height:0}.left,.right{width:280px;flex:none;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;display:flex;flex-direction:column}.right{border-right:none;border-left:1px solid var(--line)}.stage{flex:1;position:relative;background:var(--stage);min-width:0}.stage[hidden],.panel-host[hidden],.resizer[hidden]{display:none}.mobile-workspace-nav{display:flex;flex:none;gap:6px;padding:4px 8px;background:var(--panel);border-bottom:1px solid var(--line)}.mobile-workspace-nav button{flex:1;min-width:0;min-height:44px;padding:6px 4px;font-size:12px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;cursor:pointer}.mobile-workspace-nav button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-2);color:#fff}.mobile-workspace-nav .tool-lock{font-size:10px}.mobile-workspace-nav .view-switcher{display:contents}@media (max-width: 900px){.render-modal button{min-width:44px;min-height:44px}}.compact-workspace{min-width:0}.compact-workspace .left,.compact-workspace .right{width:100%!important;min-width:0;border:0}.compact-workspace>.resizer,.compact-workspace>.panel-expand,.compact-workspace .panel-float,.compact-workspace .panel-collapse{display:none}.compact-workspace .stage-hint{width:calc(100% - 16px);max-width:500px;box-sizing:border-box;white-space:normal;text-align:center}.compact-workspace .cad-title{display:none}.compact-workspace .first-steps{max-width:calc(100% - 24px);right:12px}.panel-collapse{position:sticky;top:4px;z-index:6;flex:none;margin:4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--muted);cursor:pointer;font-size:14px;line-height:1}.panel-collapse:hover{color:var(--text);border-color:var(--accent)}.pc-left{align-self:flex-end}.pc-right{align-self:flex-start}.panel-expand{flex:none;width:26px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--panel);color:var(--muted);border:none;cursor:pointer;font-size:13px;padding:10px 0}.panel-expand:hover{background:var(--panel-2);color:var(--text)}.pe-left{border-right:1px solid var(--line)}.pe-right{border-left:1px solid var(--line)}.panel-expand span{writing-mode:vertical-rl;text-transform:uppercase;font-size:10px;letter-spacing:.6px}.panel-float{position:sticky;top:4px;z-index:6;flex:none;margin:4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--muted);cursor:pointer;font-size:12px;line-height:1}.panel-float:hover{color:var(--text);border-color:var(--accent)}.pf-left{align-self:flex-end;margin-top:30px}.pf-right{align-self:flex-start;margin-top:30px}.float-panel{position:fixed;z-index:55;display:flex;flex-direction:column;max-height:82vh;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 44px #00000080;overflow:hidden}.float-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-bottom:1px solid var(--line);cursor:move;background:var(--panel-2);-webkit-user-select:none;user-select:none}.float-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.float-dock{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;padding:2px 5px;border-radius:4px}.float-dock:hover{background:var(--panel);color:var(--text)}.float-body{overflow-y:auto;min-height:0}.float-body::-webkit-scrollbar,.left-tab-body>.panel.catalog::-webkit-scrollbar{width:10px}.float-body::-webkit-scrollbar-thumb,.left-tab-body>.panel.catalog::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px}.float-body::-webkit-scrollbar-thumb:hover,.left-tab-body>.panel.catalog::-webkit-scrollbar-thumb:hover{background:var(--muted)}.float-body::-webkit-scrollbar-track,.left-tab-body>.panel.catalog::-webkit-scrollbar-track{background:transparent}.resizer{flex:none;width:5px;cursor:col-resize;background:transparent;transition:background .12s ease}.resizer:hover,.resizer:active{background:var(--accent)}.plan-canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab;background:var(--plan-bg)}.plan-canvas:active{cursor:grabbing}.elev-canvas{width:100%;height:100%;display:block}.three-view{width:100%;height:100%;display:block;overflow:hidden}.three-view canvas{display:block}.loading-3d{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:14px}.view-switch{position:absolute;top:12px;left:12px;display:flex;flex-wrap:wrap;gap:8px;z-index:5;max-width:calc(100% - 24px)}.seg{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:7px;overflow:hidden}.seg button{background:none;border:none;color:var(--muted);padding:6px 14px;cursor:pointer;font-size:13px}.seg button:hover{color:var(--text)}.seg button.on{background:var(--accent-2);color:#fff}.seg.walls button{padding:6px 11px;font-weight:600}.export-btn{background:var(--panel);border:1px solid var(--line);border-radius:7px;color:var(--text);padding:6px 12px;cursor:pointer;font-size:13px}.export-btn:hover{border-color:var(--accent)}.export-btn.on{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.elev-wall{fill:var(--elev-wall)}.elev-floor{stroke:#6b7280;stroke-width:2}.elev-ceil{stroke:#41464f;stroke-width:1.5;stroke-dasharray:4 4}.elev-cab{fill:var(--elev-cab);stroke:var(--elev-cab-stroke);stroke-width:1.5}.elev-cab.sel{stroke:var(--accent);stroke-width:2.5}.elev-cab-g{cursor:pointer}.face-door{fill:#d8c4a0}.face-drawer{fill:#cdb892}.face-outline{fill:none;stroke:#281e0f8c;stroke-width:1}.face-appliance{fill:#c2c8ce;stroke:#8a9199;stroke-width:1}.elev-toekick{fill:var(--elev-toekick)}.elev-molding{fill:var(--elev-cab);stroke:var(--elev-cab-stroke);stroke-width:.75;pointer-events:none}.elev-counter{fill:var(--elev-counter);stroke:var(--elev-counter-stroke);stroke-width:1}.elev-counter.sel{stroke:var(--accent);stroke-width:2.5}.elev-backsplash{opacity:.9;stroke:none}.face-panel{fill:none;stroke:#281e0f80;stroke-width:.9}.face-glass{fill:#b9d5de61;stroke:#281e0f73;stroke-width:.8}.face-glass.mirror{fill:#e0e7ebb8}.face-glass.textured{fill:#aecfd685}.face-glass.art{fill:#d8c39e80}.face-muntin,.face-bevel{fill:none;stroke:#281e0fad;stroke-width:1.1}.face-arch{fill:none;stroke:#281e0fc2;stroke-width:1.35;stroke-linecap:round}.mini-btn{font-size:11px;padding:3px 9px;border-radius:4px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer}.mini-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.mini-btn:disabled{opacity:.4;cursor:default}.face-hw{fill:#2f3338;stroke:#2f3338;stroke-width:1.6;stroke-linecap:round}.elev-counterline{stroke:#c0533f;stroke-width:1;stroke-dasharray:6 3;opacity:.8}.elev-window{fill:#cfe0f2;stroke:#3a4654;stroke-width:1.3;opacity:.92}.elev-mullion{stroke:#5a6573;stroke-width:1}.elev-door-op{fill:#2c2a24;stroke:#14130f;stroke-width:1.3}.elev-door-panel{fill:none;stroke:#b4a88c66;stroke-width:.9}.elev-recess-op{fill:#141c2629;stroke:#3a4654;stroke-width:1.3;stroke-dasharray:4 3}.elev-recess-reveal{fill:none;stroke:#7884948c;stroke-width:.9}.elev-recess-label{fill:var(--cad-recess-label);font-size:9.5px;font-weight:700;paint-order:stroke;stroke:var(--cad-halo);stroke-width:3px;stroke-linejoin:round;pointer-events:none}.elev-opening-unknown{fill:#141c260f;stroke:#3a4654;stroke-width:1.3;stroke-dasharray:6 3}.elev-window-g.sel .elev-window,.elev-door-g.sel .elev-door-op,.elev-opening-g.sel .elev-opening-unknown{stroke:var(--accent);stroke-width:2.2}.elev-label{fill:var(--cad-label);font-size:11px;font-weight:700;letter-spacing:.2px;paint-order:stroke;stroke:var(--cad-halo);stroke-width:3px;stroke-linejoin:round}.elev-empty{fill:var(--muted);font-size:15px}.side-elev-title{fill:var(--cad-label);font-size:13px;font-weight:700}.side-elev-wall-body{fill:var(--elev-wall);stroke:none}.side-elev-wall-face{stroke:#6b7280;stroke-width:2}.side-elev-wall-label{fill:var(--muted);font-size:11px;font-weight:600}.side-elev-toe{stroke:var(--elev-cab-stroke);stroke-width:1;stroke-dasharray:3 2}.side-elev-front{stroke-width:1;pointer-events:none}.seg.walls.side-views{margin-left:8px}.elev-mod-codes{fill:#f0b6ad;font-size:8px;font-weight:600;letter-spacing:.2px;paint-order:stroke;stroke:var(--cad-halo);stroke-width:2.5px;stroke-linejoin:round}.cad-arrow-head{fill:var(--accent)}.cad-dim-line{stroke:var(--accent);stroke-width:1}.cad-witness{stroke:var(--accent);stroke-width:.6;opacity:.55}.cad-dim-text{fill:var(--cad-text);font-size:11px;font-weight:600}.gap-dims .cad-dim-line{stroke-dasharray:5 3;opacity:.92}.gap-dims .cad-witness{opacity:.32}.gap-dim-open-wall .cad-dim-text{fill:var(--cad-dim-open)}.gap-dim-dead-space .cad-dim-text{fill:var(--cad-dim-dead)}.wall-placement-dims .cad-dim-line{stroke:#78b99a}.wall-placement-dims .cad-witness{stroke:#78b99a;opacity:.45}.wall-placement-dims .cad-dim-text{fill:var(--cad-dim-place)}.appliance-dims .cad-dim-line{stroke:#f1b84a;stroke-width:1.1}.appliance-dims .cad-witness{opacity:.36}.appliance-dims .cad-dim-text{fill:var(--cad-dim-appliance)}.plan-callout{cursor:move;pointer-events:auto}.plan-callout-leader{stroke:#232a34;stroke-width:1.4;stroke-dasharray:5 3}.plan-callout-target{fill:#f7fbff;stroke:#232a34;stroke-width:1.4}.plan-callout-label-bg{fill:#fafdffeb;stroke:#232a3494;stroke-width:1;filter:drop-shadow(0 2px 5px rgba(0,0,0,.18))}.plan-callout-bubble{fill:#232a34;stroke:#f7fbff;stroke-width:1.3}.plan-callout-number{fill:#f7fbff;font-size:10px;font-weight:800;pointer-events:none}.plan-callout-text{fill:#1e252f;font-size:11.5px;font-weight:700;pointer-events:none}.plan-callout.sel .plan-callout-label-bg{stroke:var(--accent);stroke-width:2}.plan-callout.sel .plan-callout-bubble,.plan-callout.sel .plan-callout-target{stroke:var(--accent)}.custom-shape{cursor:move;pointer-events:auto}.custom-shape-hit{fill:transparent;stroke:transparent}.custom-shape-body{fill:#97aabe47;stroke:#242d38c7;stroke-width:1.2;stroke-dasharray:5 3}.custom-shape.role-blocking-clearance .custom-shape-body{fill:#e05b5b38;stroke:#b73d3de6}.custom-shape.role-field-built-quoted-separately .custom-shape-body{fill:#dbaa4238;stroke:#b78227e6}.custom-shape.role-allowance-manual-price .custom-shape-body{fill:#60c48d33;stroke:#399160e6}.custom-shape.role-visual-only .custom-shape-body{fill:#6886ae33;stroke:#4a6794e0}.custom-shape.kind-recess .custom-shape-body{fill:#141c261a;stroke:#242d38d1;stroke-width:1.2;stroke-dasharray:3 2}.custom-shape.kind-recess.sel .custom-shape-body{fill:#2b6fd41f}.custom-shape.sel .custom-shape-body{stroke:var(--accent);stroke-width:2.2;stroke-dasharray:none;filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}.custom-shape-label{fill:#17202b;font-size:10.5px;font-weight:800;paint-order:stroke;stroke:#f6f9fdd1;stroke-width:4px;stroke-linejoin:round;pointer-events:none}.custom-shape-handle{fill:var(--panel);stroke:var(--accent);stroke-width:1.8;cursor:pointer}.custom-shape-handle:hover{fill:var(--accent);stroke:#fff}.custom-shape-handle[data-custom-shape-handle=n],.custom-shape-handle[data-custom-shape-handle=s]{cursor:ns-resize}.custom-shape-handle[data-custom-shape-handle=e],.custom-shape-handle[data-custom-shape-handle=w]{cursor:ew-resize}.custom-shape-handle[data-custom-shape-handle=nw],.custom-shape-handle[data-custom-shape-handle=se]{cursor:nwse-resize}.custom-shape-handle[data-custom-shape-handle=ne],.custom-shape-handle[data-custom-shape-handle=sw]{cursor:nesw-resize}.live-gap-readout{pointer-events:none;filter:drop-shadow(0 6px 14px rgba(0,0,0,.28))}.live-gap-readout rect{fill:var(--overlay-bg-soft);stroke:var(--overlay-line-soft);stroke-width:1}.live-gap-readout.zone-ok rect{stroke:#60c48dcc}.live-gap-readout.zone-warn rect{stroke:#f2a93bd1}.live-gap-readout.zone-blocked rect{stroke:#e15b5be6}.live-gap-kicker{fill:var(--overlay-muted);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.live-gap-value{fill:var(--overlay-strong);font-size:13px;font-weight:800}.live-gap-secondary{fill:var(--overlay-soft);font-size:11px;font-weight:700}.hover-gap{pointer-events:none}.hover-gap-line{stroke:#f2a93b;stroke-width:1.2;stroke-dasharray:4 3}.hover-gap-tick{stroke:#f2a93b;stroke-width:1.4}.hover-gap-chip{fill:var(--overlay-bg-soft);stroke:#f2a93bbf;stroke-width:1}.hover-gap-text{fill:var(--gap-chip-text);font-size:11px;font-weight:800}.hover-card{position:absolute;z-index:40;min-width:216px;max-width:260px;padding:8px 10px 9px;background:var(--overlay-bg);border:1px solid var(--overlay-line);border-radius:7px;box-shadow:0 8px 20px #0006;pointer-events:none;font-size:11px;color:var(--text)}.hover-card-head{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}.hover-card-head strong{font-size:12.5px;letter-spacing:.2px}.hover-card-sub{color:var(--muted);font-size:10.5px}.hover-card-row{display:flex;gap:8px;padding:2px 0;align-items:baseline}.hover-card-label{flex:0 0 84px;color:var(--overlay-muted);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.hover-card-value{flex:1;white-space:pre-line;color:var(--overlay-text)}.cad-cl-line{stroke:#8aa0bd;stroke-width:.8;stroke-dasharray:7 3 2 3;opacity:.8}.cad-cl-text{fill:var(--cad-cl);font-size:11px}.cad-title-frame{fill:var(--title-block-bg);stroke:var(--title-block-line);stroke-width:1.2}.cad-title-cell{fill:none;stroke:var(--title-block-line);stroke-width:.8}.cad-title-label{fill:var(--muted);font-size:8px;letter-spacing:.6px}.cad-title-value{fill:var(--text);font-size:12px;font-weight:600}.stage-hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);background:var(--hint-bg);color:var(--muted);font-size:11px;padding:5px 12px;border-radius:20px;pointer-events:none;white-space:nowrap}.room-floor{fill:var(--floor)}.grid{stroke:var(--grid-line);stroke-width:1}.room-walls{fill:none;stroke:var(--wall-stroke)}.wall-body{fill:var(--wall-fill);stroke:var(--wall-stroke);stroke-width:1.3;stroke-linejoin:miter;cursor:pointer}.wall-body.sel{stroke:var(--accent);stroke-width:2.2}.wall-edit{stroke:transparent;stroke-width:12}.wall-edit:hover{stroke:#4f9cf966}.freewall-handle{stroke:transparent;cursor:move}.freewall-handle:hover{stroke:#4f9cf959}.wallend-handle{fill:var(--accent);stroke:#fff;stroke-width:1;cursor:pointer}.wallend-handle:hover{r:7}.construction-hit{stroke:transparent;stroke-width:12;cursor:move}.construction-hit:hover{stroke:#4f9cf92e}.construction-vis{stroke:var(--accent);stroke-width:1.2;stroke-dasharray:7 5;pointer-events:none;opacity:.85}.construction-line.sel .construction-vis{stroke-width:2;opacity:1}.construction-preview{stroke:var(--accent);stroke-width:1.2;stroke-dasharray:4 4;pointer-events:none;opacity:.6}.pp-modal{max-width:580px}.pp-issues{margin:4px 0 10px;display:flex;flex-direction:column;gap:4px}.pp-issue{font-size:12.5px;padding:6px 9px;border-radius:6px}.pp-issue.block{background:#c828281f;color:#d24}.pp-issue.warn{background:#c98a1b24;color:#c98a1b}.pp-report{display:flex;flex-direction:column;gap:10px;max-height:300px;overflow-y:auto}.pp-bucket-head{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:3px}.pp-count{background:var(--panel-2);border-radius:8px;padding:0 6px;margin-left:4px}.pp-row{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;padding:3px 8px;border-radius:5px}.pp-row.ok{background:#2b6fd414}.pp-row.ex{color:var(--muted)}.pp-row.miss{background:#c98a1b1a}.pp-reason{color:var(--muted);font-size:11px;text-align:right}.pp-export{background:var(--accent, #2b6fd4);color:#fff;border:none}.pp-export:disabled{opacity:.5;cursor:default}.about-modal{max-width:560px}.about-grid{display:flex;flex-direction:column;gap:2px}.about-grid h3{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:10px 0 2px}.about-row{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:2px 0}.about-k{color:var(--muted);flex:0 0 auto}.about-v{color:var(--text);text-align:right;word-break:break-word}.about-note{color:var(--muted);font-size:11.5px;margin:10px 0 6px}.about-snapshot{width:100%;height:160px;resize:vertical;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;padding:8px 10px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:6px}.about-copy{background:var(--accent, #2b6fd4);color:#fff;border:none}.trim-hit{stroke:transparent;stroke-width:12}.trim-run:hover .trim-vis{stroke-width:3.5}.trim-vis{stroke:#c07a2b;stroke-width:2.5;pointer-events:none;stroke-linecap:round}.trim-run.sel .trim-vis{stroke:#e0912f;stroke-width:4}.trim-preview{stroke:#c07a2b;stroke-width:2.5;stroke-dasharray:5 4;pointer-events:none;opacity:.7;stroke-linecap:round}.plan-canvas.measuring{cursor:crosshair}.measure-line{stroke:#e0b84f;stroke-width:1.4}.measure-dot{fill:#e0b84f}.measure.point-line .measure-line,.measure.point-line-preview .measure-line{stroke-dasharray:5 3}.measure-foot{stroke:#1a1d22;stroke-width:1}.measure-label{fill:#1a1d22;font-size:12px;font-weight:700;paint-order:stroke;stroke:#e0b84f;stroke-width:7px;stroke-linejoin:round}.measure-arc{stroke:#e0b84f;stroke-width:1.4}.measure-angle-label{font-size:11px}.align-guide{stroke:#e0599a;stroke-width:1;stroke-dasharray:5 4;pointer-events:none;opacity:.85}.marquee-rect{fill:#2b6fd41f;stroke:var(--accent, #2b6fd4);stroke-width:1;stroke-dasharray:4 3}.worktri-leg{stroke-width:2;stroke-dasharray:6 4;fill:none}.worktri-leg.ok{stroke:#4cae7f}.worktri-leg.warn{stroke:#e0913f}.worktri-node{fill:#2b6fd4;stroke:#fff;stroke-width:1.5}.worktri-node-label{fill:#fff;font-size:11px;font-weight:700}.worktri-label{font-size:12px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:6px;stroke-linejoin:round}.worktri-label.ok{fill:#2c8a63}.worktri-label.warn{fill:#b9701f}.worktri-total{font-size:12.5px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:7px;stroke-linejoin:round}.worktri-total.ok{fill:#2c8a63}.worktri-total.warn{fill:#b9701f}.opening{cursor:grab}.opening:active{cursor:grabbing}.opening-hit{fill:transparent}.opening-cut{fill:var(--opening-cut);stroke:none}.opening-jamb{stroke:#20242b;stroke-width:1.4}.opening-glass{stroke:#5b86b3;stroke-width:1.6}.opening-leaf{stroke:#6b7280;stroke-width:1.4}.opening-arc{fill:none;stroke:#9aa3b0;stroke-width:1;stroke-dasharray:4 3}.opening.sel .opening-glass,.opening.sel .opening-leaf{stroke:var(--accent);stroke-width:2.4}.opening.sel .opening-jamb{stroke:var(--accent)}.dim-label{fill:var(--muted);font-size:13px;font-weight:600}.cab{stroke:#6b5a3e;stroke-width:1.5;cursor:move}.cab.wall{stroke:#3f5a7d;opacity:.92}.cab.sel{stroke:var(--accent);stroke-width:2.5}.cab.pv-changed{stroke:#1d4ed8;stroke-width:3;filter:drop-shadow(0 0 5px #1d4ed8cc)}.cab.pv-flagged{stroke:#c9922e;stroke-width:3;filter:drop-shadow(0 0 5px #c9922ecc)}.cab.pv-focus{stroke:#3b82f6;stroke-width:4;filter:drop-shadow(0 0 9px #3b82f6)}.cab-face{stroke:#5a4a30;stroke-width:3;pointer-events:none}.swing path{fill:none;stroke:#8a7551;stroke-width:1;opacity:.7;pointer-events:none}.swing line{stroke:#8a7551;stroke-width:1;opacity:.7;pointer-events:none}.cab-label{fill:#3a3120;font-size:11px;font-weight:600;pointer-events:none}.cab-mod-mark{stroke:#c0392b;stroke-width:1.5;pointer-events:none}.counter{fill:#56c4d126;stroke:#45a7b3;stroke-width:1.5}.counter.sel{stroke:var(--accent);stroke-width:2.5;stroke-dasharray:5 3}.counter-handle{fill:var(--panel);stroke:var(--accent);stroke-width:1.8;cursor:pointer}.counter-handle:hover{fill:var(--accent);stroke:#fff}.counter-handle[data-counter-handle=n],.counter-handle[data-counter-handle=s]{cursor:ns-resize}.counter-handle[data-counter-handle=e],.counter-handle[data-counter-handle=w]{cursor:ew-resize}.counter-handle[data-counter-handle=nw],.counter-handle[data-counter-handle=se]{cursor:nwse-resize}.counter-handle[data-counter-handle=ne],.counter-handle[data-counter-handle=sw]{cursor:nesw-resize}.elev-counter-handle{cursor:ew-resize}.ctx-menu{position:fixed;z-index:50;min-width:170px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:4px;box-shadow:0 8px 24px #00000073;display:flex;flex-direction:column}.ctx-head{font-size:11px;color:var(--muted);padding:6px 8px 4px;border-bottom:1px solid var(--line);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ctx-menu button{background:none;border:none;color:var(--text);text-align:left;padding:7px 8px;border-radius:5px;cursor:pointer;font-size:13px}.ctx-menu button:hover{background:var(--panel-2)}.ctx-menu button.danger:hover{background:#e05a5a26;color:var(--danger)}.ctx-menu button.on{color:var(--accent, #6aa3ff)}.ctx-key{float:right;color:var(--muted);font-size:11px;margin-left:12px}.ctx-sep{height:1px;background:var(--line);margin:4px 2px}.ctx-sub{font-size:10px;color:var(--muted);padding:4px 8px 2px;text-transform:uppercase;letter-spacing:.04em}.wall-ctx-menu{min-width:200px}.ctx-num{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;font-size:13px;color:var(--text)}.ctx-num>span:first-child{color:var(--muted)}.ctx-num input{width:72px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);padding:4px 6px;font-size:13px;text-align:right}.ctx-ro{color:var(--text)}.toolbar-sep{display:inline-block;width:1px;align-self:stretch;min-height:20px;background:var(--line);margin:0 4px}.opening-picker{position:absolute;top:50px;left:50%;transform:translate(-50%);z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px;box-shadow:0 10px 30px #00000073;max-width:92%}.opening-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);padding:2px 4px 8px}.opening-picker-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:0 4px;border-radius:5px}.opening-picker-x:hover{background:var(--panel-2);color:var(--text)}.opening-picker-grid{display:flex;flex-wrap:wrap;gap:6px;max-width:520px}.opening-card{display:flex;flex-direction:column;align-items:center;gap:1px;width:96px;padding:8px 6px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--text);cursor:grab}.opening-card:hover{border-color:var(--accent, #6aa3ff)}.opening-card:active{cursor:grabbing}.opening-card-icon{font-size:18px;color:var(--muted)}.opening-card-label{font-size:12px;font-weight:600}.opening-card-dim{font-size:10.5px;color:var(--muted)}.sel-margin{margin-top:10px}.margin-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0}.margin-row>span{color:var(--muted);font-size:13px}.price-mode-choices{display:flex;gap:12px}.price-mode-choice{display:inline-flex;align-items:center;gap:5px;font-size:13px}.margin-mult{width:90px;text-align:right}.adj-list{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0;align-items:flex-end}.adj-row{display:flex;gap:4px;width:100%}.adj-label{flex:1;min-width:0}.adj-kind{width:48px}.adj-val{width:72px;text-align:right}.adj-del{border:none;background:transparent;color:var(--muted);cursor:pointer;padding:0 4px}.adj-del:hover{color:#c0392b}.margin-sel{width:110px}.margin-calc{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}.margin-calc>div{display:flex;justify-content:space-between;font-size:13px;padding:2px 0;color:var(--muted)}.margin-calc>div>span:last-child{color:var(--text);font-variant-numeric:tabular-nums}.margin-sell{margin-top:4px;padding-top:6px!important;border-top:1px solid var(--line)}.margin-sell>span:first-child{color:var(--text)!important;font-weight:600}.margin-sell strong{color:var(--accent, #6aa3ff);font-size:15px}.floor-swatch{width:100%;height:54px;object-fit:cover;border-radius:6px;margin-top:6px;border:1px solid var(--line)}.seg.walls .elev-tab{display:inline-flex;align-items:center;border-radius:6px;overflow:hidden}.seg.walls .elev-tab.on{background:var(--accent, #6aa3ff)}.elev-tab-pick{border:none;background:none;color:inherit;padding:4px 4px 4px 9px;cursor:pointer;font:inherit;white-space:nowrap}.elev-tab-x{border:none;background:none;color:var(--muted);cursor:pointer;padding:4px 7px;font-size:14px;line-height:1}.elev-tab.on .elev-tab-pick,.elev-tab.on .elev-tab-x{color:#fff}.elev-tab-x:hover{color:var(--danger, #e05a5a)}.seg.saved-cameras{display:inline-flex;flex-wrap:wrap;gap:6px}.cam-chip{display:inline-flex;align-items:center;border-radius:6px;overflow:hidden;background:var(--panel-2, #2a3340)}.cam-chip-apply{border:none;background:none;color:inherit;padding:4px 4px 4px 9px;cursor:pointer;font:inherit;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}.cam-chip-apply:hover{color:var(--accent, #6aa3ff)}.cam-chip-x{border:none;background:none;color:var(--muted);cursor:pointer;padding:4px 7px;font-size:14px;line-height:1}.cam-chip-x:hover{color:var(--danger, #e05a5a)}.export-btn.wall-lock-on{background:var(--danger, #e05a5a)!important;color:#fff!important;border-color:var(--danger, #e05a5a)!important;font-weight:700}.export-btn.wall-lock-on:hover{background:#c64646!important}.placement-zone{fill:var(--accent);fill-opacity:.06;stroke:var(--accent);stroke-width:1;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none}.placement-zone.construction{fill-opacity:.035;stroke-dasharray:2 4}.placement-zone-reservation{fill:#f2a93b;fill-opacity:.16;stroke:#f2a93b;stroke-width:1.25;stroke-dasharray:3 2;pointer-events:none}.placement-zone-reservation.corner-cabinet{fill-opacity:.18}.ctx-hint{font-size:10.5px;color:var(--muted);padding:2px 8px;margin:0;line-height:1.3}.mods-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000073;display:flex;align-items:center;justify-content:center}.mods-modal{width:340px;max-width:92vw;max-height:86vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px 16px;box-shadow:0 16px 48px #00000080}.mods-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px}.share-modal{width:460px}.share-link-row{display:flex;gap:8px}.share-link{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:7px 9px;font-size:13px;font-family:ui-monospace,monospace}.share-open{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid var(--line);border-radius:6px;color:var(--text);text-decoration:none;font-size:13px}.share-open:hover{border-color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000073;display:flex;align-items:center;justify-content:center}.modal-card{width:560px;max-width:94vw;max-height:88vh;display:flex;flex-direction:column;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px 16px;box-shadow:0 16px 48px #00000080}.modal-card:focus{outline:none}.modal-wide{width:860px}.modal-card.modal-wide .bom-modal-body{flex:1}.hw-finishes{display:flex;flex-direction:column;gap:6px;margin-top:8px}.hw-metal{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.hw-metal-name{flex:0 0 118px;font-size:12px;color:var(--muted)}.hw-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 4px;border-radius:16px;border:1px solid var(--line);background:none;color:var(--text);font-size:12px;cursor:pointer}.hw-chip.on{border-color:var(--accent, #2b6fd4);box-shadow:0 0 0 1px var(--accent, #2b6fd4)}.hw-chip-metal{width:20px;height:20px;border-radius:50%;border:1px solid rgba(127,127,127,.45)}.hw-chip.hw-brushed .hw-chip-metal{background-image:repeating-linear-gradient(100deg,rgba(255,255,255,.16) 0 1px,transparent 1px 3px)}.hw-chip.hw-polished .hw-chip-metal{background-image:linear-gradient(135deg,rgba(255,255,255,.7),transparent 55%)}.hw-wall-toggle{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.hw-wall-fields{display:grid;grid-template-columns:1fr;gap:4px;margin-top:8px}.hw-wall-fields .spec-label{margin-top:4px}.hw-own-fields{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.hw-own-fields select{width:100%}.menubar-saved{flex:0 0 auto;font-size:11.5px;padding:2px 8px;border-radius:10px;white-space:nowrap;color:var(--muted);border:1px solid transparent}.menubar-saved.unsaved{color:var(--text);border-color:var(--line)}.help-modal{width:600px}.help-search{width:100%;margin:6px 0 4px}.help-list{display:flex;flex-direction:column;gap:2px;margin-top:6px}.help-section h3{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:12px 0 4px}.help-q{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;background:none;border:none;color:var(--text);font-size:13.5px;padding:6px 4px;border-radius:6px;cursor:pointer}.help-q:hover,.help-q:focus-visible{background:var(--panel-2, rgba(127, 127, 127, .12))}.help-caret{flex:0 0 12px;color:var(--muted)}.help-topic.open .help-q{font-weight:600}.help-a{padding:2px 8px 10px 24px;font-size:13px;color:var(--text)}.help-a ol{margin:4px 0 8px;padding-left:18px}.help-a li{margin:3px 0;line-height:1.45}.help-none{color:var(--muted);font-size:13px;margin:10px 4px}.tour-card{position:fixed;left:50%;bottom:96px;transform:translate(-50%);z-index:40;width:380px;max-width:calc(100vw - 32px);background:var(--panel, #1c2128);color:var(--text);border:1px solid var(--accent, #2b6fd4);border-radius:10px;padding:12px 14px;box-shadow:0 8px 28px #0006;font-size:13px;outline:none}.tour-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.tour-count{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.tour-skip{background:none;border:none;color:var(--muted);font:inherit;font-size:12px;cursor:pointer;padding:4px 2px;text-decoration:underline}.tour-title{display:block;font-size:15px;margin-bottom:4px}.tour-body{margin:0 0 8px;line-height:1.45}.tour-note{margin:0 0 8px;color:var(--muted);font-size:12px}.tour-actions{display:flex;align-items:center;gap:6px}.tour-spacer{flex:1}.tour-actions .btn{min-height:32px;padding:5px 12px;font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;cursor:pointer}.tour-actions .btn:hover,.tour-actions .btn:focus-visible{border-color:var(--accent)}.tour-actions .btn.primary{background:var(--accent-2, var(--accent));border-color:var(--accent);color:#fff}.tour-ring{position:fixed;z-index:55;pointer-events:none;border:2px solid var(--accent, #2b6fd4);border-radius:8px;box-shadow:0 0 0 4px #2b6fd440}@media (max-width: 720px){.tour-card{bottom:64px}.tour-actions .btn{min-height:44px}}.sc-modal{width:520px}.sc-groups{display:flex;flex-direction:column;gap:14px;margin-top:10px}.sc-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:5px}.sc-row{display:flex;align-items:baseline;gap:12px;padding:3px 0}.sc-keys{flex:0 0 200px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:2px 7px}.sc-desc{font-size:13px;color:var(--text)}.empty-cta{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:31}.stage:has(.first-steps:not(.fs-compact)) .empty-cta{align-items:flex-start;padding-top:8%}.empty-cta-card{pointer-events:auto;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px 26px;box-shadow:0 12px 40px #00000059;max-width:360px}.empty-cta-title{font-size:16px;font-weight:700}.empty-cta-sub{font-size:13px;color:var(--muted);margin:5px 0 16px}.empty-cta-actions{display:flex;gap:8px;justify-content:center}.empty-cta-actions button{padding:8px 14px;background:var(--panel-2);border:1px solid var(--line);border-radius:7px;color:var(--text);cursor:pointer;font-size:13px}.empty-cta-actions button:hover{border-color:var(--accent)}.empty-cta-primary{background:var(--accent, #2b6fd4)!important;border-color:var(--accent, #2b6fd4)!important;color:#fff!important}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:4px;font-weight:600}.modal-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px;border-radius:5px}.modal-x:hover{background:var(--panel-2);color:var(--text)}.toaster{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;width:min(440px,calc(100vw - 32px));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:9px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-left-width:3px;border-radius:8px;padding:10px 12px;font-size:13px;box-shadow:0 10px 28px #0006}.toast-error{border-left-color:var(--danger, #e05a5a)}.toast-success{border-left-color:#3bbf7a}.toast-info{border-left-color:var(--accent, #2b6fd4)}.toast-icon{line-height:1.2;font-size:13px}.toast-error .toast-icon{color:var(--danger, #e05a5a)}.toast-success .toast-icon{color:#3bbf7a}.toast-info .toast-icon{color:var(--accent, #2b6fd4)}.toast-msg{flex:1;line-height:1.35}.toast-count{color:var(--muted);font-variant-numeric:tabular-nums}.toast-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;line-height:1;padding:1px 4px;border-radius:4px}.toast-x:hover{background:var(--panel-2);color:var(--text)}.dlg-modal{width:420px}.dlg-body{display:flex;flex-direction:column;gap:10px}.dlg-msg{font-size:13px;line-height:1.45;color:var(--text);margin:10px 0}.dlg-body .dlg-msg{margin:10px 0 0}.dlg-input{padding:8px 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);font-size:13px}.dlg-input:focus{outline:none;border-color:var(--accent, #2b6fd4)}.dlg-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.dlg-confirm{background:var(--accent, #2b6fd4);border-color:var(--accent, #2b6fd4);color:#fff}.dlg-confirm.danger{background:transparent;border-color:var(--danger, #e05a5a);color:var(--danger, #e05a5a)}.dlg-confirm:hover{filter:brightness(1.1)}.bom-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000073;display:flex;align-items:center;justify-content:center}.bom-modal{width:560px;max-width:94vw;max-height:88vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px 16px;box-shadow:0 16px 48px #00000080}.bom-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:4px;font-weight:600}.bom-modal .bom{overflow-y:auto}.bom-modal-wide{width:860px}.bom-modal-body{display:flex;gap:14px;min-height:0;overflow:hidden}.bom-modal-list{flex:1 1 56%;min-width:0;overflow-y:auto}.bom-modal-editor{flex:1 1 44%;min-width:0;overflow-y:auto;border-left:1px solid var(--line);padding-left:14px}.bom-editor-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.bom-editor-head strong{font-size:14px}.bom-editor-name{color:var(--muted);font-size:12px;margin-top:1px}.np-modal{width:520px}.np-fields{display:flex;flex-direction:column;gap:10px;margin:10px 0 4px}.np-row2{display:flex;gap:10px}.np-row2 .np-field{flex:1}.np-field{display:flex;flex-direction:column;gap:4px}.np-field span{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.np-field input{padding:8px 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);font-size:13px}.np-field input:focus{outline:none;border-color:var(--accent, #2b6fd4)}.np-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:14px 0 6px}.np-starts{display:flex;flex-direction:column;gap:6px;max-height:38vh;overflow-y:auto}.np-start{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;padding:9px 11px;background:var(--panel-2);border:1px solid var(--line);border-radius:7px;color:var(--text);cursor:pointer}.np-start:hover{border-color:var(--accent, #2b6fd4)}.np-start.active{border-color:var(--accent, #2b6fd4);box-shadow:inset 0 0 0 1px var(--accent, #2b6fd4)}.np-start-name{font-size:13px;font-weight:600}.np-start-hint{font-size:11px;color:var(--muted)}.np-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.np-warn{font-size:12px;color:var(--danger, #e05a5a)}.np-foot-actions{display:flex;gap:8px;margin-left:auto}.np-dims{display:flex;gap:12px;margin-top:8px;width:100%}.np-dim{display:flex;flex-direction:column;gap:3px;flex:1;cursor:default}.np-dim>span:first-child{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.np-dim-fields{display:flex;align-items:center;gap:4px}.np-dim-fields input{width:48px;padding:5px 6px;background:var(--panel);border:1px solid var(--line);border-radius:5px;color:var(--text);font-size:12px}.np-dim-fields input:focus{outline:none;border-color:var(--accent, #2b6fd4)}.np-dim-fields em{font-size:11px;color:var(--muted);font-style:normal;margin-right:4px}.np-dim-readout{font-size:11px;color:var(--muted)}.np-create{background:var(--accent, #2b6fd4);border-color:var(--accent, #2b6fd4);color:#fff}.np-create:hover{filter:brightness(1.1)}.start-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--bg, #14161a);display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto}.start-inner{width:720px;max-width:100%}.start-brand{font-size:30px;font-weight:800;letter-spacing:-.5px}.start-brand span{color:var(--accent, #2b6fd4)}.start-brand em{font-style:normal;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-left:8px;vertical-align:super}.start-tag{color:var(--muted);font-size:14px;margin:4px 0 22px}.start-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.start-tile{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--text);cursor:pointer}.start-tile:hover{border-color:var(--accent, #2b6fd4);transform:translateY(-1px)}.start-tile.primary{border-color:var(--accent, #2b6fd4);box-shadow:inset 0 0 0 1px var(--accent, #2b6fd4)}.start-tile-icon{font-size:22px;line-height:1;margin-bottom:4px}.start-tile-name{font-size:15px;font-weight:600}.start-tile-hint{font-size:12px;color:var(--muted)}.start-recent{margin-top:22px}.start-recent-label{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:8px}.start-recent-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.start-recent-item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;padding:8px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--text);cursor:pointer}.start-recent-item:hover{border-color:var(--accent, #2b6fd4)}.start-recent-name{font-size:13px;font-weight:600}.start-recent-date{font-size:11px;color:var(--muted)}@media (max-width: 560px){.start-tiles,.start-recent-list{grid-template-columns:1fr}}.or-modal{width:540px}.or-sub{color:var(--muted);font-size:12.5px;margin:8px 0 10px}.or-list{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto}.or-item{display:flex;align-items:center;gap:9px;text-align:left;padding:9px 11px;background:var(--panel-2);border:1px solid var(--line);border-radius:7px;color:var(--text);font-size:13px}.or-item.clickable{cursor:pointer}.or-item.clickable:hover{border-color:var(--accent, #2b6fd4)}.or-item.block{border-left:3px solid var(--danger, #e05a5a)}.or-item.warn{border-left:3px solid #d9a23b}.or-item.info{border-left:3px solid var(--line);color:var(--muted)}.or-group{margin-top:8px;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.or-pack{display:flex;flex-direction:column;gap:6px}.or-pack-head{font-size:12.5px;font-weight:600;margin-top:2px}.or-dot{font-size:13px;line-height:1}.or-msg{flex:1}.or-go{font-size:11px;color:var(--accent, #2b6fd4);white-space:nowrap}.or-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.or-anyway{background:var(--accent, #2b6fd4);border-color:var(--accent, #2b6fd4);color:#fff}.or-anyway.danger{background:transparent;border-color:var(--danger, #e05a5a);color:var(--danger, #e05a5a)}.or-anyway:hover{filter:brightness(1.1)}@media (max-width: 900px){.bom-modal-wide,.modal-wide{width:94vw}.bom-modal-body{flex-direction:column}.bom-modal-editor{border-left:none;border-top:1px solid var(--line);padding-left:0;padding-top:10px}}.bom-extra{margin-top:8px;border-top:1px solid var(--line);padding-top:4px}.bom-extra-row{display:flex;align-items:center;gap:6px;padding:2px 0}.bom-extra-row input{background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);padding:3px 6px;font-size:13px}.bom-ex-name{flex:1;min-width:0}.bom-ex-qty{width:48px;text-align:right}.bom-ex-unit{width:64px;text-align:right}.bom-ex-total{width:64px;text-align:right;font-variant-numeric:tabular-nums}.bom-ex-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:2px 4px}.bom-ex-del:hover{color:#d06363}.mods-modal-head strong{font-size:15px}.mods-modal-name{color:var(--muted);font-size:13px;font-weight:400}.mods-modal-dim{color:var(--muted);font-size:12px;margin:4px 0 8px}.mods-modal-x{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:6px}.mods-modal-x:hover{background:var(--panel-2);color:var(--text)}.mods-modal .mods{margin:0}.lib-size-filter{display:flex;align-items:center;gap:5px;margin:6px 0 2px;flex-wrap:wrap}.lib-size-label{font-size:11px;color:var(--muted);margin-right:1px}.lib-size-filter select{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:4px 5px;font-size:12px}.ctx-toggles{display:flex;gap:4px;padding:0 4px 2px}.ctx-toggles button{flex:1;text-align:center;padding:5px 6px;border:1px solid var(--line);border-radius:5px;font-size:12px}.ctx-toggles button.on{background:var(--panel-2);border-color:var(--accent, #6aa3ff)}.plan-canvas.drawing{cursor:crosshair}.draw-wall{stroke:#e6c06a;stroke-width:3;stroke-linecap:round;pointer-events:none}.draw-preview{stroke:#e6c06a;stroke-width:2;stroke-dasharray:5 4;opacity:.8;pointer-events:none}.draw-vertex{fill:#1f2228;stroke:#e6c06a;stroke-width:2;pointer-events:none}.draw-vertex.start{fill:#e6c06a}.draw-dim{fill:#f0d999;font-size:11px;font-weight:600;paint-order:stroke;stroke:#14161ad9;stroke-width:3px;pointer-events:none}.draw-len{display:inline-flex;align-items:center;gap:3px;background:var(--draw-chip-bg-soft);border:1px solid var(--draw-chip-line);border-radius:5px;padding:2px 5px;box-shadow:0 2px 6px #0006}.draw-len-input{width:64px;background:transparent;border:none;outline:none;color:var(--draw-chip-text);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.draw-len-input::placeholder{color:var(--draw-chip-faint);font-weight:400}.draw-len-unit{color:var(--draw-chip-muted);font-size:11px}.draw-ang-input{width:46px}.draw-len-sep{color:var(--draw-chip-muted);font-size:12px;padding-left:2px;cursor:default}.dim-line{stroke:var(--accent);stroke-width:1;pointer-events:none}.dim-gap{fill:var(--accent);font-size:11px;font-weight:600;paint-order:stroke;stroke:#14161acc;stroke-width:3px;pointer-events:none}.panel{padding:14px}.panel h2{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 10px}.panel h3{font-size:12px;color:var(--muted);margin:12px 0 6px;font-weight:600}.sec-head{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;border-top:1px solid var(--line);cursor:pointer;text-align:left;color:var(--text);font-size:13px;font-weight:700;padding:9px 0 7px;margin-top:4px}.sec-head:first-of-type{border-top:none;margin-top:0}.sec-head:hover{color:var(--accent)}.sec-head.open{color:var(--text)}.sec-caret{font-size:9px;color:var(--muted);width:9px;display:inline-block}.sec-body{animation:secReveal .12s ease-out}@keyframes secReveal{0%{opacity:.4}to{opacity:1}}.hint{font-size:12px;color:var(--muted);margin:0 0 10px;line-height:1.4}.hint.src{color:var(--accent)}.lib-search{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:7px 10px;font-size:13px;margin-bottom:8px}.lib-search::placeholder{color:var(--muted)}.cat-count{font-size:10px;color:var(--muted);background:var(--panel-2);border-radius:8px;padding:1px 6px;margin-left:4px;font-weight:500}.cat-count.subtle{background:none;padding:0 2px}.lib-header{position:sticky;top:0;z-index:3;background:var(--panel);margin:-14px -14px 8px;padding:14px 14px 8px;border-bottom:1px solid var(--line)}.lib-header h2{margin-top:0}.beginner-catalog .lib-header{top:-14px}.beginner-catalog .lib-search{min-height:44px;box-sizing:border-box}.lib-catalog-name{font-size:11px;color:var(--muted);margin:-6px 0 8px;letter-spacing:.3px}.lib-catalog-switch{display:flex;align-items:center;gap:6px;margin:-4px 0 8px}.lib-catalog-label{font-size:11px;color:var(--muted);letter-spacing:.3px}.lib-catalog-select{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:4px 8px;font-size:12px}.lib-catalog-select:disabled{opacity:.6}.lib-catalog-loading{font-size:10px;color:var(--muted)}.tree-toolbar{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.tree-toolbar .hint{margin:0}.tree-actions{display:flex;gap:10px;white-space:nowrap}.cat-tree{display:flex;flex-direction:column;gap:2px}.tree-cat{border-top:1px solid var(--line)}.tree-cat:last-child{border-bottom:1px solid var(--line)}.tree-cat-head{display:flex;align-items:center;gap:7px;width:100%;background:none;border:none;color:var(--text);padding:9px 2px;cursor:pointer;text-align:left;font:inherit}.tree-cat-head:hover{color:var(--accent)}.tree-chevron{display:inline-block;font-size:10px;color:var(--muted);transition:transform .12s ease;width:10px}.tree-chevron.open{transform:rotate(90deg)}.tree-cat-name{font-size:13px;font-weight:600;flex:1}.tree-cat-body{padding:0 2px 10px 17px}.tree-sub{margin-top:8px}.tree-sub:first-child{margin-top:2px}.tree-sub-head{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:4px 2px;font:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:4px}.tree-sub-head:hover{color:var(--accent)}.lib-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.lib-card{display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:8px 6px 6px;cursor:grab;color:var(--text)}.lib-card:hover{border-color:var(--accent);background:var(--row-hover)}.lib-card:active{cursor:grabbing}.cab-thumb{width:100%;height:46px;display:block}.lib-sku{font-weight:600;font-size:12px}.lib-dim{font-size:10px;color:var(--muted)}.lib-choice{min-width:0}.lib-choice>.lib-card{width:100%;height:100%;box-sizing:border-box}.beginner-catalog .lib-grid{grid-template-columns:minmax(0,1fr)}.beginner-catalog .lib-choice{display:grid;grid-template-columns:minmax(0,1fr);gap:3px}.beginner-catalog .lib-card{height:auto;padding:10px;text-align:left;align-items:stretch}.beginner-catalog .cab-thumb{height:65px}.lib-product-name{font-size:14px;font-weight:600;line-height:1.35}.beginner-catalog .lib-dim{font-size:12px;line-height:1.5}.beginner-catalog .lib-sku{font-size:10px;font-weight:400;color:var(--muted)}.lib-details{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:var(--panel-2);cursor:pointer}.beginner-catalog .lib-size-filter{flex-wrap:wrap}.beginner-catalog .lib-size-label{flex-basis:100%}.beginner-catalog .lib-size-filter select{flex:1 1 90px;min-width:0;min-height:44px}.lib-size-help{margin:6px 0}.lib-extra-sizes{flex-basis:100%;min-width:0}.lib-extra-sizes summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:12px}.lib-extra-sizes summary:before{content:"▸";margin-right:6px}.lib-extra-sizes[open] summary:before{content:"▾"}.catalog-browse-mode{display:flex;gap:4px;margin-top:8px}.catalog-browse-mode button,.common-cabinet,.common-add{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;cursor:pointer;min-height:44px}.catalog-browse-mode button{flex:1;font-size:12px;padding:8px 4px}.catalog-browse-mode button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.common-cabinets>p,.common-cabinet-size>p{font-size:13px;line-height:1.5}.common-cabinet{display:flex;width:100%;align-items:center;gap:12px;padding:12px;margin-bottom:8px;text-align:left;box-sizing:border-box;cursor:default}.common-cabinet .cab-thumb{width:48px;height:64px;flex-shrink:0}.common-cabinet .common-drag{width:auto;flex-shrink:0;padding:4px}.common-cabinet-choose{flex:1;min-width:0;text-align:left;background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;cursor:pointer;min-height:44px}.common-cabinet-choose strong,.common-cabinet-choose>span{display:block;line-height:1.4}.common-cabinet-choose strong{font-size:14px}.common-cabinet-choose>span{font-size:12px;color:var(--muted);margin-top:3px}.common-cabinet-choose .common-choose{color:var(--text);margin-top:6px}.common-cabinet-size .common-drag .cab-thumb{width:100%;height:90px}.common-drag{display:block;width:100%;box-sizing:border-box;padding:8px;border:1px dashed var(--line);border-radius:6px;cursor:grab;text-align:center}.common-drag:hover{border-color:var(--accent)}.common-drag:active{cursor:grabbing}.common-drag-cue{display:block;font-size:12px;color:var(--muted);margin-top:4px}@media (pointer: coarse){.common-drag{cursor:default;border-style:solid}.common-drag-cue,.common-drag-hint{display:none}}.common-cabinet-size label{display:block;font-size:13px;margin:8px 0}.common-cabinet-size select{display:block;box-sizing:border-box;width:100%;min-height:44px;margin-top:5px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:8px;font:inherit}.common-cabinet-size summary{cursor:pointer;min-height:44px;line-height:44px;font-size:13px}.common-cabinet-size>button{width:100%;margin:4px 0}.common-cabinet-size .common-add{background:var(--accent);color:#fff;padding:10px}.common-cabinet-size [role=status]:empty{display:none}.catalog-browse-mode button:focus-visible,.common-cabinet-choose:focus-visible,.common-add:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cabinet-replacement{margin:10px 0}.cabinet-replacement summary{min-height:44px;line-height:44px;cursor:pointer}.cabinet-replacement .field{display:block}.cabinet-replacement .field input,.cabinet-replacement .field select{box-sizing:border-box;width:100%;min-height:44px;margin-top:4px}.replacement-preview{font-size:13px;line-height:1.5}.replacement-preview .cab-thumb{width:100%;height:80px}.replacement-preview button{width:100%;margin-top:6px}.th-carcass{fill:#b79e7a;stroke:#6b5a3e;stroke-width:1.2}.th-toekick{fill:#1d1a14;stroke:none}.th-door{fill:#d8c4a0;stroke:#7a6648;stroke-width:1}.th-drawer{fill:#cdb892;stroke:#7a6648;stroke-width:1}.th-panel{fill:#cdb591;stroke:#8a7656;stroke-width:.7}.th-hw{fill:#2f3338}.th-appliance{fill:#c2c8ce;stroke:#8a9199;stroke-width:1.2}.th-decor{fill:#d7cfe0;stroke:#9a90ac;stroke-width:1.2;stroke-dasharray:3 2}.th-detail{fill:none;stroke:#8a9199;stroke-width:1.2}.swatch-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.swatch{display:flex;flex-direction:column;gap:4px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:5px;cursor:pointer;color:var(--text)}.swatch:hover{border-color:var(--accent)}.swatch.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.swatch img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:4px;background:#fff;display:block}.swatch-ph{width:100%;aspect-ratio:1 / 1;border-radius:4px;background:var(--line)}.swatch span{font-size:11px;text-align:center;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.swatch.sel span{color:var(--text)}.swatch span.swatch-tier{font-size:10px;color:var(--accent)}.link-btn{background:none;border:none;color:var(--accent);font-size:12px;cursor:pointer;padding:0}.link-btn:disabled{color:var(--muted);cursor:default;opacity:.6}.acc-list{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}.acc-item{display:grid;grid-template-columns:16px 1fr auto;gap:6px;align-items:center;width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);padding:5px 8px;cursor:pointer;font-size:12px;text-align:left}.acc-item:hover{border-color:var(--accent)}.acc-item.on{border-color:var(--accent);background:var(--row-hover)}.acc-check{color:var(--accent);font-weight:700}.acc-price{color:var(--muted);font-variant-numeric:tabular-nums}.finish-row{margin-bottom:9px}.finish-row-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:4px}.finish-swatches{display:flex;gap:4px;flex-wrap:wrap}.finish-sw{width:24px;height:24px;border-radius:4px;border:1px solid var(--line);cursor:pointer;padding:0}.finish-sw:hover{transform:scale(1.08)}.finish-sw.sel{box-shadow:0 0 0 2px var(--accent);border-color:var(--accent)}.color-in{width:48px;height:24px;padding:0;border:1px solid var(--line);border-radius:4px;background:none;cursor:pointer}.color-in::-webkit-color-swatch-wrapper{padding:2px}.color-in::-webkit-color-swatch{border:none;border-radius:2px}.field{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:13px}.field>span:first-child{color:var(--muted)}.field.ro>span:last-child{font-variant-numeric:tabular-nums}.field input,.field select{width:120px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);padding:5px 8px;font-size:13px}.field select{width:150px}.mods{border-top:1px solid var(--line);margin-top:12px;padding-top:8px}.catalog-bar{display:flex;flex-wrap:wrap;gap:5px;margin:2px 0}.cat-tab{padding:4px 11px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);font-size:13px;cursor:pointer}.cat-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}.cat-tab.cat-add{border-style:dashed;color:var(--muted)}.catalog-edit{display:flex;align-items:center;gap:8px;margin-top:6px}.catalog-edit .spec-input{flex:1}.link-btn.danger{color:#d06363}.quick-mods-head{display:flex;align-items:center;justify-content:space-between}.quick-mods-head h3{margin:0}.quick-mods-config{margin-top:6px;max-height:300px;overflow-y:auto}.quick-cfg-group{margin-bottom:8px}.quick-cfg-title{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:4px 0 2px}.quick-cfg-row{display:flex;align-items:center;gap:7px;padding:2px 0;font-size:13px;cursor:pointer}.quick-cfg-row input{margin:0}.design-sections{border-top:1px solid var(--line);margin-top:14px;padding-top:6px}.design-tabs{display:flex;gap:2px;position:sticky;top:0;z-index:2;background:var(--panel);padding-bottom:6px}.design-tab{flex:1;padding:6px 4px;border:1px solid var(--line);border-bottom:none;border-radius:6px 6px 0 0;background:var(--panel-2);color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.design-tab:hover{color:var(--text)}.design-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.design-tab.pending:after{content:" •";color:var(--accent)}.design-tab.active.pending:after{color:#fff}.cat-tab.pending:after,.panel-expand.pending span:after,.mobile-workspace-nav button.pending:after{content:" •";color:var(--accent)}.cabinet-replacement summary .summary-pending{color:var(--accent);font-weight:600}.spec-results{display:flex;flex-direction:column;gap:4px;margin-top:6px}.spec-row{display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:6px 8px;cursor:pointer;color:var(--text);text-align:left}.spec-row:hover{border-color:var(--accent)}.spec-row.selected{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.spec-model{font-weight:600;font-size:12px}.spec-dim{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.spec-note{font-size:10px;color:var(--accent)}.spec-pending{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding:8px;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:6px;background:color-mix(in srgb,var(--accent) 7%,var(--panel-2))}.spec-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:6px}.field.col{flex-direction:column;align-items:stretch;gap:4px}.field.col input{width:100%}.seg-mini{display:flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}.seg-mini button{background:none;border:none;color:var(--muted);padding:4px 11px;cursor:pointer;font-size:12px}.seg-mini button:hover{color:var(--text)}.seg-mini button.on{background:var(--accent-2);color:#fff}.sel-edit .sel-name{font-weight:600;font-size:14px}.sel-edit .sel-sku{color:var(--muted);font-size:12px;margin-bottom:10px}.btn-row{display:flex;gap:6px;margin:10px 0}.btn-row button{flex:1;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);padding:6px;cursor:pointer;font-size:12px}.btn-row button:hover{border-color:var(--accent)}.btn-row button.danger:hover{border-color:var(--danger);color:var(--danger)}.pos-section{margin:12px 0;padding-top:10px;border-top:1px solid var(--line)}.pos-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.pos-step{background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);padding:2px 6px;font-size:12px;text-transform:none;letter-spacing:0}.nudge-grid{display:grid;grid-template-columns:repeat(3,34px);grid-template-rows:repeat(3,34px);grid-template-areas:". up ." "left . right" ". down .";gap:4px;justify-content:center;margin:4px auto 10px}.nudge{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center}.nudge:hover{border-color:var(--accent);color:var(--accent)}.nudge:active{background:var(--accent);color:#fff}.n-up{grid-area:up}.n-down{grid-area:down}.n-left{grid-area:left}.n-right{grid-area:right}.bom{margin-top:auto;border-top:1px solid var(--line);display:flex;flex-direction:column}.bom-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.bom-count{text-transform:none;letter-spacing:0}.bom-list{max-height:220px;overflow-y:auto}.bom-empty{padding:6px 14px 14px;color:var(--muted);font-size:12px}.bom-cat-head{display:flex;justify-content:space-between;align-items:baseline;padding:7px 14px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;background:var(--panel-2);border-top:1px solid var(--line)}.bom-cat-qty{font-size:10px;background:var(--panel);border-radius:8px;padding:1px 6px;margin-left:4px;font-weight:500}.bom-row{display:grid;grid-template-columns:26px 64px 1fr auto;gap:7px;align-items:center;width:100%;background:none;border:none;border-top:1px solid var(--line);color:var(--text);padding:6px 14px;cursor:pointer;font-size:12px;text-align:left}.bom-row:hover,.bom-row.sel{background:var(--panel-2)}.bom-qty{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.bom-sku{font-weight:600}.bom-name{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-price{font-variant-numeric:tabular-nums}.bom-sub{display:flex;justify-content:space-between;padding:8px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.bom-total{display:flex;justify-content:space-between;padding:11px 14px;border-top:1px solid var(--line);font-weight:600;font-size:13px}.selections-view{height:100%;overflow:auto;padding:32px;display:flex;justify-content:center;align-items:flex-start}.sel-form{width:100%;max-width:540px}.sel-form h1{font-size:22px;margin:0 0 2px}.sel-sub{color:var(--muted);font-size:13px;margin:0 0 24px}.sel-finish-note{margin:-14px 0 20px;padding:8px 12px;background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:6px;color:var(--text);font-size:12px;line-height:1.45;max-width:640px}.spec-block{margin-bottom:22px}.spec-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.spec-control{display:flex;gap:14px;align-items:center}.spec-select{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:9px 11px;font-size:14px}.spec-select:hover{border-color:var(--accent)}.spec-preview-door{width:110px;height:150px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#fff;flex:none}.spec-swatch{width:54px;height:54px;object-fit:cover;border-radius:6px;border:1px solid var(--line);flex:none}.selection-actions{display:flex;align-items:center;gap:10px;margin-top:10px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);font-size:12px;color:var(--muted)}.selection-actions span{margin-right:auto}.selection-actions.dirty{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));color:var(--text)}.apply-bar .apply-btn{padding:6px 14px;font-weight:600}.apply-bar.dirty [role=status]{font-weight:600}.props .apply-bar{position:sticky;bottom:0;z-index:3}.compact-workspace .apply-bar button{min-height:44px}.apply-btn{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:5px;padding:5px 10px;font-size:12px;cursor:pointer}.apply-btn:disabled{border-color:var(--line);background:var(--panel);color:var(--muted);cursor:default}.finish-tray-wrap{position:relative}.finish-tray{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding:8px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;max-height:120px;overflow-y:auto}.finish-tray button{position:relative;padding:0;border:1px solid var(--line);border-radius:4px;background:transparent;cursor:pointer;width:36px;height:36px;overflow:visible}.finish-tray button img{width:100%;height:100%;object-fit:cover;border-radius:3px;display:block}.finish-tray button.active{outline:2px solid var(--accent);outline-offset:1px}.finish-tray button:focus-visible{outline:3px solid var(--text);outline-offset:1px}.finish-preview-panel{position:absolute;left:0;bottom:calc(100% + 8px);width:200px;pointer-events:none;z-index:80}.finish-preview-panel img{width:200px;height:200px;object-fit:cover;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px #0000002e}.finish-preview-panel span{display:block;margin-top:4px;background:var(--panel);color:var(--text);font-size:11px;padding:3px 8px;border-radius:4px;border:1px solid var(--line);text-align:center;white-space:nowrap}.door-tray{max-height:168px}.door-tray button{width:42px;height:58px}.door-preview-panel{width:168px}.door-preview-panel img{width:168px;height:224px}.door-preview-panel span{white-space:normal}@media (max-width: 600px){.selections-view{padding:20px 16px}.selections-view .spec-control{gap:10px}.selections-view .spec-select{min-height:44px;font-size:16px}.selections-view .spec-preview-door{width:88px;height:120px}.selections-view .selection-actions{flex-wrap:wrap;gap:8px}.selections-view .selection-actions span{flex-basis:100%}.selections-view .selection-actions button{min-height:44px;min-width:44px;flex-shrink:0;white-space:nowrap}.selections-view .selection-actions .link-btn{margin-left:auto}.selections-view .finish-tray button{width:44px;height:44px}.selections-view .door-tray button{width:44px;height:60px}.selections-view .finish-preview-panel{position:static;margin:8px auto 0;max-width:100%}}.sel-pricing{display:flex;align-items:baseline;gap:10px;margin-top:22px;padding:12px 14px;background:var(--panel-2);border-radius:8px}.sel-pricing span{color:var(--muted);font-size:13px}.sel-pricing strong{font-size:20px}.sel-pricing em{color:var(--muted);font-size:11px;font-style:normal;margin-left:auto}.sel-note{color:var(--muted);font-size:12px;margin-top:18px;line-height:1.5}.checks{margin-bottom:14px;padding:8px;border-radius:8px;background:#e0913f14;border:1px solid rgba(224,145,63,.3)}.checks-head{font-size:12px;font-weight:700;color:#e0913f;margin-bottom:6px}.check-row{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);font-size:12px;padding:4px 6px;border-radius:5px;cursor:pointer;line-height:1.35}.check-row:hover{background:var(--panel-2)}.check-row.info{color:var(--muted)}.check-why{display:block;margin:2px 0 0 14px;font-size:11px;line-height:1.35;color:var(--muted)}.check-row:before{content:"•";margin-right:6px;color:#e0913f}.check-row.info:before{color:var(--muted)}.versions-wrap{position:relative;display:inline-block}.versions-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.versions-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:41;width:280px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px;box-shadow:0 8px 24px #00000073;max-height:60vh;overflow-y:auto}.vers-save{display:block;width:100%;text-align:left;padding:8px;border:none;background:var(--panel-2);color:var(--text);border-radius:6px;cursor:pointer;font-size:13px;margin-bottom:6px}.vers-save:hover{background:var(--accent, #2b6fd4);color:#fff}.vers-empty{color:var(--muted);font-size:12px;padding:8px}.vers-section{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:8px 4px 3px}.view-tabs{display:flex;gap:4px;overflow-x:auto;padding:2px 4px 6px;scrollbar-width:thin}.view-tab{flex:0 0 auto;max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);cursor:pointer;font-size:12px}.view-tab:hover{border-color:var(--accent, #2b6fd4)}.view-tab.active{background:var(--accent, #2b6fd4);border-color:var(--accent, #2b6fd4);color:#fff}.view-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:2px 4px 4px}.view-filter-btn{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;min-height:44px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);cursor:pointer;text-align:left}.view-filter-btn:hover{border-color:var(--accent, #2b6fd4)}.view-filter-btn.active{background:var(--accent, #2b6fd4);border-color:var(--accent, #2b6fd4);color:#fff}.view-filter-btn span{font-size:12px;font-weight:600}.view-filter-btn small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.view-filter-btn.active small{color:#ffffffd1}.view-cats{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;padding:2px 4px 4px}.assistant{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg, var(--panel))}.assistant-agents{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);flex:0 0 auto}.assistant-agent{display:flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:7px;cursor:pointer;font-size:13px}.assistant-agent:hover{border-color:var(--accent, #2b6fd4)}.assistant-agent.active{background:var(--accent, #2b6fd4);border-color:var(--accent, #2b6fd4);color:#fff}.assistant-main{flex:1;min-height:0;display:flex;flex-direction:column;max-width:820px;width:100%;margin:0 auto}.assistant-blurb{padding:10px 14px;color:var(--muted);font-size:12.5px;border-bottom:1px solid var(--line)}.assistant-msgs{flex:1;min-height:0;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.assistant-empty{color:var(--muted);font-size:13px;text-align:center;margin-top:30px}.assistant-msg{max-width:80%;padding:9px 13px;border-radius:12px;font-size:13.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.assistant-msg.user{align-self:flex-end;background:var(--accent, #2b6fd4);color:#fff}.assistant-msg.agent{align-self:flex-start;background:var(--panel-2);color:var(--text);border:1px solid var(--line)}.assistant-msg.agent.not-connected{border-style:dashed;color:var(--muted)}.assistant-msg.busy{opacity:.6}.assistant-msg.agent{position:relative}.assistant-flag{position:absolute;top:4px;right:4px;border:none;background:none;cursor:pointer;font-size:12px;opacity:0;transition:opacity .15s;padding:2px 4px;border-radius:5px}.assistant-msg.agent:hover .assistant-flag{opacity:.55}.assistant-flag:hover{opacity:1!important;background:var(--panel)}.assistant-proposal{align-self:stretch;border:1px solid var(--accent, #2b6fd4);border-radius:10px;padding:10px 13px;background:var(--panel-2);font-size:13px}.ap-title{font-weight:700;margin-bottom:6px}.ap-ops{margin:0 0 6px;padding-left:4px;list-style:none;display:flex;flex-direction:column;gap:2px}.ap-ops li.ok{color:var(--text)}.ap-ops li.bad{color:var(--muted);text-decoration:line-through}.ap-warn{color:#c98a1b;margin-bottom:6px}.ap-changes{margin:0 0 6px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:2px;max-height:220px;overflow-y:auto}.ap-change{display:flex;align-items:center;gap:7px;padding:3px 6px;border-radius:6px;cursor:pointer}.ap-change:hover{background:var(--panel)}.ap-change.focused{background:#3b82f622;outline:1px solid #3b82f6}.ap-change.flagged{color:#c9922e}.ap-change.dep-off{color:var(--muted)}.ap-change.dep-off .ap-change-text{text-decoration:line-through}.ap-change input[type=checkbox]{cursor:pointer}.ap-flag{width:13px;text-align:center}.ap-change-text{flex:1;min-width:0}.ap-price{margin-bottom:6px;font-size:12px;color:var(--muted)}.ap-price b.up{color:#c05b4d}.ap-price b.down{color:#3f9d63}.draw-callout{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:5;width:max-content;max-width:min(520px,calc(100% - 16px));box-sizing:border-box;background:var(--draw-chip-bg);color:var(--draw-chip-text);border:1px solid var(--draw-chip-line);border-radius:8px;padding:8px 12px;font-size:13px;line-height:1.35;box-shadow:0 2px 10px #0006;pointer-events:none}@media (max-height: 640px),(max-width: 760px){.draw-callout{font-size:12px;padding:5px 9px;max-width:min(440px,calc(100% - 16px))}.draw-callout-title{display:none}.draw-callout-finish{margin-top:3px}}.draw-callout-title{font-weight:700;font-size:12px;letter-spacing:.02em;text-transform:uppercase;opacity:.8;margin-bottom:2px}.draw-callout-step{color:var(--draw-chip-strong)}.draw-callout-finish{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}.draw-callout-finish>span{font-weight:600}.draw-callout-finish>button{margin-left:auto;padding:4px 14px;border:1px solid #e6c06a;border-radius:6px;cursor:pointer;background:#e6c06a;color:#14161a;font-weight:700;font-size:13px;pointer-events:auto}.draw-callout-finish>button:hover{background:#f0d999}.preview-banner{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:5;background:#1d4ed8;color:#fff;padding:6px 14px;border-radius:8px;font-size:12.5px;box-shadow:0 2px 10px #00000059;pointer-events:none;white-space:nowrap}.ap-actions{display:flex;gap:8px}.ap-apply{padding:6px 14px;border:none;background:var(--accent, #2b6fd4);color:#fff;border-radius:7px;cursor:pointer;font-size:13px}.ap-apply:disabled{opacity:.5;cursor:default}.ap-dismiss{padding:6px 12px;border:1px solid var(--line);background:none;color:var(--muted);border-radius:7px;cursor:pointer;font-size:13px}.ap-hint{margin-top:6px;color:var(--muted);font-size:11.5px}.assistant-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);flex:0 0 auto}.assistant-input textarea{flex:1;resize:none;min-height:42px;max-height:140px;padding:9px 11px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:8px;font:inherit;font-size:13.5px}.assistant-send{padding:0 18px;border:none;background:var(--accent, #2b6fd4);color:#fff;border-radius:8px;cursor:pointer;font-size:13px}.assistant-send:disabled{opacity:.5;cursor:default}.left-tabs-host{display:flex;flex-direction:column;height:100%;min-height:0}.left-tabs{display:flex;gap:2px;padding:6px 6px 0;flex:0 0 auto}.left-tab{flex:1;padding:6px 4px;font-size:11.5px;border:1px solid var(--line);border-bottom:none;background:var(--panel-2);color:var(--muted);border-radius:6px 6px 0 0;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.left-tab:hover{color:var(--text)}.left-tab.active{background:var(--panel);color:var(--text);font-weight:600}.left-tab-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;border-top:1px solid var(--line)}.left-tab-body>.panel.catalog{flex:1;min-height:0;overflow-y:auto}.catalog-tab{padding:8px;overflow-y:auto}.cat-mfr{margin-bottom:10px}.cat-mfr-name{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:4px 2px}.cat-line{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px 10px;margin:2px 0;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:6px;cursor:pointer;font-size:12.5px;text-align:left}.cat-line:disabled{opacity:.55;cursor:default}.cat-line.active{border-color:var(--accent, #2b6fd4)}.cat-line-meta{color:var(--muted);font-size:11px}.run-edit-link{background:none;border:none;padding:0;font:inherit;font-weight:400;color:var(--text);cursor:pointer;text-align:left;text-decoration:underline dotted;text-underline-offset:2px}.run-edit-link:hover{color:var(--accent, #2b6fd4)}.run-edit-link.on{color:var(--accent, #2b6fd4);font-weight:600}.qp-input{width:100%;padding:9px 11px;font-size:14px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:6px;box-sizing:border-box}.qp-results{margin-top:10px;display:flex;flex-direction:column;gap:3px;max-height:340px;overflow-y:auto}.qp-result{display:flex;align-items:baseline;gap:10px;width:100%;padding:7px 10px;text-align:left;border:1px solid transparent;background:none;color:var(--text);border-radius:5px;cursor:pointer}.qp-result:hover{background:var(--panel-2);border-color:var(--line)}.qp-sku{font-weight:600;font-size:13px;min-width:84px}.qp-name{flex:1;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qp-dims{font-size:12px;color:var(--muted)}.qp-empty{padding:8px 10px;color:var(--muted);font-size:13px}.qp-hint{margin:8px 0 0;font-size:11.5px;color:var(--muted)}.util-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;padding:0 4px 4px}.util-chip{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:6px;cursor:pointer;text-align:left}.util-chip:hover{border-color:var(--accent, #2b6fd4)}.util-chip.elec{border-left:3px solid #d9a521}.util-chip.plumb{border-left:3px solid #2b8fd4}.util-chip.mech{border-left:3px solid #7a7f85}.util-sym{font-size:16px;width:18px;text-align:center}.util-label{font-size:12.5px}.utility .utility-dot{fill:var(--panel);stroke:var(--text);stroke-width:1.2}.utility.elec .utility-dot{stroke:#c79a1e}.utility.plumb .utility-dot{stroke:#2b8fd4}.utility.mech .utility-dot{stroke:#7a7f85}.utility .utility-sym{font-size:9px;fill:var(--text);pointer-events:none}.plan-canvas .utility:hover .utility-dot{fill:var(--panel);stroke:var(--accent)}.utility.sel .utility-dot{fill:var(--accent);stroke:var(--accent);stroke-width:2}.dim-placed.sel .measure-line{stroke:var(--accent);stroke-width:2.4}.dim-placed.sel .measure-dot{fill:var(--accent)}.elev-utility .utility-dot{fill:var(--utility-dot);stroke-width:1.4}.elev-utility:hover .utility-dot{fill:var(--utility-dot)}.elev-utility .utility-sym{fill:#131820;font-size:9px;font-weight:700;pointer-events:none}.elev-utility-witness{stroke:#e6edf659;stroke-width:1;stroke-dasharray:3 4}.elev-utility-label{fill:var(--cad-utility-label);font-size:9px;font-weight:600;paint-order:stroke;stroke:var(--cad-halo);stroke-width:2.5px;stroke-linejoin:round}.vers-row{display:flex;gap:4px;align-items:stretch}.vers-restore{flex:1;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:none;border:none;color:var(--text);padding:6px 8px;border-radius:5px;cursor:pointer}.vers-restore:hover{background:var(--panel-2)}.vers-name{font-size:13px}.vers-date{font-size:11px;color:var(--muted)}.qbo-export-block{display:flex;flex-direction:column}.qbo-withheld-warning{margin:0 8px 7px;padding:7px 9px;border:1px solid rgba(224,90,90,.45);border-left:3px solid var(--danger, #e05a5a);border-radius:5px;background:#e05a5a1a;color:var(--text);font-size:11.5px;line-height:1.4}.qbo-withheld-warning strong{color:var(--danger, #e05a5a)}.vers-diff{background:none;border:1px solid var(--line);color:var(--muted);cursor:pointer;padding:0 9px;border-radius:5px;font-size:12px;align-self:center}.vers-diff:hover{color:var(--text);border-color:var(--accent)}.vers-del{background:none;border:none;color:var(--muted);cursor:pointer;padding:0 8px;border-radius:5px}.vers-del:hover{color:var(--danger, #e05a5a);background:#e05a5a1f}.changeorder-modal .co-date{color:var(--muted)}.co-empty{padding:18px;text-align:center;color:var(--muted);font-size:13px}.co-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.co-pill{font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--line)}.co-pill.co-added{color:#4ca96a;border-color:#4ca96a}.co-pill.co-removed{color:var(--danger, #e05a5a);border-color:var(--danger, #e05a5a)}.co-pill.co-changed{color:#d0922e;border-color:#d0922e}.co-pill.co-same{color:var(--muted)}.co-body{max-height:52vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.co-section-head{font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.co-section-head.co-added{color:#4ca96a}.co-section-head.co-removed{color:var(--danger, #e05a5a)}.co-section-head.co-changed{color:#d0922e}.versioncompare-modal{width:min(760px,94vw)}.vc-scroll{overflow-x:auto}.vc-table{width:100%;border-collapse:collapse;font-size:13px}.vc-table th,.vc-table td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--line);font-weight:400}.vc-table thead th{vertical-align:bottom;color:var(--muted)}.vc-table .num{text-align:right;font-variant-numeric:tabular-nums}.vc-name{display:block;color:var(--text);font-weight:600}.vc-date{display:block;color:var(--muted);font-size:11px}.vc-total th,.vc-total td{font-weight:700;border-top:2px solid var(--text)}.vc-note{margin:8px 0 0}.vc-warn{color:#d0922e}.vc-diffs{margin-top:12px;max-height:40vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.vc-diffs .co-body{max-height:none;overflow:visible}.vc-diff-head{font-size:13px;margin-bottom:6px}.cmp-order{margin-left:auto;color:var(--muted);font-size:11px}.co-row{border:1px solid var(--line);border-radius:6px;padding:7px 9px;margin-bottom:6px;background:var(--panel-2)}.co-row-head{display:flex;align-items:baseline;gap:8px}.co-name{font-size:13px;font-weight:500}.co-sku{font-size:11px;color:var(--muted);font-family:monospace}.co-changes{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.co-changes li{display:flex;gap:6px;align-items:baseline;font-size:12px}.co-field{min-width:96px;color:var(--muted)}.co-from{color:var(--danger, #e05a5a);text-decoration:line-through}.co-arrow{color:var(--muted)}.co-to{color:#4ca96a}.report-config{border-top:1px solid var(--line);margin-top:6px;padding:8px 6px 6px;display:flex;flex-direction:column;gap:8px}.rc-row{display:flex;align-items:center;gap:8px}.rc-label{font-size:12px;color:var(--muted);min-width:52px}.rc-pricing{display:flex;gap:4px;flex:1}.rc-watermark{flex:1;min-width:0;padding:5px 7px;font-size:12px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:5px}.rc-margin{width:56px;padding:5px 6px;font-size:12px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:5px}.rc-unit{font-size:12px;color:var(--muted)}.rc-pill{flex:1;padding:5px 4px;font-size:12px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:5px;cursor:pointer}.rc-pill:hover{border-color:var(--accent, #2b6fd4)}.rc-pill.active{background:var(--accent, #2b6fd4);border-color:var(--accent, #2b6fd4);color:#fff}.rc-sections{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}.rc-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text);cursor:pointer;padding:2px 0}.rc-check input{cursor:pointer}.rc-generate{width:100%;padding:8px;border:none;background:var(--accent, #2b6fd4);color:#fff;border-radius:6px;cursor:pointer;font-size:13px}.rc-generate:hover{filter:brightness(1.1)}.rc-templates{flex-direction:column;align-items:stretch;gap:5px}.rc-tpl-list{display:flex;flex-wrap:wrap;gap:5px}.rc-tpl-empty{color:var(--muted);font-size:11.5px}.rc-tpl{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:5px;overflow:hidden}.rc-tpl-load{padding:4px 8px;font-size:12px;background:var(--panel-2);color:var(--text);border:none;cursor:pointer}.rc-tpl-load:hover{color:var(--accent, #2b6fd4)}.rc-tpl-del{padding:4px 6px;font-size:12px;background:var(--panel-2);color:var(--muted);border:none;border-left:1px solid var(--line);cursor:pointer}.rc-tpl-del:hover{color:#d4542b}.rc-tpl-save{display:flex;gap:5px}.rc-tpl-name{flex:1;padding:5px 7px;font-size:12px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:5px}.rc-tpl-savebtn{padding:5px 10px;font-size:12px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:5px;cursor:pointer}.rc-tpl-savebtn:disabled{opacity:.5;cursor:default}.rc-tpl-savebtn:not(:disabled):hover{border-color:var(--accent, #2b6fd4)}.trims-head{display:flex;align-items:baseline;justify-content:flex-end}.trim-row{font-weight:600}.trim-body{padding:2px 0 8px 10px;margin-bottom:4px;border-left:2px solid var(--line)}.trim-body .field{margin-left:2px}.proj-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.spec-input{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:9px 11px;font-size:14px}.spec-input:hover,.spec-input:focus{border-color:var(--accent);outline:none}.menubar{display:flex;align-items:center;gap:4px;height:34px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:0 0 auto;position:relative;z-index:60}.menubar-brand{font-weight:700;font-size:15px;letter-spacing:.2px;margin-right:10px;white-space:nowrap}.menubar-brand span{color:var(--accent)}.menubar-brand em{font-style:normal;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 4px;margin-left:6px;vertical-align:middle}.menubar-menus{display:flex;align-items:center;gap:1px}.menubar-menus[hidden]{display:none}.menu{position:relative}.menu-label{background:none;border:none;color:var(--text);font-size:13px;padding:5px 10px;border-radius:5px;cursor:pointer}.menu-label:hover,.menu.open .menu-label{background:var(--panel-2)}.menu-drop{position:absolute;left:0;top:calc(100% + 3px);z-index:61;min-width:220px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:5px;box-shadow:0 10px 28px #00000073;max-width:min(400px,calc(100vw - 16px));max-height:calc(100dvh - 48px);overflow-y:auto}.menu-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;color:var(--text);font-size:13px;padding:6px 8px;border-radius:5px;cursor:pointer;white-space:nowrap}.menu-item:hover:not(:disabled){background:var(--accent-2);color:#fff}.menu-item:disabled{opacity:.4;cursor:default}.mi-check{width:12px;flex:0 0 auto;color:var(--accent);font-size:12px}.menu-item:hover:not(:disabled) .mi-check{color:#fff}.mi-label{flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere}.mi-shortcut,.mi-menu{color:var(--muted);font-size:11px;margin-left:16px}.menu-item:hover:not(:disabled) .mi-shortcut,.menu-item:hover:not(:disabled) .mi-menu{color:#ffffffbf}.menu-divider{height:1px;background:var(--line);margin:4px 2px}.menu-section{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);padding:4px 8px 2px}.menubar-name{margin-left:auto;min-width:160px;max-width:280px;background:var(--panel-2);border:1px solid transparent;border-radius:6px;color:var(--text);padding:5px 9px;font-size:13px}.menubar-name:hover{border-color:var(--line)}.menubar-name:focus{border-color:var(--accent);outline:none}.menubar-themes{display:flex;align-items:center;gap:2px;margin-left:8px;flex:0 0 auto;padding:2px;background:var(--panel-2);border:1px solid var(--line);border-radius:7px}.theme-pick{display:inline-flex;align-items:center;gap:5px;background:none;border:1px solid transparent;border-radius:5px;color:var(--muted);font-size:11px;font-family:inherit;padding:3px 7px;cursor:pointer;white-space:nowrap}.theme-pick:hover{color:var(--text)}.theme-pick.on{background:var(--panel);border-color:var(--line);color:var(--text)}.theme-pick:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.theme-pick-dot{width:11px;height:11px;border-radius:50%;border:1px solid var(--line);flex:0 0 auto}.theme-pick[data-theme-pick=home3] .theme-pick-dot{background:linear-gradient(135deg,#faf7f4 45%,#d9a79a 55%)}.theme-pick[data-theme-pick=slate] .theme-pick-dot{background:linear-gradient(135deg,#282c34 45%,#4f9cf9 55%)}.theme-pick[data-theme-pick=paper] .theme-pick-dot{background:linear-gradient(135deg,#f6f4ee 45%,#2b6fd4 55%)}.is-compact .menubar-themes{margin-left:4px}.is-compact .theme-pick{padding:6px;min-height:32px}.is-compact .theme-pick-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.menubar-toggle{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:8px 12px;cursor:pointer}.menubar.is-compact{height:48px;padding:0 8px;gap:8px}.is-compact .menubar-brand{margin-right:0;font-size:13px}.is-compact .menubar-brand em{display:none}.is-compact .menubar-name{min-width:0;width:0;flex:1;max-width:none;padding:8px}.is-compact .menubar-tracking{margin-left:0}.is-compact .menubar-menus{position:absolute;top:calc(100% + 4px);left:8px;right:8px;flex-wrap:wrap;gap:4px;padding:8px;align-items:stretch;max-height:calc(100dvh - 64px);overflow-y:auto;overscroll-behavior:contain;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px #00000073}.is-compact .menu{display:contents}.is-compact .menu-label{flex:1 0 28%;min-height:44px;border:1px solid var(--line)}.is-compact .menu-drop{position:static;order:1;flex:1 0 100%;min-width:0;max-width:none;max-height:none;overflow:visible;box-shadow:none;border:0;padding:4px 0}.is-compact .menu-item{min-height:44px;white-space:normal}.is-compact .mi-label{min-width:0;overflow-wrap:anywhere}.is-compact .mi-shortcut{margin-left:4px;flex:0 0 auto}.commandbar{display:flex;align-items:stretch;gap:0;min-height:56px;padding:4px 10px;background:var(--panel);border-bottom:1px solid var(--line);flex:0 0 auto;position:relative;z-index:50}.commandbar.collapsed{min-height:0;padding:2px 10px;justify-content:flex-start}.cb-expand{background:none;border:none;color:var(--muted);font-size:11px;cursor:pointer;padding:2px 6px;border-radius:5px}.cb-expand:hover{background:var(--panel-2);color:var(--text)}.cb-group{display:flex;align-items:stretch}.cb-sep{width:1px;background:var(--line);margin:4px 8px;flex:0 0 auto}.cb-group-body{display:flex;flex-direction:column;align-items:center;gap:3px}.cb-group-items{display:flex;align-items:center;gap:3px}.cb-group-label{font-size:9px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted)}:is(.cb-btn,.cb-measure-btn){display:flex;flex-direction:column;align-items:center;gap:2px;min-width:48px;padding:4px 7px;background:none;border:1px solid transparent;border-radius:6px;color:var(--text);font-size:11px;cursor:pointer;line-height:1.1}:is(.cb-btn,.cb-measure-btn) .cb-ico{display:flex;align-items:center;justify-content:center;height:18px}.ico-svg{display:block}:is(.cb-btn,.cb-measure-btn) .cb-ico .ico-svg{width:18px;height:18px}.mi-ico,.cz-ico{display:inline-flex;align-items:center;justify-content:center;width:18px;margin-right:8px;vertical-align:-3px;color:var(--muted)}.cz-row .cz-ico{flex:0 0 auto}.cb-btn:hover:not(:disabled){background:var(--panel-2);border-color:var(--line)}.cb-btn.on{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.cb-btn:disabled{opacity:.35;cursor:default}.cb-spacer{flex:1}.cb-tool{align-self:center;background:none;border:1px solid var(--line);color:var(--text);font-size:12px;padding:5px 9px;border-radius:6px;cursor:pointer}.cb-tool:hover{border-color:var(--accent)}.cb-collapse{margin-left:6px;padding:5px 8px}.cb-more-wrap{position:relative;align-self:center}.cb-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:51;min-width:260px;max-height:60vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:5px;box-shadow:0 10px 28px #00000073}.cb-more-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;color:var(--text);font-size:13px;padding:6px 8px;border-radius:5px;cursor:pointer}.cb-more-item:hover:not(:disabled){background:var(--accent-2);color:#fff}.cb-more-item:disabled{opacity:.4;cursor:default}.cb-views{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1}.cb-views .view-switcher{display:flex;align-items:center;gap:2px;padding:3px;background:var(--panel-2);border:1px solid var(--line);border-radius:9px}.cb-views .view-switch-btn{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:6px 16px;background:none;border:1px solid transparent;border-radius:6px;color:var(--muted);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}.cb-views .view-switch-btn:hover:not(:disabled){color:var(--text);background:var(--panel);border-color:var(--line)}.cb-views .view-switch-btn[aria-pressed=true]{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.cb-views .view-switch-btn:disabled{opacity:.4;cursor:default}.cb-views .view-switch-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cb-views .view-switch-btn .tool-lock{font-size:11px}.menu-panels-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:54}.menu-panels{position:fixed;left:12px;top:96px;z-index:55}.menu-panels .versions-menu{position:static;right:auto;top:auto;width:300px;box-shadow:0 12px 30px #00000080}.customize-modal .cz-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cz-col{display:flex;flex-direction:column;min-height:0}.cz-col-head{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:6px}.cz-list{border:1px solid var(--line);border-radius:8px;padding:4px;max-height:46vh;overflow-y:auto;background:var(--panel-2)}.cz-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:5px}.cz-row:hover{background:var(--panel)}.cz-group{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);min-width:78px;flex:0 0 auto}.cz-name{flex:1;font-size:13px}.cz-actions{display:flex;gap:3px;flex:0 0 auto}.cz-actions button{background:none;border:1px solid var(--line);color:var(--text);border-radius:5px;cursor:pointer;font-size:12px;padding:3px 7px}.cz-actions button:hover:not(:disabled){border-color:var(--accent)}.cz-actions button:disabled{opacity:.3;cursor:default}.cz-remove:hover{border-color:var(--danger)!important;color:var(--danger)}.cz-add{white-space:nowrap}.cz-empty{color:var(--muted);font-size:12px;padding:10px}.cz-done{background:var(--accent-2);border-color:var(--accent-2)!important;color:#fff}.cz-section+.cz-section{margin-top:6px}.cz-section-head{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);padding:6px 6px 2px;position:sticky;top:0;background:var(--panel-2)}.cz-draggable{cursor:grab}.cz-draggable:active{cursor:grabbing}.cz-draggable.dragging{opacity:.4}.cz-grip{color:var(--muted);font-size:11px;letter-spacing:-2px;flex:0 0 auto;-webkit-user-select:none;user-select:none}.cz-droptarget.dragging{outline:1px dashed var(--accent);outline-offset:-2px}.cz-drop-line{height:0;border-top:2px solid var(--accent);margin:1px 4px;border-radius:2px}.cz-row .cz-remove,.cz-row .cz-add{background:none;border:1px solid var(--line);color:var(--text);border-radius:5px;cursor:pointer;font-size:12px;padding:2px 7px;flex:0 0 auto;margin-left:auto}.cz-row .cz-add:hover{border-color:var(--accent)}.cz-row .cz-remove:hover{border-color:var(--danger);color:var(--danger)}.share-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.share-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:10px;cursor:pointer;text-align:left}.share-opt:hover:not(:disabled){border-color:var(--accent);background:var(--panel)}.share-opt:disabled{opacity:.5;cursor:default}.share-opt-main{font-size:15px;font-weight:600}.share-opt-sub{font-size:12px;color:var(--muted)}.share-opt-perm{grid-column:1 / -1;border-color:var(--accent)}.share-opt-host{grid-column:1 / -1}.share-opt-perm .share-opt-main{color:var(--accent)}.cmd-palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#00000059;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.cmd-palette{width:560px;max-width:92vw;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 48px #00000073;display:flex;flex-direction:column;overflow:hidden}.cmd-palette-input{border:none;outline:none;background:var(--panel-2);color:var(--text);font-size:15px;padding:12px 14px;border-bottom:1px solid var(--line)}.cmd-palette-list{max-height:46vh;overflow-y:auto;padding:6px}.cmd-palette-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;text-align:left;padding:8px 10px;border:none;border-radius:7px;background:none;color:var(--text);cursor:pointer;font-size:13.5px}.cmd-palette-row.sel{background:var(--panel-2)}.cmd-palette-row.disabled{opacity:.45;cursor:default}.cmd-palette-label{font-weight:600}.cmd-palette-flag{color:var(--muted);font-style:normal;font-weight:400;font-size:12px}.cmd-palette-meta{color:var(--muted);font-size:11.5px;white-space:nowrap}.cmd-palette-empty{color:var(--muted);font-size:13px;padding:14px;text-align:center}.cmd-palette-hint{color:var(--muted);font-size:11px;padding:6px 12px 8px;border-top:1px solid var(--line)}.a11y-checks .a11y-group-head{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:6px 0 2px}.a11y-clearance rect,.a11y-clearance polygon{fill:#2ea0431f;stroke:#2ea043bf;stroke-width:1.5;stroke-dasharray:6 4}.a11y-clearance.blocked rect,.a11y-clearance.blocked polygon{fill:#f8514924;stroke:#f85149d9}.a11y-clearance-label{font-size:11px;fill:#2ea043f2;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#00000059;stroke-width:2px}.a11y-clearance.blocked .a11y-clearance-label{fill:#f85149f2}.door-clash polygon{fill:#c98a1b24;stroke:#c98a1b;stroke-width:1;stroke-dasharray:5 4;stroke-linejoin:round}.sc-row .sc-actions{margin-left:auto;display:flex;gap:6px}.sc-edit{font-size:11px;padding:2px 9px;border-radius:5px;border:1px solid var(--border);background:transparent;color:inherit;cursor:pointer}.sc-edit:hover{border-color:#2563eb;color:#60a5fa}.sc-keys.capturing{outline:2px solid #2563eb}.sc-custom{color:#60a5fa;font-style:normal;font-size:11px}.sc-conflict{margin:6px 0;padding:6px 10px;border:1px solid #d1242f;border-radius:6px;color:#ff7b72;font-size:12px}.sc-reset-all,.sc-footer{margin-top:8px}.ps-setup{display:flex;flex-direction:column;gap:10px;min-width:340px}.ps-field{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:8px;font-size:13px}.ps-include{border:1px solid var(--border);border-radius:6px;padding:8px 10px;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.ps-include legend{font-size:12px;padding:0 4px}.ps-check{display:flex;gap:6px;align-items:center;font-size:12.5px}.ps-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.pp-setup{display:flex;flex-direction:column;gap:10px;min-width:360px}.pp-hint{font-size:12px;color:var(--muted, #8a9099);margin:0 0 2px}.pp-include{border:1px solid var(--border);border-radius:6px;padding:8px 10px;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.pp-include legend{font-size:12px;padding:0 4px}.pp-check{display:flex;gap:6px;align-items:center;font-size:12.5px}.pp-empty{grid-column:1 / -1;font-size:12px;color:var(--muted, #8a9099)}.pp-row{display:flex;gap:16px}.pp-field{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;font-size:13px}.pp-field input[type=number]{width:70px}.pp-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.menubar-tracking{opacity:.55;font-size:13px;margin-left:6px;cursor:help;-webkit-user-select:none;user-select:none}.cmp-picker{border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin:4px 0;display:flex;flex-direction:column;gap:6px;font-size:12.5px}.cmp-row{display:flex;gap:6px;align-items:center}.cmp-adhoc select{flex:1;min-width:0}.cmp-remove{border:none;background:transparent;color:inherit;cursor:pointer;opacity:.7}.cmp-actions{display:flex;gap:8px;justify-content:space-between;margin-top:2px}.fixture-price-apply{display:flex;gap:8px;margin:6px 0}.vers-search{width:100%;box-sizing:border-box;margin:6px 0;padding:6px 9px;border-radius:6px;border:1px solid var(--border);background:transparent;color:inherit;font-size:12.5px}.vers-customer{font-style:normal;color:#60a5fa;font-size:11.5px}.ghost-item{fill:none;stroke:currentColor;stroke-width:1;stroke-dasharray:4 4;opacity:.22}.first-steps{position:absolute;right:16px;bottom:16px;z-index:30;background:var(--panel, #1c2128);border:1px solid var(--border);border-radius:10px;padding:10px 14px;width:300px;box-shadow:0 6px 22px #00000059;font-size:12.5px}.fs-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.fs-close{border:none;background:transparent;color:inherit;cursor:pointer;opacity:.7}.fs-step{display:flex;width:100%;gap:8px;justify-content:space-between;align-items:center;padding:8px 4px;border:0;border-radius:4px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.fs-step:focus-visible,.fs-close:focus-visible{outline:2px solid var(--accent, #58a6ff);outline-offset:2px}.fs-status{font-size:11px;opacity:.75;white-space:nowrap}.first-steps.fs-compact{padding:0;bottom:48px;width:220px;max-height:calc(100% - 64px);display:flex;flex-direction:column}.first-steps.fs-compact{z-index:32}.fs-compact .fs-head{margin:0;flex-shrink:0}.fs-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;padding:10px 14px;border:0;border-radius:10px;background:transparent;color:inherit;font:inherit;cursor:pointer}.fs-toggle:focus-visible{outline:2px solid var(--accent, #58a6ff);outline-offset:2px}.fs-compact .fs-steps{overflow-y:auto;min-height:0;padding:0 10px 8px}.fs-compact .fs-step{min-height:44px}.starter-material-links{display:flex;gap:12px;margin-bottom:12px}.fs-check{color:#2ea043;font-weight:800;width:14px}.action-tip{position:absolute;bottom:46px;left:50%;transform:translate(-50%);z-index:28;display:flex;align-items:center;gap:9px;max-width:min(680px,78vw);background:var(--panel, #1c2128);border:1px solid var(--border);border-left:3px solid var(--accent, #2b6fd4);border-radius:20px;padding:7px 10px 7px 12px;box-shadow:0 6px 22px #00000052;font-size:12px;color:var(--text);pointer-events:none}.action-tip-icon{line-height:1}.action-tip-text{line-height:1.35}.action-tip-dismiss{border:none;background:transparent;color:inherit;cursor:pointer;opacity:.65;font-size:13px;line-height:1;padding:2px 4px;pointer-events:auto}.action-tip-dismiss:hover{opacity:1}.action-tip-off{border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-size:10.5px;border-radius:12px;padding:3px 8px;white-space:nowrap;pointer-events:auto}.action-tip-off:hover{color:var(--text);border-color:var(--accent, #2b6fd4)}.compact-workspace .action-tip{top:8px;bottom:auto;left:8px;transform:none;width:calc(100% - 16px);max-width:none;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) 64px;grid-template-rows:44px 44px;gap:0 8px;padding:6px 8px;border-radius:10px}.compact-workspace .action-tip-icon{display:none}.compact-workspace .action-tip-text{grid-column:1;grid-row:1 / 3;min-width:0;max-height:88px;overflow-y:auto;pointer-events:auto}.compact-workspace .action-tip-text:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.compact-workspace .action-tip-dismiss{grid-column:2;grid-row:1;min-height:44px}.compact-workspace .action-tip-off{grid-column:2;grid-row:2;min-height:44px;border-radius:6px}.compact-workspace .stage:has(.fs-toggle[aria-expanded=true]) .action-tip{display:none}.view-controls,.view-controls-content{display:contents}.view-controls-toggle[hidden],.view-controls-content[hidden]{display:none}.compact-workspace .stage[data-view-mode="3d"]{display:flex;flex-direction:column;min-height:0;container-type:size}.compact-workspace .stage[data-view-mode="3d"][hidden]{display:none}.compact-workspace .stage[data-view-mode="3d"] .three-view,.compact-workspace .stage[data-view-mode="3d"] .loading-3d{flex:1;min-height:0;height:auto}.compact-workspace .stage[data-view-mode="3d"] .action-tip{position:static;flex:none;width:auto;margin:8px 8px 0;padding:2px 8px;grid-template-columns:minmax(0,1fr) 44px 64px;grid-template-rows:minmax(44px,auto)}.compact-workspace .stage[data-view-mode="3d"] .action-tip-text{grid-column:1;grid-row:1;max-height:48px}.compact-workspace .stage[data-view-mode="3d"] .action-tip-dismiss{grid-column:2;grid-row:1}.compact-workspace .stage[data-view-mode="3d"] .action-tip-off{grid-column:3;grid-row:1}.view-controls.vc-compact{position:relative;display:flex;flex-direction:column;flex:none;min-height:0;margin:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.vc-compact .view-controls-toggle{display:flex;justify-content:space-between;align-items:center;flex:none;width:100%;min-height:44px;padding:8px 12px;background:transparent;color:var(--text);border:0;text-align:left;cursor:pointer}.vc-compact .view-controls-content:not([hidden]){display:block;position:absolute;z-index:35;top:100%;left:-1px;right:-1px;max-height:min(260px,max(88px,calc(100cqh - 140px)));box-sizing:border-box;overflow:auto;overscroll-behavior:contain;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:0 0 8px 8px}.compact-workspace .stage[data-view-mode="3d"]:has(.view-controls-toggle[aria-expanded=true]) .stage-hint{display:none}.vc-compact .view-switch{position:static;max-width:none}.vc-compact .view-switch button{min-height:44px}.view-controls-toggle:focus-visible,.view-controls-content:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.notes-panel,.demo-widget{z-index:60}.notes-body{display:flex;flex-direction:column;max-height:60vh}.notes-list{overflow-y:auto;min-height:0;padding:8px 10px;display:flex;flex-direction:column;gap:8px}.notes-empty{color:var(--muted);font-size:12px;padding:6px 0}.notes-item{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;padding:6px 8px}.notes-meta{display:flex;align-items:baseline;gap:6px;font-size:11px;color:var(--muted)}.notes-meta strong{color:var(--text);font-weight:600}.notes-actions{margin-left:auto;display:flex;gap:2px}.notes-actions button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:1px 4px;border-radius:4px}.notes-actions button:hover{background:var(--panel);color:var(--text)}.notes-text{font-size:12.5px;white-space:pre-wrap;margin-top:3px}.notes-edit textarea{width:100%;box-sizing:border-box;margin-top:4px;font:inherit;font-size:12.5px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:5px 7px;resize:vertical}.notes-edit-btns{display:flex;gap:6px;margin-top:4px}.notes-edit-btns button{font-size:11.5px;padding:3px 9px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:6px;cursor:pointer}.notes-add{border-top:1px solid var(--line);padding:8px 10px;display:flex;flex-direction:column;gap:6px}.notes-author{font:inherit;font-size:12px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:4px 7px}.notes-add-row{display:flex;gap:6px;align-items:stretch}.notes-add-row textarea{flex:1;font:inherit;font-size:12.5px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:5px 7px;resize:vertical}.notes-add-btns,.demo-note-btns{display:flex;flex-direction:column;gap:4px;justify-content:flex-end}.notes-submit,.demo-note-btns button{font-size:11.5px;padding:4px 9px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:6px;cursor:pointer}.notes-submit:disabled,.demo-note-btns button:disabled{opacity:.5;cursor:default}.notes-rec-hint{color:#e5534b;font-size:10px;margin-left:6px;text-transform:none;letter-spacing:0}.reference-underlay{image-rendering:auto}.underlay-calib-pt circle{fill:#2b6fd440;stroke:var(--accent, #2b6fd4);stroke-width:1.5}.underlay-calib-pt line{stroke:var(--accent, #2b6fd4);stroke-width:1.5}.underlay-body{display:flex;flex-direction:column;gap:10px;padding:10px 12px}.underlay-empty p{color:var(--muted);font-size:12px;margin:0 0 10px;line-height:1.5}.underlay-load,.underlay-replace{font-size:12px;padding:6px 12px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:6px;cursor:pointer}.underlay-replace{align-self:flex-start}.underlay-file{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.underlay-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text)}.underlay-row>span:first-child{min-width:52px;color:var(--muted)}.underlay-row input[type=range]{flex:1}.underlay-val{min-width:34px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.underlay-scale button{flex:1}.underlay-toggles{display:flex;flex-wrap:wrap;gap:6px}.underlay-toggles button,.underlay-scale button{font-size:11.5px;padding:4px 9px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:6px;cursor:pointer}.underlay-toggles button.active,.underlay-scale button.active{border-color:var(--accent, #2b6fd4);color:var(--accent, #2b6fd4)}.underlay-toggles button:disabled,.underlay-scale button:disabled{opacity:.5;cursor:default}.underlay-remove{margin-left:auto}.underlay-hint{font-size:11px;color:var(--muted);line-height:1.45}.voice-note-btn{font-size:13px;padding:3px 8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:6px;cursor:pointer;line-height:1.4}.voice-note-btn.recording{border-color:#e5534b;color:#e5534b;animation:demo-pulse 1.2s ease-in-out infinite}.voice-note-btn:disabled{opacity:.6;cursor:default}.demo-body{padding:10px;display:flex;flex-direction:column;gap:8px}.demo-hint{margin:0;font-size:12px;color:var(--muted);line-height:1.45}.demo-body input,.demo-body textarea{font:inherit;font-size:12.5px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:5px 8px;resize:vertical;width:100%;box-sizing:border-box}.demo-note-row{display:flex;gap:6px;align-items:stretch}.demo-note-row textarea{flex:1}.demo-counts{font-size:12px;color:var(--muted)}.demo-last{font-size:11.5px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:4px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-btns{display:flex;gap:8px}.demo-start{flex:1;font-size:12.5px;font-weight:600;padding:7px 10px;border:1px solid #e5534b;background:#e5534b;color:#fff;border-radius:7px;cursor:pointer}.demo-stop{flex:1;font-size:12.5px;font-weight:600;padding:7px 10px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:7px;cursor:pointer}.demo-discard{font-size:12px;padding:7px 10px;border:1px solid var(--line);background:none;color:var(--muted);border-radius:7px;cursor:pointer}.demo-discard:hover{color:#e5534b;border-color:#e5534b}.demo-dot{color:#e5534b;animation:demo-pulse 1.2s ease-in-out infinite}.demo-elapsed{font-variant-numeric:tabular-nums}@keyframes demo-pulse{0%,to{opacity:1}50%{opacity:.35}}.demo-pause,.demo-resume{flex:1;font-size:12.5px;font-weight:600;padding:7px 10px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:7px;cursor:pointer}.demo-resume{border-color:#2ea043;color:#2ea043}.demo-paused-dot{color:var(--muted)}.demo-paused-hint{font-size:11.5px;color:var(--muted);background:var(--panel-2);border:1px dashed var(--line);border-radius:6px;padding:4px 7px}.or-hard-note{font-size:12px;color:#e5534b;font-weight:600;align-self:center}.sel-pair-note{font-size:11.5px;color:#b34700;margin:4px 0 0}.mods-provider-note{font-size:11.5px;color:var(--muted);margin:6px 0 2px;line-height:1.45}.demo-field{display:flex;flex-direction:column;gap:3px}.demo-field>span{font-size:11px;color:var(--muted)}.commandbar{min-width:0;width:100%;box-sizing:border-box}.commandbar>.cb-group,.cb-more-wrap,.cb-collapse{flex-shrink:0}:is(.cb-btn,.cb-measure-btn){font-family:inherit;white-space:nowrap;min-height:44px}.cb-tool,.cb-expand,.cb-more-item{min-height:44px}.cb-measure{position:absolute;top:0;left:0;visibility:hidden;pointer-events:none;display:flex;width:0;height:0;overflow:hidden;contain:layout}.cb-measure .cb-group{flex-shrink:0}.cb-more-menu{position:fixed;min-width:0;box-sizing:border-box;overflow-x:hidden;overscroll-behavior:contain}.cb-more-item .mi-label{min-width:0;overflow-wrap:anywhere}.cb-more-item .mi-menu{flex-shrink:0;margin-left:6px}.cb-btn:focus-visible,.cb-tool:focus-visible,.cb-expand:focus-visible,.cb-more-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cb-measure .cb-group-label{width:max-content}.room-setup-modal{width:460px;max-width:calc(100vw - 32px)}.room-setup-modal input,.room-setup-modal select{box-sizing:border-box;width:100%;min-height:38px;padding:8px 10px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:6px;font:inherit}.room-setup-modal input:focus-visible,.room-setup-modal select:focus-visible,.room-setup-modal button:focus-visible{outline:2px solid var(--accent, #2b6fd4);outline-offset:2px}.room-setup-modal p{margin:8px 0;color:var(--muted);font-size:13px;line-height:1.5}.room-setup-modal .np-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.room-setup-modal .np-actions button{min-height:38px;padding:8px 14px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--text);cursor:pointer;font:inherit}.room-setup-modal .np-actions .np-create{background:var(--accent, #2b6fd4);border-color:var(--accent, #2b6fd4);color:#fff}
