@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jost-latin-400-normal-q-RKOgPK.woff2) format("woff2")}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jost-latin-500-normal-41lBe9I9.woff2) format("woff2")}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jost-latin-600-normal-C497H-z9.woff2) format("woff2")}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jost-latin-700-normal-u2Hrqd6k.woff2) format("woff2")}:root{color-scheme:light;--font-display: "Jost", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: "Jost", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--canvas: #f4eee3;--surface-1: #fbf7ef;--surface-2: #f1e9da;--surface-3: #eee3cf;--scene-bg: #eae3d6;--inset-hi: rgba(255, 252, 245, .6);--ink: #23211c;--ink-2: #6e6453;--ink-3: #857a66;--on-dark: #f6efe0;--line: #ded2bc;--line-strong: #cdbfa4;--primary: #1e3d33;--primary-hover: #152e26;--primary-tint: #e4ece7;--graphite: #2b2820;--brass: #9a6b27;--brass-tint: #f3e7c9;--ochre: #c69a3d;--select: #ffd21e;--select-deep: #d9a800;--danger: #9f4b3f;--danger-strong: #8a3e33;--danger-tint: #f7e7e0;--danger-line: #d8b3a8;--success: #3e6b4e;--success-line: #9db89f;--success-tint: #e6eedf;--track: #e2d6be;--focus: #9a6b27;--sh-pop: 0 14px 34px rgba(58, 43, 28, .16);--sh-modal: 0 24px 64px rgba(40, 30, 18, .26);--sh-float: 0 8px 22px rgba(58, 43, 28, .14);--sh-cta: 0 4px 14px rgba(30, 61, 51, .2);--r-ctl: 4px;--r-inner: 3px;--r-card: 6px;--r-modal: 8px;--r-pill: 999px;--t-fast: .13s ease;--t-ui: .15s ease;--grid-line: rgba(154, 107, 39, .06);--scrim: rgba(35, 25, 14, .46);font-family:var(--font-body);background:var(--canvas);color:var(--ink);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0}body{overflow:hidden;background:var(--canvas);color:var(--ink)}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}.pane-header h1,.section-title,.brand-lockup strong,.metric-strip strong,.metric-grid strong,.segmented button,.side-tabs button,.tool-button,.danger-button,.primary-button,.ghost-button,.scene-view-toggle button,.wizard-heading h2,.login-panel strong,.intake-head strong,.feedback-head strong,.intake-submit,.feedback-fab{font-family:var(--font-display)}.field-row input,.number-input input,.slider-input output,.slider-input input,.metric-strip strong,.metric-grid strong,.opening-offset-readout strong,.status-pill,.settings-status,.wizard-field span,.export-group select,.dimension-line text{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.project-name span,.field-row>span,.swatch-row>span,.settings-row span,.settings-popover small,.opening-offset-readout span,.intake-field span,.intake-levels legend,.thermal-label,.wizard-heading small{color:var(--ink-3);font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.field-row input:focus,.field-row select:focus,.project-name input:focus,.project-select select:focus,.mode-select select:focus,.export-group select:focus,.settings-row select:focus,.intake-field input:focus,.login-panel input:focus,.feedback-field textarea:focus,.number-input input:focus{border-color:var(--brass);outline:1.5px solid var(--focus);outline-offset:1px;box-shadow:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.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 12px;border-bottom:1px solid var(--line-strong);background:var(--surface-1);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;font-weight:600;letter-spacing:.01em;color:var(--ink)}.brand-lockup div>span{color:var(--ink-2);font-size:11px}.project-name{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0}.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 var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);padding:0 9px;outline:none}input::placeholder,textarea::placeholder{color:var(--ink-3)}.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 var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);padding:0 10px;outline:none}.icon-button,.side-tabs button,.segmented button,.swatch-row button,.tool-button,.danger-button{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-1);color:var(--ink)}.icon-button{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;padding:0;transition:background var(--t-ui),border-color var(--t-ui),transform var(--t-ui)}.icon-button svg{flex:0 0 auto}.icon-button:disabled{opacity:.4;cursor:not-allowed}.icon-button.danger{border-color:var(--danger-line);color:var(--danger);background:var(--danger-tint)}.icon-button.danger:hover:not(:disabled){border-color:var(--danger-strong);background:#f2dad0}.icon-button:hover,.tool-button:hover,.project-select:hover,.side-tabs button:hover,.segmented button:hover{border-color:var(--brass);background:var(--surface-3)}.icon-button:active,.tool-button:active,.danger-button:active{transform:translateY(1px)}.project-select{display:grid;grid-template-columns:15px minmax(96px,150px);align-items:center;gap:5px;height:30px;min-width:0;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-1);padding-left:7px;color:var(--ink-2)}.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,.settings-status{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;max-width:132px;min-height:30px;border:1px solid var(--line);border-left-width:2px;border-left-color:var(--line-strong);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink-2);padding:0 9px 0 8px;font-family:var(--font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;flex:0 1 132px}.status-pill span{overflow:hidden;text-overflow:ellipsis}.status-pill.online,.settings-status.online{background:var(--success-tint);color:var(--success);border-color:var(--success-line);border-left-color:var(--success)}.status-pill.offline,.settings-status.offline{background:var(--danger-tint);color:var(--danger);border-color:var(--danger-line);border-left-color:var(--danger)}.settings-menu{position:relative;flex:0 0 auto}.settings-button.active,.icon-button.active{border-color:var(--graphite);background:var(--graphite);color:var(--on-dark)}.settings-popover{position:absolute;top:calc(100% + 9px);right:0;z-index:30;display:grid;gap:11px;width:260px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface-1);box-shadow:var(--sh-pop);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 var(--line);border-left:1px solid var(--line);background:var(--surface-1);transform:rotate(45deg)}.settings-row{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:10px}.settings-row select{width:100%;min-width:0;height:34px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);padding:0 9px}@property --rail-width{syntax: "<length>"; inherits: true; initial-value: 56px;}.studio{display:grid;grid-template-columns:var(--rail-width, 56px) minmax(0,1fr);min-height:0;transition:--rail-width .32s cubic-bezier(.4,0,.2,1)}.canvas-stage{position:relative;display:grid;grid-template-columns:minmax(360px,var(--plan-width, 560px)) 8px minmax(360px,1fr);min-width:0;min-height:0}.plan-pane,.scene-pane{min-width:0;min-height:0}.plan-pane{overflow:hidden;background:linear-gradient(90deg,var(--grid-line) 1px,transparent 1px),linear-gradient(var(--grid-line) 1px,transparent 1px),var(--canvas);background-size:32px 32px}.scene-pane{overflow:hidden;border-left:1px solid var(--line-strong);background:var(--scene-bg);position:relative}.pane-resizer{position:relative;z-index:6;width:8px;min-width:8px;cursor:col-resize;background:transparent;border-inline:1px solid var(--line);touch-action:none}.pane-resizer:after{content:"";position:absolute;top:50%;left:50%;width:3px;height:44px;border-radius:999px;background:var(--line-strong);opacity:1;transform:translate(-50%,-50%);transition:background var(--t-ui),height var(--t-ui)}.pane-resizer:hover:after,.pane-resizer.active:after{height:68px;background:var(--primary)}.app-shell.resizing-panes,.app-shell.resizing-panes *{cursor:col-resize;-webkit-user-select:none;user-select:none}.selection-card{position:absolute;z-index:7;width:340px;max-width:calc(100% - 28px);max-height:calc(100% - 28px);display:flex;flex-direction:column;overflow:hidden;background:var(--surface-1);border:1px solid var(--line-strong);border-radius:var(--r-card);box-shadow:var(--sh-pop);transform-origin:top left}.selection-card.in{animation:card-in .16s cubic-bezier(.2,.8,.2,1) both}.selection-card.out{animation:card-out .12s ease-in both}.selection-card .ctx{flex:1;min-height:0;overflow-y:auto}.selection-card [data-drag-handle]{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.selection-card [data-drag-handle]:active{cursor:grabbing}@keyframes card-in{0%{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes card-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.97) translateY(-4px)}}.stats-ribbon{position:absolute;left:14px;bottom:14px;z-index:5;display:flex;gap:2px;padding:5px;border:1px solid var(--line);border-radius:var(--r-ctl);background:#fbf7efeb;box-shadow:var(--sh-float);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}.stats-cell{display:grid;gap:1px;padding:4px 11px;border-radius:var(--r-inner)}.stats-cell+.stats-cell{border-left:1px solid var(--line)}.stats-cell small{color:var(--ink-3);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.stats-cell strong{color:var(--ink);font-family:var(--font-display);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.wizard-overlay{position:absolute;inset:0;z-index:12;display:grid;place-items:center;padding:24px;background:#23190e29;pointer-events:none}.wizard-card{pointer-events:auto;display:flex;width:min(420px,100%);max-height:100%;overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--r-card);background:var(--surface-1);box-shadow:var(--sh-pop);animation:card-in .18s cubic-bezier(.2,.8,.2,1) both}.wizard-card .wizard{flex:1;height:auto;max-height:100%}.tut-prompt-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px;background:#23190e57;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tut-prompt{display:grid;justify-items:center;gap:10px;width:min(380px,100%);padding:26px 26px 22px;text-align:center;border:1px solid var(--line-strong);border-radius:var(--r-card);background:var(--surface-1);box-shadow:var(--sh-pop);animation:card-in .18s cubic-bezier(.2,.8,.2,1) both}.tut-prompt-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:999px;background:var(--brass-tint);color:var(--brass)}.tut-prompt strong{font-family:var(--font-display);font-size:18px;color:var(--ink)}.tut-prompt p{margin:0;color:var(--ink-2);font-size:13.5px;line-height:1.5}.tut-prompt-actions{display:flex;gap:10px;margin-top:6px}.tut-overlay{position:fixed;inset:0;z-index:130}.tut-blocker{position:absolute;inset:0}.tut-blocker-dim{background:#0f0c079e}.tut-hole{position:fixed;border-radius:12px;border:2px solid var(--brass);box-shadow:0 0 0 9999px #0f0c079e;pointer-events:none;transition:top .28s cubic-bezier(.4,0,.2,1),left .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1),height .28s cubic-bezier(.4,0,.2,1)}.tut-card{position:fixed;display:grid;gap:8px;padding:14px 16px 16px;border:1px solid var(--line-strong);border-radius:var(--r-card);background:var(--surface-1);box-shadow:var(--sh-pop);transition:top .28s cubic-bezier(.4,0,.2,1),left .28s cubic-bezier(.4,0,.2,1)}.tut-card-head{display:flex;align-items:center;justify-content:space-between}.tut-step{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ink-3)}.tut-close{display:grid;place-items:center;width:26px;height:26px;border:0;border-radius:var(--r-inner);background:transparent;color:var(--ink-2);cursor:pointer}.tut-close:hover{background:var(--surface-3);color:var(--ink)}.tut-card strong{font-family:var(--font-display);font-size:15.5px;color:var(--ink)}.tut-card p{margin:0;color:var(--ink-2);font-size:13px;line-height:1.5}.tut-card-nav{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.tut-card-nav-right{display:flex;gap:8px}.tool-rail{position:relative;z-index:7;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0;background:var(--graphite);border-right:1px solid var(--line-strong)}.rail-group{display:flex;flex-direction:column;align-items:center;gap:6px}.rail-divider{width:24px;height:1px;margin:6px 0;background:#ffffff29}.rail-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:0;width:38px;height:38px;border:1px solid transparent;border-radius:var(--r-ctl);background:transparent;color:#ffffffbd;cursor:pointer;transition:background var(--t-ui),color var(--t-ui),border-color var(--t-ui)}.rail-btn:hover{background:#ffffff1a;color:var(--on-dark)}.rail-btn.active{background:var(--brass);border-color:var(--brass);color:var(--graphite)}.rail-tip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);padding:5px 9px;border-radius:var(--r-inner);background:var(--ink);color:var(--on-dark);font-size:12px;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--t-ui);z-index:9}.rail-btn:hover .rail-tip{opacity:1}.rail-flyout-wrap{position:relative;display:grid;place-items:center}.rail-flyout{position:absolute;left:calc(100% + 10px);top:0;z-index:9;display:grid;gap:2px;min-width:176px;padding:7px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface-1);box-shadow:var(--shadow-pop, 0 18px 40px rgba(40, 33, 22, .18));animation:control-section-in .12s ease both}.rail-flyout-head{padding:4px 8px 6px;color:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.rail-flyout-item{text-align:left;padding:8px 9px;border:0;border-radius:var(--r-inner);background:transparent;color:var(--ink);font-size:13px;cursor:pointer;transition:background var(--t-ui)}.rail-flyout-item:hover{background:var(--surface-3)}.rail-scrim{position:fixed;inset:0;z-index:8;border:0;background:transparent;cursor:default}.rail-toggle{color:#ffffff8c}.tool-rail.expanded{align-items:stretch;padding:12px 10px}.tool-rail.expanded .rail-group{align-items:stretch;width:100%}.tool-rail.expanded .rail-flyout-wrap{display:block;width:100%}.tool-rail.expanded .rail-btn{display:flex;width:100%;height:38px;justify-content:flex-start;gap:11px;padding:0 10px}.tool-rail.expanded .rail-divider{width:auto;align-self:stretch}.rail-label{font-size:13px;font-weight:500;white-space:nowrap;color:inherit;max-width:0;opacity:0;overflow:hidden;transition:opacity .2s ease,max-width .32s cubic-bezier(.4,0,.2,1)}.tool-rail.expanded .rail-label{max-width:152px;opacity:1}.tool-rail.expanded .rail-tip{display:none}.ctx{display:grid;align-content:start;padding-bottom:18px}.panel-head{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 12px 11px;border-bottom:1px solid var(--line-strong);background:#fbf7eff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.panel-crumb{display:flex;align-items:center;gap:6px;min-width:0;color:var(--ink);font-size:13px;font-weight:600}.panel-crumb>svg{flex:none;color:var(--ink-2)}.panel-crumb-seg{display:inline-flex;align-items:center;gap:6px;min-width:0}.panel-crumb-sep{color:var(--ink-3)}.panel-crumb-link{border:0;background:transparent;padding:0;color:var(--ink-3);font:inherit;font-weight:500;cursor:pointer}.panel-crumb-link:hover{color:var(--brass);text-decoration:underline}.panel-crumb-current{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-head-actions{display:flex;align-items:center;gap:4px}.panel-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink-2);cursor:pointer;transition:background var(--t-ui),border-color var(--t-ui),color var(--t-ui)}.panel-icon:hover{border-color:var(--brass);background:var(--surface-3);color:var(--ink)}.panel-icon.danger:hover{border-color:#b4452f;background:#f7e7e2;color:#8f2f1d}.panel-body{display:grid;align-content:start}.panel-hint{margin:0;color:var(--ink-3);font-size:12.5px;line-height:1.5}.metric-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px}.metric-strip>div{display:grid;gap:2px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2)}.metric-strip small{color:var(--ink-3);font-size:11px}.metric-strip strong{color:var(--ink);font-size:14px;font-weight:600}.overview-cards{display:grid;gap:8px}.overview-card{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);text-align:left;cursor:pointer;transition:background var(--t-ui),border-color var(--t-ui),transform var(--t-ui)}.overview-card:hover{border-color:var(--brass);background:var(--surface-3)}.overview-card:active{transform:translateY(1px)}.overview-card-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-inner);background:var(--surface-3);color:var(--ink-2)}.overview-card-text{display:grid;gap:1px;min-width:0}.overview-card-text strong{color:var(--ink);font-size:13.5px;font-weight:600}.overview-card-text small{color:var(--ink-3);font-size:11.5px}.opening-list{display:grid;gap:6px}.opening-item{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--t-ui),border-color var(--t-ui)}.opening-item:hover{border-color:var(--brass);background:var(--surface-3)}.opening-item small{color:var(--ink-3);font-size:11.5px}.footprint-path{cursor:pointer}.footprint-path.selected{stroke:var(--select)}.draggable-plan-item{cursor:pointer}.draggable-plan-item.selected rect,.draggable-plan-item.selected circle,.draggable-plan-item.selected line{stroke:var(--select);stroke-width:60}.extension-mark.selected rect,.existing-facade-mark.selected rect{stroke:var(--brass);stroke-width:60}.control-section{display:grid;gap:11px;margin:0 16px;padding:16px 0;border-top:1px solid var(--line);background:transparent;animation:control-section-in .14s ease both}.control-section:first-of-type{border-top:0;padding-top:14px}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 2px;color:var(--ink);font-size:14px;font-weight:600;letter-spacing:-.005em;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:var(--brass)}.slider-input output{display:grid;min-width:76px;height:32px;place-items:center;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);font-size:12px;font-weight:600;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 var(--line);border-left:0;border-radius:0 var(--r-ctl) var(--r-ctl) 0;background:var(--surface-2);color:var(--ink-3);font-size:11px;font-weight:600}.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 var(--line);border-radius:var(--r-card);background:var(--surface-2);padding:9px 10px}.opening-offset-readout strong{color:var(--ink);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 var(--line);border-radius:var(--r-card);background:var(--surface-2);padding:10px;box-shadow:inset 0 1px 0 var(--inset-hi)}.metric-strip small,.metric-grid small,.opening-item small{display:block;color:var(--ink-3);font-size:11px}.metric-strip strong,.metric-grid strong{display:block;margin-top:2px;font-size:18px;font-weight:600;color:var(--ink)}.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;background:var(--surface-1);color:var(--ink-2);font-size:12px;font-weight:600;line-height:1.05;text-overflow:ellipsis;transition:background var(--t-ui),border-color var(--t-ui)}.segmented button.active,.side-tabs button.active{border-color:var(--graphite);background:var(--graphite);color:var(--on-dark)}.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:var(--brass);box-shadow:0 0 0 2px var(--brass)}.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-size:12.5px;font-weight:600;transition:background var(--t-ui),border-color var(--t-ui),transform var(--t-ui)}.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:600}.wall-shape-button small{min-width:0;overflow:hidden;color:var(--ink-3);font-size:11px;font-weight:600;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.danger-button{width:100%;border-color:var(--danger);color:var(--danger);background:var(--danger-tint)}.danger-button:hover{border-color:var(--danger-strong);background:#f2dad0}.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 var(--line);border-radius:var(--r-card);background:var(--surface-1);color:var(--ink);padding:9px 10px;text-align:left}.opening-item.selected{border-color:var(--brass);background:var(--brass-tint)}.opening-editor{display:grid;gap:11px;border-top:1px solid var(--line);padding-top:13px}.fixture-list{display:grid;gap:9px}.mini-editor{display:grid;gap:10px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface-1);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;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.mini-remove{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border:1px solid var(--danger-line);border-radius:var(--r-ctl);background:var(--danger-tint);color:var(--danger);padding:0}.mini-remove:hover{border-color:var(--danger-strong);background:#f2dad0}.toggle-row{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:13px;font-weight:500}.toggle-row input{width:17px;height:17px;accent-color:var(--primary)}.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:var(--ink);font-size:21px;font-weight:600;letter-spacing:-.01em;line-height:1.12;text-overflow:ellipsis;white-space:nowrap}.pane-header span{display:block;margin-top:4px;color:var(--ink-2);font-size:13px}.side-tabs{display:grid;grid-template-columns:repeat(4,34px);gap:6px}.side-tabs button{width:34px;height:34px;background:var(--surface-1);color:var(--ink-2);font-size:12px;font-weight:600}.floorplan{display:block;width:100%;height:100%;touch-action:none}.empty-search{display:grid;gap:4px;margin:14px 16px;border:1px dashed var(--line-strong);border-radius:var(--r-card);background:var(--surface-2);padding:16px;color:var(--ink-2);animation:control-section-in .14s ease both}.empty-search strong{color:var(--ink);font-size:13px;font-weight:600}.empty-search span{font-size:12px}.draggable-plan-item{cursor:grab}.floorplan:active .draggable-plan-item{cursor:grabbing}.dimension-line line{stroke:#857a66;stroke-width:22;stroke-dasharray:90 70}.dimension-line text{fill:#23211c;font-size:300px;font-weight:600;paint-order:stroke;stroke:#f4eee3;stroke-width:40px;text-anchor:middle}.extension-mark rect{fill:#51736f29;stroke:#51736f;stroke-width:85;stroke-dasharray:250 160}.extension-mark line{stroke:#1e3d33;stroke-width:150}.extension-mark text,.room-preset text,.roof-fixture text,.electrical-mark text,.ceiling-mark text{font-size:280px;font-weight:600;paint-order:stroke;pointer-events:none;text-anchor:middle}.extension-mark text{fill:#1e3d33;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:600;paint-order:stroke;pointer-events:none;stroke:#fff7f3;stroke-width:38px;text-anchor:middle}.room-preset rect{fill:#c69a3d29;stroke:#c69a3d;stroke-width:48}.room-preset.stair rect{fill:#1e3d3324;stroke:#1e3d33}.room-preset line{stroke:#1e3d33;stroke-width:45;stroke-linecap:round}.room-preset text{fill:#4f4220;stroke:#fbf7ef;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:#fbf7ef;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:#1e3d33;stroke:#eef7fb;stroke-width:36px}.electrical-mark circle,.electrical-mark rect{fill:#fbf7ef;stroke:#8b5e34;stroke-width:34}.electrical-mark.switch rect{fill:#1e3d33;stroke:#f6efe0}.electrical-mark text{fill:#654116;font-size:220px;stroke:#fbf7ef;stroke-width:32px}.drag-handle{fill:#9a6b27;stroke:#fff7e8;stroke-width:70;cursor:grab}.drag-handle.active{fill:#1e3d33;cursor:grabbing}.plot-mark{cursor:pointer}.plot-mark rect{fill:#8fb08224;stroke:#7f9a6f;stroke-width:70;stroke-dasharray:320 220}.plot-mark.selected rect{fill:#ffd21e2e;stroke:var(--select);stroke-dasharray:none}.plot-mark text{fill:#5a6b4d;font-size:360px;font-weight:600;text-anchor:middle;paint-order:stroke;stroke:#f4eee3;stroke-width:44px}.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 var(--line-strong);border-radius:var(--r-card);background:#fbf7efeb;padding:5px;box-shadow:var(--sh-float);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scene-view-toggle button{height:32px;min-width:78px;border:1px solid transparent;border-radius:var(--r-inner);background:transparent;color:var(--ink-2);padding:0 10px;font-size:12px;font-weight:600}.scene-view-toggle button.active{border-color:var(--graphite);background:var(--graphite);color:var(--on-dark)}.scene-measure-toggle{position:absolute;top:14px;right:14px;z-index:4;display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-card);background:#fbf7efeb;color:var(--ink-2);font-size:12px;font-weight:600;box-shadow:var(--sh-float);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer}.scene-measure-toggle:hover{border-color:var(--graphite);color:var(--ink)}.scene-measure-toggle.active{border-color:var(--graphite);background:var(--graphite);color:var(--on-dark)}.scene-loading{display:grid;width:100%;height:100%;place-items:center;color:var(--ink-2);background:var(--scene-bg);font-weight:500}.scene-error{display:grid;width:100%;height:100%;place-items:center;align-content:center;gap:8px;padding:24px;color:var(--danger);background:var(--danger-tint);text-align:center}.scene-error strong,.scene-error span{max-width:420px}.scene-error span{color:var(--ink-2);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 var(--danger);border-radius:var(--r-card);background:var(--danger-tint);color:var(--danger);padding:11px 13px;box-shadow:var(--sh-modal);font-size:13px;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:var(--scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.login-panel{display:grid;gap:12px;width:min(420px,calc(100vw - 36px));border:1px solid var(--line);border-radius:var(--r-modal);background:var(--surface-1);box-shadow:var(--sh-modal);padding:22px}.login-panel strong{font-size:18px;font-weight:600}.login-panel>span{color:var(--ink-2);font-size:13px;line-height:1.45}.login-panel input{height:42px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);padding:0 12px}.login-panel small{color:var(--danger);font-weight:600;font-size:12px}.login-panel div{display:flex;justify-content:flex-end;gap:9px}.ghost-button,.primary-button{height:38px;border-radius:var(--r-ctl);padding:0 14px;font-size:12.5px;font-weight:600}.ghost-button{border:1px solid var(--line);background:var(--surface-1);color:var(--ink)}.ghost-button:hover{border-color:var(--brass);background:var(--surface-3)}.primary-button{border:1px solid var(--primary);background:var(--primary);color:var(--on-dark);box-shadow:inset 0 1px #f6efe01a}.primary-button:hover{background:var(--primary-hover)}.intake-overlay{position:absolute;inset:0;z-index:25;display:grid;place-items:center;padding:24px;background:var(--scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow:auto}.intake-card{display:grid;gap:13px;width:min(720px,100%);border:1px solid var(--line);border-radius:var(--r-modal);background:var(--surface-1);padding:24px 32px;box-shadow:var(--sh-modal);color:var(--ink)}.intake-head{display:flex;gap:12px;align-items:flex-start}.intake-head svg{color:var(--brass);flex:0 0 auto}.intake-head strong{display:block;font-size:18px;font-weight:600}.intake-head span{color:var(--ink-2);font-size:13px}.intake-fields{display:grid;gap:9px}.intake-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}.intake-field{display:grid;gap:5px}.intake-field input{height:38px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);padding:0 12px;outline:none}.intake-levels{display:grid;gap:6px;border:0;margin:0;padding:0}.intake-levels legend{padding:0 0 4px}.intake-level{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface-2);padding:7px 11px;font-size:13px;cursor:pointer}.intake-level input{accent-color:var(--brass)}.intake-level.active{border-color:var(--brass);background:var(--brass-tint);color:var(--ink)}.intake-error,.feedback-error{color:var(--danger);font-size:12px;font-weight:600;margin:0}.intake-consents{display:grid;gap:8px}.intake-consent{display:flex;align-items:flex-start;gap:9px;color:var(--ink-2);font-size:13px;line-height:1.45;cursor:pointer}.intake-consent input{flex:0 0 auto;width:16px;height:16px;margin-top:1px;accent-color:var(--primary);cursor:pointer}.intake-submit{height:44px;border:1px solid var(--primary);border-radius:var(--r-ctl);background:var(--primary);color:var(--on-dark);font-size:13px;font-weight:600;box-shadow:inset 0 1px #f6efe01a}.intake-submit:hover{background:var(--primary-hover)}.intake-submit:disabled{opacity:.6;cursor:not-allowed}.intake-card-narrow{width:min(440px,100%)}.intake-note{margin:0;color:var(--ink-3);font-size:12px;line-height:1.45}.intake-link{justify-self:center;border:0;background:transparent;color:var(--ink-2);font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.intake-link:hover{color:var(--ink)}.code-input{font-family:var(--font-display);font-size:20px;letter-spacing:.14em;text-align:center;text-transform:uppercase}.code-overlay{position:absolute;inset:0;z-index:26;display:grid;place-items:center;padding:24px;background:#23190e66;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.code-card{display:grid;justify-items:center;gap:12px;width:min(440px,100%);padding:28px 26px 24px;text-align:center;border:1px solid var(--line-strong);border-radius:var(--r-modal);background:var(--surface-1);box-shadow:var(--sh-pop);animation:card-in .18s cubic-bezier(.2,.8,.2,1) both}.code-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:999px;background:var(--brass-tint);color:var(--brass)}.code-title{font-family:var(--font-display);font-size:18px;color:var(--ink)}.code-subtitle{color:var(--ink-2);font-size:13px;line-height:1.45}.code-value-row{display:flex;align-items:center;gap:10px;margin:4px 0 2px}.code-value{padding:8px 16px;border:1px dashed var(--brass);border-radius:var(--r-ctl);background:var(--brass-tint);font-family:var(--font-display);font-size:30px;font-weight:700;letter-spacing:.16em;color:var(--ink)}.code-copy{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface-1);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}.code-copy:hover{border-color:var(--brass)}.code-warning{margin:0;font-weight:700;font-size:13px;line-height:1.5;color:var(--danger)}.code-continue{margin-top:4px;width:100%;height:44px}.feedback-overlay{position:absolute;inset:0;z-index:22;display:grid;place-items:center;padding:24px;background:var(--scrim);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.feedback-card{display:grid;gap:16px;width:min(480px,100%);border:1px solid var(--line);border-radius:var(--r-modal);background:var(--surface-1);padding:22px;box-shadow:var(--sh-modal);color:var(--ink)}.feedback-head{display:flex;gap:12px;align-items:flex-start}.feedback-head svg{color:var(--brass);flex:0 0 auto}.feedback-head strong{display:block;font-size:18px;font-weight:600}.feedback-head span{color:var(--ink-2);font-size:13px}.feedback-field{display:grid;gap:7px}.feedback-field>label,.feedback-field>span{font-size:13px;font-weight:600;color:var(--ink)}.feedback-field input[type=range]{width:100%;accent-color:var(--brass)}.feedback-field textarea{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);padding:10px 12px;font:inherit;resize:vertical}.feedback-scale{display:flex;justify-content:space-between;color:var(--ink-3);font-size:11px}.feedback-actions{display:flex;justify-content:flex-end;gap:9px}.feedback-fab{position:absolute;right:18px;bottom:18px;z-index:6;display:inline-flex;align-items:center;gap:7px;height:38px;border:1px solid var(--primary);border-radius:var(--r-ctl);background:var(--primary);color:var(--on-dark);padding:0 15px;font-size:12.5px;font-weight:600;box-shadow:var(--sh-float)}.feedback-fab:hover{background:var(--primary-hover)}.wizard{display:grid;grid-template-rows:auto auto 1fr auto;gap:14px;height:100%;padding:18px;overflow:auto;background:var(--surface-1)}.wizard-progress{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:5px}.wizard-progress span{height:5px;border-radius:var(--r-pill);background:var(--track)}.wizard-progress span.active{background:var(--primary)}.wizard-heading h2{margin:4px 0;font-size:18px;font-weight:600}.wizard-heading p{margin:0;color:var(--ink-2);font-size:13px}.wizard-body{display:grid;gap:13px;align-content:start}.wizard-field{display:grid;gap:6px}.wizard-field span{font-size:13px;font-weight:600;color:var(--ink);display:flex;justify-content:space-between}.wizard-field input[type=range]{width:100%;accent-color:var(--brass)}.wizard-add-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.wizard-count{margin:0;color:var(--ink-2);font-size:12px}.wizard-done{display:grid;justify-items:center;gap:10px;text-align:center;color:var(--ink-2);padding:20px 8px}.wizard-nav{display:flex;align-items:center;gap:9px}.wizard-nav .ghost-button,.wizard-nav .primary-button{display:inline-flex;align-items:center;gap:5px}.wizard-nav .primary-button{margin-left:auto}.wizard-skip{border:1px solid transparent;background:transparent;color:var(--ink-3);font-weight:600;font-size:13px}.thermal-block{display:grid;gap:7px}.splash-screen{position:absolute;inset:0;z-index:40;display:grid;place-items:center;background:var(--surface-1);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;animation:splash-rise .42s ease-out both}.splash-art{position:relative;width:min(380px,80vw);aspect-ratio:340 / 170;border-radius:12px;overflow:hidden;border:1px solid var(--line-strong);box-shadow:var(--sh-modal)}.splash-sky,.splash-trees,.splash-house,.splash-stack{position:absolute;inset:0;width:100%;height:100%;display:block}.splash-sky{background:linear-gradient(180deg,#f2ead8,#ece2cb 58%,#e3d8bc 86%,#c7bd8e 86%,#bdb281)}.splash-tree{transform-box:fill-box;transform-origin:bottom center;animation:tree-grow .66s cubic-bezier(.18,.82,.3,1) both}.splash-house{clip-path:inset(0 0 0 0);animation:build-up 1.05s cubic-bezier(.42,0,.2,1) .85s both}.splash-window-glow{opacity:1;animation:glow-on .6s ease 1.95s both}.splash-stack{opacity:1;animation:stack-out .55s ease .85s both}.splash-lockup span{color:var(--ink);font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:.01em;line-height:1.4;max-width:340px}.fake-loading-bar{width:min(330px,100%);height:8px;overflow:hidden;border-radius:var(--r-pill);background:var(--track)}.fake-loading-bar i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--brass));transform-origin:left center;animation:loading-fill 2.85s cubic-bezier(.22,.85,.28,1) forwards}@keyframes splash-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes tree-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes build-up{0%{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes stack-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@keyframes glow-on{0%{opacity:0}to{opacity: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(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes control-section-in{0%{opacity:0;transform:translateY(4px)}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}.studio{grid-template-columns:56px minmax(0,1fr);min-height:600px}.canvas-stage{grid-template-columns:minmax(0,1fr) 0 minmax(0,1fr)}.pane-resizer{display:none}}@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:var(--canvas);text-align:center}.mobile-gate img{display:block;width:min(210px,62vw);height:auto}.mobile-gate h1{max-width:340px;margin:0;color:var(--ink);font-family:var(--font-display);font-size:26px;font-weight:600;line-height:1.2}.topbar,.studio,.db-banner,.intake-overlay,.feedback-overlay,.feedback-fab,.login-overlay,.splash-screen{display:none}.mobile-gate{position:relative;z-index:60}}@media(max-width:520px){.mobile-gate h1{font-size:23px}}
