@font-face{font-family:LocalUI;src:local('Tahoma')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:Inter,Arial,LocalUI,sans-serif;color:#203f39}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,canvas:focus-visible{outline:3px solid #e4ad52;outline-offset:4px}button{border:0;transition:background .18s,transform .18s}button:hover{filter:brightness(.97)}button:active{transform:scale(.97)}[hidden]{display:none!important}#viewer{position:relative;height:100%;height:100dvh;background:#dbe6e8}#scene{display:block;width:100%;height:100%;touch-action:none;outline:none}.topbar{position:absolute;top:25px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px}.brand-icon{display:grid;place-items:center;background:#183e36;color:#fff;width:48px;height:48px;font-size:36px;border-radius:13px;padding-bottom:5px}.brand h1{font-family:Georgia,serif;font-size:26px;font-weight:500;margin:0;letter-spacing:-.8px}.brand h1 span{font-family:Arial,LocalUI,sans-serif;font-size:13px;font-weight:400;letter-spacing:0;padding-left:12px;margin-left:12px;border-left:1px solid #718781}.brand p{font-size:12px;color:#57726a;margin:5px 0 0}.header-actions{display:flex;gap:8px;align-items:center}.light-btn,.icon-btn{background:#fffdf9e8;border:1px solid #ffffffa0;box-shadow:0 3px 12px #193b3810;border-radius:10px;padding:12px 17px;font-size:14px}.icon-btn{width:42px;height:42px;padding:0;font-size:18px}.view-badge{position:absolute;left:50%;top:36px;transform:translateX(-50%);padding:10px 15px;border-radius:30px;background:#ffffffb8;font-size:13px;display:flex;align-items:center;gap:8px;backdrop-filter:blur(12px)}#view-indicator{width:6px;height:6px;background:#42795c;border-radius:100%}.rooms-panel{position:absolute;left:30px;top:120px;width:238px;background:#fffffff0;border:1px solid #ffffff;border-radius:16px;box-shadow:0 18px 50px #163b3212;backdrop-filter:blur(18px);padding:22px 12px 14px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:600;color:#64837a;margin:0 10px 7px}.rooms-panel h2{font-size:17px;font-weight:500;margin:0 10px 17px}.room-list{display:flex;flex-direction:column;gap:4px}.room{display:flex;align-items:center;gap:11px;text-align:left;padding:11px 10px;border-radius:10px;background:transparent;min-height:60px}.room:hover{background:#f0f4f1}.room.active{background:#e4eee7}.room>span:nth-child(2){font-size:14px}.room small{display:block;font-size:11px;line-height:1.6;margin-top:4px;color:#778780}.room-icon{font-size:24px;color:#608170;width:26px;text-align:center}.room-number{font-family:Georgia,serif;font-size:12px;color:#9aa9a2;margin-left:auto}.room.active .room-number{color:#36624d}.design-note{margin:17px 7px 0;border-top:1px solid #e1e9e4;padding-top:14px;display:flex;align-items:start;gap:8px;color:#7a8982}.design-note>span{border:1px solid #a7b4ac;border-radius:50%;font-size:10px;width:15px;height:15px;text-align:center;margin-top:2px}.design-note p{font-size:11px;line-height:1.8;margin:0}.right-tools{position:absolute;right:30px;top:122px;display:flex;flex-direction:column;gap:8px}.tool{display:flex;align-items:center;gap:10px;font-size:13px;background:#ffffffe8;border-radius:10px;padding:10px 14px;box-shadow:0 4px 20px #15332c0a}.tool>span{font-size:23px;line-height:1;width:22px;text-align:center}.tool[aria-pressed=true]{background:#173d34;color:white}.bottom-bar{position:absolute;bottom:32px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;gap:15px;pointer-events:none}.bottom-bar>*{pointer-events:auto}.control-hint{display:flex;align-items:center;gap:11px;background:#fffdf8dc;padding:13px 17px;border:1px solid #ffffffa0;border-radius:12px;color:#4f685e;font-size:13px;backdrop-filter:blur(12px)}.control-hint b{font-weight:normal;margin:0 7px;color:#9aafa3}.mouse-icon{display:block;width:15px;height:22px;border:1.5px solid #6d8177;border-radius:8px;position:relative}.mouse-icon:after{content:'';position:absolute;top:4px;left:5px;width:2px;height:5px;background:#6d8177}.mode-switch{background:#fffefa;padding:5px;border-radius:14px;display:flex;box-shadow:0 10px 35px #24413520;gap:3px}.mode-switch button{background:none;border-radius:10px;padding:14px 22px;font-size:14px}.mode-switch .selected{background:#173e35;color:#fff}.mode-switch button span{padding-left:20px}.scene-caption{position:absolute;bottom:105px;right:33px;font-size:10px;letter-spacing:3px;line-height:1.8;color:#587568;text-align:right;pointer-events:none}.scene-caption span{display:block;font-size:8px;letter-spacing:2px;opacity:.8}#crosshair{position:absolute;left:50%;top:50%;width:5px;height:5px;border:1px solid white;background:#254535a0;border-radius:100%;pointer-events:none}.floor-map{position:absolute;right:30px;bottom:115px;width:198px;padding:13px 8px 5px;background:#ffffffe8;border:1px solid #ffffff;border-radius:14px;box-shadow:0 10px 35px #223a3615;pointer-events:none}.map-title{display:flex;justify-content:space-between;font-size:12px;margin:0 4px 6px}.map-title span{font-size:10px;color:#8a9991}#minimap{width:100%;height:auto;display:block}#walking-pad{position:absolute;bottom:106px;left:50%;transform:translateX(-50%);display:grid;grid-template:repeat(2,44px)/repeat(3,44px);gap:5px;touch-action:none}#walking-pad button{background:#fffdf4dd;border:1px solid #fff;border-radius:12px;font-size:23px;box-shadow:0 3px 10px #203c2412;user-select:none;-webkit-user-select:none;touch-action:none}#walking-pad button.pressed{background:#234f3d;color:#fff}.up{grid-area:1/2}.left{grid-area:2/1}.down{grid-area:2/2}.right{grid-area:2/3}#loading,#error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#e1eae5;z-index:20;font-size:16px;text-align:center;padding:25px}.loader{width:36px;height:36px;border-radius:50%;border:2px solid #b7c6bd;border-top-color:#234b3b;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#error p{max-width:430px;line-height:1.8}#error button{padding:12px 25px;background:#1a4034;color:white;border-radius:8px}#toast{position:absolute;bottom:240px;left:50%;transform:translateX(-50%);background:#1a3e35ed;color:white;padding:12px 20px;border-radius:12px;font-size:14px;max-width:85vw;text-align:center;pointer-events:none}dialog{padding:25px;border:0;border-radius:18px;max-width:750px;width:calc(100vw - 40px);color:#263f34;box-shadow:0 30px 100px #0b2e3460}dialog::backdrop{background:#14332f88;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-heading .eyebrow{margin:0 0 6px}.dialog-heading h2{margin:0;font-size:22px;font-weight:500}dialog img{display:block;width:100%;border-radius:10px}.dialog-note{font-size:13px;line-height:1.8;color:#738378;margin-bottom:0}.help-content{display:grid;grid-template-columns:1fr 1fr;gap:8px 30px;line-height:1.8;font-size:15px}.help-content strong{color:#315c48}body.walking .scene-caption{display:none}
@media(min-width:1400px){.rooms-panel{left:38px;top:140px;width:254px}.topbar{left:38px;right:38px}.room{padding:13px 11px}.right-tools{right:38px;top:140px}}
@media(max-height:760px) and (min-width:801px){.rooms-panel{top:100px;padding-top:16px}.room{min-height:49px;padding:7px 10px}.rooms-panel h2{margin-bottom:12px}.design-note{margin-top:10px;padding-top:10px}.right-tools{top:100px}}
@media(max-width:1000px){.rooms-panel{width:212px}.brand h1{font-size:23px}.view-badge{top:90px}.control-hint{font-size:11px}.mode-switch button{padding:14px 17px}.floor-map{width:164px}}
@media(max-width:800px){.topbar{top:17px;left:16px;right:16px}.brand-icon{width:38px;height:38px;font-size:28px;border-radius:10px}.brand{gap:9px}.brand h1{font-size:22px}.brand h1 span{display:none}.brand p{font-size:10px}.light-btn{font-size:12px;padding:11px}.icon-btn{width:36px;height:36px}.view-badge{top:76px;font-size:12px;padding:8px 13px}.rooms-panel{left:0;top:auto;bottom:90px;width:100%;padding:0 15px;background:none;box-shadow:none;border:0;backdrop-filter:none}.rooms-panel .eyebrow,.rooms-panel h2,.design-note{display:none}.room-list{flex-direction:row;overflow-x:auto;gap:7px;scrollbar-width:none;padding:5px 0}.room{flex:0 0 auto;background:#fffffff0;padding:10px 13px;border:1px solid #fff;gap:8px;min-height:42px;box-shadow:0 5px 15px #1d3f2510}.room small,.room-number{display:none}.room-icon{font-size:20px;width:22px}.room>span:nth-child(2){font-size:12px}.room.active{background:#1e4538;color:white;border-color:#1e4538}.room.active .room-icon{color:#d5e5dc}.right-tools{right:16px;top:127px;gap:7px}.tool{font-size:11px;padding:7px 9px;gap:5px}.tool>span{font-size:20px;width:20px}.bottom-bar{left:15px;right:15px;bottom:18px;justify-content:center}.control-hint{position:absolute;bottom:calc(100dvh - 139px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10px;background:transparent;border:0;backdrop-filter:none;padding:4px;gap:6px}.mouse-icon{width:11px;height:16px;border-width:1px}.mouse-icon:after{left:4px;top:3px;height:4px;width:1px}.mode-switch{width:100%;max-width:450px;display:grid;grid-template-columns:1fr 1fr}.mode-switch button{padding:14px 10px;font-size:13px}.scene-caption{right:18px;bottom:159px}.floor-map{right:16px;bottom:155px;width:137px;padding:9px 5px 2px}.map-title{font-size:10px}.map-title span{display:none}#walking-pad{left:22px;bottom:158px;transform:none;grid-template:repeat(2,42px)/repeat(3,42px);gap:4px}.help-content{grid-template-columns:1fr;font-size:14px;gap:0}#toast{bottom:285px;font-size:12px}dialog{padding:20px}.dialog-heading h2{font-size:19px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.loader{animation:none}}

.room-list{max-height:calc(100dvh - 330px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c5d1c8 transparent}.room{min-height:54px;padding:9px 10px;flex-shrink:0}.mode-switch button{padding-left:18px;padding-right:18px}#plan-reference-dialog{max-width:980px}
@media(max-width:1100px) and (min-width:801px){.bottom-bar .control-hint{max-width:295px;line-height:1.6}.mode-switch button{padding:14px 12px}}
@media(max-width:800px){.room-list{max-height:none;overflow-y:hidden}.room{min-height:42px;padding:10px 13px}.mode-switch{grid-template-columns:1fr 1fr 1.15fr;max-width:520px}.mode-switch button{padding:14px 4px;font-size:12px}.mode-switch button span{padding-left:4px}.header-actions{gap:5px}.light-btn{font-size:10px;padding:10px 8px}.brand h1{font-size:20px}.brand-icon{width:33px;height:36px}.brand p{font-size:10px}.icon-btn{width:31px;height:34px}.view-badge{font-size:11px}.control-hint{font-size:10px}}

/* Room-specific tours and a side rail keep the center of the view clear. */
.room-row{display:flex;align-items:center;gap:3px;border-radius:10px;flex-shrink:0;min-width:0}.room-row.active{background:#e4eee7}.room-row .room{flex:1;min-width:0;gap:6px;padding:9px 6px;background:transparent}.room-row .room-icon{font-size:20px;flex-shrink:0;width:21px}.room-row .room>span:nth-child(2){min-width:0}.room-row .room small{font-size:11px;line-height:1.6}.room-spin{flex:0 0 45px;min-height:38px;margin-right:5px;padding:5px 3px;font-size:13px;font-weight:600;border-radius:8px;background:#f1f5ee;border:1px solid #ccdace;color:#315c42}.room-spin:hover{background:#e0eadf}.room-spin[aria-pressed=true]{background:#214b38;color:#fff;border-color:#214b38}.room-row.active .room-spin{border-color:#9fb79e}.room-row.active .room.active{background:transparent}
.right-rail{position:absolute;right:30px;top:122px;bottom:112px;width:176px;display:flex;flex-direction:column;align-items:flex-end;gap:22px;pointer-events:none;overflow-y:auto;scrollbar-width:none}.right-rail .right-tools{position:static;align-items:stretch;pointer-events:auto;flex-shrink:0}.right-rail #walking-pad{position:static;inset:auto;transform:none;grid-template:repeat(2,44px)/repeat(3,44px);gap:5px;pointer-events:auto;flex-shrink:0;margin-top:8px}.right-rail .floor-map{position:static;width:176px;max-width:100%;margin-top:auto;flex-shrink:0}.right-rail .tool{justify-content:flex-start}
@media(min-width:1400px){.right-rail{right:38px;top:140px}}
@media(max-height:760px){.right-rail{top:112px;gap:14px}.right-rail .right-tools{flex-direction:row;gap:5px}.right-rail .tool{font-size:0;gap:0;width:44px;height:44px;padding:10px;justify-content:center}.right-rail .tool>span{font-size:23px}.right-rail .floor-map{width:142px}.right-rail .map-title span{display:none}.right-rail #walking-pad{margin-top:0}}
@media(max-width:800px){.room-row{flex:0 0 auto;background:#fffffff0;border:1px solid #fff;box-shadow:0 5px 15px #1d3f2510}.room-row .room{flex:0 0 auto;min-height:42px;border:0;box-shadow:none;padding:9px 8px}.room-row .room small{display:none}.room-spin{font-size:12px;flex-basis:44px;min-height:34px;margin-right:4px}.room-row.active{background:#1e4538;border-color:#1e4538}.room-row.active .room-spin{background:#f1f5e8;color:#28553a;border-color:#f1f5e8}.room-row.active .room-spin[aria-pressed=true]{background:#496b52;color:white;border-color:#8ba58c}.right-rail{right:16px;top:142px;bottom:157px;width:138px;gap:16px}.right-rail .right-tools{flex-direction:row;gap:5px}.right-rail .tool{font-size:0;gap:0;width:41px;height:41px;padding:9px;justify-content:center}.right-rail .tool>span{font-size:22px}.right-rail #walking-pad{grid-template:repeat(2,42px)/repeat(3,42px);gap:4px;margin-top:0}.right-rail .floor-map{width:136px}.right-rail .map-title span{display:none}}
@media(max-height:560px){.right-rail .floor-map{display:none}.right-rail{gap:10px}.right-rail #walking-pad{grid-template:repeat(2,40px)/repeat(3,40px);gap:4px}}

/* Shared day/night controls stay at the top of the side rail. */
.time-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:100%;padding:5px;background:#fffffff0;border:1px solid #fff;border-radius:13px;pointer-events:auto;flex-shrink:0;box-shadow:0 5px 20px #102b2412}
.time-switch button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:57px;padding:5px 4px;border-radius:9px;font-size:14px;color:#315442;background:transparent}
.time-switch button span{font-size:21px;line-height:1}.time-switch button:hover{background:#e8eee5}.time-switch button[aria-pressed=true]{background:#244c3c;color:#fff}.time-switch button:focus-visible{outline:2px solid #76954e;outline-offset:2px}
body.night .brand,body.night .scene-caption{color:#f3eedf}body.night .brand p{color:#c6d0d9}body.night .brand h1 span{border-color:#9baab9}body.night .time-switch{background:#15293beF;border-color:#405566}body.night .time-switch button{color:#dce5eb}body.night .time-switch button:hover{background:#2a3e50}body.night .time-switch button[aria-pressed=true]{background:#f2d89f;color:#273342}
@media(max-width:800px){.time-switch{padding:4px}.time-switch button{min-height:55px;font-size:14px}body.night .control-hint{color:#e6edf5}}
@media(max-height:720px){.right-rail .floor-map{width:120px}.right-rail{gap:10px}.time-switch button{min-height:48px}.time-switch button span{font-size:18px}}
