:root{color:#263e36;font-synthesis:none;--ink:#263e36;--muted:#839089;--line:#3a504321;--green:#345c49;--paper:#fafbf6e0;background:#eeeee8;font-family:PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}button:focus-visible,a:focus-visible{outline-offset:4px;outline:2px solid #426e57}button:disabled{opacity:.35;cursor:default}#app{height:100dvh;min-height:640px}#viewport{position:absolute;inset:0;overflow:hidden}canvas{touch-action:none;display:block}header{z-index:5;background:linear-gradient(#f5f5eff0,#f5f5ef00);align-items:center;gap:26px;height:100px;padding:0 38px;display:flex;position:absolute;top:0;left:0;right:0}.brand{align-items:center;gap:12px;min-width:245px;display:flex}.brand-symbol{grid-template-columns:repeat(3,7px);align-items:end;gap:4px;width:34px;height:38px;display:grid;transform:skewY(-13deg)}.brand-symbol i{background:#3b5f4b;border-radius:1px;height:30px}.brand-symbol i:nth-child(2){height:38px}.brand-symbol i:nth-child(3){height:23px}.brand strong{letter-spacing:4px;font-size:21px;font-weight:600}.brand small{letter-spacing:2px;color:#7c8a80;margin-top:5px;font-size:9px;display:block}.header-divider{background:var(--line);width:1px;height:30px}.project-title{letter-spacing:2px;font-size:13px}.project-title span{color:#9aa39b;letter-spacing:1.3px;margin-left:13px;font-size:10px}.top-right{align-items:center;gap:24px;margin-left:auto;display:flex}.demo-badge{letter-spacing:1px;color:#7e8d7f;align-items:center;gap:7px;font-size:10px;display:flex}.demo-badge:before{content:"";background:#769280;border-radius:50%;width:5px;height:5px}.top-clock{letter-spacing:1px;font-family:Georgia,serif;font-size:17px}.top-clock small{color:#8a958b;margin-left:8px;font-family:inherit;font-size:10px}.left-panel{z-index:4;pointer-events:none;width:220px;position:absolute;top:128px;left:38px}.left-panel>*{pointer-events:auto}.eyebrow{letter-spacing:2.3px;color:#7b8b7c;font-size:9px;font-weight:500}.left-panel h1{letter-spacing:4px;margin:13px 0 9px;font-family:Songti SC,STSong,serif;font-size:34px;font-weight:400}.location{letter-spacing:1.4px;color:#879186;align-items:center;gap:6px;font-size:10px;display:flex}.overview-head{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:43px;padding-top:20px;display:flex}.overview-head h2{margin:0;font-size:12px;font-weight:500}.overview-head span{color:#9aa196;font-size:9px}.occupancy{align-items:baseline;gap:4px;margin-top:18px;display:flex}.occupancy b{letter-spacing:-3px;font-family:Georgia,Times New Roman,serif;font-size:62px;font-weight:400;line-height:1.1}.occupancy em{font-family:Georgia,serif;font-size:22px;font-style:normal}.occupancy-label{color:#839082;margin-top:7px;font-size:11px}.occupancy-bar{background:#dbdfd3;gap:2px;height:3px;margin:22px 0 19px;display:flex}.occupancy-bar i{height:100%}.metrics{grid-template-columns:repeat(2,1fr);gap:24px 14px;display:grid}.metric span{color:#81907f;margin-bottom:8px;font-size:10px;display:block}.metric strong{font-family:Georgia,serif;font-size:25px;font-weight:400}.metric small{color:#8a9585;margin-left:5px;font-size:10px}.building-list{border-top:1px solid var(--line);margin-top:32px;padding-top:18px}.list-title{letter-spacing:1px;color:#82907e;margin-bottom:12px;font-size:10px}.building-row{text-align:left;border-bottom:1px solid #3a50430f;align-items:center;gap:11px;width:100%;padding:11px 0;transition:padding .25s,color .25s;display:flex}.building-row:hover,.building-row.active{color:#2e6e4e;padding-left:7px}.building-row .letter{color:#69816c;width:23px;font-family:Georgia,serif;font-size:19px;display:block}.building-row .bn{font-size:11px}.building-row .bn small{color:#9ba393;margin-top:5px;font-size:9px;display:block}.building-row .arrow{margin-left:auto;font-size:14px}.side-note{color:#9aa18f;letter-spacing:1px;margin-top:25px;font-size:9px;line-height:1.8}.breadcrumb{z-index:5;white-space:nowrap;color:#7d8a7d;align-items:center;gap:8px;font-size:10px;display:flex;position:absolute;top:103px;left:50%;transform:translate(-50%)}.breadcrumb button{padding:7px 9px}.breadcrumb button:hover{color:#2b5b40}.breadcrumb span{color:#aeb6a5}.right-panel{z-index:5;width:245px;transition:opacity .3s,transform .3s;position:absolute;top:135px;right:34px}.scene-note{border-top:1px solid var(--line);padding-top:16px}.scene-note .idx{color:#9aa88f;font-family:Georgia,serif;font-size:36px;font-style:italic}.scene-note h3{margin:11px 0;font-size:13px;font-weight:400}.scene-note p{color:#8a9582;margin:0;font-size:10px;line-height:1.95}.scene-note .line{background:#97a588;width:25px;height:1px;margin:19px 0}.compass{z-index:4;color:#75856e;border:1px solid #bac3b164;border-radius:50%;place-items:center;width:65px;height:65px;font-family:Georgia,serif;font-size:9px;display:grid;position:absolute;bottom:125px;right:45px}.compass:before,.compass:after{content:"";background:#a4af9877;position:absolute}.compass:before{width:1px;height:42px}.compass:after{width:42px;height:1px}.compass span{position:absolute;top:-15px}.compass svg{z-index:1;width:29px;transform:rotate(-35deg)}.bottom-bar{z-index:6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fbfcf6de;border:1px solid #fff9;border-radius:12px;align-items:center;gap:4px;padding:7px;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 7px 28px #37462b0c}.tool{white-space:nowrap;border-radius:7px;align-items:center;gap:8px;padding:12px 17px;font-size:11px;transition:background .2s;display:flex}.tool:hover{background:#e7ebdf}.tool.active{color:#f3f6ed;background:#3d5f49}.tool svg{stroke-width:1.4px;width:15px;height:15px}.tool-divider{background:var(--line);width:1px;height:24px;margin:0 4px}.bottom-left{letter-spacing:1.2px;color:#8c9884;font-size:9px;line-height:2;position:absolute;bottom:34px;left:38px}.bottom-left b{color:#5b725a;font-size:10px;font-weight:400}.bottom-right{color:#9aa38e;text-align:right;letter-spacing:.5px;font-size:9px;line-height:2;position:absolute;bottom:34px;right:35px}.labels{pointer-events:none;z-index:3;position:absolute;inset:0}.scene-label{pointer-events:auto;white-space:nowrap;background:#fcfdf7f0;border:1px solid #fff;border-radius:5px;align-items:center;gap:9px;padding:10px 14px;transition:background .2s,box-shadow .2s;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 5px 20px #26382e13}.scene-label:after{content:"";background:#788c6c99;width:1px;height:20px;position:absolute;bottom:-20px;left:50%}.scene-label .mark{color:#56734f;background:#e7ecdf;border-radius:3px;place-items:center;width:25px;height:27px;font-family:Georgia,serif;font-size:11px;display:grid}.scene-label strong{font-size:10px;font-weight:500}.scene-label small{color:#919d87;margin-top:3px;font-size:8px;display:block}.scene-label:hover{background:#fff;box-shadow:0 6px 25px #26382e27}.detail-card{background:var(--paper);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border:1px solid #fff9;border-radius:10px;overflow:hidden;box-shadow:0 12px 40px #33412c08}.detail-top{border-bottom:1px solid var(--line);padding:23px 21px 18px;position:relative}.close-detail{color:#84947c;padding:5px;font-size:22px;position:absolute;top:10px;right:12px}.detail-top .eyebrow{letter-spacing:1.7px;font-size:8px}.detail-top h2{margin:13px 0 6px;font-family:Songti SC,serif;font-size:25px;font-weight:400}.detail-top p{color:#8a9782;margin:0;font-size:10px}.detail-content{padding:20px}.detail-stats{grid-template-columns:1fr 1fr;gap:20px;display:grid}.detail-stats label{color:#87937e;margin-bottom:7px;font-size:9px;display:block}.detail-stats strong{font-family:Georgia,serif;font-size:24px;font-weight:400}.detail-stats strong small{margin-left:2px;font-size:12px}.primary{color:#f4f6ee;background:#3d604b;border-radius:5px;justify-content:space-between;align-items:center;width:100%;margin-top:23px;padding:13px 14px;font-size:11px;display:flex}.primary:hover{background:#2d503b}.detail-note{color:#919b87;margin-top:12px;font-size:9px;line-height:1.8}.floor-heading{justify-content:space-between;align-items:center;margin:22px 0 12px;font-size:10px;display:flex}.floor-heading span{color:#8f9a83;font-size:9px}.floor-grid{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.floor-grid button{color:#75876b;border:1px solid #dbe2d1;border-radius:3px;padding:9px 0;font-size:10px}.floor-grid button:hover{background:#e8edde}.floor-grid button.active{color:#fff;background:#3e604a;border-color:#3e604a}.legend{color:#83917b;gap:14px;margin-top:20px;font-size:9px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.legend i{border-radius:2px;width:6px;height:6px}.room-grid{grid-template-columns:repeat(4,1fr);gap:5px;margin-top:16px;display:grid}.room-grid button{color:#496051;background:#e0e9df;border:1px solid #0000;border-radius:4px;padding:8px 0;font-size:10px}.room-grid button[data-status=vacant]{color:#9c804c;background:#eee5d3}.room-grid button[data-status=maintenance]{color:#a16c55;background:#f0ded5}.room-grid button.active{border-color:#314f3b;box-shadow:0 0 0 1px #314f3b}.room-list-label{color:#8a9682;margin-top:12px;font-size:9px;line-height:1.7}.room-state{align-items:center;gap:5px;margin-top:10px;font-size:10px;display:inline-flex}.room-state i{border-radius:50%;width:6px;height:6px}.room-info{margin:18px 0 0;padding:0;list-style:none}.room-info li{border-bottom:1px solid var(--line);justify-content:space-between;padding:10px 0;font-size:10px;display:flex}.room-info span{color:#8a9681}.device-row{justify-content:space-between;gap:4px;margin-top:16px;font-size:9px;display:flex}.device-row span{border:1px solid var(--line);color:#70866a;border-radius:4px;padding:6px 8px}.floor-strip{z-index:4;letter-spacing:1px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f9faf2de;border:1px solid #fff;border-radius:6px;padding:11px 18px;font-size:11px;position:absolute;bottom:110px;left:calc(50% - 100px)}.floor-strip span{color:#8b9780;margin-left:13px;font-size:9px}.view-hint{letter-spacing:1px;color:#8d9985;z-index:3;white-space:nowrap;font-size:9px;position:absolute;top:145px;left:50%;transform:translate(-50%)}.loader{z-index:20;background:#eeeee8;place-items:center;transition:opacity .7s;display:grid;position:absolute;inset:0}.loader.hidden{opacity:0;pointer-events:none}.loader-inner{text-align:center}.loader-inner h2{letter-spacing:8px;font-family:Songti SC,serif;font-size:36px;font-weight:400}.loader-inner p{letter-spacing:3px;color:#87917f;font-size:10px}.loading-line{background:#ced5c5;width:130px;height:1px;margin:25px auto;overflow:hidden}.loading-line:after{content:"";background:#476a4b;width:50%;height:1px;animation:1.2s infinite load;display:block}.toast{color:#f5f7ef;z-index:12;opacity:0;pointer-events:none;background:#2e493de8;border-radius:6px;padding:12px 22px;font-size:11px;transition:all .3s;position:absolute;bottom:105px;left:50%;transform:translate(-50%,15px)}.toast.show{opacity:1;transform:translate(-50%)}.night{--ink:#e0e9de;--muted:#a4b3a3;--line:#a2b8a030;--paper:#253d3ae8;color:var(--ink);background:#152c31}.night header{background:linear-gradient(#1b3338f0,#1b333800)}.night .brand strong,.night .project-title{color:#e4ecdd}.night .brand-symbol i{background:#b0c9aa}.night .scene-label{color:#e5eddd;background:#294139ef;border-color:#58735d}.night .scene-label .mark{color:#c9daba;background:#3d5847}.night .bottom-bar{background:#263f39ee;border-color:#58735d}.night .tool:hover{background:#3b5546}.night .tool.active{color:#253f32;background:#b8cba0}.night .detail-top h2{color:#e0e9de}.night .floor-grid button{border-color:#617154}.night .floor-grid button.active{color:#213b2c;background:#afc39b}.night .floor-strip{background:#294139de;border-color:#58735d}.night .building-row{color:#c0ceaf}.night .room-info li{color:#e0e9de}#viewport:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 120px #eceee54d}.night #viewport:after{box-shadow:inset 0 0 140px #10282d66}@keyframes load{0%{transform:translate(-100%)}to{transform:translate(300%)}}@media (width<=1250px){header{gap:16px;padding:0 24px}.brand{min-width:214px}.project-title span{display:none}.left-panel{width:190px;top:123px;left:24px}.right-panel{width:220px;right:24px}.left-panel h1{font-size:29px}.occupancy b{font-size:53px}.tool{padding:12px}.bottom-left{left:24px}.bottom-right{right:24px}.scene-note{margin-left:25px}.compass{right:32px}.top-right{gap:13px}}@media (height<=800px){.left-panel{top:110px}.overview-head{margin-top:25px}.building-list{margin-top:23px}.building-row{padding:9px 0}.metrics{gap:17px}.side-note{display:none}.occupancy b{font-size:50px}.right-panel{top:117px}.detail-content{padding:16px}.detail-top{padding:19px}.room-info li{padding:8px 0}.floor-grid button{padding:7px 0}.bottom-bar{bottom:20px}.bottom-left,.bottom-right{bottom:24px}}@media (width<=900px){.project-title,.header-divider,.top-clock{display:none}.left-panel{width:155px}.left-panel h1{font-size:26px}.metrics{gap:15px 5px}.metric strong{font-size:21px}.right-panel{width:200px;right:16px}.scene-note{display:none}.tool{gap:5px;padding:11px 9px;font-size:10px}.bottom-right,.bottom-left{display:none}.view-hint{top:110px}.breadcrumb{top:86px}.occupancy b{font-size:45px}.building-row .bn{font-size:10px}.detail-top h2{font-size:21px}.detail-content{padding:13px}.legend{gap:8px}.scene-label{padding:7px 9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.location svg{flex-shrink:0;width:12px;height:12px}.detail-note{margin-bottom:0}.left-panel h1{letter-spacing:1.2px;white-space:nowrap;font-size:24px;line-height:1.5}.view-hint{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#f1f3e97d;border-radius:4px;padding:6px 12px;top:auto;bottom:102px}body:has(.floor-strip:not([hidden])) .view-hint{display:none}@media (height<=800px){.left-panel{top:112px}.left-panel h1{margin:9px 0 7px;font-size:23px}.overview-head{margin-top:25px;padding-top:16px}.occupancy{margin-top:11px}.occupancy b{font-size:47px}.occupancy-bar{margin:16px 0}.metrics{gap:16px 12px}.metric span{margin-bottom:5px}.metric strong{font-size:23px}.building-list{margin-top:22px;padding-top:13px}.list-title{margin-bottom:6px}.building-row{padding:9px 0}.building-row .bn small{margin-top:4px}.bottom-left{display:none}.detail-card{scrollbar-width:thin;max-height:calc(100dvh - 210px);overflow:auto}.compass{bottom:115px}}@media (width<=1250px){.left-panel h1{letter-spacing:.5px;font-size:21px}}@media (width<=900px){.left-panel h1{letter-spacing:.5px;font-size:17px}}.bottom-left{display:none}.scene-label{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.night .eyebrow,.night .location,.night .occupancy-label,.night .metric span,.night .metric small,.night .list-title,.night .building-row .bn small,.night .side-note,.night .scene-note p,.night .demo-badge,.night .breadcrumb,.night .bottom-right{color:#acbda5}.night .building-row .letter{color:#c4d4b9}.night .scene-note .idx{color:#aec3a1}.night .view-hint{color:#c4d2b9;background:#294139d9}.night .detail-note,.night .floor-heading span,.night .detail-stats label,.night .room-info span,.night .detail-top p,.night .room-list-label{color:#b1bea7}.map-legend{z-index:4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbfcf4e8;border:1px solid #fff8;border-radius:5px;padding:10px 15px;position:absolute;top:140px;left:50%;transform:translate(-50%)}.map-legend .legend{margin:0}.night .map-legend{background:#294139e8;border-color:#58735d}.night .map-legend .legend{color:#c4d2b9}.left-panel{isolation:isolate}.left-panel:before{content:"";z-index:-1;pointer-events:none;background:#f2f3ed;border:1px solid #ffffffa6;border-radius:9px;position:absolute;inset:-22px -17px -19px;box-shadow:0 10px 40px #34422b07}.night .left-panel{background:0 0}.night .left-panel:before{background:#20363b;border-color:#7a907035}#viewport:after{box-shadow:inset 0 0 90px #eceee520}.metric span,.occupancy-label,.list-title{color:#66765f}.building-row .bn small,.side-note{color:#7c8773}.plan-dialog{color:#304b3c;background:#f5f6ee;border:1px solid #fff;border-radius:12px;width:min(900px,92vw);max-height:92dvh;padding:0;box-shadow:0 30px 100px #14281d44}.plan-dialog::backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#21372c88}.plan-header{border-bottom:1px solid var(--line);letter-spacing:1px;justify-content:space-between;align-items:center;padding:15px 22px;font-size:12px;display:flex}.plan-header button{font-size:25px}.plan-body{grid-template-columns:1.25fr 1fr;gap:25px;padding:20px 25px;display:grid}.plan-drawing svg{width:100%;max-height:70dvh;display:block}.plan-notes{padding:20px 0}.plan-notes h2{font-family:Songti SC,serif;font-size:23px;font-weight:400;line-height:1.5}.plan-notes p,.plan-notes li{color:#6a7d67;font-size:12px;line-height:1.9}.plan-notes ul{padding-left:17px}.plan-notes li{margin-bottom:10px}@media (width<=760px){.plan-body{grid-template-columns:1fr}.plan-notes{padding:0}.plan-drawing svg{max-height:60dvh}}.room-mode .left-panel,.room-mode .view-hint{display:none}.room-view-tools{gap:6px;margin-bottom:12px;display:flex}.room-view-tools button{border:1px solid var(--line);border-radius:4px;flex:1;padding:10px 5px;font-size:10px}.room-view-tools button[aria-pressed=true]{color:#f3f6ed;background:#3d604b;border-color:#3d604b}.plan-room-button{text-align:left;color:#547451;width:100%;padding:5px 0 18px;font-size:10px}.night .plan-room-button{color:#c3d2b6}.room-mode .floor-strip{left:50%;transform:translate(-50%)}.profile-note{color:#7b8c73;background:#e5eadc70;border-radius:4px;margin:-9px 0 16px;padding:8px 10px;font-size:9px;line-height:1.7}.night .profile-note{color:#bacaad;background:#526b492e}.portal-return{color:inherit;white-space:nowrap;border:1px solid #a4b3a0;border-radius:6px;padding:8px 12px;font-size:12px;text-decoration:none}.portal-return:focus-visible{outline-offset:3px;outline:2px solid #365b48}.mobile-sheet,.mobile-sheet-body{display:contents}.mobile-sheet-toggle,.mobile-building-dock,.mobile-step-entry,.mobile-back-label{display:none}.dorm-overview{color:#708367;background:#dfe8d743;border-radius:6px;margin-top:14px;padding:10px;font-size:10px;line-height:1.9}.dorm-overview b{color:var(--ink);margin:0 3px;font-size:17px}.bed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.bed-grid button{border:1px solid var(--bed-color);border-left:4px solid var(--bed-color);text-align:left;border-radius:7px;min-height:58px;padding:9px}.bed-grid b,.bed-grid small{font-size:11px;display:block}.bed-grid small{color:#7e8e75;margin-top:5px;font-size:10px}.bed-grid button[aria-pressed=true]{background:#dce7d3;box-shadow:inset 0 0 0 1px #537550}.bed-summary{background:#e2e9d852;border-radius:8px;margin:12px 0;padding:12px;font-size:11px;line-height:1.7}.bed-summary h3{margin:0 0 8px;font-size:14px}.room-grid button small{margin-top:5px;font-size:9px;display:block}.night .bed-grid button[aria-pressed=true]{background:#415c48}.night .bed-summary{background:#304b3d}.night .dorm-overview b{color:#d5e5cb}@media (width>=701px){.right-panel .detail-card{flex-direction:column;max-height:calc(100dvh - 205px);display:flex;overflow:hidden}.right-panel .detail-top{flex:none;padding-right:24px}.right-panel .detail-top .eyebrow{letter-spacing:1.2px;overflow-wrap:anywhere;padding-right:29px;line-height:1.7}.right-panel .detail-top h2{padding-right:12px}.right-panel .close-detail{border:1px solid var(--line);border-radius:50%;place-items:center;width:32px;height:32px;padding:0;font-size:20px;display:grid;top:12px;right:10px}.right-panel .detail-content{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#aab8a0 transparent;min-height:0;padding-bottom:24px;overflow:hidden auto}}@media (width<=700px){body{--sheet-collapsed:112px;--sheet-size:var(--sheet-collapsed);--sheet-bottom:calc(68px + env(safe-area-inset-bottom));--sheet-bg:#f6f8f0;--sheet-ink:#395844}body.building-mode.dorm-mode{--sheet-collapsed:156px}body.sheet-expanded{--sheet-size:min(64dvh,calc(100dvh - 160px))}body.night{--sheet-bg:#243e39;--sheet-ink:#d0dec7}#app{height:100dvh;min-height:0}header{gap:8px;height:60px;padding:0 16px}.brand{gap:8px;min-width:0}.brand strong{letter-spacing:2px;font-size:15px}.brand small{letter-spacing:1px;font-size:6px}.brand-symbol{transform:scale(.75)}.project-title,.header-divider,.demo-badge,.top-clock{display:none}.top-right{margin-left:auto}.portal-return{padding:8px 10px;font-size:10px}#viewport{top:84px;bottom:calc(var(--sheet-collapsed) + var(--sheet-bottom) + 12px)}.breadcrumb{white-space:nowrap;justify-content:center;font-size:10px;top:62px;left:16px;right:16px;overflow:hidden;transform:none}.breadcrumb button{flex-shrink:0;min-height:24px}.view-hint{pointer-events:none;letter-spacing:1px;padding:4px 8px;font-size:8px;top:88px;bottom:auto}.compass{opacity:.5;width:28px;height:28px;top:90px;bottom:auto;right:12px}.floor-strip,.bottom-left,.bottom-right,.scene-note{display:none}.mobile-sheet{left:12px;right:12px;bottom:var(--sheet-bottom);height:var(--sheet-size);z-index:10;background:var(--sheet-bg);color:var(--sheet-ink);box-sizing:border-box;border-radius:18px;flex-direction:column;min-width:0;display:flex;position:fixed;overflow:hidden}.mobile-sheet-toggle{background:var(--sheet-bg);width:100%;min-height:44px;color:var(--sheet-ink);letter-spacing:.5px;z-index:1;border:0;border-radius:0;flex:0 0 44px;margin:0;padding:16px 12px 4px;font-size:11px;display:block;position:relative}.mobile-sheet-toggle:before{content:"";background:#a4b29b;border-radius:3px;width:30px;height:3px;position:absolute;top:7px;left:50%;transform:translate(-50%)}.mobile-sheet-body{overscroll-behavior-y:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:auto;min-width:0;min-height:0;display:block;overflow:hidden auto}.mobile-sheet-body::-webkit-scrollbar{width:0;height:0;display:none}.left-panel,.right-panel{width:auto;min-width:0;max-width:100%;height:auto;max-height:none;box-shadow:none;pointer-events:auto;isolation:auto;clip-path:none;background:0 0;border:0;border-radius:0;margin:0;padding:8px 18px 22px;display:none;position:static;inset:auto;overflow:visible}.left-panel:before,.right-panel:before{content:none;display:none}.left-panel>*,.right-panel>*{box-sizing:border-box;min-width:0;max-width:100%}.building-mode .right-panel{display:block}.detail-card{max-height:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;overflow:visible}.detail-top{border:0;padding:0 0 12px}.detail-top .eyebrow{display:none}.detail-top h2{margin:0 76px 5px 0;font-size:18px}.detail-top p{margin:0;font-size:9px}.room-state{display:none}.detail-content{min-width:0;padding:12px 0 0;display:none;overflow:visible}.close-detail{color:#527052;min-width:66px;min-height:44px;font-size:12px;top:0;right:0}.mobile-back-label{display:inline}.mobile-step-entry{color:#f5f7ef;background:#3d604b;border-radius:7px;width:100%;min-height:36px;margin:4px 0 0;font-size:11px;display:block}.mobile-building-dock{gap:0;min-height:68px;padding:0 6px 8px;display:flex}.building-mode .mobile-building-dock{display:none}.mobile-building-dock button{text-align:left;border:0;flex:1;justify-content:center;align-items:center;gap:7px;min-width:0;display:flex}.mobile-building-dock button+button{border-left:1px solid var(--line)}.mobile-building-dock b{color:#65836a;font:18px Georgia,serif}.mobile-building-dock span{white-space:nowrap;font-size:11px}.mobile-building-dock small{color:var(--muted);margin-top:4px;font-size:8px;display:block}.sheet-expanded .mobile-building-dock,.sheet-expanded .mobile-step-entry{display:none}.sheet-expanded:not(.building-mode) .left-panel,.sheet-expanded .detail-content,.sheet-expanded .room-state{display:block}.sheet-expanded .detail-top{border-bottom:1px solid var(--line)}.left-panel .eyebrow,.left-panel h1,.left-panel .location,.side-note{display:none}.overview-head{margin-top:0}.occupancy b{font-size:46px}.occupancy-bar{display:flex}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 0}.building-list{margin-top:20px}.building-row{min-height:48px;padding:10px 0}.building-row .bn{min-width:0;font-size:12px}.building-row .bn small{white-space:normal}.floor-grid button,.room-grid button,.room-view-tools button,.primary,.plan-room-button{min-height:44px}.room-view-tools button{font-size:11px}.bed-grid button{min-height:60px}.detail-stats{margin-bottom:14px}.detail-note{font-size:11px}.bottom-bar{bottom:calc(8px + env(safe-area-inset-bottom));width:auto;box-shadow:none;background:#fafbf4c9;border:0;border-radius:14px;justify-content:space-around;gap:0;padding:2px;left:12px;right:12px;transform:none}.tool{gap:4px;min-width:40px;min-height:42px;padding:9px 5px;font-size:10px}.tool svg{width:15px}.tool-divider{margin:0 2px}.scene-label{background:#fafbf4e8;border:1px solid #fff;border-radius:50%;justify-content:center;width:26px;min-width:26px;max-width:26px;height:26px;padding:0;transform:translate(-50%,-50%);box-shadow:0 2px 10px #263e3620}.scene-label>span:not(.mark){display:none}.scene-label .mark{color:#365b48;background:0 0;width:auto;height:auto;padding:0;font:12px Georgia,serif}.scene-label:after{display:none}.plan-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:90dvh;overflow:auto}.plan-dialog svg{max-width:100%;height:auto}.toast{max-width:90vw}.night .mobile-building-dock button{color:#e0ead8}.night .mobile-building-dock b{color:#bbcea5}.night .mobile-building-dock small{color:#a9bda3}.night .mobile-building-dock button+button{border-left-color:#a5bd9b26}.night .mobile-sheet-toggle:before{background:#7f9c83}.night .close-detail{color:#b9cda9}.night .overview-head h2,.night .metric strong,.night .occupancy b,.night .occupancy em{color:#e0ead8}}@media (width<=700px) and (height<=500px){body{--sheet-size:calc(100dvh - 142px)}#viewport{top:70px;bottom:65px;right:44%}.breadcrumb,.view-hint,.compass{display:none}.mobile-sheet{height:calc(100dvh - 138px);bottom:64px;left:58%;right:8px}.mobile-sheet-toggle{display:none}.mobile-sheet-body{overflow-y:auto}.left-panel,.building-mode .right-panel{padding:12px;display:block}.building-mode .left-panel,.mobile-building-dock,.mobile-step-entry{display:none}.detail-content,.room-state{display:block}.detail-top h2{margin-right:0;padding-top:38px}.sheet-expanded .mobile-sheet{height:calc(100dvh - 138px)}}
