.plans .plan-layout{grid-template-columns:minmax(190px,.55fr) minmax(0,1.65fr);gap:clamp(20px,3vw,56px);align-items:start}
.plan-panel{display:block;padding:0;border:1px solid #c4bfaf;background:#f6f3ea;box-shadow:0 12px 35px -32px #423e30}
.plan-panel [hidden]{display:none!important}
.plan-panel .atelier-head,.plan-panel .studio-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px}
.atelier-head{border-bottom:1px solid #cfcabb}
.plan-panel .atelier-kicker{margin:0 0 5px;font-weight:700;font-size:9px;letter-spacing:.16em;color:#65684f;line-height:1.4}
.atelier-head h3{font-size:clamp(17px,1.7vw,26px);font-weight:500;letter-spacing:-.055em}
.view-switch{display:flex;background:#e7e4d8;border-radius:30px;padding:3px}
.plan-panel .view-switch button{font-size:11px;padding:9px 13px;white-space:nowrap;border-radius:30px;width:auto;font-weight:600}
.view-switch button[aria-pressed=true]{background:var(--olive);color:#fff}
.viewport{position:relative;overflow:hidden;background-color:#e5e2d6;background-image:radial-gradient(ellipse at 55% 45%,#f5f1e7a6,transparent 67%),radial-gradient(#a6a18c66 .8px,transparent .9px);background-size:auto,14px 14px;height:clamp(338px,31vw,530px);isolation:isolate}
.viewport #apartment-view{width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline-offset:-3px}
.viewport #apartment-view:active{cursor:grabbing}
.viewport.walking{background:linear-gradient(#afc8c6,#f6e5cc 58%,#bdb6a3)}
.studio-caption{position:absolute;pointer-events:none;top:16px;left:20px;display:flex;align-items:center;gap:7px;color:#4c5444;background:#f6f3e9ee;border:1px solid #c6c3b3;border-radius:22px;padding:5px 10px;font-size:10px}
.studio-caption i{width:6px;height:6px;background:#7f9060;border-radius:100%}
.studio-caption b{font-weight:500}
.view-tools,.walk-pad{position:absolute;right:15px;bottom:15px;display:flex;gap:3px;background:#f8f5eced;border:1px solid #bfbcae;border-radius:24px;padding:3px}
.plan-panel .view-tools button,.plan-panel .walk-pad button{display:grid;place-items:center;width:35px;height:35px;font:20px/1 Arial;border-radius:50%;background:#ffffff66}
.walk-pad{right:auto;left:15px}
.walking .view-tools [data-camera=closer],.walking .view-tools [data-camera=farther]{display:none}
.plan-panel button:is(.visit,[data-camera],[data-step]):hover{filter:brightness(.92)}
.studio-controls{border-top:1px solid #c4bfaf}
.plan-panel select{background:transparent;color:#393e32;border:0;border-bottom:1px solid #bbb8a5;padding:3px 16px 5px 0;font:500 16px Manrope,sans-serif;max-width:100%;cursor:pointer}
.plan-panel button.visit{display:flex;align-items:center;justify-content:center;width:auto;padding:11px 16px;gap:14px;background:#49513b;border-radius:24px;color:white;font-size:12px;font-weight:600}
.visit b{font-size:19px;line-height:1;font-weight:400}
.plan-panel .view-help,.plan-panel #view-error{padding:0 22px 16px;font-size:11px;color:#636550;line-height:1.5}
.plan-panel #expand-plan{padding:12px}
.plan-panel #expand-plan span{margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:850px){.plans .plan-layout{grid-template-columns:1fr}.plan-tabs{flex-direction:row;gap:5px}.plan-tabs button{flex:1;text-align:left;display:block;border:1px solid #bcb9a8;padding:12px}.plan-tabs button>*{display:block}.plan-sidebar>.fine{max-width:100%;margin:10px 0 0}.viewport{height:clamp(315px,52vw,475px)}}
@media(max-width:550px){.plan-panel .atelier-head,.plan-panel .studio-controls{padding:13px 12px}.plan-panel .view-switch button{padding:9px;font-size:10px}.atelier-head h3{font-size:17px}.studio-caption{left:12px;top:12px}.plan-panel button.visit{padding:11px 12px;font-size:11px;gap:8px}.plan-panel select{font-size:14px}.plan-panel .view-help{padding:0 12px 12px}.view-tools,.walk-pad{bottom:10px}.plan-tabs button{padding:11px 7px}}

.viewport .locator{position:absolute;top:12px;right:12px;width:104px;height:65px;background:#f6f3e9f2;border:1px solid #acae9e;border-radius:6px;pointer-events:none;box-shadow:0 2px 12px #3c43321a}
@media(max-width:550px){.viewport .locator{width:83px;height:52px;right:10px}}
/* Keep input/keyboard controls on the original canvas if GPU recovery uses
   the depth-tested software renderer. Layout remains desktop or mobile. */
.viewport .software-surface{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.viewport #apartment-view{position:relative;z-index:1}
.viewport .studio-caption,.viewport .view-tools,.viewport .walk-pad,.viewport .locator{z-index:2}
@media(any-pointer:coarse){.plan-panel .view-tools button,.plan-panel .walk-pad button{min-width:40px;min-height:40px;touch-action:none}}
.atelier-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.plan-panel #expand-model{width:auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #b8b5a6;border-radius:25px;padding:9px 12px;font-size:11px;white-space:nowrap}
#expand-model b{font-weight:600}
.plan-panel #expand-model:hover{background:#e3e2d5}
.model-expanded{overflow:hidden}
dialog.model-dialog[open]{display:block;position:fixed;inset:0;width:100%;height:100%;height:100dvh;margin:0;padding:0;max-width:none;max-height:none;border:none;background:var(--paper);color:var(--ink)}
.model-dialog::backdrop{background:#eeebe1}
.plan-panel.is-expanded{width:100%;height:100%;box-sizing:border-box;max-width:none;max-height:none;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border:none;background:#f6f3ea}
.plan-panel.is-expanded .view-switch,.plan-panel.is-expanded .view-help{display:none}
.plan-panel.is-expanded .studio{display:flex;flex:1;min-height:0;flex-direction:column}
.plan-panel.is-expanded .viewport{flex:1;height:auto;min-height:0}
.plan-panel.is-expanded .studio-controls{flex-shrink:0}
.plan-panel.is-expanded .studio-caption{top:18px;left:20px}
.plan-panel.is-expanded .atelier-head{flex-shrink:0}
@media(max-width:610px){.plan-panel:not(.is-expanded) .atelier-head{align-items:flex-start;flex-direction:column;gap:9px}.atelier-actions{justify-content:flex-start}.plan-panel.is-expanded .atelier-head{gap:6px}.plan-panel.is-expanded .studio-controls{padding-block:9px}}
@media(max-height:520px){.plan-panel.is-expanded .atelier-head,.plan-panel.is-expanded .studio-controls{padding-block:6px}.plan-panel.is-expanded .atelier-kicker{display:none}}
.viewport:not(.walking){background:#eeebe2}
.viewport.walking{background:linear-gradient(180deg,#a3bfca 0%,#cbdadd 42%,#f6e8cb 57%,#dfe0d0 60%,#b2c0b0 75%,#a9b3a2)}
.plan-panel.is-expanded{align-items:stretch}
