:root{font-family:'Segoe UI',system-ui,sans-serif;color-scheme:dark;--surface-glass:rgba(7,26,38,.94);--surface-opaque:#091d2a;--surface-elevated:#133240;--text-main:#f1f6f8;--text-muted:#b1c3cd;--accent:#27ecf2;--focus:#9acdff;--warning:#ffc45b;--error:#ff8994;--stroke:rgba(210,232,244,.17);--shadow:0 12px 48px #08131c25;font-synthesis:none}
body[data-theme=light]{color-scheme:light;--surface-glass:rgba(251,253,255,.94);--surface-opaque:#f7f9fa;--surface-elevated:#fff;--text-main:#17232c;--text-muted:#5d6f7b;--accent:#137c91;--focus:#1479d4;--warning:#b36a16;--error:#b73e48;--stroke:rgba(24,49,65,.14)}
*{box-sizing:border-box}body{margin:0;height:100dvh;overflow:hidden;color:var(--text-main);background:#151c23}button,input,select,output{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;color:inherit;background:var(--surface-elevated);border:1px solid var(--stroke);border-radius:10px;min-height:40px;padding:9px 14px;transition:background .12s,color .12s;font-size:14px}button:hover{border-color:var(--accent);background:var(--surface-opaque)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button.active,button[aria-pressed=true]{background:var(--accent);color:var(--surface-opaque);border-color:var(--accent)}button.primary{background:var(--accent);color:var(--surface-opaque);font-weight:600}.full{width:100%}.secondary{margin:8px 0}.text-button{background:none;color:var(--accent)}[hidden]{display:none!important}main{position:relative;width:100%;height:100dvh;overflow:hidden}#scene,#aps-viewer{position:absolute;inset:0}#scene canvas{display:block;width:100%;height:100%;touch-action:none}#scene canvas:focus-visible{outline:none}.sidebar{display:none}.view-label,.breadcrumb,.badge,.axis{display:none}h1,h2,h3,p{margin-top:0}h2{font-size:22px;font-weight:600;letter-spacing:-.4px}h3{font-size:17px;line-height:1.4}p{font-size:14px;line-height:1.65;color:var(--text-muted)}.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:600;color:var(--text-muted)}.help{font-size:13px;line-height:1.6;color:var(--text-muted)}
.topbar{position:absolute;top:20px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:none;z-index:4}.topbar>*{pointer-events:auto}.project-chip{display:flex;align-items:center;gap:12px;max-width:min(590px,60vw);background:var(--surface-glass);border-radius:16px;box-shadow:var(--shadow);height:52px;padding:0 18px}.identity-mark{color:var(--accent);font-size:26px}.wordmark{font-size:17px;font-weight:600;letter-spacing:-.6px}.identity-divider{color:var(--text-muted);opacity:.5}#model-name{font-size:14px;font-weight:400;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.chevron{margin-left:4px;color:var(--text-muted)}.top-right{display:flex;gap:8px;align-items:center}.top-right>button{background:var(--surface-glass);box-shadow:var(--shadow)}.cutaway-button{margin:8px 4px 16px 0}.top-right #edit-design{font-size:14px}#fullscreen{font-size:21px;width:42px;padding:0}
.mode-dock{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;gap:4px;background:var(--surface-glass);border:1px solid var(--stroke);border-radius:999px;padding:6px;box-shadow:var(--shadow);z-index:4}.mode-dock button{background:none;border:0;border-radius:999px;min-width:88px}.mode-dock button.active{background:var(--accent)}.mode-hint{position:absolute;bottom:91px;left:50%;transform:translateX(-50%);text-align:center;padding:8px 12px;margin:0;border-radius:12px;background:var(--surface-glass);font-size:12px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:3}.mode-dock:hover~.mode-hint,.mode-dock:focus-within~.mode-hint{opacity:1}.reset-anchor{position:absolute;bottom:26px;right:24px;background:var(--surface-glass);z-index:4}.vr-anchor{position:absolute;bottom:80px;right:24px;z-index:4}.vr-anchor button{width:auto;background:var(--accent);color:var(--surface-opaque)}.utility-rail{position:absolute;left:24px;top:50%;transform:translateY(-50%);display:grid;gap:6px;background:var(--surface-glass);border:1px solid var(--stroke);border-radius:16px;padding:6px;box-shadow:var(--shadow);z-index:4}.utility-rail button{text-align:left;background:none;border:0;min-width:98px}.workspace-capsule{position:absolute;top:86px;left:24px;display:flex;gap:4px;border-radius:999px;padding:4px;background:var(--surface-glass);border:1px solid var(--stroke);z-index:4}.workspace-capsule button{border:0;background:none;border-radius:999px;font-size:12px;min-height:32px;padding:6px 12px}.workspace-capsule button[aria-pressed=true]{background:var(--surface-elevated);color:var(--accent)}.status-anchor{position:absolute;bottom:26px;left:24px;max-width:29vw;display:flex;align-items:center;gap:8px;text-align:left;font-size:12px;background:var(--surface-glass);z-index:4}.status-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;flex-shrink:0}.bottom-bar{position:absolute;bottom:8px;left:26px;pointer-events:none;font-size:10px;color:var(--text-muted);display:flex;gap:12px}#tile-status{display:none}.present-reveal{display:none;position:absolute;bottom:26px;right:24px;background:var(--surface-glass);z-index:4}body[data-workspace=present] .utility-rail,body[data-workspace=present] .workspace-capsule,body[data-workspace=present] .status-anchor,body[data-workspace=present] .reset-anchor,body[data-workspace=present] .top-right,body[data-workspace=present] .bottom-bar,body[data-workspace=present] .walk-pad{display:none}body[data-workspace=present] .present-reveal{display:block}
dialog{color:var(--text-main);background:var(--surface-opaque);border:1px solid var(--stroke);border-radius:22px;box-shadow:var(--shadow);padding:28px;width:min(490px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;scrollbar-width:thin}dialog::backdrop{background:#07131d55}dialog[open]{animation:sheet-in .2s ease-out}.spatial-sheet .sheet-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:8px}.sheet-heading h2{margin:0}.sheet-close{font-size:24px;background:none;border:0;min-width:40px;padding:4px}.sheet-intro{margin:14px 0 24px}.spatial-sheet section{padding:18px 0;border-top:1px solid var(--stroke)}.spatial-sheet section>.eyebrow{display:block;margin-bottom:16px}.spatial-sheet>button{margin:6px 4px 6px 0}.spatial-sheet h3{margin:24px 0 12px}label{font-size:14px}input:not([type=range]):not([type=checkbox]):not([type=color]),select{width:100%;background:var(--surface-elevated);border:1px solid var(--stroke);border-radius:10px;padding:12px;color:var(--text-main);min-height:44px;margin:8px 0 14px}input[type=range]{width:100%;accent-color:var(--accent);margin:12px 0 18px}.range-label{display:flex;justify-content:space-between;gap:16px;font-size:13px;align-items:center}.range-label output{font-variant-numeric:tabular-nums;color:var(--accent)}.toggle-row{display:flex;align-items:center;position:relative;gap:14px;margin:18px 0;min-height:30px;cursor:pointer}.toggle-row input{position:absolute;right:0;opacity:0;width:38px;height:24px}.switch{margin-left:auto;width:38px;height:24px;background:var(--surface-elevated);border:1px solid var(--stroke);border-radius:999px;flex-shrink:0}.switch:after{content:'';display:block;width:16px;height:16px;margin:3px;background:var(--text-muted);border-radius:50%;transition:transform .15s}.toggle-row input:checked+.switch{background:var(--accent)}.toggle-row input:checked+.switch:after{transform:translateX(14px);background:var(--surface-opaque)}.toggle-row input:focus-visible+.switch{outline:3px solid var(--focus)}.category-list{display:grid;gap:6px}.category-row{display:flex;gap:12px;align-items:center;min-height:40px}.category-row input{width:20px;height:20px;accent-color:var(--accent)}.stats{display:flex;gap:30px;margin:20px 0}.stats strong{font-size:24px;font-weight:500}.stats span{display:block;font-size:12px;color:var(--text-muted);margin-top:4px}.stream-line{font-size:13px;color:var(--accent);margin:14px 0}.legend{display:flex;gap:18px;font-size:12px;color:var(--text-muted)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:6px}.pill{font-size:11px;color:var(--accent)}.section-heading{display:flex;justify-content:space-between}.search-results{display:grid;gap:8px;max-height:50dvh;overflow:auto}.search-result{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:5px;font-size:14px}.search-result small{font-size:12px;color:var(--text-muted)}
.inspector{position:absolute;right:24px;top:90px;width:340px;max-height:calc(100dvh - 185px);overflow:auto;padding:24px;border:1px solid var(--stroke);border-radius:22px;background:var(--surface-glass);box-shadow:var(--shadow);z-index:5;animation:sheet-in .22s ease-out}.inspector h3{font-size:21px;margin:12px 0 8px;padding-right:12px}.inspector p{font-size:13px;overflow-wrap:anywhere}#close-inspector{position:absolute;right:8px;top:8px;background:none;border:0;font-size:24px}#element-state{color:var(--text-muted);font-size:13px;margin:18px 0}.selection-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.properties{font-size:13px;margin-top:20px}.properties>div{padding:12px 0;border-top:1px solid var(--stroke);display:grid;grid-template-columns:1fr 1fr;gap:14px}.properties b{font-weight:500;color:var(--text-muted)}.properties span{overflow-wrap:anywhere;text-align:right;user-select:text}.properties button{grid-column:2;font-size:12px;min-height:30px;padding:4px 8px}.properties details{padding:8px 0}.properties summary{cursor:pointer;color:var(--text-muted)}#crosshair{position:absolute;top:50%;left:50%;color:#fff;font-size:24px;pointer-events:none;text-shadow:0 1px 3px #000}#toast{position:absolute;bottom:102px;left:50%;transform:translateX(-50%);background:var(--surface-opaque);border:1px solid var(--stroke);color:var(--text-main);padding:12px 20px;border-radius:12px;max-width:min(560px,90vw);font-size:14px;z-index:10}.loading{position:absolute;bottom:85px;left:24px;background:var(--surface-opaque);border:1px solid var(--stroke);border-radius:12px;padding:14px 18px;font-size:14px;max-width:40vw;z-index:3}.walk-pad{position:absolute;bottom:96px;left:50%;transform:translateX(-50%);display:flex;gap:5px;flex-wrap:wrap;justify-content:center;padding:7px;background:var(--surface-glass);border:1px solid var(--stroke);border-radius:16px;max-width:350px;z-index:3}.walk-pad span{flex-basis:100%;text-align:center;font-size:12px;color:var(--text-muted);margin:3px}.walk-pad button{width:40px;height:40px;padding:0;font-size:20px}
.design-panel{position:absolute;right:24px;top:86px;width:350px;max-height:calc(100dvh - 180px);overflow:auto;background:var(--surface-opaque);border:1px solid var(--stroke);border-radius:22px;padding:24px;z-index:6}.design-heading{display:flex;justify-content:space-between;gap:10px}.design-heading h2{margin:8px 0}.design-heading button{font-size:24px}.design-row{display:flex;gap:6px;margin:14px 0;flex-wrap:wrap}.design-row input[type=color]{width:44px;height:40px;padding:3px;background:var(--surface-elevated);border:1px solid var(--stroke);border-radius:8px}.design-coordinates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.coordinate-placement{margin:14px 0;padding:12px;border:1px solid var(--stroke);border-radius:10px}.coordinate-placement summary{cursor:pointer}.design-open .inspector{display:none}.placing #scene canvas{cursor:crosshair}.divider{font-size:12px;color:var(--text-muted);letter-spacing:.1em;padding-top:20px;margin:22px 0 16px;border-top:1px solid var(--stroke)}.sample-picker{display:grid;gap:8px}.dialog-close{position:absolute;top:8px;right:8px;font-size:24px;background:none;border:0}.input-row{display:flex;gap:8px}.error{color:var(--error)!important}.opaque-ui .project-chip,.opaque-ui .top-right>button,.opaque-ui .utility-rail,.opaque-ui .workspace-capsule,.opaque-ui .mode-dock,.opaque-ui .inspector,.opaque-ui .walk-pad,.opaque-ui .status-anchor,.opaque-ui .reset-anchor{background:var(--surface-opaque)}.immersive .spatial-sheet{display:none}.reduced-motion *, .reduced-motion *::after{animation:none!important;transition:none!important}@keyframes sheet-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*::after{animation:none!important;transition:none!important}}@media(prefers-reduced-transparency:reduce){:root{--surface-glass:var(--surface-opaque)}}
.mobile-tools{display:none}.reset-anchor.full{width:auto}.property-row{padding:12px 0;border-top:1px solid var(--stroke);display:grid;grid-template-columns:1fr 1fr;gap:10px}.property-row b{font-weight:500;color:var(--text-muted)}.property-row span{overflow-wrap:anywhere;text-align:right}
@media(max-width:900px){.inspector{top:auto;bottom:92px;right:16px;width:min(380px,calc(100vw - 32px));max-height:55dvh}.top-right #edit-design{display:none}.project-chip{max-width:55vw}.wordmark,.identity-divider{display:none}.status-anchor{max-width:24vw;font-size:11px}.utility-rail{left:16px}.topbar{left:16px;right:16px}.workspace-capsule{left:16px}.reset-anchor,.vr-anchor{right:16px}.mode-dock button{min-width:70px}.mode-dock{bottom:22px}}
@media(max-width:640px){.topbar{top:12px;gap:6px}.project-chip{padding:0 10px;gap:8px;height:46px;max-width:58vw}.identity-mark{font-size:21px}#model-name{font-size:12px}.top-right{gap:4px}.top-right button{font-size:12px;padding:8px}#fullscreen{display:none}.workspace-capsule{top:68px;left:12px}.workspace-capsule button{padding:5px 10px;font-size:11px}.utility-rail{left:12px;padding:4px}.utility-rail button{min-width:0;width:72px;font-size:12px;padding:8px 6px}.reset-anchor{bottom:80px;right:12px;font-size:12px}.vr-anchor{bottom:130px;right:12px}.mode-dock{bottom:20px}.mode-dock button{min-width:74px}.status-anchor{bottom:80px;left:12px;max-width:48vw;min-height:38px}.bottom-bar{left:14px;bottom:6px}.inspector{bottom:78px;right:12px;max-height:55dvh;padding:20px;width:calc(100vw - 24px)}.walk-pad{bottom:127px;max-width:230px}.mode-hint{display:none}.loading{bottom:128px;left:12px;max-width:70vw}.design-panel{right:12px;top:115px;width:calc(100vw - 24px);max-height:calc(100dvh - 205px)}dialog{padding:22px}.present-reveal{bottom:80px;right:12px}}
@media(max-width:640px){.mobile-tools{display:block;position:absolute;left:12px;top:120px;z-index:4;background:var(--surface-glass)}.utility-rail{display:none;top:168px;transform:none}.tools-open .utility-rail{display:grid}body[data-workspace=present] .mobile-tools{display:none}}
@media(max-width:640px){.project-chip{min-width:0;flex:1;max-width:none}#model-name{min-width:0}.top-right{flex-shrink:0}.top-right button{font-size:11px}}

.saved-views-anchor{position:absolute;top:132px;left:24px;z-index:4;background:var(--surface-glass);min-height:44px}body.immersive .saved-views-anchor{display:none}.saved-view-list{display:grid;gap:12px;margin-top:20px}.saved-view-row{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border:1px solid var(--stroke);border-radius:12px}.saved-view-row strong,.saved-view-row small{width:100%;overflow-wrap:anywhere}.saved-view-row button{min-height:44px}.saved-view-error{color:#ff8994}#sheet-saved-views form{display:grid;gap:12px}#saved-view-name{min-height:44px}
.guided-tours-anchor{position:absolute;top:184px;left:24px;z-index:4;background:var(--surface-glass);min-height:44px}body.immersive .guided-tours-anchor{display:none}.tour-form{display:grid;gap:10px;margin:20px 0}.tour-field{display:block}.tour-field textarea{display:block;width:100%;resize:vertical;min-height:80px;background:var(--surface-elevated);color:var(--text-main);border:1px solid var(--stroke);border-radius:10px;padding:12px;font:inherit;margin-top:8px}.tour-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.tour-actions button{min-height:44px}.tour-step-list{display:grid;gap:14px;padding:0;list-style-position:inside}.tour-step-row{display:flex;flex-wrap:wrap;gap:8px;padding:14px;border:1px solid var(--stroke);border-radius:12px}.tour-step-row strong,.tour-step-row p,.tour-step-row small{width:100%;margin:0;overflow-wrap:anywhere}.tour-step-row button{min-height:44px}.tour-current-step{padding:14px;border:1px solid var(--stroke);border-radius:12px}.tour-current-step h3{margin-top:0}

.measurement-dock{position:absolute;left:16px;top:116px;z-index:12;width:min(310px,calc(100vw - 32px));max-height:60vh;overflow:auto;background:#102530f2;color:#eef9fc;padding:12px;border:1px solid #355663;border-radius:12px;box-shadow:0 6px 25px #0004}.measurement-dock[hidden]{display:none}.measurement-dock select,.measurement-dock button{margin:3px}.measurement-dock .help{font-size:12px}.measurement-results>div{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.measurement-label{position:fixed;z-index:11;transform:translate(-50%,-120%);background:#06202ee8;color:#f3fdff;padding:4px 7px;border:1px solid #13e9ee;border-radius:6px;font-size:12px;white-space:nowrap;pointer-events:none}.measurement-label[hidden]{display:none}.measuring canvas{cursor:crosshair}.immersive .measurement-dock,.immersive .measurement-label{display:none}

.measurement-panel-open .saved-views-anchor,.measurement-panel-open .guided-tours-anchor{display:none}
.design-tabs{display:flex;gap:6px;margin:12px 0 18px}.design-tabs button{flex:1;padding:10px 8px;border:1px solid var(--stroke);border-radius:10px;background:var(--surface-elevated)}.design-tabs button[aria-selected="true"]{border-color:var(--accent);color:var(--accent)}#design-trim-panel select{width:100%;margin:8px 0 18px}#design-trim-panel .toggle-row{margin-top:14px}
#design-trim-panel select{width:100%;margin:8px 0 14px}#design-trim-panel #design-current-room{margin:0 0 12px}#design-new-group{min-width:0;flex:1}#design-remove-group{margin-top:10px}



/* Compact map stays usable alongside the 3D scene; it never traps focus. */
.floor-map{position:absolute;right:24px;top:88px;width:310px;z-index:5;overflow:hidden;color:#dcece7;background:#0c222c;border:1px solid #33515b;border-radius:18px;box-shadow:0 12px 32px #0005;max-height:calc(100dvh - 172px);overflow-y:auto;scrollbar-width:thin}
.floor-map[hidden]{display:none}.floor-map-header{display:flex;align-items:center;gap:6px;padding:14px 14px 10px}.floor-map-header>div{margin-right:auto}.floor-map-eyebrow{font-size:8px;letter-spacing:.17em;color:#7fabae}.floor-map h2{font-size:17px;line-height:1.3;margin:3px 0 0;font-weight:600}.floor-map button{border-color:#31505b;color:#cee2e3;background:#18343e;border-radius:9px;min-height:32px;padding:6px 10px;font-size:16px}.floor-map button:hover:not(:disabled){background:#244a53}.floor-map button:disabled{opacity:.4}.floor-map button:focus-visible,.floor-map canvas:focus-visible{outline:2px solid #55e0db;outline-offset:-2px}.floor-map-header>button{width:32px;height:32px;padding:0;flex-shrink:0}
.floor-map-levels{display:flex;align-items:center;gap:6px;padding:0 12px 10px}.floor-map select{flex:1;min-width:0;margin:0;min-height:34px;padding:6px 8px;font-size:12px;border-radius:8px;color:#dcece7;background:#142f39;border-color:#31505b}.floor-map-levels button{padding:2px 10px;font-size:23px}.floor-map-viewport{position:relative;border-top:1px solid #26434d;border-bottom:1px solid #26434d}.floor-map canvas{display:block;width:100%;height:auto;cursor:crosshair;touch-action:none}.floor-map-zoom{position:absolute;right:8px;bottom:8px;display:flex;gap:3px}.floor-map-zoom button{width:30px;min-height:30px;padding:0;background:#112a34ed}.floor-map-legend{display:flex;gap:10px;padding:10px 12px 0;font-size:9px;color:#a0bdc4;align-items:center}.floor-map-legend span{display:flex;align-items:center;gap:4px}.floor-map-legend i{width:6px;height:6px;border-radius:50%}.map-you{background:#27e7ec}.map-target{background:#ffcb77}.map-lower{margin-left:auto;opacity:.7}.floor-map-status{font-size:11px;line-height:1.4;color:#a6c2c8;margin:10px 12px;min-height:16px}.floor-map-footer{display:flex;gap:8px;margin:0 12px 12px}.floor-map-footer .floor-plan-go{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;background:#80dfcd;color:#102c33;border:0;min-height:36px}.floor-map-footer .floor-plan-go:hover:not(:disabled){background:#9ae9db}.floor-map-footer .floor-plan-go:disabled{background:#29454d;color:#839fa5;opacity:1}.floor-map.is-expanded{width:min(550px,calc(100vw - 48px))}.floor-map.is-collapsed{width:176px}.floor-map.is-collapsed .floor-map-body,.floor-map.is-collapsed .floor-map-expand{display:none}.floor-map.is-collapsed .floor-map-header{padding:10px 12px}.floor-map.is-collapsed .floor-map-eyebrow{display:none}.floor-map.is-collapsed h2{font-size:14px}.immersive .floor-map,.design-open .floor-map,.measurement-panel-open .floor-map{display:none}
@media(max-width:700px){.floor-map{right:12px;top:80px;width:250px;max-height:calc(100dvh - 160px)}.floor-map-header{padding:10px 12px 8px}.floor-map-legend{font-size:8px;gap:6px}.floor-map.is-expanded{width:calc(100vw - 24px)}}
.floor-map .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.floor-map-header{position:sticky;top:0;z-index:2;background:#0c222c}.floor-map.is-expanded{width:min(550px,calc(100vw - 48px),max(310px,calc((100dvh - 400px)*1.3846)))}@media(max-width:700px){.floor-map.is-expanded{width:min(calc(100vw - 24px),max(250px,calc((100dvh - 380px)*1.3846)))}}
