@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-400-normal-cpxAROuN.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-latin-700-normal-Qrb0O0WB.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/poppins-latin-800-normal-Bd8-pIP1.woff2) format("woff2")}:root{color-scheme:light;font-family:Poppins,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef3ef;color:#17201d;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0}body{overflow:hidden;background:#eef3ef}button,input,select{font:inherit;letter-spacing:0}button{cursor:pointer}.app-shell{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:100%}.mobile-gate{display:none}.topbar{display:grid;grid-template-columns:minmax(150px,210px) minmax(200px,1fr) auto;gap:10px;align-items:center;min-height:52px;padding:7px 10px;border-bottom:1px solid #dce5dd;background:#fff;box-shadow:0 8px 22px #1f2d280d;z-index:5}.brand-lockup{display:flex;align-items:center;gap:9px;min-width:0;overflow:hidden}.brand-logo{display:block;width:64px;height:28px;object-fit:contain;object-position:left center;flex:0 0 64px}.brand-lockup div{min-width:0}.brand-lockup strong,.brand-lockup span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-lockup strong{font-size:13px}.brand-lockup div>span{color:#687069;font-size:11px}.project-name{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0}.project-name span,.field-row>span,.swatch-row>span{color:#5c645e;font-size:12px;font-weight:700;text-transform:uppercase}.project-name input,.field-row input,.field-row select,.project-select select,.mode-select select{width:100%;min-width:0;height:32px;border:1px solid #cbd8d0;border-radius:7px;background:#fff;color:#17201d;padding:0 9px;outline:none}.project-name input:focus,.field-row input:focus,.field-row select:focus,.project-select select:focus,.mode-select select:focus{border-color:#c99a2e;box-shadow:0 0 0 3px #c99a2e2e}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:0;flex-wrap:nowrap;row-gap:0}.toolbar-group{display:inline-flex;align-items:center;gap:5px;min-width:0;flex:0 0 auto}.icon-group,.export-group{flex:0 0 auto}.export-group select{width:126px;height:34px;min-width:0;border:1px solid #cbd8d0;border-radius:7px;background:#fff;color:#17201d;padding:0 10px;outline:none}.icon-button,.side-tabs button,.segmented button,.swatch-row button,.tool-button,.danger-button{border:1px solid #cbd8d0;border-radius:7px;background:#fff;color:#17201d}.icon-button{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;padding:0}.icon-button svg{flex:0 0 auto}.icon-button:hover,.tool-button:hover,.project-select:hover,.side-tabs button:hover,.segmented button:hover{border-color:#9a8051;background:#f4efe3}.project-select{display:grid;grid-template-columns:15px minmax(96px,150px);align-items:center;gap:5px;height:30px;min-width:0;border:1px solid #cbd8d0;border-radius:7px;background:#fff;padding-left:7px}.mode-select{display:grid;grid-template-columns:minmax(108px,126px);align-items:center;gap:6px;min-width:0}.mode-select span{display:none}.project-select select{height:28px;border:0;background:transparent;padding-left:0}.status-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;max-width:132px;min-height:34px;border-radius:999px;border:1px solid #cfc6b3;background:#f8f4ea;color:#59615b;padding:0 9px;font-size:12px;white-space:nowrap;flex:0 1 132px}.settings-menu{position:relative;flex:0 0 auto}.settings-button.active{border-color:#214f4b;background:#214f4b;color:#f8f3e8}.settings-popover{position:absolute;top:calc(100% + 9px);right:0;z-index:30;display:grid;gap:11px;width:260px;border:1px solid #cbd8d0;border-radius:8px;background:#fff;box-shadow:0 18px 44px #1f2d282b;padding:12px;animation:popover-in .14s ease both}.settings-popover:before{content:"";position:absolute;top:-6px;right:11px;width:10px;height:10px;border-top:1px solid #cbd8d0;border-left:1px solid #cbd8d0;background:#fff;transform:rotate(45deg)}.settings-row{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:10px}.settings-row span,.settings-popover small{color:#5c645e;font-size:11px;font-weight:800;text-transform:uppercase}.settings-row select{width:100%;min-width:0;height:34px;border:1px solid #cbd8d0;border-radius:7px;background:#fff;color:#17201d;padding:0 9px}.settings-status{display:inline-flex;align-items:center;gap:8px;min-height:34px;border:1px solid #cfc6b3;border-radius:7px;background:#f8f4ea;color:#59615b;padding:0 10px;font-size:12px;font-weight:800}.settings-status.online{border-color:#7ca48e;color:#214f4b;background:#edf5ed}.settings-status.offline{border-color:#c68d84;color:#8c312b;background:#fff0ed}.status-pill span{overflow:hidden;text-overflow:ellipsis}.status-pill.online{border-color:#7ca48e;color:#214f4b;background:#edf5ed}.status-pill.offline{border-color:#c68d84;color:#8c312b;background:#fff0ed}.workspace{display:grid;grid-template-columns:minmax(340px,390px) minmax(480px,.95fr) minmax(520px,1.1fr);min-height:0}.inspector-pane,.plan-pane,.scene-pane{min-width:0;min-height:0}.inspector-pane{overflow:auto;border-right:1px solid #dce5dd;background:#fff}.plan-pane{overflow:hidden;background:#eef3ef}.scene-pane{overflow:hidden;border-left:1px solid #d7e0d8;background:#e8efea;position:relative}.inspector{display:grid;gap:0;padding-bottom:18px}.inspector-tabs{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:5px;padding:10px 10px 8px;border-bottom:1px solid #dce5dd;background:#fff}.inspector-tabs button{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-content:center;gap:4px;height:32px;min-width:0;border:1px solid #cbd8d0;border-radius:7px;background:#f7f9f7;color:#314039;padding:0 6px;font-size:11px;font-weight:800;transition:background .16s ease,border-color .16s ease,transform .16s ease}.inspector-tabs button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector-tabs button.active{border-color:#214f4b;background:#214f4b;color:#f8f3e8}.inspector-tabs button:active{transform:translateY(1px)}.inspector-search{position:sticky;top:51px;z-index:3;display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:8px;border-bottom:1px solid #dce5dd;background:#fffffff5;padding:9px 12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.inspector-search svg{color:#66736c}.inspector-search input{width:100%;min-width:0;height:32px;border:1px solid #cbd8d0;border-radius:7px;background:#f7f9f7;color:#17201d;padding:0 10px;outline:none}.inspector-search input:focus{border-color:#c99a2e;box-shadow:0 0 0 3px #c99a2e26}.control-section{display:grid;gap:11px;margin:10px 10px 0;border:1px solid #dce5dd;border-radius:8px;background:#fff;padding:14px;box-shadow:0 8px 22px #1f2d280a;animation:control-section-in .18s ease both}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 2px;color:#17201d;font-size:14px;line-height:1.2}.field-row{display:grid;grid-template-columns:minmax(78px,.7fr) minmax(0,1.3fr);align-items:center;gap:10px;min-width:0}.number-input{display:grid;grid-template-columns:minmax(0,1fr) 38px;align-items:center;min-width:0}.slider-row{align-items:start}.slider-input{display:grid;grid-template-columns:minmax(0,1fr) minmax(76px,auto);align-items:center;gap:10px;min-width:0}.slider-input input[type=range]{width:100%;min-width:0;height:24px;border:0;background:transparent;padding:0;box-shadow:none;accent-color:#214f4b}.slider-input output{display:grid;min-width:76px;height:32px;place-items:center;border:1px solid #cbd8d0;border-radius:7px;background:#eef3ef;color:#34413c;font-size:12px;font-weight:800;white-space:nowrap}.number-input input{border-top-right-radius:0;border-bottom-right-radius:0}.number-input small{display:grid;height:34px;place-items:center;border:1px solid #cbd8d0;border-left:0;border-radius:0 7px 7px 0;background:#eef3ef;color:#687069;font-size:11px;font-weight:700}.dual-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dual-fields .field-row{grid-template-columns:1fr;gap:5px}.dual-fields .slider-input{grid-template-columns:1fr;gap:6px}.dual-fields .slider-input output{justify-self:start}.opening-offset-readout{display:grid;grid-template-columns:1fr auto;gap:5px 10px;border:1px solid #d8e0d8;border-radius:8px;background:#f6f8f5;padding:9px 10px}.opening-offset-readout span{color:#687069;font-size:11px;font-weight:800;text-transform:uppercase}.opening-offset-readout strong{color:#17201d;font-size:12px;text-align:right}.metric-strip,.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.metric-strip div,.metric-grid div{border:1px solid #d8e0d8;border-radius:8px;background:#f6f8f5;padding:10px}.metric-strip small,.metric-grid small,.opening-item small{display:block;color:#687069;font-size:11px}.metric-strip strong,.metric-grid strong{display:block;margin-top:2px;font-size:17px}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.segmented button{height:34px;min-width:0;padding:0 8px;overflow:hidden;font-size:12px;font-weight:800;line-height:1.05;text-overflow:ellipsis}.segmented button.active,.side-tabs button.active{border-color:#214f4b;background:#214f4b;color:#f8f3e8}.swatch-row{display:grid;grid-template-columns:78px 1fr;align-items:center;gap:10px}.swatch-row>div{display:flex;flex-wrap:wrap;gap:8px}.swatch-row button{display:grid;width:34px;height:34px;place-items:center;padding:0}.swatch-row button.active{border-color:#214f4b;box-shadow:0 0 0 2px #214f4b}.swatch-row button span{width:23px;height:23px;border:2px solid;border-radius:50%}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.button-row.three,.button-row.wall-shapes{grid-template-columns:repeat(3,minmax(0,1fr))}.tool-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;min-width:0;padding:0 10px;font-weight:700;transition:background .16s ease,border-color .16s ease,transform .16s ease}.tool-button svg,.danger-button svg{flex:0 0 auto}.tool-button span,.danger-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wall-shape-button{gap:4px;height:40px;padding:0 6px}.wall-shape-button span{flex:0 0 auto;font-size:15px;font-weight:800}.wall-shape-button small{min-width:0;overflow:hidden;color:#5c645e;font-size:11px;font-weight:800;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.danger-button{width:100%;border-color:#c68d84;color:#8c312b;background:#fff8f5}.opening-list{display:grid;grid-template-columns:1fr;gap:7px;max-height:190px;overflow:auto;padding-right:2px}.opening-item{display:grid;gap:2px;width:100%;min-width:0;border:1px solid #d2c8b5;border-radius:7px;background:#fffdf7;color:#17201d;padding:9px 10px;text-align:left}.opening-item.selected{border-color:#c99a2e;background:#fff8e8}.opening-editor{display:grid;gap:11px;border-top:1px solid #ddd5c5;padding-top:13px}.fixture-list{display:grid;gap:9px}.mini-editor{display:grid;gap:10px;border:1px solid #d2c8b5;border-radius:8px;background:#fffdf7;padding:10px}.mini-editor-title{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.mini-editor-title strong{min-width:0;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.mini-remove{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border:1px solid #d7b6ad;border-radius:7px;background:#fff8f5;color:#8c312b;padding:0}.toggle-row{display:flex;align-items:center;gap:10px;color:#34413c;font-size:13px;font-weight:700}.toggle-row input{width:17px;height:17px;accent-color:#214f4b}.section-glyph{display:grid;width:17px;height:17px;place-items:center;border-radius:4px;background:#214f4b;color:#f8f3e8;font-size:10px;font-weight:800}.plan-editor{display:grid;grid-template-rows:78px minmax(0,1fr);width:100%;height:100%}.pane-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px 10px}.pane-header h1{max-width:min(52vw,560px);margin:0;overflow:hidden;color:#17201d;font-size:22px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.pane-header span{display:block;margin-top:4px;color:#687069;font-size:13px}.side-tabs{display:grid;grid-template-columns:repeat(4,34px);gap:6px}.side-tabs button{width:34px;height:34px;font-weight:800}.floorplan{display:block;width:100%;height:100%;touch-action:none}.tool-button:active,.danger-button:active{transform:translateY(1px)}.empty-search{display:grid;gap:4px;margin:14px 12px;border:1px dashed #cbd8d0;border-radius:8px;background:#f7f9f7;padding:16px;color:#52615a;animation:control-section-in .18s ease both}.empty-search strong{color:#17201d;font-size:13px}.empty-search span{font-size:12px}.draggable-plan-item{cursor:grab}.floorplan:active .draggable-plan-item{cursor:grabbing}.dimension-line line{stroke:#7a756b;stroke-width:22;stroke-dasharray:90 70}.dimension-line text{fill:#474d49;font-size:300px;font-weight:800;paint-order:stroke;stroke:#f4f1e8;stroke-width:40px;text-anchor:middle}.extension-mark rect{fill:#51736f29;stroke:#51736f;stroke-width:85;stroke-dasharray:250 160}.extension-mark line{stroke:#214f4b;stroke-width:150}.extension-mark text,.room-preset text,.roof-fixture text,.electrical-mark text,.ceiling-mark text{font-size:280px;font-weight:800;paint-order:stroke;pointer-events:none;text-anchor:middle}.extension-mark text{fill:#214f4b;stroke:#eef5ef;stroke-width:38px}.existing-facade-mark rect{fill:#9f4b3f2e;stroke:#9f4b3f;stroke-width:85}.existing-facade-mark line{stroke:#9f4b3f;stroke-width:150}.existing-facade-mark text{fill:#7b332a;font-size:280px;font-weight:800;paint-order:stroke;pointer-events:none;stroke:#fff7f3;stroke-width:38px;text-anchor:middle}.room-preset rect{fill:#d6a5422e;stroke:#c69a3d;stroke-width:48}.room-preset.stair rect{fill:#214f4b26;stroke:#214f4b}.room-preset line{stroke:#214f4b;stroke-width:45;stroke-linecap:round}.room-preset text{fill:#4f4220;stroke:#fbf8ef;stroke-width:36px}.room-preset .fixture-subtext{fill:#6c624f;font-size:210px}.interior-wall line{stroke:#5f665f}.ceiling-mark circle:first-child{fill:#fff7d0;stroke:#b58a22;stroke-width:42}.ceiling-mark.spotlight circle:last-of-type{fill:#d8a72e;stroke:none}.ceiling-mark line{stroke:#57615d;stroke-width:34;stroke-linecap:round}.ceiling-mark.ventilation circle:first-child{fill:#e6ece9;stroke:#768783}.ceiling-mark text{fill:#5c4a13;stroke:#fbf8ef;stroke-width:32px}.roof-fixture rect{fill:#7ebcdd94;stroke:#2f78a0;stroke-width:58}.roof-fixture.flat-skylight rect{fill:#9fcfe27a;stroke-dasharray:130 90}.roof-fixture text{fill:#214f4b;stroke:#eef7fb;stroke-width:36px}.electrical-mark circle,.electrical-mark rect{fill:#fffdf7;stroke:#8b5e34;stroke-width:34}.electrical-mark.switch rect{fill:#273b36;stroke:#f8f3e8}.electrical-mark text{fill:#654116;font-size:220px;stroke:#fbf8ef;stroke-width:32px}.drag-handle{fill:#c99a2e;stroke:#fff7e8;stroke-width:70;cursor:grab}.drag-handle.active{fill:#214f4b;cursor:grabbing}.scene-wrap{width:100%;height:100%}.scene-view-toggle{position:absolute;top:14px;left:14px;z-index:4;display:grid;grid-template-columns:1fr 1fr;gap:5px;border:1px solid rgba(33,79,75,.24);border-radius:8px;background:#fbf8efeb;padding:5px;box-shadow:0 10px 26px #2f3a3d1f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scene-view-toggle button{height:32px;min-width:78px;border:1px solid transparent;border-radius:6px;background:transparent;color:#30423c;padding:0 10px;font-size:12px;font-weight:800}.scene-view-toggle button.active{border-color:#214f4b;background:#214f4b;color:#f8f3e8}.scene-loading{display:grid;width:100%;height:100%;place-items:center;color:#47524d;background:#eef1ec;font-weight:700}.scene-load-panel{display:grid;width:100%;height:100%;place-items:center;background:linear-gradient(90deg,rgba(33,79,75,.08) 1px,transparent 1px),linear-gradient(rgba(33,79,75,.08) 1px,transparent 1px),#eef1ec;background-size:34px 34px}.scene-load-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:184px;height:44px;border:1px solid #214f4b;border-radius:7px;background:#214f4b;color:#f8f3e8;box-shadow:0 14px 28px #214f4b2e;font-weight:800}.scene-load-button:hover{background:#183d39}.scene-error{display:grid;width:100%;height:100%;place-items:center;align-content:center;gap:8px;padding:24px;color:#8c312b;background:#fff8f5;text-align:center}.scene-error strong,.scene-error span{max-width:420px}.scene-error span{color:#6c4843;font-size:13px}.scene-wrap canvas{display:block;width:100%;height:100%}.db-banner{position:absolute;right:18px;bottom:18px;display:inline-flex;align-items:center;gap:8px;max-width:min(420px,calc(100vw - 36px));border:1px solid #c68d84;border-radius:8px;background:#fff8f5;color:#8c312b;padding:11px 13px;box-shadow:0 10px 28px #40362529;font-size:14px;z-index:10}.public-configurator .topbar{grid-template-columns:minmax(150px,210px) minmax(200px,1fr) auto}.public-configurator .project-select{display:none}.login-overlay{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:#101c1847;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.login-panel{display:grid;gap:12px;width:min(420px,calc(100vw - 36px));border:1px solid #d6ded7;border-radius:8px;background:#fff;box-shadow:0 22px 70px #17201d3d;padding:22px}.login-panel strong{font-size:19px}.login-panel>span{color:#5b665f;font-size:13px;line-height:1.45}.login-panel input{height:42px;border:1px solid #cbd8d0;border-radius:7px;padding:0 12px}.login-panel small{color:#8c312b;font-weight:800;font-size:12px}.login-panel div{display:flex;justify-content:flex-end;gap:9px}.ghost-button,.primary-button{height:38px;border-radius:7px;padding:0 14px;font-weight:800}.ghost-button{border:1px solid #cbd8d0;background:#fff;color:#26352f}.primary-button{border:1px solid #214f4b;background:#214f4b;color:#f8f3e8}.splash-screen{position:absolute;inset:0;z-index:40;display:grid;place-items:center;background:#fff;animation:splash-fade .28s ease 3.05s forwards}.splash-lockup{display:grid;gap:16px;justify-items:center;transform:translateY(-8px);width:min(430px,calc(100vw - 44px));text-align:center}.splash-lockup img{width:min(250px,44vw);height:auto;animation:logo-bounce 1.12s ease-in-out 2;transform-origin:center bottom}.splash-lockup span{color:#4f5d55;font-size:14px;font-weight:800;line-height:1.45}.fake-loading-bar{width:min(330px,100%);height:8px;overflow:hidden;border-radius:999px;background:#dce5dd}.fake-loading-bar i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#214f4b,#c99a2e);transform-origin:left center;animation:loading-fill 2.85s cubic-bezier(.22,.85,.28,1) forwards}@keyframes logo-bounce{0%{transform:translateY(0) scale(1)}36%{transform:translateY(-5px) scale(1.003)}62%{transform:translateY(0) scale(1)}80%{transform:translateY(-1.5px) scale(1.001)}to{transform:translateY(0) scale(1)}}@keyframes loading-fill{0%{transform:scaleX(.04)}48%{transform:scaleX(.58)}74%{transform:scaleX(.82)}to{transform:scaleX(1)}}@keyframes popover-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes control-section-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes splash-fade{to{opacity:0;visibility:hidden}}@media(max-width:1180px){body{overflow:auto}.app-shell{height:auto;min-height:100%;grid-template-rows:auto auto}.topbar{grid-template-columns:1fr}.topbar-actions{justify-content:flex-start;flex-wrap:wrap}.workspace{grid-template-columns:minmax(300px,360px) minmax(0,1fr);grid-template-rows:minmax(520px,62vh) minmax(520px,62vh)}.inspector-pane{grid-row:1 / 3}.scene-pane{border-left:0;border-top:1px solid #cdd4cb}}@media(max-width:820px){body{overflow:hidden}.app-shell{display:block;min-height:100%;height:100%}.mobile-gate{display:grid;width:100%;min-height:100%;place-items:center;align-content:center;gap:22px;padding:28px;background:#fbf8ef;text-align:center}.mobile-gate img{display:block;width:min(210px,62vw);height:auto}.mobile-gate h1{max-width:340px;margin:0;color:#17201d;font-size:26px;line-height:1.2}.topbar,.workspace,.db-banner{display:none}}@media(max-width:520px){.mobile-gate h1{font-size:23px}}
