:root{--dark:#132e39;--light:#d4dee7;--ink:#18323d;--muted:#637983;--white:#fff;--shadow:0 18px 60px rgba(0,0,0,.28)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#07151b;color:#fff;font-family:Montserrat,Arial,sans-serif}button,input{font:inherit}button{touch-action:manipulation}
#gl{position:fixed;inset:0;width:100%;height:100%;display:block;cursor:grab;background:#07151b}#gl.drag{cursor:grabbing}
#loading{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:#07151b}.loadingCard{min-width:240px;padding:22px 24px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(19,46,57,.94);text-align:center;box-shadow:var(--shadow)}.spinner{width:34px;height:34px;margin:0 auto 12px;border:3px solid rgba(255,255,255,.18);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#loadingRetry{display:none;margin:14px auto 0;border:0;border-radius:10px;padding:9px 12px;background:var(--light);color:var(--dark);font-weight:800;cursor:pointer}
#topbar{position:fixed;top:0;left:0;right:0;z-index:25;min-height:64px;display:none;align-items:center;gap:10px;padding:9px 12px;background:linear-gradient(180deg,rgba(8,25,32,.94),rgba(8,25,32,.72));backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.1)}
.brand{display:flex;align-items:center;gap:9px;min-width:0}.brand img{width:40px;height:40px;object-fit:contain;border-radius:50%;background:#fff;padding:4px}.brandText{min-width:0}.brandText b{display:block;font-size:13px;letter-spacing:.02em}.brandText span{display:block;max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#c7d5db;margin-top:2px}.topSpacer{flex:1}.topBtn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.09);color:#fff;padding:8px 11px;font-weight:800;font-size:11px;cursor:pointer}.topBtn:hover{background:rgba(255,255,255,.16)}#visitorMini{font-size:10px;color:#d5e3e8;white-space:nowrap}
#sidebar{position:fixed;z-index:24;left:14px;top:78px;bottom:18px;width:min(300px,calc(100vw - 28px));display:none;flex-direction:column;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(12,32,40,.92);backdrop-filter:blur(13px);box-shadow:var(--shadow);overflow:hidden}#sidebar.open{display:flex}.sidebarHead{display:flex;align-items:center;gap:8px;padding:15px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebarHead b{font-size:14px}.sidebarHead button{margin-left:auto;border:0;background:transparent;color:#fff;font-size:24px;cursor:pointer}.roomList{padding:9px;overflow:auto}.room{width:100%;border:0;border-radius:11px;background:transparent;color:#dbe6ea;text-align:left;padding:11px 12px;margin:2px 0;cursor:pointer;font-weight:700}.room small{display:block;margin-top:3px;color:#8fa5ad;font-size:9px}.room:hover,.room.active{background:#fff;color:var(--dark)}.room.active small{color:#607781}
#hotspots{position:fixed;inset:0;z-index:14;pointer-events:none}.hotspot{position:fixed;transform:translate(-50%,-50%);display:none;flex-direction:column;align-items:center;border:0;background:transparent;color:#fff;padding:0;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 5px 11px rgba(0,0,0,.38))}.doorpin{display:grid;place-items:center;width:42px;height:42px;border:2px solid rgba(255,255,255,.94);border-radius:50%;background:rgba(19,46,57,.9);box-shadow:0 0 0 4px rgba(19,46,57,.18)}.doorarrow{font-size:28px;line-height:1;transform:translateX(1px);font-weight:500}.hlabel{margin-top:6px;max-width:190px;padding:6px 9px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(8,27,34,.82);backdrop-filter:blur(7px);font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hotspot::before,.hotspot::after{display:none!important;content:none!important}
#nadirBrand{position:fixed;left:0;top:0;width:132px;height:132px;transform:translate(-50%,-50%);z-index:13;display:none;pointer-events:none;border-radius:50%;background:rgba(255,255,255,.97);border:3px solid rgba(19,46,57,.92);box-shadow:0 8px 28px rgba(0,0,0,.28),inset 0 0 0 4px rgba(212,222,231,.55);overflow:hidden;align-items:center;justify-content:center}#nadirBrand img{display:block;width:76%;height:76%;object-fit:contain;filter:none}
#floorPanel{position:fixed;z-index:35;left:50%;top:50%;width:min(720px,calc(100vw - 64px));height:min(72vh,560px);max-height:calc(100vh - 120px);transform:translate(-50%,-50%);display:none;flex-direction:column;border:1px solid #d7e1e6;border-radius:20px;background:#f8fafb;color:var(--dark);box-shadow:0 22px 70px rgba(0,0,0,.34);overflow:hidden}#floorPanel.open{display:flex}.panelHead{display:flex;align-items:center;gap:10px;padding:13px 14px;background:#fff;border-bottom:1px solid #e1e8eb}.panelHead h2{font-size:16px;margin:0;white-space:nowrap}.panelHead .floorCloseBtn{margin-left:0;border:0;background:#eef3f5;color:var(--dark);border-radius:9px;width:34px;height:34px;font-size:22px;cursor:pointer;flex:0 0 auto}.floorZoom{margin-left:auto;display:flex;align-items:center;gap:6px}.floorZoom button{border:1px solid #d5e0e4;background:#fff;color:var(--dark);border-radius:9px;min-width:32px;height:32px;padding:0 9px;font-size:16px;font-weight:800;cursor:pointer}.floorZoom .floorFitBtn{font-size:10px;min-width:auto;padding:0 10px}.floorZoom span{min-width:48px;text-align:center;color:#5f737b;font-size:10px;font-weight:800}.floorTabs{display:flex;gap:7px;flex-wrap:wrap;padding:10px 14px 0}.floorTab{border:1px solid #cad7dc;border-radius:999px;background:#fff;color:var(--dark);padding:7px 10px;font-size:10px;font-weight:800;cursor:pointer}.floorTab.active{background:var(--dark);color:#fff;border-color:var(--dark)}.floorViewport{flex:1;min-height:0;position:relative;margin:12px 14px 14px;overflow:hidden;border-radius:14px;background:#fff;touch-action:none;cursor:grab;user-select:none;overscroll-behavior:contain}.floorViewport.dragging{cursor:grabbing}.floorStage{position:absolute;inset:0;overflow:hidden;border-radius:14px;background:#fff}.floorStage img{position:absolute;left:50%;top:50%;display:block;width:auto;height:auto;max-width:calc(100% - 28px);max-height:calc(100% - 28px);object-fit:contain;border-radius:10px;background:#fff;transform:translate(-50%,-50%) translate(var(--floor-pan-x,0px),var(--floor-pan-y,0px)) scale(var(--floor-zoom,1));transform-origin:center center;will-change:transform;-webkit-user-drag:none;user-select:none}.floorViewport.dragging .floorStage img{transition:none}.floorEmpty{display:grid;place-items:center;width:100%;height:100%;color:#6c7f86;font-size:12px;text-align:center;padding:30px}
#qualityBadge{position:fixed;right:18px;bottom:20px;z-index:12;background:rgba(19,46,57,.82);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:6px 9px;color:#dbe7eb;font-size:9px;pointer-events:none;opacity:.72;display:none}
#accessGate{position:fixed;inset:0;z-index:120;background:radial-gradient(circle at 50% 22%,#244653 0,#102832 43%,#09171d 100%);display:grid;place-items:center;padding:22px;overflow:auto}.accessCard{width:min(560px,100%);background:#fff;color:var(--dark);border-radius:24px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.42)}.accessBrand{display:flex;align-items:center;gap:12px;margin-bottom:20px}.accessBrand img{width:48px;height:48px;object-fit:contain}.accessCard h1{font-size:25px;margin:0 0 5px}.accessCard .lead{color:#5e737c;line-height:1.5;margin:0 0 20px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:800;color:#314b55}.field input{width:100%;border:1px solid #cbd8dd;border-radius:11px;padding:11px 12px;color:var(--dark);background:#fff;outline:none}.field input:focus{border-color:#597e8c;box-shadow:0 0 0 3px rgba(89,126,140,.13)}.consent{display:flex;gap:9px;align-items:flex-start;margin:15px 0;color:#5f727a;font-size:11px;line-height:1.45}.consent input{margin-top:2px}.primaryBtn{width:100%;border:0;border-radius:12px;background:var(--dark);color:#fff;padding:12px 15px;font-weight:800;cursor:pointer}.primaryBtn:disabled{opacity:.6;cursor:wait}.ghostBtn{border:1px solid #ccd9de;background:#fff;color:var(--dark);border-radius:11px;padding:9px 11px;font-weight:750;cursor:pointer}.errorMsg{min-height:18px;margin-top:8px;color:#9d3b32;font-size:11px;font-weight:700}.verifyRow{display:flex;gap:9px}.verifyRow input{flex:1;text-align:center;letter-spacing:.22em;font-size:22px;font-weight:800}.verifyRow button{width:auto;min-width:130px}.privacyLink{color:var(--dark);font-weight:700}.hidden{display:none!important}
@media(max-width:760px){#topbar{padding:8px;min-height:58px}.brand img{width:36px;height:36px}.brandText span{max-width:42vw}.topBtn{min-height:39px;padding:7px 9px}.topBtn .txt{display:none}#visitorMini{display:none}.accessCard{padding:20px;border-radius:18px}.formgrid{grid-template-columns:1fr}.field.full{grid-column:1}.verifyRow{flex-direction:column}.verifyRow button{width:100%}#nadirBrand{width:108px;height:108px;border-width:2px}#nadirBrand img{width:74%;height:74%}#qualityBadge{right:10px;bottom:12px}#floorPanel{left:10px;right:10px;top:68px;bottom:10px;width:auto;height:auto;max-height:none;transform:none;border-radius:16px}.floorZoom .floorFitBtn{display:none}.floorZoom span{min-width:42px}.hlabel{max-width:145px}}
