.spatial-stage{position:relative;height:min(760px,calc(100svh - 285px));min-height:590px;background:#f3f5f6;overflow:hidden;touch-action:none;flex:1;outline-offset:-3px!important}.spatial-stage canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none}.spatial-stage #loading{position:absolute;inset:0;display:grid;place-content:center;padding:35px;z-index:3;background:#f3f5f6;text-align:center;line-height:1.7;color:var(--muted)}.spatial-stage #loading a{color:var(--accent)}.view-buttons{display:flex;border:1px solid var(--line);border-radius:4px;padding:3px;gap:3px}.view-buttons button{padding:7px 10px;border:0;background:transparent;font-size:11px;border-radius:3px}.view-buttons button[aria-pressed=true]{background:#e7eef1;color:#244f63}.spatial-toolbar{padding:12px 16px;gap:12px;flex-wrap:wrap}.spatial-toolbar .layer-options{gap:16px}.spatial-inspector>section{min-width:0}.spatial-inspector select{width:100%;padding:10px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);font-size:12px}.roof-settings{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.height-control{display:grid;grid-template-columns:1fr auto;gap:12px 6px;font-size:11px;margin-top:22px;line-height:1.5}.height-control output{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.height-control input{grid-column:1/-1;width:100%;margin:0;min-height:24px}.text-button{border:0;background:none;padding:0;font-size:11px;color:var(--accent);text-decoration:underline;text-underline-offset:3px;margin-top:17px}.camera-tools{position:absolute;right:18px;bottom:18px;display:flex;background:white;border:1px solid var(--line);border-radius:4px;overflow:hidden}.camera-tools button{width:39px;height:37px;border:0;background:none;font-size:21px}.camera-tools button:hover{background:var(--selected)}.model-caption{position:absolute;left:20px;bottom:25px;font-size:12px;color:#53666f;pointer-events:none}#room-photo{margin-top:15px}#room-photo img{width:100%;height:135px;object-fit:cover;display:block;border-radius:4px}#room-photo a{display:block;font-size:10px;color:var(--muted);text-decoration:none;line-height:1.5}#room-photo span{display:block;margin-top:6px}.spatial-legend{font-size:10px}.intro-actions{display:flex;gap:10px;flex-wrap:wrap}.project-progress a{text-underline-offset:3px}
@media(max-width:1100px){.spatial-toolbar .layer-options{gap:10px}.spatial-toolbar{gap:8px}.spatial-stage{min-height:590px}}
@media(max-width:800px){.spatial-stage{height:560px;min-height:450px}.spatial-inspector{grid-template-columns:1fr 1fr;align-items:start}.roof-settings{margin:0;padding:0;border:0}.spatial-inspector .sources{grid-column:1/-1}.spatial-stage .model-caption{bottom:24px;left:14px}}
@media(max-width:520px){.spatial-stage{height:460px;min-height:460px}.spatial-toolbar{display:flex;padding:10px 12px}.spatial-toolbar .layer-options{display:flex;width:100%;gap:0 22px}.spatial-inspector{display:block;padding:22px}.roof-settings{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.workspace-title>div>span{display:none}.workspace-title h1{font-size:24px}.workspace-title>.button{padding:9px 10px;font-size:11px}.spatial-legend{line-height:1.6}.spatial-inspector #room-photo img{height:190px}}
.walk-hud{position:absolute;inset:0;pointer-events:none}.walk-hud button,.walk-hud #walk-stick{pointer-events:auto}#walk-lock{position:absolute;top:15px;left:15px;font-size:11px;background:#fffffff0}.walk-hud p{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font-size:10px;background:#ffffffe6;border-radius:4px;padding:8px 12px;white-space:nowrap;color:#374b56}.walk-crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff9;text-shadow:0 1px 2px #000;font-size:20px}#walk-stick{position:absolute;left:20px;bottom:58px;width:98px;height:98px;border:1px solid #ffffffc0;border-radius:50%;background:#ffffff4a;touch-action:none;display:grid;place-items:center}#walk-stick span{display:block;width:38px;height:38px;border-radius:50%;background:#ffffffc9;box-shadow:0 1px 9px #0002;pointer-events:none}.spatial-stage[data-mode=walk] .camera-tools{display:none}.spatial-stage[data-mode=walk] .model-caption{top:22px;right:17px;bottom:auto;left:auto;padding:8px 11px;background:#ffffffe6;border-radius:4px}.spatial-toolbar input:disabled{opacity:.4}.spatial-inspector input:disabled{opacity:.5}.view-buttons button{white-space:nowrap}
@media(pointer:fine){#walk-stick{opacity:.65;width:76px;height:76px;bottom:25px}.walk-hud p{bottom:13px}}
.is-walking .roof-settings,.is-walking .spatial-toolbar .layer-options{display:none}
.door-control{display:block;width:100%;border:1px solid var(--line);border-radius:4px;background:white;text-align:left;padding:8px 10px;margin:5px 0;font-size:11px}.door-control:hover{background:var(--selected)}#door-status:empty{display:none}#walk-door{position:absolute;right:15px;bottom:65px;font-size:11px;background:#fffffff0;pointer-events:auto}
@media(max-width:540px){.walk-hud p{font-size:9px;bottom:6px}.spatial-stage[data-mode=walk] .model-caption{top:65px;left:15px;right:auto}#walk-lock{font-size:10px}.view-buttons button{padding:8px 11px}.spatial-stage[data-mode=walk]{height:520px;min-height:520px}}

/* Bottom actions share the navigation baseline; avoid floating controls at eye level. */
.walk-door-actions{position:absolute;right:15px;bottom:16px;display:flex;gap:7px}
.walk-door-actions #walk-door,.walk-door-actions #walk-door-mount{position:static;font-size:11px;min-height:38px;padding:8px 10px;background:#fffffff0}
.walk-hud p{left:110px;bottom:16px;transform:none;margin:0;font-size:10px;min-height:38px;display:flex;align-items:center;max-width:calc(100% - 390px);white-space:normal}
#walk-door-status{position:absolute;right:15px;bottom:66px;max-width:260px;padding:7px 10px;background:#fffffff0;border-radius:4px;font-size:11px;color:var(--ink)}
#walk-door-status:empty{display:none}

@media(max-width:540px){.walk-door-actions{right:10px;bottom:12px;gap:5px;flex-direction:column}.walk-door-actions #walk-door,.walk-door-actions #walk-door-mount{min-height:40px;font-size:10px}.walk-hud p{left:15px;bottom:112px;font-size:9px;min-height:0;max-width:calc(100% - 30px)}#walk-door-status{left:15px;right:15px;bottom:148px;max-width:none}#walk-stick{bottom:18px}}

@media(min-width:801px){.spatial-workbench{height:clamp(650px,calc(100svh - 240px),900px)}.spatial-workbench .plan-column{min-height:0}.spatial-workbench .spatial-stage{min-height:0;height:auto;flex:1 1 auto}.spatial-inspector{overflow-y:auto;max-height:100%}}

/* Sidebar disclosures cannot size the model's grid track or shift its width. */
@media(min-width:801px){.spatial-workbench{grid-template-rows:minmax(0,1fr)}.spatial-inspector{min-height:0;scrollbar-gutter:stable}}
@media(max-width:800px){.spatial-workbench{align-items:start}.spatial-workbench .plan-column{align-self:start}.spatial-workbench .spatial-stage{flex:none}}

/* Separate visibility controls from room navigation without sizing the viewport. */
.spatial-inspector>section:has(.furniture-switch){margin-bottom:24px}
.view-buttons button{font-size:12px;min-height:36px}
.spatial-inspector #room-focus{appearance:none;padding:10px 38px 10px 12px;min-height:42px;font-size:13px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23607078' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px}
.height-control,.text-button{font-size:12px}
.spatial-legend .touch-navigation-help{display:none}
/* Narrow screens and touch devices use drag-to-look and the movement pad. */
@media(max-width:800px),(pointer:coarse){
  #walk-lock,.walk-hud p{display:none}
  .is-walking #navigation-help{display:none}
  .is-walking .touch-navigation-help{display:flex}
  .spatial-stage[data-mode=walk] .model-caption{top:15px;left:15px;right:auto}
}
@media(max-width:540px){
  .view-buttons{width:100%}
  .view-buttons button{flex:1;min-height:40px;padding-inline:8px}
  .spatial-inspector #room-focus{font-size:16px;min-height:44px}
  .camera-tools button{width:44px;height:44px}
}
