*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;font:15px/1.45 Arial,sans-serif;color:#17252d;background:#eef2f1}.tour-shell{display:grid;grid-template-columns:260px minmax(0,1fr);height:100dvh}.viewer-shell{position:relative;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr)}.viewer-shell>header{display:flex;align-items:center;gap:14px;padding:12px 18px;background:#fff;border-bottom:1px solid #dfe6e4}.viewer-shell header img{max-width:100px;max-height:42px;object-fit:contain}.viewer-shell h1{margin:0;font-size:18px}.viewer-shell p{margin:2px 0 0;color:#62717a;font-size:13px}#pano{min-height:0;background:#111}#scene-list{overflow:auto;padding:16px 10px;background:#f8faf9;border-right:1px solid #dfe6e4}#scene-list h2{margin:0 8px 10px;font-size:14px}#scene-list button{display:block;width:100%;padding:10px 9px;margin:3px 0;text-align:left;border:0;border-left:3px solid transparent;background:transparent;color:inherit;cursor:pointer}#scene-list button[aria-current=true],#scene-list button:hover{border-left-color:#16856f;background:#e8f3ef}.hotspot{max-width:220px;padding:8px 11px;border:0;border-radius:4px;background:#fff;color:#18362f;box-shadow:0 2px 12px #0004;cursor:pointer}#hotspot-dialog{position:absolute;z-index:5;left:50%;top:50%;width:min(440px,calc(100% - 32px));transform:translate(-50%,-50%);padding:24px;background:#fff;border:1px solid #d8e1de;border-radius:6px;box-shadow:0 12px 48px #0005}#hotspot-dialog[hidden]{display:none}#hotspot-dialog h2{margin:0 30px 12px 0;font-size:20px}#dialog-close{position:absolute;top:8px;right:10px;border:0;background:transparent;font-size:24px;cursor:pointer}#hotspot-dialog img,#hotspot-dialog video{display:block;max-width:100%;max-height:55vh;margin-top:12px}#floor-panel{position:absolute;z-index:3;right:16px;bottom:16px;width:min(290px,calc(100% - 32px));padding:10px;background:#fff;border-radius:5px;box-shadow:0 2px 12px #0005}#floor-panel[hidden]{display:none}#floor-panel label{margin-right:8px;font-size:12px}#floor-map{position:relative;margin-top:8px}#floor-image{display:block;width:100%;height:auto}#floor-markers{position:absolute;inset:0}.floor-marker{position:absolute;transform:translate(-50%,-50%);border:0;border-radius:50%;padding:5px 8px;background:#16856f;color:#fff;white-space:nowrap;cursor:pointer}@media(max-width:700px){.tour-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}#scene-list{display:flex;gap:4px;max-height:96px;padding:7px;overflow-x:auto;border-right:0;border-bottom:1px solid #dfe6e4}#scene-list h2{display:none}#scene-list button{width:auto;min-width:max-content;margin:0}.viewer-shell>header{padding:9px 12px}.viewer-shell h1{font-size:16px}#floor-panel{right:8px;bottom:8px;width:min(240px,calc(100% - 16px))}}
.tour-shell{position:relative;grid-template-columns:300px minmax(0,1fr)}
.viewer-shell{grid-template-rows:minmax(0,1fr)}
.tour-shell.sidebar-hidden{grid-template-columns:minmax(0,1fr)}
#scene-sidebar{min-height:0;display:flex;flex-direction:column;background:#f6f8fb;border-right:1px solid #e2e8f0}
#scene-sidebar[hidden]{display:none}
.scene-sidebar-heading{padding:26px 64px 18px 22px;background:#fff;border-bottom:1px solid #e2e8f0}
.scene-sidebar-heading>span{font-size:10px;font-weight:700;letter-spacing:1.8px;color:#16856f}
.scene-sidebar-heading h2{margin:8px 0 4px;font-size:22px;font-weight:700;letter-spacing:-.4px}
.scene-sidebar-heading p{margin:0;color:#64748b;font-size:12px}
#scene-list{flex:1;min-height:0;overflow:auto;padding:12px;border:0;background:transparent;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
#scene-list button{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px;margin:0 0 7px;border:1px solid transparent;border-radius:12px;background:transparent;transition:background 160ms ease,border-color 160ms ease,box-shadow 160ms ease}
#scene-list button:hover{border-color:#dbe5e1;background:#fff;box-shadow:0 3px 12px #17252d08}
#scene-list button[aria-current=true]{border-color:#b9dcd1;background:#e9f5f0;box-shadow:0 3px 12px #16856f0a}
.scene-number{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:9px;background:#e8edf3;color:#64748b;font-size:11px;font-weight:700}
#scene-list button[aria-current=true] .scene-number{background:#16856f;color:#fff}
.scene-copy{display:flex;flex-direction:column;gap:4px;min-width:0;text-align:left}
.scene-name{font-size:13px;font-weight:600;line-height:1.45;color:#25364a}
.scene-area{font-size:11px;color:#728095}
#scene-list-toggle,#mouse-motion-toggle{position:absolute;z-index:7;display:grid;place-items:center;width:40px;height:40px;padding:9px;border:1px solid #ffffff80;border-radius:10px;background:#ffffffed;color:#334155;box-shadow:0 3px 14px #17252d26;cursor:pointer}
#scene-list-toggle{left:248px;top:18px}
.sidebar-hidden #scene-list-toggle{left:16px}
#mouse-motion-toggle{left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%)}
#mouse-motion-toggle[hidden]{display:none}
#mouse-motion-toggle[aria-pressed=true]{background:#16856f;color:#fff}
#scene-list-toggle svg,#mouse-motion-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
#scene-list-toggle:hover,#mouse-motion-toggle:hover{background:#e9f5f0;border-color:#b9dcd1}
#scene-list button:focus-visible,#scene-list-toggle:focus-visible,#mouse-motion-toggle:focus-visible{outline:2px solid #16856f;outline-offset:2px}
@media(max-width:700px){
  .tour-shell,.tour-shell.sidebar-hidden{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr)}
  #scene-sidebar{position:absolute;z-index:6;left:0;top:0;bottom:0;width:min(300px,85vw);box-shadow:12px 0 32px #17252d26}
  #scene-list-toggle{left:calc(min(300px,85vw) - 52px)}
  .sidebar-hidden #scene-list-toggle{left:12px}
  #scene-list{display:block;max-height:none;overflow-x:hidden;overflow-y:auto}
  #scene-list button{min-width:0;width:100%}
  .viewer-shell>header{gap:8px;flex-wrap:wrap}
  .viewer-shell>header>div{flex:1;min-width:160px}
}
@media(prefers-reduced-motion:reduce){#scene-list button{transition:none}}