:root{color:#dce7ee;font-synthesis:none;text-rendering:optimizelegibility;background:#071018;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button,input,textarea{font:inherit}button{color:inherit}.app-shell{background:#071018;grid-template-rows:64px minmax(0,1fr) 28px;width:100%;height:100%;display:grid}.topbar{z-index:20;background:#0b151d;border-bottom:1px solid #20313d;grid-template-columns:auto auto minmax(180px,1fr) auto auto;align-items:center;gap:14px;padding:0 18px;display:grid;box-shadow:0 4px 20px #0000002e}.model-actions{align-items:center;gap:7px;display:flex}.authoring-toggle,.builder-toggle,.source-intake-toggle{color:#9bb0ba;cursor:pointer;background:#101e27;border:1px solid #2c4857;border-radius:4px;align-items:center;gap:7px;padding:7px 10px;font-size:9px;display:flex}.authoring-toggle span,.builder-toggle span,.source-intake-toggle span{color:#4fc0c8;font-family:DM Mono,monospace}.authoring-toggle strong,.builder-toggle strong,.source-intake-toggle strong{font-size:inherit;font-weight:500}.authoring-toggle:hover,.authoring-toggle.is-active,.builder-toggle:hover,.builder-toggle.is-active,.source-intake-toggle:hover,.source-intake-toggle.is-active{color:#dce9ed;background:#122832;border-color:#3c7880}.builder-toggle{color:#e8d49a;background:#80591a2b;border-color:#d3a5448c}.builder-toggle span{color:#e1a94d}.builder-toggle:hover,.builder-toggle.is-active{color:#fff0c6;background:#97671d3d;border-color:#d6a84e}.source-intake-toggle{color:#9ed6c0;background:#23775826;border-color:#42b58a73}.source-intake-toggle span{color:#58d19f}.source-intake-toggle:hover,.source-intake-toggle.is-active{color:#d8ffef;background:#2689643b;border-color:#51c796}.brand-mark{width:34px;height:34px;position:relative;transform:rotate(30deg)skewY(-5deg)}.brand-mark span{background:#41c1cc17;border:2px solid #41c1cc;width:18px;height:18px;position:absolute}.brand-mark span:first-child{inset:0 auto auto 8px}.brand-mark span:nth-child(2){border-color:#6d8da2;inset:8px auto auto 0}.brand-mark span:nth-child(3){border-color:#e1a94d;inset:8px 0 auto auto}.brand-copy{flex-direction:column;line-height:1.1;display:flex}.brand-copy strong{color:#f4f8fa;letter-spacing:-.02em;font-size:17px}.brand-copy span{color:#78909e;letter-spacing:.06em;text-transform:uppercase;margin-top:4px;font-size:10px}.model-title{border-left:1px solid #263844;min-width:0;padding-left:22px}.model-title strong{color:#d9e5eb;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;display:block;overflow:hidden}.eyebrow{color:#698493;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-family:DM Mono,monospace;font-size:9px;font-weight:500;display:block}.format-badges{align-items:center;gap:7px;display:flex}.format-badges span,.ifc-chip{color:#91a7b4;letter-spacing:.04em;background:#101e27;border:1px solid #2d4553;border-radius:4px;padding:5px 7px;font-family:DM Mono,monospace;font-size:9px}.format-badges .live-badge{color:#72c79c;background:#2c79521a;border-color:#4bac795c}.format-badges .origin-badge{color:#b6a36d;border-color:#cfa74847}.format-badges .origin-persisted{color:#72c79c;border-color:#4bac795c}.format-badges .origin-local{color:#e4bb66;border-color:#e1a94d66}.live-badge i,.status-dot{background:#54d28f;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block;box-shadow:0 0 8px #54d28f}.workspace{grid-template-columns:264px minmax(0,1fr) 292px;min-height:0;display:grid}.side-panel{z-index:10;scrollbar-color:#2a3e49 transparent;scrollbar-width:thin;background:#0b151d;min-width:0;overflow:auto}.layer-panel{border-right:1px solid #20313d;flex-direction:column;gap:22px;padding:22px 14px 16px;display:flex}.inspector-panel{border-left:1px solid #20313d}.panel-heading{justify-content:space-between;align-items:flex-start;gap:10px;padding:0 5px 14px;display:flex}.panel-heading h2{color:#e3edf1;letter-spacing:-.01em;margin:0;font-size:14px;font-weight:600}.count-pill,.layer-count,.section-title span{color:#7f98a6;text-align:center;background:#14242e;border-radius:10px;min-width:24px;padding:3px 6px;font-family:DM Mono,monospace;font-size:9px}.layer-list{flex-direction:column;gap:5px;display:flex}.focus-controls{border-top:1px solid #203540;flex-direction:column;gap:8px;margin-top:14px;padding-top:13px;display:flex}.focus-quick-actions{grid-template-columns:1fr .62fr .82fr;gap:6px;display:grid}.focus-quick-actions button{color:#78919d;cursor:pointer;background:#091820;border:1px solid #294450;border-radius:4px;min-height:32px;padding:5px 7px;font-size:8px}.focus-quick-actions button:hover,.focus-quick-actions button.is-active{color:#f1d392;background:#2a2217;border-color:#d0a04b}.focus-controls label{color:#6f8994;flex-direction:column;gap:5px;font-size:8px;display:flex}.focus-controls select{color:#b9cbd2;background:#08151c;border:1px solid #294450;border-radius:4px;outline:none;width:100%;height:33px;padding:0 8px;font-family:DM Mono,monospace;font-size:8px}.focus-controls small{color:#d4a756;font-size:7px;line-height:1.4}.layer-row{color:#637b89;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:9px minmax(0,1fr) auto 14px;align-items:center;gap:10px;width:100%;padding:10px;transition:all .15s;display:grid}.layer-row:hover{background:#101e27;border-color:#263b48}.layer-row.is-visible{color:#cbd9e0;background:#0f1c25}.layer-swatch{background:var(--layer-color);opacity:.25;border-radius:2px;width:8px;height:28px}.is-visible .layer-swatch{opacity:.95;box-shadow:0 0 10px color-mix(in srgb, var(--layer-color) 50%, transparent)}.layer-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.layer-copy strong{font-size:11px;font-weight:500}.layer-copy small{color:#5c7481;text-overflow:ellipsis;white-space:nowrap;font-family:DM Mono,monospace;font-size:8px;overflow:hidden}.visibility-icon{color:#3d5968;font-size:9px}.is-visible .visibility-icon{color:#5ec3cc}.scene-summary{border-top:1px solid #1c2c36;padding:17px 4px 0}.summary-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.summary-grid div{background:#0e1a22;border:1px solid #1e303b;border-radius:5px;flex-direction:column;min-width:0;padding:10px;display:flex}.summary-grid strong{color:#d4e0e6;font-family:DM Mono,monospace;font-size:15px}.summary-grid span{color:#607986;margin-top:3px;font-size:9px}.data-flow-card{background:linear-gradient(135deg,#2a90991a,#0000);border:1px solid #3aa8b140;border-radius:6px;gap:10px;margin-top:auto;padding:12px;display:flex}.flow-icon{color:#4fc0c8;flex:none;font-family:DM Mono,monospace;font-size:13px}.data-flow-card strong{color:#b7ced7;font-size:10px;display:block}.data-flow-card p{color:#65808e;margin:5px 0 0;font-size:9px;line-height:1.45}.viewport-panel,.viewer-surface,.viewport-placeholder{background:#071018;min-width:0;min-height:0;position:relative;overflow:hidden}.authoring-drawer,.builder-drawer,.source-intake-drawer{z-index:8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);scrollbar-color:#365362 transparent;scrollbar-width:thin;background:#0a171ff5;border:1px solid #2a4654;border-radius:8px;flex-direction:column;gap:12px;width:min(420px,100% - 28px);max-height:calc(100% - 28px);padding:17px;display:flex;position:absolute;top:14px;left:14px;overflow:auto;box-shadow:0 20px 60px #00000073}.builder-drawer{background:linear-gradient(155deg,#2d24142e,#0000 38%),#0a171ff7;border-color:#c797396b;width:min(438px,100% - 28px)}.professional-builder{width:min(980px,100% - 28px)}.source-intake-drawer{background:linear-gradient(155deg,#1b534033,#0000 38%),#0a171ff7;border-color:#46be9173;width:min(680px,100% - 28px)}.plan-registration{border-top:1px solid #1f3b34;flex-direction:column;gap:9px;padding-top:12px;display:flex}.registration-tools,.registration-pages,.wall-kind-toggle,.space-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.registration-tools button,.registration-pages button,.wall-kind-toggle button,.space-actions button{color:#83a89a;cursor:pointer;background:#091a17;border:1px solid #31564a;border-radius:4px;min-height:28px;padding:5px 9px;font-size:8px}.registration-tools button.is-active,.registration-pages button.is-active,.wall-kind-toggle button.is-active{color:#dffbed;background:#174b39;border-color:#55bd92}.registration-tools button:disabled,.space-actions button:disabled{cursor:default;opacity:.45}.wall-kind-toggle small,.space-actions small{color:#698c7e;font-size:8px}.registration-scale-field{color:#78998c;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:10px;font-size:8px;display:grid}.registration-scale-field input{color:#dffbed;background:#071411;border:1px solid #31564a;border-radius:4px;width:100%;height:32px;padding:0 30px 0 8px;font-family:DM Mono,monospace}.registration-canvas{background:#f2f1ec;border:1px solid #31564a;border-radius:6px;width:100%;max-height:68vh;line-height:0;position:relative;overflow:auto}.registration-canvas img{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.registration-canvas svg{cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.registered-wall{stroke:#f04438;stroke-linecap:round;stroke-width:5px;vector-effect:non-scaling-stroke}.registered-wall.internal{stroke:#ff9f1c;stroke-width:3px}.registered-space{fill:#1cadcc33;stroke:#18a9c7;stroke-width:2px;vector-effect:non-scaling-stroke}.pending-space{fill:none;stroke:#45d7ed;stroke-dasharray:6 4;stroke-width:2px;vector-effect:non-scaling-stroke}.registered-calibration{stroke:#2563eb;stroke-width:3px;vector-effect:non-scaling-stroke}.calibration-point,.pending-point{fill:#2563eb;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke}.pending-point{fill:#f04438}.registration-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.registration-summary span{color:#718f84;text-align:center;background:#081612;border:1px solid #29483e;border-radius:4px;padding:7px;font-size:7px}.registration-summary strong{color:#acd7c5;margin-bottom:2px;font-size:8px;display:block}.registration-summary .is-ready{color:#bff1d8;background:#123c2d;border-color:#4cae82}.builder-drawer.is-hidden,.source-intake-drawer.is-hidden{display:none}.authoring-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.authoring-heading h2{color:#edf4f6;margin:0;font-size:15px}.authoring-heading button{color:#8299a5;cursor:pointer;background:0 0;border:1px solid #314c59;border-radius:4px;width:26px;height:26px;padding:0}.authoring-intro{color:#77909c;margin:0;font-size:10px;line-height:1.55}.builder-intro{color:#839ba6;margin:0;font-size:10px;line-height:1.55}.footprint-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.footprint-options button{color:#78909c;cursor:pointer;background:#091820;border:1px solid #314653;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;min-height:54px;padding:6px;display:flex}.footprint-options button:hover,.footprint-options button.is-active{color:#f2d79e;background:#2b2418;border-color:#d0a04b}.footprint-options b{font-family:DM Mono,monospace;font-size:18px;font-weight:400}.footprint-options span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:7px;overflow:hidden}.footprint-preview{color:#294754;background:#07131a;border:1px solid #2c4652;border-radius:6px;flex-direction:column;gap:10px;padding:8px;display:flex}.footprint-preview svg{cursor:crosshair;touch-action:none;border-radius:4px;width:100%;height:420px;display:block}.footprint-preview polygon{fill:#d2a3493d;stroke:#e1ad4d;stroke-width:2px;vector-effect:non-scaling-stroke}.footprint-preview circle{fill:#ffe0a0;stroke:#6b491d;stroke-width:1px;vector-effect:non-scaling-stroke;cursor:move}.footprint-preview circle.is-selected{fill:#fff;stroke:#e1ad4d;stroke-width:2px}.footprint-preview .edge-handle{fill:#5f8998;stroke:#b5d3dc;stroke-width:.7px;vector-effect:non-scaling-stroke;cursor:move}.footprint-preview .edge-length{fill:#8ca5ae;stroke:#07131a;stroke-width:.16px;paint-order:stroke;pointer-events:none;font-family:DM Mono,monospace}.footprint-dimensions line{stroke:#64d6c5;stroke-width:1.2px;vector-effect:non-scaling-stroke;pointer-events:none}.footprint-dimensions text{fill:#a7eadd;stroke:#07131a;stroke-width:.18px;paint-order:stroke;pointer-events:none;font-family:DM Mono,monospace;font-weight:700}.footprint-dimensions.is-active line{stroke:#ffd477;stroke-width:2px}.footprint-dimensions.is-active text{fill:#ffe5a3}.footprint-status{grid-template-columns:auto auto;align-items:center;gap:3px 12px;display:grid}.footprint-status strong{color:#d5a853;font-family:DM Mono,monospace;font-size:11px}.footprint-status span{color:#8ea3ac;text-align:right;font-family:DM Mono,monospace;font-size:11px}.footprint-status span.live-dimensions{color:#ffe09a;font-weight:700}.footprint-status small{color:#58727e;grid-column:1/-1;font-size:9px}.footprint-corner-tool{grid-template-columns:1fr auto;gap:7px;display:grid}.footprint-corner-tool label{color:#708995;grid-template-columns:1fr 58px 12px;align-items:center;gap:4px;font-size:8px;display:grid}.footprint-corner-tool input{color:#c7d7dd;background:#08151c;border:1px solid #304b57;border-radius:4px;width:58px;height:29px;padding:0 6px;font-family:DM Mono,monospace;font-size:8px}.footprint-corner-tool button{color:#e0bf79;cursor:pointer;background:#241f15;border:1px solid #67552f;border-radius:4px;min-height:29px;padding:4px 9px;font-size:8px}.footprint-corner-tool button:disabled{color:#4f6873;cursor:not-allowed;background:#0a171e;border-color:#2b404a}.vertex-editor{background:#08151c;border:1px solid #2d4651;border-radius:5px;flex-direction:column;gap:5px;max-height:250px;padding:8px;display:flex;overflow:auto}.vertex-editor-heading,.vertex-row{align-items:center;gap:6px;display:grid}.vertex-editor-heading{color:#8da2ad;border-bottom:1px solid #203743;grid-template-columns:1fr auto;padding-bottom:5px;font-size:8px}.vertex-editor-heading button,.vertex-row button{color:#d6bd87;cursor:pointer;background:#1c2016;border:1px solid #4a593d;border-radius:4px;min-height:25px;padding:3px 7px;font-size:8px}.vertex-row{grid-template-columns:22px 1fr 1fr 26px}.vertex-row>b{color:#d2a552;font-family:DM Mono,monospace;font-size:8px}.vertex-row label{color:#607985;grid-template-columns:12px 1fr;align-items:center;font-size:8px;display:grid}.vertex-row input{color:#c6d6dc;background:#071219;border:1px solid #29434f;border-radius:3px;width:100%;height:27px;padding:0 6px;font-family:DM Mono,monospace;font-size:8px}.ifc-flow{white-space:nowrap;background:#091820;border:1px solid #243c48;border-radius:5px;align-items:center;gap:5px;padding:9px;display:flex;overflow:hidden}.ifc-flow span{color:#71b9c1;text-overflow:ellipsis;font-family:DM Mono,monospace;font-size:7px;overflow:hidden}.ifc-flow i{color:#4d6875;font-size:9px;font-style:normal}.builder-drawer form,.source-intake-drawer form{flex-direction:column;gap:13px;display:flex}.source-flow{white-space:nowrap;background:#091a18;border:1px solid #26483d;border-radius:5px;align-items:center;gap:6px;padding:9px;display:flex}.source-flow span{color:#77c9a8;text-overflow:ellipsis;font-family:DM Mono,monospace;font-size:7px;overflow:hidden}.source-flow i{color:#527368;font-size:9px;font-style:normal}.source-drop{color:#b9dfd0;cursor:pointer;background:#27826114;border:1px dashed #3e7a65;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:76px;padding:14px;display:flex;position:relative}.source-drop:hover,.source-drop.has-file{background:#2f977021;border-color:#55bd92}.source-drop input{opacity:0;width:1px;height:1px;position:absolute}.source-drop span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-weight:600;overflow:hidden}.source-drop small,.calibration-note{color:#698c7e;margin:0;font-size:8px;line-height:1.5}.recognize-button{color:#dffbed;text-align:left;cursor:pointer;background:linear-gradient(135deg,#1c6048,#183d32);border:1px solid #3d9c76;border-radius:5px;grid-template-rows:auto auto;grid-template-columns:28px 1fr;column-gap:10px;min-height:52px;padding:9px 13px;display:grid}.recognize-button:disabled{cursor:wait;opacity:.65}.recognize-button>span{color:#68ddb0;grid-row:1/3;align-self:center;font-size:23px}.recognize-button strong{align-self:end;font-size:11px}.recognize-button small{color:#82bda5;align-self:start;margin-top:2px;font-size:8px}.intake-result{background:#2d7c511a;border:1px solid #46ac7857;border-radius:5px;flex-direction:column;gap:5px;padding:10px;display:flex}.raw-recognition-preview{background:#08151c;border:1px solid #34515e;border-radius:5px;flex-direction:column;gap:7px;padding:10px;display:flex}.raw-recognition-heading,.raw-recognition-metrics{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px 9px;display:flex}.raw-recognition-heading strong,.raw-recognition-heading span,.raw-recognition-metrics span,.raw-recognition-preview small{font-family:DM Mono,monospace;font-size:8px}.raw-recognition-heading span.is-passed{color:#72d4a7}.raw-recognition-heading span.is-rejected,.raw-recognition-preview small{color:#e0a06f}.raw-recognition-metrics{color:#7897a4}.raw-recognition-canvas{background:#e8ecec;border:1px solid #29434f;width:100%;max-height:360px;display:block}.raw-recognition-space{fill:#27a9bf33;stroke:#28b3c8;stroke-width:.002px}.raw-recognition-wall{stroke:#ffbb4d;stroke-width:.0035px}.raw-recognition-wall.is-external{stroke:#ff735f}.raw-recognition-opening{fill:#72e3a5;stroke:#082018;stroke-width:.0015px}.intake-result strong{color:#8bd3aa;font-size:10px}.intake-result span,.intake-result small{color:#739987;font-size:8px;line-height:1.45}.builder-section{border-top:1px solid #1f333e;flex-direction:column;gap:9px;padding-top:12px;display:flex}.builder-section-title{align-items:center;gap:8px;display:flex}.builder-section-title>span{color:#d4a74f;font-family:DM Mono,monospace;font-size:8px}.builder-section-title strong{color:#a9bcc4;letter-spacing:.04em;text-transform:uppercase;font-size:9px;font-weight:600}.builder-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.builder-field{flex-direction:column;gap:5px;min-width:0;display:flex}.builder-field-wide{width:100%}.builder-field>span:first-child{color:#6f8894;font-size:8px}.builder-field input,.builder-field select{color:#c6d6dc;background:#08151c;border:1px solid #29434f;border-radius:4px;outline:none;width:100%;height:34px;padding:0 9px;font-family:DM Mono,monospace;font-size:9px}.builder-field input:focus,.builder-field select:focus{border-color:#53858b;box-shadow:0 0 0 2px #3f7d8421}.number-input{display:block;position:relative}.number-input input{padding-right:31px}.number-input small{color:#57717e;pointer-events:none;font-family:DM Mono,monospace;font-size:8px;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.builder-check{background:#0a1820;border:1px solid #263f4a;border-radius:4px;flex-direction:row;justify-content:flex-end;align-items:center;min-height:54px;padding:0 9px}.builder-check input{accent-color:#d0a04b;width:14px;height:14px;margin:0}.builder-check>span:last-child{color:#849ba5;font-size:8px;line-height:1.35}.builder-check-wide{grid-column:1/-1}.generate-button{color:#fff0c7;text-align:left;cursor:pointer;background:linear-gradient(135deg,#6b491d,#3d2d1b);border:1px solid #b78635;border-radius:5px;grid-template-rows:auto auto;grid-template-columns:28px 1fr;column-gap:10px;min-height:52px;padding:9px 13px;display:grid;box-shadow:0 10px 24px #0000002e}.generate-button:hover{background:linear-gradient(135deg,#795322,#49351d);border-color:#e0ad50}.generate-button>span{color:#f0bc5a;grid-row:1/3;align-self:center;font-size:22px}.generate-button strong{align-self:end;font-size:11px}.generate-button small{color:#c9a96d;align-self:start;margin-top:2px;font-size:8px}.builder-result{background:#2d7c5117;border:1px solid #46ac784d;border-radius:5px;grid-template-columns:repeat(5,1fr);gap:5px;padding:9px;display:grid}.builder-result div{flex-direction:column;gap:3px;min-width:0;display:flex}.builder-result span{color:#658879;font-size:7px}.builder-result strong{color:#84c9a3;font-family:DM Mono,monospace;font-size:12px}.builder-error{color:#e09b96;background:#9c423d1a;border:1px solid #c45b5461;border-radius:4px;margin:0;padding:9px;font-size:9px;line-height:1.45}.advanced-json-link{color:#637f8c;text-align:left;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:8px;-webkit-text-decoration:underline #304a56;text-decoration:underline #304a56}.advanced-json-link:hover{color:#9bb4be}.json-file-button{color:#b8d1d7;cursor:pointer;background:#3796a012;border:1px dashed #3a6671;border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;display:flex}.json-file-button:hover{background:#3796a01f;border-color:#51a7b0}.json-file-button input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.json-file-button span{font-size:11px;font-weight:600}.json-file-button small{color:#67828e;font-size:9px}.authoring-field{flex-direction:column;gap:5px;display:flex}.authoring-field>span{color:#76909c;font-size:9px}.authoring-field input,.authoring-field textarea{color:#c6d6dc;background:#08151c;border:1px solid #29434f;border-radius:4px;outline:none;width:100%;font-family:DM Mono,monospace;font-size:9px}.authoring-field input{height:34px;padding:0 9px}.authoring-field textarea{resize:vertical;min-height:150px;padding:9px;line-height:1.45}.authoring-field input:focus,.authoring-field textarea:focus{border-color:#3f7d84;box-shadow:0 0 0 2px #3f7d8421}.preview-button,.save-button{color:#d8e8eb;cursor:pointer;background:#15313a;border:1px solid #39757d;border-radius:4px;min-height:34px;font-size:10px;font-weight:600}.preview-button:hover,.save-button:hover:not(:disabled){background:#19404a;border-color:#50a1aa}.authoring-save{border-top:1px solid #203743;flex-direction:column;gap:10px;padding-top:14px;display:flex}.save-button{background:#173529;border-color:#3b765d}.save-button:disabled{cursor:not-allowed;opacity:.5}.authoring-message{border:1px solid;border-radius:4px;margin:0;padding:9px;font-size:9px;line-height:1.45}.authoring-message.is-success{color:#87cfa7;background:#378e5e1a;border-color:#53b17c59}.authoring-message.is-error{color:#e09b96;background:#9c423d1a;border-color:#c45b5461}.viewer-surface,.viewport-placeholder{width:100%;height:100%}.viewer-surface canvas{outline:none;width:100%;height:100%;display:block}.viewer-reset{color:#9db0ba;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c1922db;border:1px solid #29414e;border-radius:4px;align-items:center;gap:7px;padding:7px 10px;font-size:9px;display:flex;position:absolute;top:14px;right:14px}.viewer-reset:hover{color:#d8e5ea;border-color:#416475}.viewer-reset svg{fill:currentColor;width:13px;height:13px}.viewer-hint{color:#66808d;white-space:nowrap;pointer-events:none;background:#09141bd1;border:1px solid #253a46;border-radius:4px;padding:6px 9px;font-family:DM Mono,monospace;font-size:8px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.viewer-axis{z-index:2;color:#75909e;pointer-events:none;width:46px;height:46px;font-family:DM Mono,monospace;font-size:8px;position:absolute;bottom:17px;right:17px}.axis{position:absolute}.axis:before{content:"";transform-origin:0;background:currentColor;width:22px;height:1px;position:absolute}.axis-x{color:#e16666;bottom:9px;right:0}.axis-x:before{bottom:4px;right:9px}.axis-y{color:#64a5e8;bottom:5px;left:3px}.axis-y:before{bottom:7px;left:8px;transform:rotate(150deg)}.axis-z{color:#69c689;top:0;left:21px}.axis-z:before{top:11px;left:3px;transform:rotate(90deg)}.viewport-state{background:radial-gradient(circle,#10232e,#071018 60%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.viewport-state strong{color:#cbdbe2;margin-top:20px;font-size:13px}.viewport-state p{color:#657e8b;text-align:center;max-width:320px;margin:7px 0 0;font-size:10px;line-height:1.5}.loading-cube{border:1px solid #44b5bf;width:34px;height:34px;animation:1.6s ease-in-out infinite cube-pulse;transform:rotate(45deg);box-shadow:inset 0 0 18px #44b5bf29,0 0 22px #44b5bf21}@keyframes cube-pulse{50%{opacity:.55;transform:rotate(135deg)scale(.72)}}.error-state .error-symbol{color:#e78383;border:1px solid #b96060;border-radius:50%;place-items:center;width:36px;height:36px;font-family:DM Mono,monospace;display:grid}.error-state button{cursor:pointer;background:#10212b;border:1px solid #385767;border-radius:4px;margin-top:18px;padding:7px 12px;font-size:10px}.inspector-heading{z-index:2;background:#0b151d;border-bottom:1px solid #1e303b;padding:22px 18px 16px;position:sticky;top:0}.close-inspector{color:#78909d;cursor:pointer;background:0 0;border:1px solid #2a404c;border-radius:4px;width:24px;height:24px;padding:0;line-height:20px}.inspector-content{padding:16px 18px 28px}.object-identity{padding-bottom:16px}.object-identity h3{color:#eef4f6;margin:11px 0 5px;font-size:15px;line-height:1.35}.object-identity code{color:#66838f;font-family:DM Mono,monospace;font-size:9px}.ifc-chip{color:#63c4cc;border-color:#46b8c154;display:inline-block}.property-list{border-top:1px solid #1c2d37;margin:0}.property-list div{border-bottom:1px solid #172730;grid-template-columns:minmax(86px,.85fr) minmax(0,1.15fr);gap:10px;padding:9px 0;display:grid}.property-list dt,.property-list dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:9px;line-height:1.35}.property-list dt{color:#647d8a}.property-list dd{color:#aebfc7;font-family:DM Mono,monospace}.inspector-section{margin-top:22px}.section-title{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.section-title strong{color:#8da2ad;letter-spacing:.06em;font-size:9px;font-weight:600}.property-list.compact div{padding:7px 0}.relation-list{flex-direction:column;gap:5px;display:flex}.relation-list button{text-align:left;cursor:pointer;background:#0e1b23;border:1px solid #1e303a;border-radius:4px;flex-direction:column;align-items:flex-start;gap:4px;padding:8px;display:flex}.document-row{background:#0e1b23;border:1px solid #1e303a;border-radius:4px;flex-direction:column;align-items:flex-start;gap:4px;padding:8px;display:flex}.relation-list button:hover{border-color:#355362}.relation-list span{color:#607d8b;font-family:DM Mono,monospace;font-size:7px}.relation-list strong{color:#aabcc4;font-size:9px;font-weight:500}.empty-inspector{color:#68808d;text-align:center;flex-direction:column;align-items:center;padding:90px 32px 0;display:flex}.selection-glyph{color:#4b7789;border:1px solid #263d49;place-items:center;width:50px;height:50px;margin-bottom:20px;font-size:25px;display:grid;transform:rotate(45deg)}.empty-inspector strong{color:#91a8b3;font-size:11px}.empty-inspector p,.empty-copy{color:#5b7481;margin:8px 0 0;font-size:9px;line-height:1.6}.statusbar{z-index:20;color:#58727f;background:#09131a;border-top:1px solid #20313d;justify-content:space-between;align-items:center;gap:20px;padding:0 14px;font-family:DM Mono,monospace;font-size:8px;display:flex}@media (width<=1050px){.workspace{grid-template-columns:220px minmax(0,1fr) 250px}.format-badges span:first-child,.origin-badge{display:none}}@media (width<=820px){.workspace{grid-template-columns:190px minmax(0,1fr)}.inspector-panel,.model-title{display:none}.topbar{grid-template-columns:auto auto 1fr}.model-actions,.format-badges{justify-self:end}.format-badges{display:none}}@media (width<=620px){.app-shell{grid-template-rows:56px minmax(0,1fr) 24px}.workspace{display:block;position:relative}.viewport-panel{width:100%;height:100%}.layer-panel,.format-badges span:not(.live-badge),.brand-copy span{display:none}.authoring-toggle,.builder-toggle,.source-intake-toggle{padding:7px}.authoring-toggle strong,.builder-toggle strong,.source-intake-toggle strong,.statusbar span:nth-child(2){display:none}}@media (prefers-reduced-motion:reduce){.loading-cube{animation:none}}.builder-tabs{z-index:5;scrollbar-width:thin;background:#0a171ffa;grid-template-columns:repeat(6,minmax(132px,1fr));gap:6px;padding:10px 0;display:grid;position:sticky;top:-17px;overflow-x:auto}.builder-tabs button{color:#77919c;text-align:left;cursor:pointer;background:#0a1a22;border:1px solid #294651;border-radius:5px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-content:center;gap:2px 7px;min-width:128px;min-height:64px;padding:8px 10px;display:grid}.builder-tabs button b{color:#526e7a;grid-row:1/3;font-family:DM Mono,monospace;font-size:9px}.builder-tabs button span{color:#b4c8cf;font-size:10px;font-weight:700}.builder-tabs button small{color:#5f7a86;font-size:7px;line-height:1.3}.builder-tabs button:hover,.builder-tabs button.is-active{color:#ffe09a;background:#2a2419;border-color:#d0a04b}.builder-tabs button.is-active b,.builder-tabs button.is-active span{color:#ffe09a}.builder-tabs button.is-active small{color:#caa65d}.builder-tab-panel{min-height:430px;padding:3px 2px 10px}.builder-tab-panel[hidden]{display:none}.facades-tab-panel:not([hidden]){grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.builder-tab-footer{z-index:5;background:#0a171ffa;grid-template-columns:112px minmax(260px,1fr) 112px;gap:9px;padding:10px 0;display:grid;position:sticky;bottom:-17px}.tab-step-button{color:#a8bec7;cursor:pointer;background:#10252d;border:1px solid #315463;border-radius:5px}.tab-step-button:disabled{opacity:.35;cursor:default}.editor-history-toolbar,.facade-toolbar,.plan-toolbar,.service-toolbar,.tool-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.editor-history-toolbar{background:#0d1d24;border:1px solid #274652;margin:12px 0;padding:9px}.editor-history-toolbar span{color:#78919c;font-size:9px}.editor-history-toolbar button,.facade-toolbar button,.plan-toolbar button,.tool-actions button,.editor-item-row button{color:#a8bec7;cursor:pointer;background:#10252d;border:1px solid #315463;border-radius:3px;padding:7px 10px}.editor-history-toolbar button:disabled,.tool-actions button:disabled{opacity:.35;cursor:default}.facade-toolbar button.is-active,.plan-toolbar button.is-active{color:#43c8b1;background:#123630;border-color:#43c8b1}.editor-selection-toolbar{color:#6f8994;background:#0a1920;border:1px dashed #315463;border-radius:4px;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:12px;margin:0 0 12px;padding:10px 12px;font-size:9px;display:grid}.editor-selection-toolbar.has-selection{background:#241f16;border-style:solid;border-color:#e4b45d}.editor-selection-toolbar div{gap:3px;display:grid}.editor-selection-toolbar small{color:#718d98;text-transform:uppercase;letter-spacing:.08em;font-size:7px}.editor-selection-toolbar strong{color:#d6e4e8;font-size:10px}.editor-selection-toolbar.has-selection strong{color:#ffe09a}.editor-selection-toolbar kbd{color:#d7e4e8;background:#071219;border:1px solid #526974;border-radius:3px;padding:2px 5px;font-family:DM Mono,monospace;font-size:8px}.editor-selection-toolbar button{color:#ffe3b0;cursor:pointer;background:#4a2b1d;border:1px solid #b77d3c;border-radius:3px;padding:8px 12px}.professional-tool-panel{background:#0b1920;border:1px solid #233e49;border-radius:4px;margin:12px 0;padding:14px}.facade-locator{background:#071219;border:1px solid #294650;grid-template-columns:minmax(0,1fr) minmax(150px,.55fr);align-items:center;gap:12px;margin:10px 0;padding:9px;display:grid}.facade-locator svg{width:100%;height:175px;display:block}.facade-locator polygon{fill:#33606e40;stroke:none}.facade-locator .facade-visible-line{stroke:#526e79;stroke-width:1.25px;vector-effect:non-scaling-stroke}.facade-locator .facade-locator-wall.is-selected .facade-visible-line{stroke:#ffe09a;stroke-width:5px}.facade-locator .facade-hit-target{stroke:#0000;stroke-width:18px;vector-effect:non-scaling-stroke}.facade-locator .facade-locator-wall.is-clickable{cursor:pointer}.facade-locator .facade-locator-wall:focus{outline:none}.facade-locator .facade-locator-wall:focus .facade-visible-line,.facade-locator .facade-locator-wall:hover .facade-visible-line{stroke:#43c8b1}.facade-locator circle{fill:#102932;stroke:#6f909c;stroke-width:1.2px;vector-effect:non-scaling-stroke;pointer-events:none}.facade-locator .facade-locator-wall.is-selected circle{fill:#ffe09a;stroke:#ffe09a}.facade-locator text{fill:#d2e0e5;text-anchor:middle;pointer-events:none;font-family:DM Mono,monospace;font-weight:700}.facade-locator .facade-locator-wall.is-selected text{fill:#15232a}.editor-field-note.is-error{color:#ff9e8d}.facade-locator figcaption{flex-direction:column;gap:6px;display:flex}.facade-locator figcaption strong{color:#ffe09a;font-size:11px}.facade-locator figcaption span{color:#6e8994;font-size:9px;line-height:1.45}.tool-panel-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.tool-panel-heading div{align-items:center;gap:8px;display:flex}.tool-panel-heading div span{color:#43c8b1;font-family:DM Mono,monospace;font-size:9px}.tool-panel-heading strong{color:#d5e1e5;font-size:11px}.tool-panel-heading small{color:#53717e;text-align:right;font-family:DM Mono,monospace;font-size:7px}.facade-toolbar,.plan-toolbar,.service-toolbar{margin-bottom:10px}.facade-toolbar label{color:#77929d;align-items:center;gap:7px;font-size:9px;display:flex}.facade-toolbar select,.plan-toolbar select,.service-toolbar select,.tool-actions select{color:#b3c7ce;background:#0d2028;border:1px solid #294651;padding:6px}.facade-elevation,.floor-plan-editor{color:#25434e;background:#071219;border:1px solid #294650;width:100%;min-height:190px;margin:10px 0;display:block}.facade-elevation{height:240px;min-height:240px}.facade-mode-status{color:#67828d;justify-content:space-between;gap:10px;margin-top:8px;font-size:8px;display:flex}.facade-mode-status strong{color:#9fc3ce}.facade-elevation>rect:first-child{fill:#162a32;stroke:#75909b;stroke-width:.04px}.facade-elevation line{stroke:#34505b;stroke-width:.025px}.facade-elevation rect.window{fill:#4fa9c1;stroke:#c4edf4;stroke-width:.04px}.facade-elevation rect.door{fill:#b88b5d;stroke:#f2d7b7;stroke-width:.04px}.facade-elevation path.balcony{fill:none;stroke:#efb75d;stroke-width:.12px}.facade-elevation .is-selectable{cursor:pointer}.facade-elevation rect.is-authoring-selected,.facade-elevation path.is-authoring-selected{stroke:#fff19b;stroke-width:.2px;filter:drop-shadow(0 0 3px #ffc857)}.balcony-plan{background:#071219;border:1px solid #294650;width:100%;height:230px;margin:10px 0;display:block}.balcony-plan pattern path{fill:none;stroke:#1d3843;stroke-width:.035px}.balcony-plan .building-footprint{fill:#33606e40;stroke:#91aab4;stroke-width:.13px}.balcony-plan .selected-facade{stroke:#ffe09a;stroke-width:.28px;vector-effect:non-scaling-stroke}.balcony-plan .balcony-footprint polygon{fill:#de9e4659;stroke:#d9a04d;stroke-width:.1px}.facade-elevation .balcony-loggia{stroke:#d0c0a0;stroke-width:.18px}.facade-elevation .balcony-glazed{stroke:#69d8ef;stroke-width:.16px}.balcony-plan .balcony-footprint.balcony-loggia polygon{fill:#beae8f6b;stroke:#d0c0a0}.balcony-plan .balcony-footprint.balcony-glazed polygon{fill:#4cb8d74d;stroke:#69d8ef}.balcony-plan .balcony-footprint.is-authoring-selected polygon{fill:#ffbe4f99;stroke:#ffe0a0;stroke-width:.16px}.balcony-plan .balcony-footprint.is-selectable{cursor:pointer}.balcony-plan .balcony-footprint.is-draft polygon{fill:#43c8b124;stroke:#43c8b1;stroke-width:.14px;stroke-dasharray:.35 .25}.balcony-plan .balcony-footprint.is-draft text{fill:#75e3d1}.balcony-plan .balcony-footprint text{fill:#e8c47d;text-anchor:middle;paint-order:stroke;stroke:#071219;stroke-width:.12px;font-size:.7px}.compact-grid,.tool-actions{margin:10px 0}.placement-status{background:#2a2418;border:1px solid #765f31;border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.placement-status>div{flex-direction:column;gap:4px;display:flex}.placement-status strong{color:#ffe09a;font-size:10px}.placement-status span{color:#b59b67;font-size:8px;line-height:1.4}.placement-status button{color:#fff0c7;cursor:pointer;background:#6b491d;border:1px solid #d0a04b;border-radius:4px;min-height:38px;padding:7px 13px;font-weight:700}.balcony-access-mode{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:12px 0 8px;display:grid}.balcony-access-mode button{color:#77929d;cursor:pointer;background:#0a1a21;border:1px solid #294651;border-radius:4px;min-height:38px}.balcony-access-mode button.is-active{color:#c9fff5;background:#12332f;border-color:#43c8b1}.balcony-access-controls{background:#0d2028;border:1px solid #315463;border-radius:5px;padding:10px}.balcony-access-controls .editor-field-note{grid-column:1/-1;margin:0}.balcony-dimension-readout{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:10px 0;display:grid}.balcony-dimension-readout span{background:#091a21;border:1px solid #294651;border-radius:4px;flex-direction:column;gap:4px;min-width:0;padding:8px;display:flex}.balcony-dimension-readout small{color:#64818c;font-size:7px}.balcony-dimension-readout strong{color:#ffe09a;font-family:DM Mono,monospace;font-size:10px}.balcony-access-elevation{cursor:crosshair;height:300px;min-height:300px}.balcony-access-elevation .balcony-access-draft rect{opacity:.88;stroke:#72ead6;stroke-dasharray:.12 .08}.balcony-access-elevation path.balcony.draft{stroke:#72ead6;stroke-width:.16px;stroke-dasharray:.25 .14}.balcony-access-elevation .access-axis{stroke:#ffdf8e;stroke-width:.08px;stroke-dasharray:.22 .14;pointer-events:none}.placement-status button:disabled{color:#68777e;cursor:not-allowed;background:#263238;border-color:#42515a}.editor-field-note{color:#83a9b1;background:#0d252b;border-left:3px solid #43c8b1;margin:4px 0 10px;padding:8px 10px;font-size:9px;line-height:1.5}.editor-item-list{gap:6px;margin-top:10px;display:grid}.editor-item-row{color:#829aa5;background:#0d2028;border:1px solid #203944;flex-wrap:wrap;align-items:center;gap:8px;padding:7px;font-size:8px;display:flex}.editor-item-row strong{color:#c2d3d9}.editor-item-row label{align-items:center;gap:4px;display:flex}.editor-item-row input{color:#c7d7dd;background:#09181e;border:1px solid #2b4854;width:58px;padding:4px}.editor-item-row>input{width:130px}.editor-item-row button{margin-left:auto;padding:4px 7px}.editor-item-row.is-selectable{cursor:pointer}.editor-item-row.is-authoring-selected{background:#282218;border-color:#e4b45d;box-shadow:inset 3px 0 #ffc857}.ifc-type-library{color:#718b96;margin-top:12px;font-size:9px}.ifc-type-library summary{cursor:pointer;color:#9bb2bb}.ifc-type-library div{border-bottom:1px solid #1c313a;grid-template-columns:90px 1fr;gap:3px 8px;padding:6px 0;display:grid}.ifc-type-library code{color:#43c8b1;font-size:8px}.ifc-type-library small{color:#55727e;grid-column:2}.floor-plan-editor{cursor:default;touch-action:none;-webkit-user-select:none;user-select:none}.floor-plan-editor.tool-room,.floor-plan-editor.tool-wall{cursor:crosshair}.floor-plan-editor.tool-door{cursor:copy}.floor-plan-editor pattern path{fill:none;stroke:#1d3843;stroke-width:.035px}.floor-plan-editor .footprint{fill:#33606e40;stroke:#c1d2d8;stroke-width:.16px}.floor-plan-editor .space{fill:#43c8b129;stroke:#43c8b1;stroke-width:.1px}.floor-plan-editor.tool-select .space{cursor:pointer}.floor-plan-editor g.is-selected .space{fill:#ffc8573d;stroke:#ffc857;stroke-width:.18px}.floor-plan-editor .internal-wall{stroke:#e8d8bd;stroke-width:.18px}.floor-plan-editor .internal-wall.is-derived{stroke:#d8eee8}.floor-plan-editor.tool-door .internal-wall{cursor:copy;stroke-width:.32px}.floor-plan-editor .interior-door-symbol{cursor:pointer}.floor-plan-editor .door-opening-gap{stroke:#0a1920;stroke-width:.3px}.floor-plan-editor .door-leaf{stroke:#ffc857;stroke-width:.12px}.floor-plan-editor .door-swing{fill:none;stroke:#ffc857;stroke-width:.07px;stroke-dasharray:.15 .08}.floor-plan-editor .door-hit-target{stroke:#0000;stroke-width:.5px}.floor-plan-editor .interior-door-symbol.is-selected .door-leaf,.floor-plan-editor .interior-door-symbol.is-selected .door-swing{stroke:#ff6f61;stroke-width:.14px}.floor-plan-editor .floor-plan-snap-guide{pointer-events:none;stroke:#62e5bf;stroke-width:.06px;stroke-dasharray:.22 .12}.floor-plan-editor .space-name,.floor-plan-editor .space-dimension{pointer-events:none;fill:#d8eee8;text-anchor:middle;dominant-baseline:central;font-family:DM Mono,monospace;font-size:.48px}.floor-plan-editor .space-dimension{fill:#8fb2bc;font-size:.38px}.floor-plan-editor .space-dimension.vertical{text-anchor:start}.floor-plan-editor .draft-room{fill:#ea657c29;stroke:#ea657c;stroke-width:.12px;stroke-dasharray:.3 .2}.floor-plan-editor .draft-wall{pointer-events:none;stroke:#ea657c;stroke-width:.18px;stroke-dasharray:.3 .2}.floor-plan-editor .draft-point{fill:#ea657c}.floor-plan-link-banner,.floor-plan-message{color:#a6c4cc;background:#0d252b;border-left:3px solid #43c8b1;justify-content:space-between;align-items:center;gap:10px;margin:8px 0;padding:8px 10px;font-size:9px;display:flex}.floor-plan-link-banner button,.floor-plan-inspector button,.floor-plan-copy-panel button{color:#b7cbd2;cursor:pointer;background:#10252d;border:1px solid #315463;border-radius:3px;padding:6px 8px}.floor-plan-message{border-left-color:#d0a04b;display:block}.floor-plan-inspector{background:#0a1920;border:1px solid #294650;grid-template-columns:repeat(3,minmax(110px,1fr));gap:8px;margin:10px 0;padding:10px;display:grid}.floor-plan-inspector>strong{color:#d8e5e8;grid-column:1/-1}.floor-plan-space-origin{color:#91bdb5;background:#43c8b112;border-left:3px solid #43c8b1;grid-column:span 2;align-items:center;padding:6px 8px;font-size:8px;display:flex}.floor-plan-inspector label{color:#78939d;gap:4px;font-size:8px;display:grid}.floor-plan-inspector input,.floor-plan-inspector select{color:#c3d4da;background:#07171d;border:1px solid #294651;min-width:0;padding:6px}.plan-toolbar .copy-plan-trigger{color:#f2c45b;background:#d0a04b1a;border-color:#d0a04b;margin-left:auto}.floor-plan-copy-panel{color:#8da6af;background:#0a1920;border:1px solid #44606a;border-radius:4px;gap:11px;margin:10px 0;padding:12px;font-size:9px;display:grid}.floor-plan-copy-panel>header{justify-content:space-between;align-items:start;gap:14px;display:flex}.floor-plan-copy-panel>header div{gap:3px;display:grid}.floor-plan-copy-panel>header strong{color:#d8e5e8;font-size:11px}.floor-plan-copy-panel>header span{color:#78939d}.copy-mode{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.copy-mode>label{cursor:pointer;border:1px solid #294651;align-items:start;gap:8px;padding:9px;display:flex}.copy-mode>label.is-active{background:#43c8b114;border-color:#43c8b1}.copy-mode>label span{gap:3px;display:grid}.copy-mode>label strong{color:#c8dadd}.copy-mode>label small{color:#78939d;font-size:8px}.copy-target-scope{border:1px solid #294651;margin:0;padding:10px}.copy-target-scope legend{color:#b6cbd2;padding:0 5px}.copy-scope-options,.copy-range,.copy-levels{flex-wrap:wrap;gap:10px;display:flex}.copy-scope-options label,.copy-range label,.copy-levels label{align-items:center;gap:5px;display:flex}.copy-range,.copy-levels{margin-top:10px}.copy-range select{color:#c3d4da;background:#07171d;border:1px solid #294651;padding:5px}.copy-target-summary{color:#8da6af;margin:0}.copy-target-summary strong{color:#c8dadd}.copy-replace-warning{color:#f0a6b2;background:#ea657c14;border-left:3px solid #ea657c;align-items:center;gap:7px;padding:8px 10px;display:flex}.floor-plan-copy-panel .copy-plan-apply{color:#ffe09a;background:#2a2419;border-color:#d0a04b;justify-self:start}.floor-plan-copy-panel .copy-plan-apply:disabled{opacity:.35;cursor:default}.floor-plan-wall-row select{color:#b9cdd3;background:#09181e;border:1px solid #294651;padding:4px}.floor-plan-wall-row label{color:#78939d}.core-access-intro{color:#8da6af;margin:8px 0 12px;font-size:10px;line-height:1.55}.core-layout-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.core-layout-choices button{text-align:left;color:#b9cdd3;background:#09181e;border:1px solid #294651;gap:5px;min-height:68px;padding:10px 12px;display:grid}.core-layout-choices button.is-active{color:#f2c45b;background:#d0a04b1a;border-color:#d0a04b}.core-layout-choices button span{color:#78939d;font-size:9px;line-height:1.35}.core-services-toggle{color:#8da6af;align-items:center;gap:8px;margin:0 0 10px;font-size:9px;display:flex}.core-layout-status{color:#78939d;justify-content:space-between;align-items:center;gap:12px;margin:8px 0;font-size:9px;display:flex}.core-layout-status label{align-items:center;gap:8px;display:flex}.core-layout-status select{color:#b9cdd3;background:#09181e;border:1px solid #294651;padding:5px}.core-layout-status strong{color:#f08a73}.core-layout-status strong.is-ready{color:#43c8b1}.core-layout-preview{margin-bottom:10px}.core-placement-toolbar{align-items:stretch}.core-placement-toolbar label{color:#78939d;border-right:1px solid #294651;align-items:center;gap:7px;padding-right:8px;font-size:9px;display:flex}.core-placement-toolbar button{min-height:34px}.manual-core-canvas{cursor:crosshair}.manual-core-canvas .floor-plan-core-object{pointer-events:all;cursor:pointer}.manual-core-canvas .floor-plan-core-object.is-selected polygon{stroke:#fff0b6;stroke-width:.22px;filter:drop-shadow(0 0 .18px #ffc85f)}.core-placement-draft{pointer-events:none;fill:#43c8b138;stroke:#43c8b1;stroke-width:.14px;stroke-dasharray:.28 .16;vector-effect:non-scaling-stroke}.core-object-inspector button{color:#a8bec7;background:#10252d;border:1px solid #315463;padding:7px 9px}.floor-plan-core-object{pointer-events:none}.floor-plan-core-object polygon{fill:#d8973b5c;stroke:#ffc470;stroke-width:.13px;stroke-dasharray:.28 .16;vector-effect:non-scaling-stroke}.floor-plan-core-object.core-stair polygon{fill:#d0a04b7a}.floor-plan-core-object.core-lift polygon{fill:#4984b785;stroke:#83c4ed}.floor-plan-core-object.core-shaft polygon,.floor-plan-core-object.core-service_risers polygon{fill:#b95c797a;stroke:#ed9bb5}.floor-plan-core-object.core-equipment polygon{fill:#668bb375;stroke:#9ac5ed}.floor-plan-core-object text{fill:#f4e6c9;text-anchor:middle;dominant-baseline:middle;font-size:.34px}.floor-plan-core-warning,.floor-plan-core-conflict{color:#d8c290;background:#d0a04b17;border-left:3px solid #d0a04b;margin:8px 0;padding:9px 11px;font-size:9px}.floor-plan-core-conflict{color:#f3a29f;background:#ef6f6c17;border-left-color:#ef6f6c}.floor-plan-editor .has-core-conflict .space{fill:#ef6f6c4d;stroke:#ef6f6c}.manual-core-confirmation{color:#d8c290;margin-top:10px;font-size:9px}.manual-core-confirmation button{color:#43c8b1;background:#43c8b114;border:1px solid #43c8b1;padding:8px 12px}.manual-core-omission-warning{background:#d0a04b17;border-left:3px solid #d0a04b;flex-wrap:wrap;align-items:center;gap:9px;padding:9px 11px;display:flex}.manual-core-omission-warning strong{color:#f2c45b}.manual-core-omission-warning span{color:#b9cdd3}.derived-wall-group{background:#09181e;border:1px solid #294651;grid-column:1/-1}.derived-wall-group summary{color:#b9cdd3;cursor:pointer;justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.derived-wall-group summary span{color:#78939d;font-size:9px}.derived-wall-group>p{color:#78939d;margin:0;padding:0 12px 10px;font-size:9px}.derived-wall-group>p code{color:#43c8b1}.derived-wall-group .editor-item-row{border-bottom:0;border-left:0;border-right:0}.floor-plan-editor .service-zone{fill:#e29e4173;stroke:#ffc470;stroke-width:.08px}.floor-plan-editor .vertical-element{stroke-width:.1px;vector-effect:non-scaling-stroke;pointer-events:none}.floor-plan-editor .vertical-element.stair{fill:#d0a04b94;stroke:#f0c776}.floor-plan-editor .vertical-element.lift{fill:#4984b799;stroke:#83c4ed}.floor-plan-editor .vertical-element.shaft{fill:#b95c798c;stroke:#ed9bb5}.floor-plan-editor .draft{fill:none;stroke:#ea657c;stroke-width:.12px;stroke-dasharray:.3 .2}@media (width<=620px){.tool-panel-heading{flex-direction:column;align-items:flex-start}.editor-item-row button{margin-left:0}}@media (width<=900px){.facades-tab-panel:not([hidden]){display:block}.footprint-preview svg{height:360px}}@media (width<=620px){.professional-builder{width:calc(100% - 16px)}.builder-tabs{grid-template-columns:repeat(6,126px);top:-17px}.core-layout-choices{grid-template-columns:1fr}.builder-tab-footer{grid-template-columns:82px minmax(190px,1fr) 82px}.footprint-preview svg{height:310px}.footprint-status{grid-template-columns:1fr}.footprint-status span{text-align:left}.facade-locator{grid-template-columns:1fr}.facade-locator svg{height:210px}.placement-status{flex-direction:column;align-items:stretch}.editor-selection-toolbar,.balcony-access-mode,.balcony-dimension-readout{grid-template-columns:1fr}}.ifc-placement-wheel{z-index:1200;pointer-events:none;position:fixed;inset:0}.placement-anchor{border:1px solid #68e6c2;border-radius:50%;width:14px;height:14px;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #37d6a924}.placement-anchor:before,.placement-anchor:after{content:"";background:#68e6c2;position:absolute}.placement-anchor:before{width:22px;height:1px;top:6px;left:-5px}.placement-anchor:after{width:1px;height:22px;top:-5px;left:6px}.placement-connector{width:100%;height:100%;position:fixed;inset:0;overflow:visible}.placement-connector line{stroke:#68e6c294;stroke-width:1px;stroke-dasharray:3 4}.placement-compact-menu{filter:drop-shadow(0 12px 25px #0000006b);align-items:flex-start;gap:7px;max-width:min(520px,100vw - 24px);display:flex;position:fixed}.placement-compact-menu.is-right{transform:translateY(-50%)}.placement-compact-menu.is-left{transform:translate(-100%,-50%)}.placement-action-list{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#081922f5;border:1px solid #294d55;border-radius:10px;gap:3px;min-width:132px;padding:5px;display:grid}.placement-action{color:#c7dadd;pointer-events:auto;text-align:left;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:7px;min-height:28px;padding:4px 7px;display:flex}.placement-action kbd{color:#7fa5ad;border:1px solid #476873;border-radius:4px;place-items:center;width:18px;height:18px;font:700 9px/1 DM Mono,monospace;display:inline-grid}.placement-action span{color:#d7e7e9;font-size:10px;font-weight:700}.placement-action.is-active{background:#10433dfa;border-color:#62e5bf;box-shadow:0 0 0 2px #4addb21f}.placement-options{pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#07141bf5;border:1px solid #355d63;border-radius:10px;gap:6px;width:min(300px,100vw - 175px);max-height:min(420px,100vh - 24px);padding:7px;display:grid;overflow:auto}.placement-option-group{gap:3px;display:grid}.placement-option-group>small{color:#71969d;letter-spacing:.07em;text-transform:uppercase;font:600 7px/1.2 DM Mono,monospace}.placement-option-group>div{flex-wrap:wrap;gap:3px;display:flex}.placement-option-group button{color:#a8c0c5;background:#0b212a;border:1px solid #294d55;border-radius:6px;min-height:24px;padding:3px 6px;font-size:8px;line-height:1.2}.placement-option-group button.is-active{color:#effff9;background:#103f3b;border-color:#62e5bf}.placement-options p{color:#87a8ad;margin:0;font:500 7px/1.3 DM Mono,monospace}.ifc-placement-wheel.is-invalid .placement-action.is-active,.ifc-placement-wheel.is-invalid .placement-options{border-color:#f06464}.ifc-placement-wheel.is-invalid .placement-anchor,.ifc-placement-wheel.is-invalid .placement-anchor:before,.ifc-placement-wheel.is-invalid .placement-anchor:after{background-color:#f06464;border-color:#f06464}.ifc-placement-wheel.is-invalid .placement-connector line{stroke:#f06464}.editor-selection-hud{z-index:1190;color:#dce9eb;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0a181ff0;border:1px solid #d6a94f;border-radius:9px;align-items:center;gap:10px;max-width:calc(100vw - 32px);min-height:38px;padding:6px 7px 6px 11px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #0000006b}.editor-selection-hud strong{text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-size:10px;overflow:hidden}.editor-selection-hud span{color:#8da6ab;white-space:nowrap;font-size:8px}.editor-selection-hud kbd{color:#ffe09a;font:700 8px/1 DM Mono,monospace}.editor-selection-hud button{color:#ffc8bc;background:#2b1d20;border:1px solid #6b5550;border-radius:6px;min-height:26px;padding:4px 8px;font-size:8px}@media (width<=640px){.placement-compact-menu{flex-direction:column;align-items:stretch}.placement-action-list{grid-template-columns:repeat(2,1fr)}.placement-options{width:min(300px,100vw - 24px)}.editor-selection-hud span{display:none}}.facade-equipment-panel .editor-item-row{grid-template-columns:minmax(130px,1.4fr) .8fr 1.2fr repeat(2,minmax(90px,.7fr)) auto}.format-badges .recognizer-badge{color:#8fe8c0;text-overflow:ellipsis;white-space:nowrap;background:#2689642e;border-color:#51c7968c;max-width:310px;overflow:hidden}.recognizer-badge i{background:#58d19f;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block;box-shadow:0 0 8px #58d19f}.recognizer-version{background:#2689641f;border:1px solid #51c79673;border-radius:4px;gap:3px;margin:6px 0;padding:8px 10px;display:grid}.recognizer-version small{color:#79a995;text-transform:uppercase;font-size:8px}.recognizer-version code{overflow-wrap:anywhere;color:#a9f0d0;font-family:DM Mono,monospace;font-size:9px}
