:root{color-scheme:light;--font-sans: "Fira Sans", system-ui, sans-serif;--font-mono: "Fira Code Variable", ui-monospace, monospace;--r-control: 7px;--r-button: 9px;--r-panel: 12px;--page: #fbfbfa;--surface: #ffffff;--raised: #f4f4f1;--glass: rgba(255, 255, 255, .94);--line: #e2e2dc;--line-strong: #cdcdc6;--ink: #1a1a19;--ink-soft: #6b6b66;--accent: #e67e22;--accent-ink: #b3550b;--accent-soft: rgba(230, 126, 34, .12);--on-accent: #ffffff;--ok: #2f7d32;--warn: #b58900;--danger: #c92a2a;--shadow: 0 6px 20px rgba(26, 26, 25, .1);--plan-bg: #fdfdfc;--grid-minor: #f1f1ed;--grid-major: #e1e1db;--grid-axis: #8a857a;--grid-label: #6b6b66;--wall-fill: #5d636b;--wall-outline: #22262b;--room-fill: rgba(41, 128, 185, .05);--room-fill-selected: rgba(230, 126, 34, .14);--room-label: #2e3338;--lot-fill: rgba(47, 125, 50, .04);--lot-stroke: #2f7d32;--roof-stroke: #9a5b34;--item-fill: #f3f1ec;--item-stroke: #8a857a;--item-label: #3a3f45;--item-fill-selected: rgba(230, 126, 34, .2);--item-stroke-selected: #d9731f;--wall-selected: rgba(230, 126, 34, .4);--item-fill-overlap: rgba(229, 192, 74, .28);--item-stroke-overlap: #b58900;--item-fill-misplaced: #e5dbff;--item-stroke-misplaced: #7048e8;--countertop-fill: rgba(201, 166, 121, .45);--dimension: #0b7285;--constraint: #e03131;--opening-handle: #1c7ed6;--badge-fill: #ffffffe6;--snap-indicator: #d9731f;--wall-preview: rgba(34, 38, 43, .35);--calibration-point: #e5484d;--constraint-notice-bg: #fff5f5;--constraint-notice-text: #a61e1e}:root[data-theme=dark]{color-scheme:dark;--page: #0f1113;--surface: #14161a;--raised: #1a1d22;--glass: rgba(24, 27, 32, .94);--line: #2b2f36;--line-strong: #3a4048;--ink: #e8e8e4;--ink-soft: #9a9a94;--accent: #f0913a;--accent-ink: #f0913a;--accent-soft: rgba(240, 145, 58, .14);--on-accent: #1a1206;--ok: #6cc070;--warn: #e5c04a;--danger: #f2555a;--shadow: 0 6px 20px rgba(0, 0, 0, .4);--plan-bg: #111316;--grid-minor: #171a1e;--grid-major: #23272d;--grid-axis: #5b6470;--grid-label: #9a9a94;--wall-fill: #9aa1a9;--wall-outline: #dfe2e5;--room-fill: rgba(93, 173, 226, .06);--room-fill-selected: rgba(240, 145, 58, .16);--room-label: #d2d5d8;--lot-fill: rgba(108, 192, 112, .04);--lot-stroke: #5fae64;--roof-stroke: #d29a74;--item-fill: #1f2328;--item-stroke: #8b929b;--item-label: #c9cdd2;--item-fill-selected: rgba(240, 145, 58, .22);--item-stroke-selected: #f0913a;--wall-selected: rgba(240, 145, 58, .45);--item-fill-overlap: rgba(229, 192, 74, .18);--item-stroke-overlap: #e5c04a;--item-fill-misplaced: rgba(157, 134, 240, .16);--item-stroke-misplaced: #9d86f0;--countertop-fill: rgba(201, 166, 121, .22);--dimension: #3fc1c9;--constraint: #f2555a;--opening-handle: #5dade2;--badge-fill: rgba(17, 19, 22, .9);--snap-indicator: #f0913a;--wall-preview: rgba(223, 226, 229, .35);--calibration-point: #f2555a;--constraint-notice-bg: #2a1517;--constraint-notice-text: #ffb3b6}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-cyrillic-ext-400-normal-Cycyekte.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-400-normal-Dd5dApAy.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-cyrillic-400-normal-CKu2TFQr.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-400-normal-D9eUeF-O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-greek-ext-400-normal-ByG7UNQ2.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-400-normal-ClCfNE6D.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-greek-400-normal-BFCFncbp.woff2) format("woff2"),url(/assets/fira-sans-greek-400-normal-DQ8sF22y.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-vietnamese-400-normal-ljDTQFsx.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-400-normal-DUVG35gE.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-latin-ext-400-normal-BLG_mAEf.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-400-normal-BCUwhuGB.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-latin-400-normal-a0AnQzuD.woff2) format("woff2"),url(/assets/fira-sans-latin-400-normal-66xCkunx.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-cyrillic-ext-500-normal-Dkk5LlrU.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-500-normal-Cixivk4R.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-cyrillic-500-normal-CXfldnQ8.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-500-normal-Daski1k2.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-greek-ext-500-normal-nq-cjB3m.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-500-normal-Bem4H9fH.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-greek-500-normal-Cy-TUuxE.woff2) format("woff2"),url(/assets/fira-sans-greek-500-normal-C9KT8sAy.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-vietnamese-500-normal-ChEXCnJy.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-500-normal-UV7M6ot_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-latin-ext-500-normal-OO1QnNpY.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-500-normal-CFRf4jcC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-latin-500-normal-Bvbxc8ch.woff2) format("woff2"),url(/assets/fira-sans-latin-500-normal-Bkfzcwmr.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-cyrillic-ext-600-normal-CE6oUZE1.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-600-normal-BKgjRriM.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-cyrillic-600-normal-JSBvCpTs.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-600-normal-CJ5P9t7t.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-greek-ext-600-normal-fS0evUH3.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-600-normal-DPxZoeHL.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-greek-600-normal-BlqpLOpF.woff2) format("woff2"),url(/assets/fira-sans-greek-600-normal-DfHu91YF.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-vietnamese-600-normal-Dh2KAvU8.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-600-normal-Bxjaclsw.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-latin-ext-600-normal-DTQBTt1m.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-600-normal-DLMQsaV4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-latin-600-normal-CXKlxLG9.woff2) format("woff2"),url(/assets/fira-sans-latin-600-normal-DtSgd811.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-cyrillic-ext-700-normal-BfO9TR-w.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-700-normal-Gcpdxicj.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-cyrillic-700-normal-Bl-HczEO.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-700-normal-KyW5QH4H.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-greek-ext-700-normal-C1m6bE4Q.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-700-normal-C8J5qYMq.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-greek-700-normal-BVfcrbV7.woff2) format("woff2"),url(/assets/fira-sans-greek-700-normal-CJu31rC4.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-vietnamese-700-normal-j5oLGLJY.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-700-normal-DFi88MGY.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-latin-ext-700-normal-g2Yrd4J5.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-700-normal-cfTxGFzJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-latin-700-normal-CRhwpWTq.woff2) format("woff2"),url(/assets/fira-sans-latin-700-normal-DgqLm3Fi.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fira-code-cyrillic-ext-wght-normal-DhYMMuQd.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fira-code-cyrillic-wght-normal-Y3u8pIsh.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fira-code-greek-ext-wght-normal-wWus70Ix.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fira-code-greek-wght-normal-B2SviObF.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fira-code-symbols2-wght-normal-CE6EOz_n.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fira-code-latin-ext-wght-normal-Dvfvaomy.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fira-code-latin-wght-normal-CHoedHDv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box}html,body{background:var(--page)}body{margin:0;color:var(--ink);font:13px/1.4 var(--font-sans);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-weight:600}input,select,textarea,button{font:inherit;color:var(--ink)}input,textarea{font-variant-numeric:tabular-nums}button{min-height:28px;padding:2px 10px;border-radius:var(--r-button);border:1px solid var(--line);line-height:1.3;background:var(--surface);color:var(--ink);cursor:pointer}button:hover:not(:disabled){background:var(--raised)}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent-ink)}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select,textarea{height:28px;padding:0 8px;border-radius:var(--r-control);border:1px solid var(--line);background:var(--page);color:var(--ink);outline:none}textarea{height:auto;padding:6px 8px}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}input::placeholder,textarea::placeholder{color:var(--ink-soft)}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--accent)}input[type=color]{border:1px solid var(--line);border-radius:var(--r-control);background:var(--page)}input[type=file]{color:var(--ink-soft)}a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:2px}a:hover{text-decoration-color:var(--ink-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}small{color:var(--ink-soft)}hr{border:0;border-top:1px solid var(--line)}::selection{background:var(--accent-soft)}.btn-primary{background:var(--ink);color:var(--surface);border-color:var(--ink);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--ink);opacity:.88}.btn-quiet{background:transparent;border-color:transparent}.btn-danger{background:transparent;border-color:transparent;color:var(--danger)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 12%,transparent)}.icon-btn{width:30px;height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:var(--r-button);flex:none}.icon-btn svg{display:block}.chip{height:22px;padding:0 9px;border-radius:999px;font-size:11px;border:1px solid var(--line);color:var(--ink-soft);background:transparent;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.chip[aria-pressed=true]{border-color:var(--ink-soft);background:var(--raised);color:var(--ink);box-shadow:none}.segmented{display:inline-flex;padding:2px;gap:2px;background:var(--page);border:1px solid var(--line);border-radius:var(--r-button)}.segmented>button{height:24px;border:0;background:transparent;color:var(--ink-soft);border-radius:7px}.segmented>button:hover:not(:disabled){background:transparent;color:var(--ink)}.segmented>button[aria-pressed=true],.segmented>button[aria-selected=true],.segmented>button[aria-checked=true]{background:var(--raised);box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink);font-weight:600}.field{display:flex;align-items:center;gap:4px;height:28px;padding:0 8px;border:1px solid var(--line);border-radius:var(--r-control);background:var(--page)}.field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.field input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),.field input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):focus{flex:1;min-width:0;height:auto;padding:0;border:0;box-shadow:none;background:transparent;font-family:var(--font-mono)}.field .unit{font:11px var(--font-mono);color:var(--ink-soft)}.section-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.eyebrow{font:500 11px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}kbd{font:11px var(--font-mono);background:var(--raised);border:1px solid var(--line-strong);border-radius:5px;padding:0 5px}input[type=checkbox].switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;width:26px;height:16px;margin:0;flex:none;border-radius:999px;background:var(--line-strong);cursor:pointer;transition:background .12s}input[type=checkbox].switch:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .12s}input[type=checkbox].switch:checked{background:var(--accent)}input[type=checkbox].switch:checked:after{transform:translate(10px)}input[type=checkbox].switch:disabled{opacity:.45;cursor:default}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.projects-page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg, var(--surface))}.projects-bar{display:flex;align-items:center;gap:10px;height:48px;flex:none;padding:0 14px;background:var(--glass);border-bottom:1px solid var(--line);position:relative;z-index:25}.projects-bar-spacer{flex:1}.projects-main{width:100%;max-width:1120px;margin:0 auto;padding:44px 40px;box-sizing:border-box}.projects-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.projects-head h1,.projects-hero h1{margin:0;font-size:24px;font-weight:700}.projects-sub{margin:4px 0 0;font-size:13px;color:var(--ink-soft)}.projects-import{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-control);background:var(--surface)}.projects-file{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.projects-error{margin:0 0 16px;font-size:13px;color:var(--danger)}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@media(max-width:900px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.projects-grid{grid-template-columns:minmax(0,1fr)}.projects-main{padding:28px 16px}}.projects-new{border:1px dashed var(--line-strong);border-radius:12px;padding:22px;display:flex;flex-direction:column;align-items:flex-start;gap:0;box-sizing:border-box}.projects-new-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--raised);color:var(--accent);border-radius:8px;margin-bottom:12px}.projects-new h2{margin:0;font-size:15px;font-weight:600}.projects-card-meta{margin:2px 0 0;font-size:12.5px;color:var(--ink-soft)}.projects-create{width:100%;margin-top:16px;display:flex;flex-direction:column;gap:6px}.projects-create-row{display:flex;gap:8px}.projects-create-row input{flex:1;min-width:0}.projects-create-row>input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),.projects-create-row>button{height:32px;box-sizing:border-box}.project-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);display:flex;flex-direction:column}.project-thumb{height:180px;border-radius:11px 11px 0 0;display:flex;align-items:center;justify-content:center;background:var(--plan-bg);border-bottom:1px solid var(--line);color:var(--ink-soft)}.project-thumb{position:relative;overflow:hidden}.project-preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;padding:8px;box-sizing:border-box}.project-preview[data-loaded=false]{visibility:hidden}.project-thumb:hover,.project-thumb:focus-visible{color:var(--accent)}.project-foot{display:flex;align-items:center;gap:8px;padding:12px 12px 12px 16px}.project-info{flex:1;min-width:0}.project-name{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-info .projects-card-meta{font-size:12px;margin:1px 0 0}.project-foot .icon-btn{width:28px;height:28px}.popover.project-menu{top:calc(100% + 4px);left:auto;right:0;min-width:12rem;padding:4px;gap:0;border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.popover.project-menu>button{display:flex;align-items:center;gap:8px}.popover.project-menu>button.project-menu-danger{color:var(--danger)}.popover.project-menu .popover-divider{margin:4px -4px}.projects-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:6vh;gap:0}.projects-hero .projects-hero-logo{width:56px;height:56px;border-radius:14px;margin-bottom:16px}.projects-hero .projects-sub{margin:6px 0 28px}.projects-hero .projects-create{max-width:420px;margin-top:0;text-align:left}.projects-hero .projects-import{margin-top:14px}.editor{display:flex;flex-direction:column;height:100vh}.editor-message{padding:1rem}.editor-bar{display:flex;align-items:center;gap:10px;height:48px;flex:none;padding:0 14px;background:var(--glass);border-bottom:1px solid var(--line);position:relative;z-index:25}.bar-group{display:flex;align-items:center;gap:8px;min-width:0}.bar-left{flex:1}.bar-centre{flex:none}.bar-right{flex:1;justify-content:flex-end}.bar-logo{width:28px;height:28px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--accent)}.bar-brand{font-weight:600}.bar-divider{width:1px;height:20px;background:var(--line);flex:none}.editor-bar h2{margin:0;font-size:inherit;font-weight:600;min-width:0}.editor-bar .project-title input:not([type=x]){font:inherit;font-weight:600;color:inherit;background:transparent!important;border:1px solid transparent!important;border-radius:6px;padding:2px 6px;height:28px;max-width:100%;box-shadow:none!important}.editor-bar .project-title input:not([type=x]):hover{border-color:var(--line-strong)!important}.editor-bar .project-title input:not([type=x]):focus{border-color:var(--accent)!important}.pill{height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink-soft);font-size:12px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;max-width:280px}.pill .pill-name{color:var(--ink);overflow:hidden;text-overflow:ellipsis}.pill svg{flex:none}.bar-btn{height:28px;padding:0 10px;display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid transparent;border-radius:var(--r-control);color:var(--ink);white-space:nowrap}.bar-btn-bordered{border-color:var(--line-strong);background:var(--surface)}.bar-centre .segmented>button{display:inline-flex;align-items:center;gap:5px;padding:0 10px;font-size:12px}.save-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);white-space:nowrap;margin-right:4px}.save-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);flex:none;box-sizing:border-box}.save-status[data-status=saving] .save-dot{background:transparent;border:1.5px solid var(--ink-soft)}.save-status[data-status=unsaved] .save-dot{background:var(--warn)}.save-status[data-status=error]{color:var(--danger)}.save-status[data-status=error] .save-dot{background:var(--danger)}.popover-wide{width:22rem}.popover-up{top:auto;bottom:calc(100% + 6px);max-height:60vh;overflow-y:auto}.popover-divider{height:1px;background:var(--line);margin:2px -6px}.popover-empty{color:var(--ink-soft);padding:2px 8px}.popover-form{display:flex;gap:6px}.popover-form input{flex:1;min-width:0}.scenario-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.scenario-entry{display:flex;gap:2px;align-items:center;border-radius:var(--r-control)}.scenario-entry:hover,.scenario-entry[data-applied=true]{background:var(--raised)}.scenario-entry input{flex:1;min-width:0}.popover>.scenario-list button,.scenario-entry button{border:0;background:transparent;color:inherit}.scenario-apply{flex:1;min-width:0;display:flex;align-items:center;gap:4px;text-align:left;height:auto!important;min-height:38px;padding:4px 6px!important}.popover .scenario-apply[aria-pressed=true]{background:transparent;box-shadow:none;color:inherit}.scenario-check{width:16px;flex:none;color:var(--accent);display:inline-flex}.scenario-text{min-width:0;display:flex;flex-direction:column;align-items:flex-start}.scenario-text strong{font-weight:500}.scenario-text small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;color:var(--ink-soft)}.scenario-act{height:26px!important;padding:0 8px!important;font-size:11.5px;color:var(--ink-soft)!important}.scenario-act.danger:hover{color:var(--danger)!important}.badge-modified{font-style:italic;color:var(--ink-soft)}.manage-btn{font-size:12px}.scenario-save{display:grid;grid-template-columns:1fr auto;gap:4px 6px;align-items:center;font-size:11.5px;color:var(--ink-soft)}.scenario-save>input{grid-column:1}.scenario-save>button{grid-column:2;grid-row:2}.snapshot-row{display:flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;border-radius:var(--r-control)}.snapshot-row:hover{background:var(--raised)}.snapshot-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snapshot-text strong{font-weight:500}.snapshot-text small{color:var(--ink-soft);font-size:11.5px}.shortcuts-dialog{width:min(30rem,calc(100vw - 32px));padding:14px 18px 16px;outline:none}.shortcuts-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.shortcuts-head h3{margin:0;font-size:16px;font-weight:600}.shortcuts-grid{margin:0;display:flex;flex-direction:column}.shortcuts-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}.shortcuts-row:first-child{border-top:0}.shortcuts-row dt{color:var(--ink-soft)}.shortcuts-row dd{margin:0;text-align:right}.popover-menu{position:relative}.popover{position:absolute;z-index:20;top:100%;left:0;display:flex;flex-direction:column;gap:.4rem;min-width:14rem;padding:6px;background:var(--glass);color:inherit;border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow)}.editor-body{flex:1;display:flex;min-height:0}.editor-left{--left-tabs-h: 56px;width:264px;flex:none;box-sizing:border-box;background:var(--surface);border-right:1px solid var(--line);padding:10px;overflow:auto}.editor-right{flex:1;display:flex;flex-direction:column;min-width:0}.pane{display:flex;flex-direction:column;min-height:0}.pane-body{flex:1;position:relative;min-height:0}.plan-canvas{background:var(--plan-bg);position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:grab;touch-action:none}.splitter{position:relative;height:7px;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);cursor:row-resize;touch-action:none;flex:none}.splitter:after{content:"";position:absolute;left:50%;top:50%;width:36px;height:3px;margin:-1.5px 0 0 -18px;border-radius:2px;background:var(--line-strong)}.splitter:hover:after,.splitter:active:after{background:var(--accent)}.plan-canvas.drawing{cursor:crosshair}.catalogue{display:flex;flex-direction:column;gap:6px}.catalogue-filters{position:sticky;top:calc(var(--left-tabs-h) - 14px);margin-top:-4px;padding-top:4px;z-index:2;display:flex;flex-direction:column;gap:6px;padding-bottom:8px;background:var(--surface);border-bottom:1px solid var(--line)}.catalogue-field{height:30px;color:var(--ink-soft)}.catalogue-field input{font-family:inherit!important;font-size:13px;color:var(--ink)}.catalogue-filter{width:100%;box-sizing:border-box;height:30px}.catalogue-hint{font-size:12px;color:var(--ink-soft);line-height:1.4}.catalogue-upload{width:100%;height:30px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;border:1px dashed var(--line-strong);color:var(--ink-soft)}.catalogue-upload:hover:not(:disabled){color:var(--ink);border-color:var(--ink-soft)}.catalogue-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}.catalogue-entry{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--raised);cursor:grab}.catalogue-entry:hover{border-color:var(--line-strong)}.catalogue-thumb{display:flex;align-items:center;justify-content:center;height:74px;box-sizing:border-box;padding:6px;background:var(--plan-bg);border-bottom:1px solid var(--line)}.catalogue-entry img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;pointer-events:none}.catalogue-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding:6px 8px 0;font-size:12px;font-weight:500;line-height:1.3;overflow-wrap:anywhere}.catalogue-dims{padding:2px 8px 7px;font:10.5px var(--font-mono);color:var(--ink-soft)}.catalogue-category{grid-column:1 / -1;margin:6px 0 0;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.left-tabs-bar{position:sticky;top:-10px;z-index:3;margin:-10px -10px 0;padding:10px;background:var(--surface)}.left-tabs{display:flex;gap:2px;margin:0;padding:3px;background:var(--page);border:1px solid var(--line);border-radius:9px}.catalogue-filters:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:12px;background:var(--surface)}.tree-row{scroll-margin-top:var(--left-tabs-h)}.left-tabs [role=tab]{flex:1;height:26px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--ink-soft);font-size:12px;padding:0 6px;cursor:pointer}.left-tabs [role=tab]:hover:not([aria-selected=true]){background:transparent;color:var(--ink)}.left-tabs [role=tab][aria-selected=true]{background:var(--raised);border-color:var(--line-strong);color:var(--ink);font-weight:600}.structure-tree{font-size:13px;padding-bottom:.5rem}.tree-row{display:flex;align-items:center;gap:4px;height:28px;box-sizing:border-box;padding-right:6px;border-radius:7px;cursor:pointer;white-space:nowrap;overflow:hidden}.tree-row:hover{background:var(--raised)}.tree-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tree-row[aria-selected=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.tree-row.tree-missing{color:var(--ink-soft);font-style:italic}.tree-row.tree-heading{flex:1}.tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:none;color:var(--ink-soft)}.tree-toggle[data-state=closed] svg{transform:rotate(-90deg)}.tree-icon{display:inline-flex;flex:none;color:var(--ink-soft)}.tree-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.tree-suffix{margin-left:auto;flex:0 1000 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font:11px var(--font-sans, inherit);color:var(--ink-soft);padding-left:6px}.tree-heading-row{display:flex;align-items:center;margin-top:6px}.tree-add{width:22px;height:22px;color:var(--ink-soft)}.tree-add:hover{color:var(--ink);background:var(--raised)}.view3d-drop{position:absolute;top:0;right:0;bottom:0;left:0}.catalogue-no-thumb{display:inline-flex;color:var(--ink-soft)}.upload-dialog{position:fixed;z-index:40;top:50%;left:50%;transform:translate(-50%,-50%);width:min(22rem,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;box-sizing:border-box;padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px;background:var(--glass);border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.upload-dialog>strong{font-size:16px;font-weight:600}.upload-dialog label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-soft)}.upload-dialog input:not([type=file]),.upload-dialog select{height:28px;box-sizing:border-box;font-size:13px;color:var(--ink)}.upload-dialog [role=alert]{margin:0;color:var(--danger);font-size:12px}.context-menu{position:fixed;z-index:20;display:flex;flex-direction:column;min-width:12rem;padding:4px;background:var(--glass);color:inherit;border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow)}.context-menu button,.popover>button{text-align:left;border:0;background:transparent;height:30px;padding:0 10px;border-radius:var(--r-control);cursor:pointer;color:inherit}.context-menu button:hover:not(:disabled),.popover>button:hover:not(:disabled){background:var(--raised)}.cutaway-toggle{position:absolute;left:12px;bottom:12px;height:28px;padding:0 11px;border-radius:999px;font-size:12px;display:flex;gap:7px;align-items:center;cursor:pointer}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#00000073}.modal{max-width:28rem;padding:1rem 1.25rem;background:var(--glass);color:inherit;border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow)}.merge-choice{display:flex;flex-direction:column;gap:.25rem;margin:.5rem 0 0}.modal-actions{display:flex;flex-direction:column;gap:.4rem;margin-top:.75rem}.perf-overlay{position:absolute;right:12px;top:56px;margin:0;padding:6px 10px;font:11px var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;pointer-events:none}.perf-overlay div{display:flex;justify-content:space-between;gap:12px}.perf-overlay dt,.perf-overlay dd{margin:0}.project-links,.lot-points{list-style:none;padding:0;margin:.25rem 0;display:flex;flex-wrap:wrap;gap:.25rem}.export-popover{width:auto;min-width:12rem}.export-actions{display:flex;gap:.4rem;justify-content:flex-end;margin-top:.5rem}.settings-popover{min-width:15rem;padding:10px;gap:10px}.settings-row{display:flex;flex-direction:column;gap:4px}.settings-row .segmented>button{flex:1}.overlap-warning{color:var(--warn);font-weight:600}.plan-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none}.plan-overlay>*{pointer-events:none}.plan-overlay .glass,.plan-overlay .pill,.plan-overlay .plan-corner>*,.plan-overlay .tool-palette,.plan-overlay .popover{pointer-events:auto}.plan-corner{position:absolute;top:12px;display:flex;align-items:center;gap:6px}.plan-corner-start{left:12px}.plan-corner-end{right:12px;padding:2px;gap:2px}.pill{height:30px;min-height:30px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;border-radius:999px;font-size:12px;color:var(--ink);white-space:nowrap;position:relative}.pill:hover:not(:disabled){background:var(--glass);border-color:var(--line-strong)}.pill[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 14%,var(--surface));border-color:var(--accent);box-shadow:var(--shadow)}.pill-select{padding:0}.pill-select select{-moz-appearance:none;appearance:none;-webkit-appearance:none;height:28px;border:0;background:transparent;box-shadow:none;border-radius:999px;padding:0 28px 0 30px;font-size:12px;cursor:pointer}.pill-icon{position:absolute;top:0;bottom:0;display:flex;align-items:center;color:var(--ink-soft);pointer-events:none!important}.pill-icon-start{left:11px}.pill-icon-end{right:9px}.tool-palette{position:absolute;top:54px;left:12px;padding:4px;display:flex;flex-direction:column;gap:2px;max-height:calc(100% - 66px);overflow-y:auto;scrollbar-width:thin}.tool-btn{width:32px;height:32px;border-radius:8px;color:var(--ink-soft)}.tool-btn:hover:not(:disabled){color:var(--ink)}.tool-btn[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent-ink)}.tool-btn{position:relative;flex:none}.tool-first:not(:first-child){margin-top:5px}.tool-first:not(:first-child):before{content:"";position:absolute;left:4px;right:4px;top:-4px;height:1px;background:var(--line)}.plan-bottom{position:absolute;left:12px;right:12px;bottom:12px;display:flex;align-items:center;gap:8px}.plan-warnings{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:45%;pointer-events:none}.plan-warnings>*{pointer-events:auto}.plan-options{flex:1 1 0;min-width:0;display:flex;justify-content:center;pointer-events:none}.plan-options>*{pointer-events:auto}.plan-overlay{container-type:size}@container (max-height: 551px){.tool-palette{display:grid;grid-template-columns:repeat(2,32px);max-height:calc(100% - 66px)}.tool-first{grid-column:1;margin-top:3px}.tool-first:first-child,.tool-first:not(:first-child){margin-top:3px}.tool-first:first-child{margin-top:0}.tool-first:not(:first-child):before{display:none}.plan-warnings{margin-left:76px}}.warn-chip{height:28px;border-radius:999px;font-size:12px;color:var(--ink);max-width:100%}.warn-chip button{height:26px;min-height:0;padding:0 11px;border:0;background:transparent;border-radius:999px;display:inline-flex;align-items:center;gap:6px;max-width:100%}.warn-chip button:hover:not(:disabled){background:var(--raised)}.warn-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warn-chip svg{flex:none}.warn-chip-overlap{border-color:var(--warn)}.warn-chip-overlap svg{color:var(--warn)}.warn-chip-misplaced{border-color:var(--item-stroke-misplaced)}.warn-chip-misplaced svg{color:var(--item-stroke-misplaced)}.tool-options{height:38px;padding:0 8px 0 12px;max-width:min(760px,calc(100% - 128px));min-width:0;display:flex;align-items:center;gap:12px;font-size:12px}.plan-warnings+.plan-options .tool-options{max-width:100%}.tool-options .eyebrow{flex:none;white-space:nowrap}.tool-options .tool-hint{flex:1 1 auto;min-width:0;margin:0;font-size:12px;line-height:1.4;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-options .tool-hint small{font-size:12px}.tool-options .tool-hint small+small:before{content:"·";margin:0 .5em}.tool-options>:not(.eyebrow):not(.tool-hint){flex:none}.tool-options button,.tool-options select{min-height:0;height:26px;padding-block:0;font-size:12px}.tool-options .typed-input{display:inline-flex;align-items:center;gap:12px}.panel-field{display:inline-flex;align-items:center;gap:6px;color:var(--ink-soft);font-size:12px;flex:none}.panel-field .field{height:26px;width:84px;color:var(--ink)}.panel-field .field input{width:100%;font-size:12px}.panel-field select{color:var(--ink)}.constraint-types{display:inline-flex;gap:4px}.type-chip{padding:0 8px;border-radius:8px}.constraint-message{color:var(--constraint)}.constraint-notice{position:absolute;left:50%;top:12px;transform:translate(-50%);display:flex;align-items:center;gap:8px;width:max-content;max-width:min(560px,calc(100% - 520px));min-width:200px;padding:6px 12px 6px 8px;border-color:var(--constraint);font-size:12px;color:var(--ink);pointer-events:none!important}.notice-badge{flex:none;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--constraint);background:color-mix(in srgb,var(--constraint) 14%,transparent)}.walk-hint{position:absolute;width:max-content;left:0;top:38px;max-width:min(34rem,calc(100cqw - 24px));padding:6px 10px;height:auto;font-size:12px;line-height:1.35;color:var(--ink-soft);border-radius:var(--r-control)}.view3d-controls{gap:6px;padding:2px 2px 2px 10px;height:34px}.roof-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;cursor:pointer;color:var(--ink)}.roof-toggle svg{color:var(--ink-soft)}.view3d-controls .night-toggle,.view3d-controls .night-toggle[aria-pressed=true]{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 8px;border:0;background:transparent;box-shadow:none;font-size:12px;color:var(--ink);cursor:pointer}.night-toggle svg{color:var(--ink-soft)}.night-toggle .switch-visual{position:relative;width:26px;height:16px;flex:none;border-radius:999px;background:var(--line-strong);transition:background .12s}.night-toggle .switch-visual:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .12s}.night-toggle[aria-pressed=true] .switch-visual{background:var(--accent)}.night-toggle[aria-pressed=true] .switch-visual:after{transform:translate(10px)}.night-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:7px}.bar-divider{width:1px;height:18px;background:var(--line)}.view3d-controls .popover-menu>button{height:30px;min-height:0;border:0;background:transparent;box-shadow:none;display:inline-flex;align-items:center;gap:6px;padding:0 8px;border-radius:var(--r-control);font:11.5px var(--font-mono);color:var(--ink);white-space:nowrap}.view3d-controls .popover-menu>button:hover{background:var(--raised)}.view3d-controls .popover-menu>button svg{color:var(--accent)}.view3d-controls .icon-btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink)}.view3d-controls .popover{left:auto;right:0;top:calc(100% + 6px);min-width:17rem;padding:10px;gap:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sun-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sun-fields label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--ink-soft)}.sun-fields input{font:12px var(--font-mono);height:28px;min-width:0}.sun-time{display:flex;align-items:stretch;gap:4px}.sun-time input{flex:1}.sun-time-toggle{flex:none;width:28px;min-height:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-soft)}.sun-time-toggle[aria-expanded=true]{color:var(--accent-ink);border-color:var(--accent)}.time-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px;border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);padding:4px}.time-picker-column{display:flex;flex-direction:column;gap:1px;max-height:168px;overflow-y:auto;scrollbar-width:thin}.time-picker-column button{flex:none;min-height:26px;height:26px;border:0;background:transparent;box-shadow:none;font:12px var(--font-mono);color:var(--ink);border-radius:6px;cursor:pointer}.time-picker-column button:hover{background:var(--raised)}.time-picker-column button[aria-selected=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent-ink)}.sun-fields input[aria-invalid=true]{border-color:var(--danger)}.sun-actions{display:flex;justify-content:flex-end}.sun-popover{overflow-y:auto;scrollbar-width:thin}.sun-readout{white-space:nowrap;font:11px var(--font-mono);color:var(--ink-soft)}.sun-location{font-size:11px;color:var(--ink-soft)}.sun-location output{font-family:var(--font-mono)}.view3d-controls .popover>button.sun-link{height:24px;padding:0;font-size:11px;color:var(--ink-soft);text-decoration:underline;background:transparent}.view3d-controls .popover>button.sun-link:hover:not(:disabled){background:transparent;color:var(--accent)}.editor-inspector{width:296px;flex:none;box-sizing:border-box;background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.inspector{flex:1;display:flex;flex-direction:column;min-height:0;font-size:13px}.insp-header{flex:none;padding:14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.insp-kindrow{display:flex;align-items:center;flex-wrap:wrap;column-gap:8px;row-gap:2px;min-height:26px;padding-right:32px;position:relative}.eyebrow.opening{color:var(--opening-handle)}.insp-crumbs{font-size:12px;color:var(--ink-soft)}.insp-crumbs button{border:0;background:none;padding:0;min-height:0;color:var(--ink-soft);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:2px;border-radius:3px}.insp-crumbs button:hover:not(:disabled){background:none;color:var(--ink)}.insp-close{position:absolute;right:0;top:0;width:26px;height:26px;color:var(--ink-soft)}.insp-close:hover:not(:disabled){background:var(--raised);color:var(--ink)}.insp-title{font-size:16px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}.insp-title-mono{font:600 15px var(--font-mono)}.insp-summary{font:11px var(--font-mono);color:var(--ink-soft)}.insp-body{flex:1;overflow:auto;display:flex;flex-direction:column;min-height:0}.insp-panel{flex:1 0 auto;display:flex;flex-direction:column}.insp-note{margin:0;padding:12px 14px 0;font-size:12px;color:var(--ink-soft)}.insp-section{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.insp-section>.section-label{margin:0;font-weight:500}.insp-section p{margin:0}.insp-fact{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.insp-fact>:first-child:not(output){color:var(--ink-soft)}.insp-fact output,.insp-fact [data-testid]{font-family:var(--font-mono);font-size:12.5px}.row-group{display:flex;flex-direction:column;gap:3px}.row{display:flex;align-items:center;gap:8px;min-height:28px}.row-label{flex:1;min-width:0;font-size:12.5px;color:var(--ink-soft)}.row .field{width:124px;flex:none}.row .field input{font-size:12.5px}.row>select{width:164px;flex:none;box-sizing:border-box}.row>input[type=number]{width:124px;flex:none;box-sizing:border-box}.row>input[type=color]{width:44px;height:28px;padding:2px;flex:none}.row.stacked{flex-direction:column;align-items:stretch;gap:4px}.row.stacked>input,.row.stacked>select{width:100%;box-sizing:border-box}.row-help{font-size:11px;line-height:1.35;color:var(--ink-soft)}.insp-section label.check{display:flex;align-items:center;gap:8px;font-size:12.5px}.insp-dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12.5px}.insp-dl dt{color:var(--ink-soft)}.insp-dl dd{margin:0;text-align:right}.insp-section .related-links,.insp-section .project-links,.insp-section .lot-points{margin:0}.insp-section details summary{cursor:pointer;font-size:12.5px;color:var(--ink-soft)}.insp-section details[open] summary{margin-bottom:8px}.insp-section details>.row-group{margin-bottom:8px}.insp-footer{margin-top:auto;position:sticky;bottom:0;display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:var(--surface)}.insp-footer>button{flex:1;min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.insp-footer>.insp-delete:not(.wide){flex:none;width:34px;padding:0;border-color:var(--line)}.insp-footer>.insp-delete.wide{border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.constraint-row{display:flex;align-items:center;gap:10px}.constraint-badge{flex:none;min-width:20px;height:20px;box-sizing:border-box;padding:0 3px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--constraint);border-radius:5px;color:var(--constraint);font:600 11px var(--font-mono)}.constraint-desc{flex:1;font-weight:500}.constraint-value{font:12.5px var(--font-mono)}fieldset.item-fields{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.grid-field{padding:0 7px;gap:5px}.grid-field .prefix{font:11px var(--font-mono);color:var(--ink-soft);flex:none}.grid-field input{font-size:12.5px}.insp-group{display:flex;flex-direction:column;gap:8px;min-width:0}.insp-group>.section-label{margin:0;font-weight:500}.material-picker{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:8px}.material-picker legend{padding:0;margin-bottom:8px;font-size:12.5px;color:var(--ink-soft);float:left;width:100%}.material-picker legend+*{clear:both}.material-picker+.material-picker{margin-top:4px;padding-top:12px;border-top:1px solid var(--line)}.material-current{display:flex;align-items:center;gap:8px}.material-current output{flex:1;min-width:0;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-current input[type=color]{width:28px;height:28px;padding:2px;flex:none;cursor:pointer}.material-swatch{width:28px;height:28px;flex:none;border-radius:7px;border:1px solid var(--line-strong);background-size:cover;background-position:center}.material-modes{align-self:stretch}.material-modes>button{flex:1;font-size:12px}.material-library{display:flex;flex-direction:column;gap:8px}.texture-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;max-height:240px;overflow-y:auto}.texture-grid li{aspect-ratio:1}.texture-grid button{width:100%;height:100%;min-height:0;padding:0;border:0;border-radius:7px;background:none;line-height:0;overflow:hidden}.texture-grid button[aria-pressed=true]{background:none;box-shadow:0 0 0 2px var(--accent);color:inherit}.texture-grid img{width:100%;height:100%;object-fit:cover;display:block}.texture-uploads{display:flex;flex-direction:column;gap:8px}.texture-uploads .section-label{margin:0;font-weight:500}.texture-upload{display:flex;align-items:center;justify-content:center;gap:6px;height:32px;border:1px dashed var(--line-strong);border-radius:var(--r-button);color:var(--ink-soft);cursor:pointer}.texture-upload:hover,.texture-upload:focus-within{color:var(--ink);background:var(--raised)}.texture-uploads [role=alert]{margin:0;color:var(--danger);font-size:12px}.material-reset{align-self:flex-start;color:var(--ink-soft);padding-left:0}.seg-radios{display:flex;padding:2px;gap:2px;background:var(--page);border:1px solid var(--line);border-radius:var(--r-button)}.seg-radio{flex:1;position:relative;display:flex}.seg-radio input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.seg-radio span{flex:1;height:24px;display:flex;align-items:center;justify-content:center;border-radius:7px;font-size:12px;color:var(--ink-soft);white-space:nowrap}.seg-radio input:checked+span{background:var(--raised);box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink);font-weight:600}.seg-radio input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}.variant-row{display:flex;gap:6px;align-items:center}.variant-row select{flex:1;min-width:0}.variant-add{border:1px solid var(--line);background:var(--surface)}.variant-add:hover{background:var(--raised)}.variant-delete{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding-left:0;color:var(--ink-soft)}.insp-section>.insp-group+.insp-group{margin-top:6px;padding-top:12px;border-top:1px solid var(--line)}.field.field-stepper{padding:0 2px}.field.field-stepper input{text-align:center;padding:0 2px}.stepper-btn{flex:none;width:22px;min-height:22px;height:22px;padding:0;border:0;background:transparent;box-shadow:none;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-soft);border-radius:5px;cursor:pointer}.stepper-btn:hover:not(:disabled){background:var(--raised);color:var(--ink)}.stepper-btn:disabled{opacity:.35;cursor:default}.stepper-up svg{transform:rotate(180deg)}
