*{box-sizing:border-box;margin:0;padding:0;}
[hidden]{display:none!important;}
body{background:#000;overflow:hidden;font-family:sans-serif;}
#pano{position:fixed;inset:0;}
#ui{position:fixed;inset:0;pointer-events:none;}
#title-bar{position:absolute;top:16px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,0.6);color:#fff;padding:8px 20px;border-radius:20px;font-size:15px;backdrop-filter:blur(4px);white-space:nowrap;}
#scene-list{position:absolute;top:16px;left:16px;pointer-events:all;}
#scene-list-toggle{background:rgba(0,0,0,0.7);color:#fff;border:none;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;backdrop-filter:blur(4px);}
#scene-list-toggle:hover{background:rgba(0,0,0,0.9);}
#scene-list-items{display:none;flex-direction:column;gap:6px;margin-top:8px;}
#scene-list-items.open{display:flex;}
#scene-list-items button{background:rgba(0,0,0,0.8);color:#fff;border:1px solid rgba(255,255,255,0.2);padding:8px 14px;border-radius:6px;cursor:pointer;font-size:13px;text-align:left;}
#scene-list-items button:hover{background:rgba(255,255,255,0.15);}
#top-right{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:all;max-width:45vw;}
#logo-link{display:flex;align-items:center;}
#logo-img{height:40px;max-width:140px;object-fit:contain;filter:drop-shadow(0 1px 4px rgba(0,0,0,0.6));}
.top-btn{color:#fff;text-decoration:none;font-size:13px;font-weight:600;background:rgba(0,0,0,0.65);padding:7px 16px;border-radius:8px;backdrop-filter:blur(4px);white-space:nowrap;display:block;text-align:center;}
.top-btn:hover{background:rgba(0,0,0,0.9);}
.top-btn-accent{background:rgba(233,69,96,0.85);}
.top-btn-accent:hover{background:rgba(200,50,70,0.95);}
#controls{position:absolute;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;pointer-events:all;transition:bottom .18s ease,right .18s ease;}
#controls button{background:rgba(0,0,0,0.7);color:#fff;border:1px solid rgba(255,255,255,0.2);width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:18px;backdrop-filter:blur(4px);line-height:1;}
#controls button:hover{background:rgba(255,255,255,0.2);}
#compass-wrap{position:absolute;bottom:20px;left:20px;pointer-events:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,0.5));}
#compass-wrap.flat-mode svg{transform:none;}
#compass-wrap.flat-mode .compass-north-label{display:none;}
#compass-wrap.flat-mode #flat-north-arrow{display:block;}
@media(max-width:768px){#compass-wrap{bottom:16px;left:12px;} #compass-wrap svg{width:48px;height:48px;}}
#plan-container{position:absolute;bottom:20px;right:20px;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.6);background:#111;overflow:hidden;}
#plan-container.plan-maximised{width:min(70vw,720px)!important;height:min(70vh,540px)!important;right:20px;bottom:20px;z-index:8;}
#plan-img{width:100%;height:100%;object-fit:contain;display:block;border-radius:8px;}
#plan-dots{position:absolute;inset:0;pointer-events:none;width:100%;height:100%;}
#plan-restore-btn{position:absolute;bottom:20px;right:20px;pointer-events:all;background:rgba(0,0,0,0.7);color:#fff;border:1px solid rgba(255,255,255,0.2);padding:8px 12px;border-radius:999px;cursor:pointer;font-size:13px;backdrop-filter:blur(4px);}
#plan-restore-btn:hover{background:rgba(255,255,255,0.16);}
.plan-controls-bar{position:absolute;top:8px;right:8px;left:8px;display:flex;align-items:center;justify-content:flex-end;gap:6px;z-index:2;}
.plan-controls-title{margin-right:auto;background:rgba(0,0,0,0.55);color:#fff;padding:4px 8px;border-radius:999px;font-size:11px;}
.plan-ctrl-btn{width:28px;height:28px;border-radius:999px;border:1px solid rgba(255,255,255,0.18);background:rgba(0,0,0,0.58);color:#fff;cursor:pointer;font-size:15px;line-height:1;pointer-events:all;}
.plan-ctrl-btn:hover{background:rgba(255,255,255,0.16);}
@media(max-width:768px){
  #top-right{top:12px!important;right:12px!important;max-width:55vw!important;gap:6px!important;}
  #logo-img{height:30px;max-width:100px;}
  .top-btn{font-size:11px;padding:5px 10px;}
  #title-bar{font-size:12px;padding:5px 12px;max-width:55vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  #plan-container{bottom:16px!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;width:52vw!important;height:39vw!important;}
  #plan-container.plan-maximised{left:50%!important;right:auto!important;bottom:16px!important;transform:translateX(-50%)!important;width:min(92vw,560px)!important;height:min(68vh,420px)!important;}
  #plan-restore-btn{bottom:16px;right:12px;}
}
.hotspot-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;transform:translate(-50%,-50%);cursor:default;}
.hs-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 10px rgba(0,0,0,0.6);transition:transform 0.15s;padding:8px;}
.hotspot-wrap:hover .hs-icon{transform:scale(1.15);}
.hs-info{background:#2196F3;font-size:20px;}
.hs-link{font-style:normal;cursor:pointer;}
.hs-link-camera{background:#FFAB91;color:#7B2D00;}
.hs-link-arrow{background:#CE93D8;color:#4A0070;font-style:normal;}
.hs-link-door{background:#A5D6A7;color:#1B5E20;}
.hs-link-star{background:#FFCC80;color:#7B3E00;}
.hs-link-eye{background:#80DEEA;color:#004D55;}
.hs-link-location{background:#FFAB91;color:#7B1500;}
.hs-label{background:rgba(0,0,0,0.82);color:#fff;padding:5px 12px;border-radius:10px;font-size:12px;max-width:200px;text-align:center;display:block;width:max-content;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all 0.2s ease;}
.hs-label-expanded{white-space:normal;overflow:visible;text-overflow:unset;max-width:260px;}