/* 3D stream frame: a stable phone-landscape canvas, independent of chat size. */
.location-layout {grid-template-columns:1fr;gap:22px}
.location-controls {max-width:700px;width:100%;margin-inline:auto}
.school-map,.school-map.has-open-chat {width:100%;min-width:0;min-height:0;aspect-ratio:16/9;background:#0c1b27}
.school-map .live-scene {position:absolute;inset:0;width:100%;height:100%;background:#0c1b27;overflow:hidden}
.school-map .map-stage {display:none!important}
#school-3d {position:absolute;inset:0;display:block;width:100%;height:100%}
#scene-error {position:absolute;left:5%;right:5%;top:45%;z-index:7;background:#172c38;color:#fff;padding:16px;border-radius:12px}
.school-map .mini-chat-section,
.school-map:is(.is-maximized,:fullscreen).has-open-chat .mini-chat-section {
  position:absolute;top:16%;bottom:auto;left:auto;right:2.5%;width:34%;height:78%;
  padding:12px;border:1px solid #dbba80;border-radius:18px;background:#142b35f2;
  box-shadow:0 10px 34px #0008;transition:none;backdrop-filter:blur(8px)
}
.school-map[data-chat-desk] .mini-chat-section {left:auto;right:2.5%}
.school-map[data-chat-desk="pia"] .mini-chat-section {left:2.5%;right:auto}
.school-map:is(.is-maximized,:fullscreen)[data-chat-desk] .mini-chat-section {top:16%;bottom:auto;left:auto;right:2.5%}
.school-map:is(.is-maximized,:fullscreen)[data-chat-desk="pia"] .mini-chat-section {left:2.5%;right:auto}
.school-map .mini-chat-heading {padding:0 0 8px}
.school-map .mini-chat-heading h3 {font:600 clamp(14px,1.8vw,21px) 'DM Sans',Arial,sans-serif}
.school-map .mini-chat-heading .eyebrow {font-size:9px;color:#d9bc88;margin-bottom:5px}
.school-map .mini-chat-heading>span {font-size:10px}
.school-map .mini-chat-list {overscroll-behavior:contain;scrollbar-width:thin}
.school-map .mini-message-text {font-size:clamp(12px,1.15vw,15px);line-height:1.5}
.school-map .mini-message {max-width:100%}
.school-map .map-fullscreen-button {min-height:40px;background:#142b35ed;color:#ffe4b4;border-color:#b79a69}
.school-map .chat-connector {overflow:hidden}
.school-map .orientation-hint {display:none}
.school-map:is(.is-maximized,:fullscreen),.school-map:is(.is-maximized,:fullscreen).has-open-chat {
  position:fixed;inset:0;width:100vw;height:100dvh;min-height:0;aspect-ratio:auto;
  display:grid;place-items:center;background:#050e16;border:0;border-radius:0
}
.school-map:is(.is-maximized,:fullscreen) .live-scene,
.school-map:is(.is-maximized,:fullscreen).has-open-chat .live-scene {
  position:relative;inset:auto;width:min(100vw,177.7778dvh);height:min(100dvh,56.25vw);
  overflow:hidden;border-radius:0
}
.map-maximized {overflow:hidden}
@media(max-width:700px) {
  .school-map:not(.is-maximized):not(:fullscreen) {aspect-ratio:16/9;min-height:0}
  .school-map.has-open-chat:not(.is-maximized):not(:fullscreen) {aspect-ratio:auto;min-height:0;height:auto;padding-top:56.25%;padding-bottom:320px}
  .school-map.has-open-chat:not(.is-maximized):not(:fullscreen) .live-scene {position:absolute;inset:0 0 auto;height:calc(100% - 320px);width:100%;overflow:visible}
  .school-map.has-open-chat:not(.is-maximized):not(:fullscreen) .mini-chat-section {top:calc(100% + 10px);left:10px;right:10px;bottom:auto;width:auto;height:300px}
  .school-map:not(.is-maximized):not(:fullscreen) .chat-connector {display:none}
}
@media (orientation:landscape) and (max-height:600px) {
  .school-map:is(.is-maximized,:fullscreen).has-open-chat[data-chat-desk] .mini-chat-section {width:38%;top:14%;height:82%;padding:9px;border-radius:12px}
  .school-map:is(.is-maximized,:fullscreen) .mini-chat-heading h3 {font-size:15px}
  .school-map:is(.is-maximized,:fullscreen) .mini-chat-heading .eyebrow,
  .school-map:is(.is-maximized,:fullscreen) .mini-chat-heading>span {display:none}
  .school-map:is(.is-maximized,:fullscreen) .mini-message-text {font-size:12px}
  .school-map:is(.is-maximized,:fullscreen) .map-fullscreen-button {top:5px;right:8px;min-height:36px}
}
@media (orientation:portrait) {
  .school-map:is(.is-maximized,:fullscreen) .orientation-hint {display:block;position:fixed;top:auto;bottom:calc(12px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:90vw;padding:10px 14px;border-radius:12px;background:#203d49;color:#ffe4b4;font-size:12px;text-align:center}
}
