/* Virtual Tour Studio 23.3 — integrated public experience */
:root{--a11y-target-size:40px}
[hidden]{display:none!important}
.public-floor-tabs{display:flex;gap:6px;overflow:auto;margin:0 0 12px;padding:2px;scrollbar-width:thin}
.public-floor-tabs button{min-width:var(--a11y-target-size);min-height:36px;padding:0 14px;border:1px solid rgba(148,163,184,.28);border-radius:10px;background:rgba(15,23,42,.62);color:inherit;font:inherit;font-weight:700;white-space:nowrap;cursor:pointer}
.public-floor-tabs button:hover,.public-floor-tabs button:focus-visible{border-color:rgba(139,92,246,.8);background:rgba(124,58,237,.18)}
.public-floor-tabs button.active{border-color:rgba(167,139,250,.9);background:linear-gradient(135deg,rgba(124,58,237,.82),rgba(79,70,229,.82));color:#fff}
.public-map-empty{display:grid;place-items:center;min-height:180px;padding:24px;border:1px dashed rgba(148,163,184,.35);border-radius:14px;color:rgba(226,232,240,.76);text-align:center}
.text-version-modal{z-index:120}
.text-version-card{width:min(860px,calc(100vw - 32px));max-height:min(84vh,900px);overflow:hidden;display:flex;flex-direction:column}
.text-version-content{display:grid;gap:14px;overflow:auto;padding:2px 5px 8px 0;overscroll-behavior:contain}
.text-version-content>header{padding:4px 42px 4px 0}
.text-version-content h2{margin:0 0 8px;font-size:clamp(24px,3vw,38px);line-height:1.08}
.text-version-content p{margin:0;color:rgba(226,232,240,.82);line-height:1.65}
.text-tour-scene{display:grid;gap:10px;padding:18px;border:1px solid rgba(148,163,184,.24);border-radius:15px;background:rgba(15,23,42,.58)}
.text-tour-scene h3{margin:0;font-size:19px;line-height:1.3}
.text-tour-scene ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.text-tour-scene li{display:grid;gap:4px;padding:11px 12px;border-radius:10px;background:rgba(255,255,255,.045)}
.text-tour-scene li span{color:rgba(226,232,240,.76);line-height:1.55}
.text-tour-scene .btn{justify-self:start;min-height:36px}
.a11y-focus-outline :focus-visible{outline:3px solid #fbbf24!important;outline-offset:3px!important}
body.a11y-large-text{font-size:118%}
body.a11y-large-text .tour-actions button,body.a11y-large-text .btn,body.a11y-large-text .public-floor-tabs button{min-height:max(44px,var(--a11y-target-size));min-width:max(44px,var(--a11y-target-size))}
body.a11y-reduced-motion *,body.a11y-reduced-motion *::before,body.a11y-reduced-motion *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
body.a11y-high-contrast .public-floor-tabs button,body.a11y-high-contrast .text-tour-scene{border-color:currentColor;background:#000;color:#fff}
body.a11y-text-mode #viewer>canvas,body.a11y-text-mode .viewer-overlay,body.a11y-text-mode .marker-layer{filter:saturate(.35) contrast(1.2)}
.tour-shell button,.info-card button,.accessibility-panel button{min-height:var(--a11y-target-size)}
@media(max-width:720px){
 .text-version-card{width:100vw;max-height:100dvh;height:100dvh;border-radius:0}
 .text-version-content{padding-bottom:max(18px,env(safe-area-inset-bottom))}
 .text-tour-scene{padding:14px}
 .public-floor-tabs{margin-inline:-2px}
 .public-floor-tabs button{min-height:40px}
}

/* v23.3.3: history navigation is a separate system control, never a physical portal marker. */
.history-back-control{width:auto!important;min-width:36px;padding:0 10px!important;gap:6px}.history-back-control span{font-size:16px;line-height:1}.history-back-control em{font-style:normal;font-size:11px;font-weight:750}@media(max-width:640px){.history-back-control em{display:none}.history-back-control{width:36px!important;padding:0!important}}
