:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;text-size-adjust:100%;-webkit-text-size-adjust:100%;--app-height:100dvh;--app-top:0px}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{position:fixed;left:0;right:0;top:var(--app-top);height:var(--app-height);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;background:var(--bg);color:var(--text);--bg:#e8eef0;--text:#172a32;--panel:#f7fafb;--panel2:#fff;--line:#cbd8dd;--muted:#61757d;--accent:#087d8b;--accentSoft:#d8f0f3;--danger:#b64242;--float:#f8fbfbf3;--label:#f7fafaf2;--labelText:#18272e;color-scheme:light}.app.dark{--bg:#10191e;--text:#ecf4f6;--panel:#17242b;--panel2:#203139;--line:#344951;--muted:#a8bbc3;--accent:#45c0ce;--accentSoft:#19393f;--danger:#ff7878;--float:#16242af4;--label:#17242aee;--labelText:#eef8ff;color-scheme:dark}.topbar{display:flex;align-items:center;gap:10px;min-height:48px;padding:4px 12px;padding-top:calc(4px + env(safe-area-inset-top,0px));background:var(--panel);border-bottom:1px solid var(--line);z-index:40}.brand{font-size:16px;font-weight:800;white-space:nowrap}.brand span{font-size:10px;color:var(--muted);margin-left:7px}.focusTitle{min-width:0;margin-left:auto;text-align:right}.focusTitle b,.focusTitle span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.focusTitle b{font-size:12px}.focusTitle span{font-size:9px;color:var(--muted);margin-top:2px}.editor{position:relative;min-height:0;min-width:0;overflow:hidden;isolation:isolate;--sheet-height:min(44%,360px)}.scenePanel{position:absolute;inset:0;min-width:0;min-height:0;overflow:hidden;touch-action:none}.scenePanel canvas{touch-action:none;display:block}.editor.panelOpen .scenePanel{bottom:var(--sheet-height)}.sceneMode{position:absolute;top:8px;left:8px;z-index:10;display:flex;align-items:center;gap:7px;max-width:calc(100% - 16px);background:var(--float);border:1px solid var(--line);border-radius:10px;padding:6px 9px;color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sceneMode span{font-size:11px;font-weight:850;color:var(--accent)}.sceneMode small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.backScene{position:absolute;top:8px;left:8px;z-index:11;display:flex;align-items:center;gap:4px;min-height:38px;border:1px solid var(--line);border-radius:10px;background:var(--float);color:var(--text);padding:0 10px}.selectionHud{position:absolute;left:8px;right:8px;bottom:8px;z-index:12;border:1px solid var(--accent);border-radius:14px;background:var(--float);padding:8px;display:flex;align-items:center;gap:8px;min-height:62px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 28px #0002}.selectionInfo{flex:1;min-width:0}.selectionInfo b,.selectionInfo span{display:block}.selectionInfo b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selectionInfo span{font-size:10px;color:var(--muted);margin-top:4px}.hudActions{display:flex;gap:6px}.hudActions button{width:44px;height:44px;padding:0;border-radius:11px;border:1px solid var(--line);background:var(--panel2);color:var(--text);display:grid;place-items:center}.hudActions button:active{transform:scale(.97)}.hudActions .danger{color:var(--danger)}.sceneHint{position:absolute;left:10px;right:10px;bottom:8px;z-index:8;font-size:10px;color:var(--muted);background:var(--float);border:1px solid var(--line);border-radius:9px;padding:7px 9px;pointer-events:none}.bottomNav{position:relative;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;min-height:62px;padding:4px 6px;padding-bottom:calc(4px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line)}.bottomNav button{min-height:50px;border:0;background:transparent;color:var(--muted);font-size:9px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.bottomNav button span{line-height:1}.bottomNav button.active{background:var(--accentSoft);color:var(--accent);font-weight:750}.focusNav{grid-template-columns:repeat(3,1fr)}.inspector{position:absolute;left:0;right:0;bottom:0;height:var(--sheet-height);z-index:20;display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--panel);border-top:1px solid var(--line);border-radius:16px 16px 0 0;transform:translateY(105%);transition:transform .16s ease;box-shadow:0 -14px 35px #0002}.editor.panelOpen .inspector{transform:none}.inspectorHead{display:flex;align-items:center;gap:8px;min-height:44px;flex:0 0 auto;padding:5px 10px;border-bottom:1px solid var(--line)}.inspectorHead b{flex:1;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inspectorHead button{width:38px;height:34px;border:0;border-radius:9px;background:var(--panel2);color:var(--text);display:grid;place-items:center}.inspectorBody{min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;padding:9px 10px 20px}.inspectorBody section{margin:0 0 14px}.inspectorBody h3{margin:2px 0 7px;font-size:11px;font-weight:800;color:var(--muted)}.compactGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.numberField,.field{display:block;font-size:10px;min-width:0;color:var(--muted)}.numberField input,.field input,.field select{display:block;width:100%;height:38px;margin-top:3px;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);font-size:13px;min-width:0}.numberField input[aria-invalid=true]{border-color:#e46e6e}.numberField small{display:block;font-size:9px;color:#d85757}.field input[type=color]{padding:3px}.field select{font-size:11px}.segmented,.actionRow{display:flex;flex-wrap:wrap;gap:6px}.segmented button,.focusBtn,.actionRow button{min-height:38px;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);font-size:11px}.segmented .active{background:var(--accent);color:var(--bg)}.focusBtn{width:100%;min-height:42px;font-weight:750}.note,.empty{font-size:11px;color:var(--muted);line-height:1.45}.catalogGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catalogGrid button{min-height:116px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--text);text-align:left;padding:9px;display:flex;flex-direction:column;align-items:flex-start}.catalogGrid button:active{transform:scale(.985)}.catalogGlyph{display:grid;place-items:center;width:50px;height:50px;border-radius:11px;background:var(--accentSoft);color:var(--accent);margin-bottom:7px}.catalogGrid b{font-size:11px;line-height:1.2}.catalogGrid small{font-size:9px;color:var(--muted);margin-top:4px}.projectStats,.moduleDimensions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.projectStats div,.moduleDimensions div{border:1px solid var(--line);background:var(--panel2);border-radius:10px;padding:8px;text-align:center}.projectStats b,.moduleDimensions b{display:block;font-size:17px}.projectStats span,.moduleDimensions span{font-size:9px;color:var(--muted)}.moduleDimensions{margin-bottom:9px}.moduleDimensions b{font-size:15px}.exportGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.exportGrid button{min-height:58px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;font-weight:750}.exportGrid .primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.exportGrid .wide{grid-column:1/-1}.settingsList{display:grid;gap:6px}.settingsList button{min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);display:flex;align-items:center;padding:0 10px}.settingsList button span{flex:1;text-align:left;font-size:11px}.settingsList button b{font-size:11px;color:var(--accent)}.rangeRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;font-size:11px;margin:6px 0}.rangeRow input{width:100%;min-width:0;accent-color:var(--accent)}.rangeRow output{min-width:48px;white-space:nowrap}.partList{display:grid;gap:5px}.partList button{display:flex;align-items:center;gap:9px;min-height:44px;text-align:left;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);font-size:11px}.partList button.active{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}.partList small{display:block;font-size:9px;color:var(--muted);margin-top:2px}.partNumber{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--accent);color:var(--bg);font-weight:850;flex:0 0 auto}.partName{flex:1;min-width:0}.warning{font-size:10px;color:var(--text);border-left:3px solid #de9e4f;background:var(--panel2);padding:7px;border-radius:4px;margin:5px 0}.dimLabel{white-space:nowrap;padding:3px 7px;border-radius:7px;background:var(--label);color:var(--labelText);font-size:11px;font-weight:700;border:1px solid var(--line);box-shadow:0 2px 7px #0002}.partBadge{width:24px;height:24px;border:1px solid #ffffffaa;border-radius:50%;background:#6d4bd3e8;color:#fff;font-size:10px;font-weight:850;padding:0;box-shadow:0 2px 5px #0005}.partBadge.active{background:#24aabd;transform:scale(1.12)}@media(min-width:900px){.editor{--sheet-width:350px}.editor.panelOpen .scenePanel{bottom:0;right:var(--sheet-width)}.inspector{left:auto;top:0;width:var(--sheet-width);height:100%;border-top:0;border-left:1px solid var(--line);border-radius:0}.editor.panelOpen .inspector{transform:none}.bottomNav{display:flex;justify-content:center;min-height:54px}.bottomNav button{min-width:125px}.selectionHud{right:auto;width:min(570px,calc(100% - 16px))}.catalogGrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:430px){.compactGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor{--sheet-height:min(46%,350px)}.catalogGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand{font-size:15px}.selectionHud{padding:7px}.hudActions button{width:42px;height:42px}}@media(max-height:520px)and (min-width:600px){.editor.panelOpen .scenePanel{bottom:0;right:320px}.inspector{left:auto;top:0;width:320px;height:100%;border-radius:0}.topbar{min-height:42px}.bottomNav{min-height:46px;padding:0 6px}.bottomNav button{min-height:42px}}.topbarTools{margin-left:auto;display:flex;align-items:center;gap:6px;min-width:0}.focusTitle+.topbarTools{margin-left:0}.saveIndicator{display:flex;align-items:center;justify-content:center;gap:5px;min-width:78px;font-size:9px;font-weight:700;color:var(--muted);white-space:nowrap}.saveDot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}.saveIndicator.saved{color:#42a978}.saveIndicator.saving{color:#d6a24b}.saveIndicator.error{color:var(--danger)}.saveIndicator.saving .saveDot{animation:savePulse .8s ease-in-out infinite alternate}.historyControls{display:flex;gap:4px}.historyControls button{width:34px;height:34px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text)}.historyControls button:disabled{cursor:default;opacity:.35}.hiddenFileInput{position:fixed;left:-10000px;width:1px;height:1px;opacity:0}.importNotice{font-size:10px;line-height:1.4;margin:8px 0 0;padding:8px 9px;border-radius:8px;border:1px solid var(--line);background:var(--panel2)}.importNotice.success{border-color:#42a978;color:#42a978}.importNotice.error{border-color:var(--danger);color:var(--danger)}@keyframes savePulse{to{opacity:.3}}@media(max-width:430px){.focusTitle+.topbarTools .saveIndicator{min-width:auto}.focusTitle+.topbarTools .saveText{display:none}.topbarTools{gap:4px}.historyControls{gap:3px}.historyControls button{width:32px;height:32px}}.decorPicker{margin:10px 0;padding:8px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel2) 72%,transparent);overflow:hidden}.decorPickerHead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:10px;color:var(--muted)}.decorPickerHead strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:9px;color:var(--text)}.decorSwatches{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;padding:1px 1px 5px;scroll-snap-type:x proximity;scrollbar-width:thin;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.decorSwatches button{flex:0 0 74px;min-width:74px;padding:4px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);text-align:left;scroll-snap-align:start}.decorSwatches button.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.decorSample{display:block;height:28px;border-radius:6px;border:1px solid #ffffff30;background-size:18px 18px}.decorSwatches button[data-pattern=wood] .decorSample{background-image:repeating-linear-gradient(87deg,transparent 0 5px,#28170e22 6px,#fff4d818 7px,transparent 9px)}.decorSwatches button[data-pattern=stone] .decorSample{background-image:linear-gradient(132deg,transparent 0 38%,#ffffff55 39%,transparent 41%),linear-gradient(18deg,transparent 0 64%,#4a4a4a2e 65%,transparent 67%)}.decorSwatches button[data-pattern=speckle] .decorSample{background-image:radial-gradient(#ffffff55 .7px,transparent .8px),radial-gradient(#17202644 .7px,transparent .8px);background-position:0 0,7px 8px;background-size:11px 11px}.decorSwatches small{display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:8px;color:var(--muted)}.decorTint{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:3px;font-size:9px;color:var(--muted)}.decorTintControl{display:grid;grid-template-columns:38px 58px 30px;align-items:center;gap:4px}.decorTintControl input{width:38px;height:28px;margin:0;padding:2px;border:1px solid var(--line);border-radius:7px;background:var(--panel2)}.decorTintControl code{font-size:9px;color:var(--text);font-variant-numeric:tabular-nums}.decorTintControl button{width:30px;height:28px;padding:0;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--text)}.decorTintControl button:disabled{opacity:.35;cursor:default}.materialHelp{margin:5px 1px 10px}.finishSelector{margin-bottom:5px}.finishSelector button{flex:1}.finishSelector button:last-child{position:relative;overflow:hidden}.finishSelector button:last-child:after{content:"";position:absolute;inset:-20% auto -20% -35%;width:24%;transform:skew(-18deg);background:#ffffff45}.app.dark .finishSelector button.active:last-child:after{background:#fff5}.doorOverridesDisclosure{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.doorOverridesDisclosure summary{cursor:pointer;font-size:10px;font-weight:800;color:var(--text);list-style-position:inside}.doorOverridesDisclosure summary span{display:block;margin:3px 0 0 15px;font-size:9px;font-weight:400;color:var(--muted)}.doorOverridesHelp{margin:7px 0}.doorOverridesDisclosure:not([open]){padding-bottom:2px}.catalogSearch{position:sticky;top:-7px;z-index:2;display:block;margin:-1px 0 9px;padding:7px;background:var(--panel);font-size:9px;color:var(--muted)}.catalogSearch span{display:block;margin-bottom:4px}.catalogSearch input{width:100%;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text)}.catalogApplianceNote{margin:8px 1px 0;padding:7px 8px;border-left:3px solid #de9e4f;background:var(--panel2);border-radius:5px}.costPresetSelector button{position:relative}.costPresetSelector button.active:after{content:"✓";margin-left:5px;font-weight:900}.costPresetNote{margin:6px 1px 10px}.costStockDetails{margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.costStockDetails summary{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:10px;font-weight:800}.costStockDetails summary span{margin-left:auto;display:grid;place-items:center;min-width:22px;height:20px;padding:0 5px;border-radius:999px;background:var(--accentSoft);color:var(--accent)}.costStockList{display:grid;gap:5px;margin-top:8px}.costStockRow{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 7px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}.costStockColor{width:20px;height:20px;border-radius:5px;border:1px solid #ffffff3d}.costStockRow b,.costStockRow small{display:block}.costStockRow b{font-size:9px}.costStockRow small{margin-top:2px;font-size:8px;color:var(--muted)}.costStockRow strong{font-size:10px}.applyKitchenFinish{width:100%;min-height:40px;margin-top:8px;border:1px solid var(--accent);border-radius:9px;background:var(--accent);color:var(--bg);font-weight:800}.cornerConstructionNote{display:grid;gap:5px;margin:9px 0;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);font-size:9px;line-height:1.42;color:var(--muted)}.cornerConstructionNote b{font-size:10px;color:var(--text)}.cornerConstructionNote .warningText{color:#de9e4f;font-weight:700}.viewSwitch{position:absolute;z-index:12;top:8px;left:8px;display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:12px;background:var(--float);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:calc(100% - 16px);overflow-x:auto;scrollbar-width:none}.viewSwitch::-webkit-scrollbar{display:none}.viewSwitch button{min-width:52px;height:36px;border:0;border-radius:9px;background:transparent;color:var(--text);font-size:11px;font-weight:700;flex:0 0 auto}.viewSwitch button.active{background:var(--accent);color:var(--bg)}.dimensionGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.twoGrid,.optionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.numberField.compact{margin:0}.fieldCaption{display:flex;align-items:center;gap:4px;min-height:18px;font-size:9px;color:var(--muted)}.fieldIcon{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:5px;background:var(--panel2);color:var(--accent);font-size:11px;font-weight:800}.inputWrap{position:relative;display:block}.numberField .inputWrap input{padding-right:28px}.inputWrap .unit{position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:9px;color:var(--muted);pointer-events:none}.numberField.compact input{height:38px;font-size:14px;font-weight:650}.fixtureActions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0}.fixtureActions button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:42px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);font-size:11px;font-weight:700}.fixtureCard{margin:7px 0;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.fixtureHead{display:flex;align-items:center;margin-bottom:6px}.fixtureHead b{flex:1;font-size:11px}.fixtureHead button{width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:18px}.languageSwitch button{min-width:100px}.settingsList button{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);margin-bottom:6px}.settingsList span{font-size:11px}.settingsList b{font-size:11px;color:var(--accent)}.moduleDimBadge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--float);color:var(--text);font-size:9px;font-weight:800;white-space:nowrap;box-shadow:0 2px 5px #0003;pointer-events:none}.techDimLabel{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:18px;padding:1px 5px;border:1px solid #b9afe8;border-radius:4px;background:#fffef4f2;color:#31285e;font-size:9px;font-weight:800;white-space:nowrap;box-shadow:0 1px 3px #0002;pointer-events:none}.app.dark .techDimLabel{background:#19242cf2;color:#eee9ff;border-color:#7162bb}.catalogSections{padding-top:5px}.catalogSection{padding:5px 0 12px;border-bottom:1px solid var(--line)}.catalogSection:last-child{border-bottom:0}.catalogSection h3{display:flex;align-items:center;gap:7px;margin:2px 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.catalogSection h3:after{content:"";height:1px;background:var(--line);flex:1}.catalogSection .catalogGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.catalogSection .catalogGrid button{min-height:84px;display:grid;grid-template-columns:50px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:8px;text-align:left;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text)}.catalogSection .catalogGlyph{grid-row:1/3;width:48px;height:48px;display:grid;place-items:center;color:var(--accent)}.catalogSection b{font-size:11px;line-height:1.2}.catalogSection small{font-size:9px;color:var(--muted)}.doorOverrides{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.doorOverride{padding:7px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}.doorOverride>b{display:block;margin-bottom:5px;font-size:10px;color:var(--accent)}.doorOverride .field+.field{margin-top:5px}.focus .selectionHud{display:none}.focus .viewSwitch{right:8px;left:auto;max-width:calc(100% - 130px)}@media(max-width:430px){.dimensionGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.doorOverrides{grid-template-columns:1fr 1fr}.numberField.compact input{height:36px;font-size:13px}.fieldCaption{font-size:8px}.viewSwitch button{min-width:48px;padding:0 7px;font-size:10px}.catalogSection .catalogGrid{grid-template-columns:1fr 1fr}.catalogSection .catalogGrid button{min-height:78px;grid-template-columns:42px minmax(0,1fr);padding:6px}.catalogSection .catalogGlyph{width:40px;height:40px}.catalogSection .catalogGlyph svg{width:38px;height:38px}}@media(max-width:360px){.doorOverrides{grid-template-columns:1fr}.dimensionGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalogSection .catalogGrid{grid-template-columns:1fr}}.editor.panelOpen .selectionHud{display:none!important}.dragBadge{display:inline-flex;align-items:center;gap:4px;padding:5px 9px;border-radius:999px;background:#103039f2;color:#7befff;border:1px solid #55e7ff;font-size:11px;font-weight:800;box-shadow:0 4px 14px #0007;white-space:nowrap;pointer-events:none}.partCallout{display:inline-flex;align-items:center;justify-content:center;padding:3px 6px;border-radius:6px;background:#261f55ed;color:#fff;border:1px solid #8f7cf0;font-size:9px;font-weight:800;white-space:nowrap;box-shadow:0 2px 7px #0006;pointer-events:none}.app:not(.dark) .dragBadge{background:#effcff;color:#075b67}.app:not(.dark) .partCallout{background:#f3f0ff;color:#35297e}.settingsList+.rangeRow{margin-top:8px}.focus .selectionHud{display:none!important}.app,.app *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.app input,.app textarea,.app [contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.scenePanel,.scenePanel *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}.scenePanel .dimLabel,.scenePanel .moduleDimBadge,.scenePanel .partCallout,.scenePanel .dragBadge{pointer-events:none!important}.scenePanel div:has(>.dimLabel),.scenePanel div:has(>.moduleDimBadge),.scenePanel div:has(>.partCallout),.scenePanel div:has(>.dragBadge),.scenePanel div:has(>div>.dimLabel),.scenePanel div:has(>div>.moduleDimBadge),.scenePanel div:has(>div>.partCallout),.scenePanel div:has(>div>.dragBadge){pointer-events:none!important;touch-action:none!important;-webkit-user-select:none!important;user-select:none!important}@media(max-width:430px){.dragBadge{font-size:10px;padding:4px 7px}.partCallout{font-size:8px;padding:2px 5px}}.bottomNav:not(.focusNav){grid-template-columns:repeat(5,minmax(0,1fr));gap:1px}.bottomNav:not(.focusNav) button{min-width:0;padding:2px 1px;font-size:8.5px}.bottomNav:not(.focusNav) button svg{width:20px;height:20px}.inspectorBody{padding:7px 8px 16px;scrollbar-width:thin}.inspectorBody section{margin:0 0 8px;padding:8px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--panel2) 72%,transparent)}.inspectorBody section>h3:first-child{margin:0 0 7px;padding-bottom:5px;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.015em}.dimensionGrid,.compactGrid,.twoGrid,.optionGrid{align-items:start;column-gap:5px;row-gap:9px}.numberField,.field{font-size:9px;line-height:1.15}.fieldCaption{min-height:15px;margin:0 0 4px;font-size:8px;line-height:1.05}.numberField .inputWrap input{margin-top:0}.numberField.compact input,.field input,.field select{height:34px;padding-left:7px;padding-right:7px;border-radius:8px;font-size:12px}.field input,.field select{margin-top:4px}.field select{font-size:10px}.segmented{display:flex;flex-wrap:nowrap;gap:5px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding-bottom:2px}.segmented::-webkit-scrollbar{display:none}.segmented button{flex:0 0 auto;min-height:34px;padding:5px 9px;scroll-snap-align:start;white-space:nowrap}.doorOverrides{display:flex;grid-template-columns:none;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding-bottom:3px;scroll-snap-type:x proximity}.doorOverrides::-webkit-scrollbar{display:none}.doorOverride{flex:0 0 min(170px,72vw);padding:7px;scroll-snap-align:start}.doorOverride .field+.field{margin-top:4px}.settingsList{gap:5px}.settingsList button{min-height:38px;margin-bottom:0;padding:0 8px}.settingsList span,.settingsList b{font-size:10px}.rangeRow{gap:6px;font-size:10px;margin:4px 0}.note,.empty{font-size:10px;line-height:1.35}.costBreakdown{display:grid;gap:4px}.costBreakdown small{display:flex;justify-content:space-between;gap:6px;padding:5px 6px;border:1px solid var(--line);border-radius:7px;background:var(--panel);font-size:9px}.costPanel .projectStats{grid-template-columns:repeat(2,minmax(0,1fr))}.costPanel .projectStats>div:first-child{grid-column:1/-1}.costPanel .projectStats b{font-size:16px;white-space:nowrap}.costPanel .projectStats span{display:block;margin-top:2px}.costPanel .dimensionGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.costPanel section{padding:7px}.costPanel .segmented{padding-bottom:4px}.costPanel .costBreakdown small{align-items:center;min-height:30px}.costPanel .costBreakdown small b{margin-left:auto;white-space:nowrap;text-align:right}@media(max-width:430px){.editor{--sheet-height:min(52%,410px)}.dimensionGrid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:4px;row-gap:8px}.twoGrid,.optionGrid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:4px;row-gap:8px}.inspectorHead{min-height:40px;padding:4px 8px}.inspectorHead b{font-size:13px}.bottomNav{min-height:58px;padding-left:3px;padding-right:3px}.bottomNav:not(.focusNav) button{min-height:47px;gap:2px}.costPanel .dimensionGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:350px){.bottomNav:not(.focusNav) button span{font-size:7.5px}.dimensionGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.costPanel .projectStats{grid-template-columns:1fr}.costPanel .projectStats>div:first-child{grid-column:auto}}.app{--surface:color-mix(in srgb,var(--panel2) 58%,var(--panel));--surface-raised:var(--panel2);--divider:color-mix(in srgb,var(--line) 55%,transparent);--field-bg:color-mix(in srgb,var(--panel2) 76%,var(--panel));font-family:Segoe UI Variable Text,Segoe UI,system-ui,sans-serif}.app.dark{--bg:#0d1519;--panel:#131d22;--panel2:#1d2a30;--line:#34464d;--surface:#19252b;--surface-raised:#202e34;--divider:#2a3940;--field-bg:#1a272d;--float:#152126f2}.topbar{background:color-mix(in srgb,var(--panel) 94%,transparent);border-bottom:0;box-shadow:0 1px 0 var(--divider),0 5px 18px #0000000e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{font-weight:720;letter-spacing:-.025em}.brand span{font-weight:650;letter-spacing:0}.historyControls button,.inspectorHead button,.hudActions button{border:0;background:var(--surface);box-shadow:none}.historyControls button:not(:disabled):active,.inspectorHead button:active,.hudActions button:active{background:var(--surface-raised)}.viewSwitch{gap:2px;padding:3px;border:0;border-radius:9px;background:var(--float);box-shadow:0 8px 24px #00000024}.viewSwitch button{border-radius:6px;font-weight:620}.viewSwitch button.active{background:var(--surface-raised);color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.backScene{border:0;border-radius:8px;background:var(--float);box-shadow:0 8px 24px #00000024}.selectionHud{border:0;border-left:3px solid var(--accent);border-radius:9px;background:var(--float);box-shadow:0 12px 34px #00000032}.selectionInfo b{font-weight:680;letter-spacing:-.01em}.bottomNav{gap:0;background:color-mix(in srgb,var(--panel) 96%,transparent);border-top:0;box-shadow:0 -1px 0 var(--divider),0 -8px 28px #00000012;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottomNav button{position:relative;border-radius:0;font-weight:520}.bottomNav button.active{background:transparent;color:var(--accent);font-weight:680}.bottomNav button.active:before{content:"";position:absolute;top:0;left:50%;width:22px;height:2px;border-radius:0 0 2px 2px;background:var(--accent);transform:translate(-50%)}.inspector{border-top:0;border-radius:12px 12px 0 0;background:var(--panel);box-shadow:0 -16px 42px #00000038}.inspector:before{content:"";position:absolute;top:5px;left:50%;width:34px;height:3px;border-radius:2px;background:var(--divider);transform:translate(-50%)}.inspectorHead{min-height:45px;padding:9px 8px 4px;border-bottom:0}.inspectorHead b{font-size:13px;font-weight:680;letter-spacing:-.01em}.inspectorBody{padding:4px 12px 20px}.inspectorBody section,.costPanel section{margin:0;padding:11px 2px 14px;border:0;border-bottom:1px solid var(--divider);border-radius:0;background:transparent}.inspectorBody section:last-child{border-bottom:0}.inspectorBody section>h3:first-child,.inspectorBody h3{margin:0 0 9px;padding:0;border:0;color:var(--muted);font-size:9px;font-weight:720;letter-spacing:.075em;text-transform:uppercase}.numberField,.field{color:var(--muted);font-weight:500}.fieldCaption{color:var(--muted)}.fieldIcon{background:transparent;color:var(--accent)}.numberField input,.field input,.field select,.numberField.compact input,.catalogSearch input{border:1px solid transparent;border-radius:6px;background:var(--field-bg);box-shadow:inset 0 -1px var(--divider)}.numberField input:hover,.field input:hover,.field select:hover,.catalogSearch input:hover{background:var(--surface-raised)}.numberField input:focus,.field input:focus,.field select:focus,.catalogSearch input:focus{border-color:color-mix(in srgb,var(--accent) 68%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent);outline:0}.segmented{gap:2px;padding:3px;border-radius:8px;background:var(--surface)}.segmented button,.focusBtn,.actionRow button{border:0;border-radius:6px;background:transparent;font-weight:600}.segmented .active{background:var(--surface-raised);color:var(--accent);box-shadow:0 1px 5px #00000020,inset 0 -2px var(--accent)}.focusBtn,.applyKitchenFinish{border:0;border-radius:7px;background:var(--accent);color:#071519;box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 20%,transparent)}.note,.empty{color:var(--muted)}.settingsList{display:grid;gap:0;overflow:hidden;border-radius:7px;background:var(--surface)}.settingsList button{min-height:42px;margin:0;padding:0 10px;border:0;border-bottom:1px solid var(--divider);border-radius:0;background:transparent}.settingsList button:last-child{border-bottom:0}.settingsList button:active{background:var(--surface-raised)}.decorPicker{margin:9px 0;padding:10px;border:0;border-radius:8px;background:var(--surface)}.decorPickerHead{margin-bottom:8px}.decorPickerHead strong{font-weight:650}.decorSwatches button{border:1px solid transparent;border-radius:6px;background:transparent}.decorSwatches button.active{border-color:var(--accent);background:var(--surface-raised);box-shadow:0 0 0 1px var(--accent)}.decorSample{border:0;border-radius:4px}.decorTintControl input,.decorTintControl button{border:0;border-radius:5px;background:var(--surface-raised)}.doorOverridesDisclosure,.costStockDetails{border-top:1px solid var(--divider)}.catalogSearch{display:flex;align-items:center;gap:5px;width:max-content;max-width:100%;top:-4px;margin:0 -4px 6px;padding:4px;background:color-mix(in srgb,var(--panel) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.catalogSearch.open{width:auto}.catalogSearch .catalogSearchToggle,.catalogSearch .catalogSearchClear{display:flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:0 9px;border:0;border-radius:6px;background:var(--surface);color:var(--text);white-space:nowrap}.catalogSearch .catalogSearchToggle{max-width:min(210px,62vw)}.catalogSearch .catalogSearchToggle b{overflow:hidden;text-overflow:ellipsis;font-size:10px}.catalogSearch .catalogSearchToggle span{display:inline;margin:0;color:var(--accent);font-size:17px;line-height:1}.catalogSearch input{flex:1;min-width:0;width:auto;height:32px;padding:0 9px;color:var(--text)}.catalogSearch .catalogSearchClear{width:32px;padding:0;font-size:17px}.catalogSearch button:active{background:var(--surface-raised)}.cornerConstructionNote .fieldCaption{min-height:0;margin:0;color:var(--muted)}.cornerSideSelector{margin-bottom:2px}.cornerSideSelector button{flex:1}.cornerSinkAction{min-height:36px;padding:0 10px;border:0;border-radius:6px;background:var(--accent);color:#071519;font-size:10px;font-weight:750}.cornerSinkAction:disabled{background:var(--surface-raised);color:var(--muted);opacity:.72}.catalogSection{padding:8px 0 13px;border-bottom:1px solid var(--divider)}.catalogSection h3{font-size:9px;font-weight:720;letter-spacing:.075em}.catalogSection h3:after{background:var(--divider)}.catalogSection .catalogGrid{gap:6px}.catalogSection .catalogGrid button{border:0;border-radius:8px;background:var(--surface);box-shadow:none}.catalogSection .catalogGrid button:active{background:var(--surface-raised)}.catalogSection .catalogGlyph{border-radius:6px;background:color-mix(in srgb,var(--accentSoft) 56%,transparent)}.projectStats,.moduleDimensions{gap:0;overflow:hidden;border-radius:8px;background:var(--surface)}.projectStats div,.moduleDimensions div{border:0;border-right:1px solid var(--divider);border-radius:0;background:transparent}.projectStats div:last-child,.moduleDimensions div:last-child{border-right:0}.projectStats b,.moduleDimensions b{font-weight:680;letter-spacing:-.02em}.exportGrid{gap:6px}.exportGrid button,.fixtureActions button{border:0;border-radius:7px;background:var(--surface)}.exportGrid button:active,.fixtureActions button:active{background:var(--surface-raised)}.exportGrid .primary{border:0;background:var(--accent);color:#071519}.fixtureCard,.doorOverride{border:0;border-radius:7px;background:var(--surface)}.partList{gap:0}.partList button{min-height:46px;border:0;border-bottom:1px solid var(--divider);border-radius:0;background:transparent}.partList button:last-child{border-bottom:0}.partList button.active{background:var(--accentSoft);box-shadow:inset 3px 0 var(--accent)}.partNumber{background:var(--surface-raised);color:var(--accent)}.costBreakdown{gap:0}.costBreakdown small,.costPanel .costBreakdown small{padding:7px 2px;border:0;border-bottom:1px solid var(--divider);border-radius:0;background:transparent}.costBreakdown small:last-child{border-bottom:0}.costStockList{gap:0}.costStockRow{padding:8px 2px;border:0;border-bottom:1px solid var(--divider);border-radius:0;background:transparent}.costStockRow:last-child{border-bottom:0}.catalogApplianceNote,.cornerConstructionNote,.warning{border:0;border-left:3px solid #d79b4b;border-radius:0 6px 6px 0;background:color-mix(in srgb,#d79b4b 8%,transparent)}.importNotice{border:0;border-left:3px solid var(--line);border-radius:0 6px 6px 0;background:var(--surface)}.importNotice.success{border-color:#42a978}.importNotice.error{border-color:var(--danger)}@media(min-width:900px){.inspector{border-left:0;box-shadow:-16px 0 42px #00000024}.inspector:before{display:none}.inspectorHead{padding-top:5px}}@media(max-width:430px){.inspectorHead{min-height:44px;padding:9px 8px 4px}.bottomNav:not(.focusNav) button{min-height:48px}.costPanel .projectStats>div:first-child{border-bottom:1px solid var(--divider)}}
