:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#183934;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:transparent}#viewer{height:100dvh;min-height:480px;position:relative;overflow:hidden;background:transparent}#canvas-wrap{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}header{position:absolute;top:38px;left:42px;z-index:2;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:700;color:#66827c}h1{font-size:34px;letter-spacing:-1.3px;font-weight:450;line-height:1.1;margin:11px 0}h1 span{font-weight:700}header p{font-size:12px;color:#657b77;margin:0}.controls{position:absolute;right:30px;top:34px;width:230px;z-index:3;padding:14px;background:#ffffffed;border:1px solid #dfe8e5;border-radius:16px;box-shadow:0 8px 35px #1839340a}.toolbar{display:flex;flex-direction:column;gap:8px}button{font:inherit;font-size:12px;border-radius:9px;padding:10px 12px;border:1px solid #d5e1dd;color:#244b43;background:#fff;cursor:pointer;transition:background .15s}button:hover{background:#eef6f2}button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #53a989;outline-offset:3px}button[aria-pressed=true]{background:#204d40;color:white;border-color:#204d40}details{margin-top:14px;border-top:1px solid #e7edeb;padding-top:13px}summary{font-size:12px;font-weight:600;cursor:pointer}#floors{display:grid;gap:7px;padding:12px 0}#floors label{display:flex;align-items:center;gap:8px;font-size:12px;color:#46645d}input{accent-color:#2f715b}#show-all{width:100%}footer{position:absolute;z-index:2;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:15px;white-space:nowrap;padding:13px 19px;background:#ffffffeb;border:1px solid #e4ebe7;border-radius:100px;font-size:11px;color:#70817b;pointer-events:none}footer b{font-weight:600;color:#37584e}footer i{height:10px;width:1px;background:#d4e1da}#loading{position:absolute;inset:0;display:flex;gap:12px;align-items:center;justify-content:center;background:#fff9;font-size:14px;color:#45675c;z-index:4}#loading[hidden]{display:none}.spinner{width:20px;height:20px;border:2px solid #d6e4dd;border-top-color:#2f715b;border-radius:50%;animation:spin .8s linear infinite}#loading.error .spinner{display:none}#loading.error{padding:30px;line-height:1.7;text-align:center}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:650px){header{top:21px;left:22px}h1{font-size:26px}.controls{right:16px;top:auto;bottom:65px;width:186px;padding:10px;max-height:45vh;overflow:auto}.toolbar{gap:6px}button{font-size:11px;padding:8px}footer{bottom:15px;gap:9px;padding:11px;font-size:10px}header p{max-width:170px;font-size:10px}details{margin-top:9px;padding-top:10px}}
#sun-clock{margin-top:14px;padding-top:13px;border-top:1px solid #e7edeb}.sun-heading,.sun-endpoints,.sun-caption{display:flex;align-items:center;justify-content:space-between;gap:8px}.sun-heading label{font-size:13px;font-weight:650}#sun-time{font-size:17px;font-variant-numeric:tabular-nums;color:#986a29}#sun-hour{display:block;width:100%;margin:12px 0 7px;cursor:ew-resize;accent-color:#b7833d}.sun-endpoints{font-size:10px;color:#657b77}.sun-caption{margin-top:10px}.sun-caption small{font-size:10px;color:#657b77}#sun-toggle{font-size:10px;padding:5px 8px;white-space:nowrap}
/* A/67 prototype: compact controls leave the room visible on small screens. */
[hidden]{display:none!important}.apartment-controls{display:grid;gap:9px;margin-bottom:12px}[data-apartment]{background:#204d40;color:#fff;border-color:#204d40}[data-apartment]:hover{background:#163d32}button:disabled{opacity:.55;cursor:wait}#interior-status strong{display:block;font-size:13px;line-height:1.5}#interior-status p{font-size:11px;color:#657b77;margin:4px 0 0}body[data-view=interior] .apartment-controls{margin:0}body[data-view=interior] header{background:#fffffff0;border:1px solid #dfe8e5;border-radius:12px;padding:12px 16px;top:24px;left:24px}body[data-view=interior] header .eyebrow,body[data-view=interior] header p{display:none}body[data-view=interior] h1{font-size:23px;margin:0}body[data-view=interior] canvas{cursor:grab}body[data-view=interior] canvas:active{cursor:grabbing}canvas:focus-visible{outline:2px solid #53a989;outline-offset:-2px}@media(max-width:650px){body[data-view=interior] header{top:12px;left:12px;padding:9px 12px}body[data-view=interior] h1{font-size:20px}body[data-view=interior] .controls{right:12px;bottom:64px;width:210px;max-height:28vh}body[data-view=interior] footer{font-size:9px;gap:6px;padding:10px}body[data-view=interior] #interior-status strong{font-size:12px}}@media(max-height:500px){body[data-view=interior] .controls{top:12px;bottom:auto;max-height:55vh}body[data-view=interior] header{top:12px}body[data-view=interior] footer{bottom:10px}}
body[data-view=interior] footer{max-width:calc(100% - 24px);white-space:normal;flex-wrap:wrap;justify-content:center}body[data-view=interior] footer span{white-space:nowrap}

/* Model-derived floor plans and balcony starting points. */
.controls{width:276px;max-height:calc(100% - 100px);overflow:auto}.floor-navigation-section{margin-bottom:14px}#navigation-title{font-size:16px;letter-spacing:-.25px;margin:0 0 6px}#navigation-message{font-size:11px;line-height:1.5;color:#657b77;margin:0 0 10px}.block-selector{margin-top:9px;padding-top:9px}.block-selector summary{font-size:13px}.floor-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 0 0}.floor-options button{padding:8px;font-size:11px}.floor-options button[aria-expanded=true]{background:#204d40;color:white;border-color:#204d40}.apartment-controls{margin-bottom:12px}#fallback-viewpoints{display:grid;gap:8px}body[data-view=interior] .apartment-controls{padding-top:12px;border-top:1px solid #e7edeb}.plan-panel{position:absolute;z-index:3;right:324px;top:24px;bottom:24px;width:min(600px,calc(100% - 370px));display:flex;flex-direction:column;background:#fff;border:1px solid #dfe8e5;border-radius:18px;box-shadow:0 12px 45px #18393421;padding:18px}.plan-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.plan-heading h2{font-size:18px;line-height:1.4;margin:4px 0 10px;font-weight:600}.plan-heading .eyebrow{font-size:9px}#close-plan{font-size:25px;line-height:1;padding:6px 10px;min-width:36px;min-height:36px}#plan-drawing{flex:1;min-height:0;display:flex;justify-content:center;align-items:center;background:#f6f8f7;border-radius:10px;overflow:hidden}#plan-drawing svg{display:block;width:100%;height:100%;max-height:100%;touch-action:manipulation}#plan-status{font-size:11px;color:#657b77;line-height:1.5;margin:12px 0 0}.apartment-target{cursor:pointer;outline:none}.apartment-target circle{fill:#204d40;stroke:#fff;stroke-width:.12}.apartment-target text{fill:#fff;font-family:Segoe UI,Arial,sans-serif;font-size:1.1px;font-weight:700;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.apartment-target:hover circle,.apartment-target:focus circle{fill:#b16c30;stroke:#183934;stroke-width:.18}.apartment-target[aria-disabled=true]{cursor:not-allowed}.apartment-target[aria-disabled=true] circle{fill:#a4afaa}.apartment-target:focus{filter:drop-shadow(0 0 .15px #183934)}
@media(max-width:900px){.controls{right:16px;width:230px}.plan-panel{right:262px;width:calc(100% - 280px);padding:12px}.floor-options{gap:5px}}
@media(max-width:650px){#viewer{min-height:320px}.controls{width:210px;max-height:44vh;right:12px;bottom:66px}.floor-navigation-section{margin-bottom:10px}#navigation-title{font-size:14px}#navigation-message{font-size:10px;margin-bottom:6px}.block-selector summary{font-size:12px}.floor-options{padding-top:7px}.floor-options button{padding:7px}body[data-view=interior] .controls{max-height:48vh;width:210px;bottom:78px}#interior-status strong{font-size:12px}body[data-view=interior] footer{bottom:12px;width:calc(100% - 24px);max-width:420px}.plan-panel{z-index:5;inset:12px;width:auto;padding:14px;bottom:12px}.plan-heading h2{font-size:17px}.plan-heading #close-plan{min-width:42px;min-height:42px}.plan-heading .eyebrow{font-size:9px}#plan-status{margin-top:10px}}
@media(max-height:500px) and (min-width:651px){.controls{top:12px;bottom:12px;max-height:calc(100% - 24px)}.plan-panel{top:12px;bottom:12px}.floor-navigation-section{margin-bottom:8px}.plan-heading h2{font-size:15px;margin-bottom:5px}#plan-status{font-size:10px;margin-top:5px}}

