.bxc-map-experience { position: relative; isolation: isolate; }
.bxc-map-experience:fullscreen { width: 100vw !important; height: 100dvh !important; max-width: none !important; max-height: none !important; border: 0; border-radius: 0; }
.bxc-map-experience--expanded { position: fixed !important; z-index: 10000 !important; inset: 0 !important; width: 100vw !important; height: 100dvh !important; max-width: none !important; max-height: none !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; }
body:has(.bxc-map-experience--expanded) { overflow: hidden; }
.bxc-map-tools { position: absolute; z-index: 1400; inset: 8px auto auto 8px; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; max-width: calc(100% - 76px); color: var(--ui-color-text); font: 500 14px/1.25 var(--ui-font-family, Barlow, sans-serif); pointer-events: none; }
.bxc-map-tools > :is(.bxc-map-modes,.bxc-map-rail,.bxc-map-status) { pointer-events: auto; }
.bxc-map-tools .bxc-map-modes { position: static; display: flex; align-items: center; padding: 2px; gap: 2px; min-height: 44px; border: 1px solid var(--ui-color-border); border-radius: 6px; background: var(--ui-color-surface); box-shadow: var(--ui-shadow-overlay); }
.bxc-map-tools .bxc-map-tool { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: auto; min-width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 8px; gap: 4px; border: 1px solid var(--ui-color-border); border-radius: 6px; background: var(--ui-color-surface); color: var(--ui-color-text); font: inherit; text-decoration: none; box-shadow: var(--ui-shadow-overlay); cursor: pointer; }
.bxc-map-tools .bxc-map-modes .bxc-map-tool { border-color: transparent; box-shadow: none; }
.bxc-map-tools .bxc-map-tool i { width: 18px; font-size: 16px; text-align: center; }
.bxc-map-tools .bxc-map-tool:hover { background: var(--ui-color-surface-hover); }
.bxc-map-tools :is(.bxc-map-tool,.bxc-map-basemaps button):is([aria-pressed="true"],[aria-selected="true"]) { color: var(--ui-color-map-active); border-color: var(--ui-color-map-active-border); background: var(--ui-color-map-active-surface); }
.bxc-map-tools :is(button,a):focus-visible { outline: 2px solid var(--ui-color-primary); outline-offset: 2px; }
.bxc-map-tools[aria-busy="true"] [data-map-experience-mode="3d"] { cursor: progress; }
.bxc-map-rail { display: flex; flex-direction: column; gap: 4px; }
.bxc-map-chooser { position: relative; }
.bxc-map-basemaps { position: absolute; inset: 0 auto auto calc(100% + 4px); display: grid; width: max-content; min-width: 160px; padding: 4px; gap: 4px; overflow: auto; border: 1px solid var(--ui-color-border); border-radius: 6px; background: var(--ui-color-surface); box-shadow: var(--ui-shadow-overlay); }
.bxc-map-basemaps[hidden] { display: none; }
.bxc-map-basemaps button { display: block; width: 100%; min-height: 44px; margin: 0; padding: 8px 12px; border: 1px solid transparent; border-radius: 4px; color: var(--ui-color-text); background: transparent; font: inherit; text-align: left; cursor: pointer; }
.bxc-map-basemaps button:hover { background: var(--ui-color-surface-hover); }
.bxc-map-status { max-width: min(32ch,100%); margin: 0; padding: 8px; border-radius: 4px; background: var(--ui-color-surface); color: var(--ui-color-text); font: inherit; overflow-wrap: anywhere; }
.bxc-map-status[hidden] { display: none; }
.bxc-map-native-host { position: absolute; z-index: 1000; inset: 0; background: var(--ui-color-bg); }
.bxc-map-experience:not(.bxc-map-experience--3d) > .bxc-map-native-host { visibility: hidden; pointer-events: none; }
.bxc-map-experience--3d > :is(.leaflet-pane,.leaflet-control-container,.ol-viewport) { visibility: hidden; pointer-events: none; }
.bxc-map-experience > .ol-viewport .ol-zoom { top: 8px; right: 8px; left: auto; }
.bxc-map-experience > .ol-viewport .ol-rotate { top: 108px; right: 8px; }
.bxc-map-experience :is(.ol-zoom,.ol-rotate) button { width: 44px; height: 44px; min-width: 44px; min-height: 44px; margin: 0; background: var(--ui-color-surface); color: var(--ui-color-text); }
.bxc-map-marker { box-sizing: border-box; position: absolute; margin: 0; cursor: pointer; }
.bxc-map-experience .leaflet-control-zoom a, .bxc-map-experience .maplibregl-ctrl-group button { box-sizing: border-box; width: 44px; min-width: 44px; height: 44px; min-height: 44px; margin: 0; line-height: 44px; color: var(--ui-color-text); background-color: var(--ui-color-surface); }
.bxc-map-experience :is(.leaflet-bar,.maplibregl-ctrl-group) { border: 1px solid var(--ui-color-border); border-radius: 6px; background: var(--ui-color-surface); box-shadow: var(--ui-shadow-overlay); }
.bxc-map-experience .leaflet-control-zoom a:hover, .bxc-map-experience .maplibregl-ctrl-group button:hover { background-color: var(--ui-color-surface-hover); }
.bxc-map-experience .leaflet-control-zoom a:focus-visible, .bxc-map-experience .maplibregl-ctrl-group button:focus-visible { outline: 2px solid var(--ui-color-primary); outline-offset: -2px; }
:root[data-theme="dark"] .bxc-map-experience .maplibregl-ctrl-icon, body.dark-mode .bxc-map-experience .maplibregl-ctrl-icon { filter: invert(1); }
.bxc-map-popup { color: var(--ui-color-text); font-family: var(--ui-font-family, Barlow, sans-serif); }
.bxc-map-popup .maplibregl-popup-content { box-sizing: border-box; max-height: var(--bxc-popup-max-height, calc(100dvh - 32px)); overflow: auto; padding: 20px 24px 16px 16px; border: 1px solid var(--ui-color-border); border-radius: 8px; background: var(--ui-color-surface); box-shadow: var(--ui-shadow-overlay); overflow-wrap: anywhere; }
.bxc-map-popup .track-popup { min-width: 0; max-width: 100%; }
.bxc-map-popup .maplibregl-popup-close-button { min-width: 32px; min-height: 32px; padding: 4px; color: var(--ui-color-text); font-size: 24px; }
@media (max-width: 480px) { .bxc-map-tools .bxc-map-modes .bxc-map-tool { padding-inline: 6px; } .bxc-map-tools .bxc-map-modes .bxc-map-tool i { display: none; } .bxc-map-tools .bxc-map-modes [data-map-experience-fullscreen] i { display: inline-block; } }
