/* Integrated SO-BusLive PRO module inside SO-OEPNVPRO. */
.live-page{padding:.55rem;max-width:none}
.live-bus-root{--app-vh:auto;min-width:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}
.live-bus-root .app-shell{height:calc(100dvh - 155px);min-height:610px;grid-template-rows:auto auto auto minmax(0,1fr);border-radius:16px;overflow:hidden}
.live-bus-root .footer{display:none!important}
.live-bus-root .topbar{position:relative;top:auto}
.live-bus-root .brand h1{font-size:18px}
.live-bus-root .brand p{font-size:11px}
.live-bus-root .top-actions .home-link{white-space:nowrap}

html[data-theme="light"] .live-bus-root{
  color-scheme:light;--bg:#f0f4f2;--panel:#fff;--panel-2:#f7faf8;--line:#b8cec2;--text:#17241d;--muted:#53665c;
  --accent:#087443;--accent-2:#0b7c4a;--warn:#8f6200;--danger:#b62c3a;--shadow:0 12px 32px rgba(20,45,32,.12);
  background:#f3f7f5;color:#17241d;
}
html[data-theme="light"] .live-bus-root .app-shell{background:#f3f7f5}
html[data-theme="light"] .live-bus-root .topbar,html[data-theme="light"] .live-bus-root .statusbar,html[data-theme="light"] .live-bus-root .mobile-tabs{background:#fff;border-color:#c7d8cf}
html[data-theme="light"] .live-bus-root .brand-mark,html[data-theme="light"] .live-bus-root .help-link,html[data-theme="light"] .live-bus-root .city-picker select,html[data-theme="light"] .live-bus-root .button.ghost,html[data-theme="light"] .live-bus-root .small-button,html[data-theme="light"] .live-bus-root .mobile-tab{background:#f8fbf9;color:#22372c;border-color:#adc6b9;box-shadow:none}
html[data-theme="light"] .live-bus-root .brand h1,html[data-theme="light"] .live-bus-root .eyebrow,html[data-theme="light"] .live-bus-root .mobile-tab.active{color:#075f39}
html[data-theme="light"] .live-bus-root .button{background:linear-gradient(180deg,#0d8751,#087443);color:#fff;border-color:#087443}
html[data-theme="light"] .live-bus-root .status-pill{background:#f4f8f6;color:#40564a;border-color:#bfd1c7}
html[data-theme="light"] .live-bus-root .status-pill.live{background:#e7f4ec;color:#075f39;border-color:#87b49d}
html[data-theme="light"] .live-bus-root .panel{background:#fff;border-color:#bfd2c8;box-shadow:0 10px 25px rgba(22,49,34,.10)}
html[data-theme="light"] .live-bus-root .line-search,html[data-theme="light"] .live-bus-root .service-filter-button,html[data-theme="light"] .live-bus-root .line-filter,html[data-theme="light"] .live-bus-root .connection-card,html[data-theme="light"] .live-bus-root .connection-group,html[data-theme="light"] .live-bus-root .connection-group-head-wrap,html[data-theme="light"] .live-bus-root .nearby-card{background:#f8fbf9;color:#192820;border-color:#bfd1c7}
html[data-theme="light"] .live-bus-root .connection-group-head{background:linear-gradient(90deg,color-mix(in srgb,var(--line-color,var(--accent)) 7%,#f8fbf9),#f8fbf9 45%);color:#192820}
html[data-theme="light"] .live-bus-root .group-copy strong,html[data-theme="light"] .live-bus-root .connection-route,html[data-theme="light"] .live-bus-root .panel-heading h2{color:#17241d}
html[data-theme="light"] .live-bus-root .line-badge,html[data-theme="light"] .live-bus-root .group-line-badge,html[data-theme="light"] .live-bus-root .nearby-line{background:#fff;color:#18261f}
html[data-theme="light"] .live-bus-root .line-favorite,html[data-theme="light"] .live-bus-root .group-favorite{background:#f5f9f7;color:#53665c;border-color:#bfd1c7}
html[data-theme="light"] .live-bus-root .direction-group h3{color:#2e4438}
html[data-theme="light"] .live-bus-root .map-panel{border-color:#a9c6b7;background:#e7eeea}
html[data-theme="light"] .live-bus-root .map-legend,html[data-theme="light"] .live-bus-root .zoom-hint{background:rgba(255,255,255,.94);color:#24382d;border-color:#a7c3b5}
html[data-theme="light"] .live-bus-root .trip-dialog,html[data-theme="light"] .live-bus-root .location-consent-dialog{background:#fff;color:#17241d;border-color:#a9c8b8}
html[data-theme="light"] .live-bus-root .trip-head,html[data-theme="light"] .live-bus-root .trip-foot,html[data-theme="light"] .live-bus-root .trip-meta{background:#f7faf8;border-color:#c9d8d0;color:#41564b}
html[data-theme="light"] .live-bus-root .trip-stop,html[data-theme="light"] .live-bus-root .stop-departure{border-color:#d1ded7;color:#17241d}
html[data-theme="light"] .live-bus-root .share-toast{background:#fff;color:#17241d;border-color:#8ab59e;box-shadow:0 12px 30px rgba(20,45,32,.18)}

@media(max-width:767px){
  .live-page{padding:.35rem .35rem .7rem}
  .live-bus-root{border-radius:12px}
  .live-bus-root .app-shell{height:calc(100dvh - 130px);min-height:560px;border-radius:12px}
  .live-bus-root .topbar{padding:8px}
  .live-bus-root .brand-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,42%) auto;gap:6px}
  .live-bus-root .brand p{display:none}
  .live-bus-root .top-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .live-bus-root .top-actions .button,.live-bus-root .top-actions .home-link{min-height:48px;font-size:11px}
  .live-bus-root .statusbar{padding:5px 7px}
  .live-bus-root .mobile-tab{min-height:48px;font-size:13px}
}
@media(min-width:901px){.live-bus-root .app-shell{height:calc(100dvh - 120px);min-height:680px}}

/* Senior-friendly readability floor for the integrated Live area. */
.live-bus-root .city-picker span{font-size:12px}
.live-bus-root .city-picker select{font-size:16px;min-height:46px}
.live-bus-root .button,.live-bus-root .small-button{font-size:14px;min-height:44px}
.live-bus-root .status-pill{font-size:12px;padding:6px 9px}
.live-bus-root .map-legend,.live-bus-root .zoom-hint{font-size:12px}
.live-bus-root .eyebrow{font-size:12px}
.live-bus-root .service-filter-state{font-size:12px}
.live-bus-root .hint{font-size:13px;line-height:1.5}
.live-bus-root .connection-route,.live-bus-root .group-copy strong,.live-bus-root .nearby-copy strong{font-size:14px}
.live-bus-root .connection-time,.live-bus-root .nearby-time{font-size:13px}
.live-bus-root .connection-meta,.live-bus-root .group-copy small,.live-bus-root .nearby-copy small{font-size:12px}
.live-bus-root .direction-group h3{font-size:13px}.live-bus-root .direction-group h3 small{font-size:11px}
.live-bus-root .stop-time{font-size:13px}.live-bus-root .stop-extra{font-size:12px}
.live-bus-root .stop-destination small,.live-bus-root .stop-dep-time small{font-size:12px}
.live-bus-root .trip-foot{font-size:12px}.live-bus-root .location-privacy-note{font-size:13px}

@media(max-width:767px){
  .live-bus-root .top-actions .button,.live-bus-root .top-actions .home-link{min-height:50px;font-size:14px}
  .live-bus-root .mobile-tab{min-height:50px;font-size:14px}
  .live-bus-root .brand h1{font-size:19px}
  .live-bus-root .panel-heading h2{font-size:18px}
}
@media(max-width:380px){
  .live-bus-root .top-actions .button,.live-bus-root .top-actions .home-link{font-size:13px}
  .live-bus-root .status-pill{font-size:11px}
  .live-bus-root .mobile-tab{font-size:13px}
}


/* Mobile-first Ortssuche mit automatischen Vorschlägen (deutschlandweit). */
.live-bus-root .city-picker{position:relative;min-width:0;display:grid;gap:3px;z-index:80}
.live-bus-root .city-picker-label{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.live-bus-root .city-search-box{position:relative;display:flex;align-items:center;min-width:0}
.live-bus-root .city-search-icon{position:absolute;left:11px;z-index:2;color:var(--muted);font-size:18px;pointer-events:none}
.live-bus-root .city-picker input{width:100%;min-width:0;min-height:48px;border:1px solid #2b7b58;border-radius:11px;background:#07120e;color:#effff6;padding:9px 42px 9px 35px;font-size:16px;font-weight:850;outline:none}
.live-bus-root .city-picker input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(85,255,155,.10)}
.live-bus-root .city-picker input::placeholder{color:#7f9a8c;font-weight:700}
.live-bus-root .city-picker input::-webkit-search-cancel-button{display:none}
.live-bus-root .city-search-clear{position:absolute;right:5px;width:38px;height:38px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:24px;line-height:1;cursor:pointer;touch-action:manipulation}
.live-bus-root .city-search-clear:hover,.live-bus-root .city-search-clear:focus-visible{background:rgba(85,255,155,.09);color:var(--accent);outline:2px solid var(--accent);outline-offset:-2px}
.live-bus-root .city-suggestions{position:absolute;z-index:4000;top:100%;left:0;right:0;margin-top:5px;max-height:min(58dvh,410px);overflow:auto;padding:5px;border:1px solid #347b59;border-radius:12px;background:#07120e;box-shadow:0 18px 42px rgba(0,0,0,.48);overscroll-behavior:contain}
.live-bus-root .city-suggestion{width:100%;min-height:58px;display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 9px;border:0;border-bottom:1px solid rgba(85,255,155,.10);border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer;touch-action:manipulation}
.live-bus-root .city-suggestion:last-child{border-bottom:0}
.live-bus-root .city-suggestion:hover,.live-bus-root .city-suggestion.active{background:#0d2519;outline:1px solid #347b59}
.live-bus-root .city-suggestion-mark{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#102c1e;color:var(--accent);font-size:18px}
.live-bus-root .city-suggestion-copy{min-width:0}.live-bus-root .city-suggestion-copy strong,.live-bus-root .city-suggestion-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-bus-root .city-suggestion-copy strong{font-size:15px}.live-bus-root .city-suggestion-copy small{margin-top:2px;color:var(--muted);font-size:12px;font-weight:700}
.live-bus-root .city-suggestion-badge{padding:3px 6px;border:1px solid #315c47;border-radius:999px;color:var(--muted);font-size:10px;font-weight:850;white-space:nowrap}
.live-bus-root .city-suggestion-empty{padding:14px 10px;color:var(--muted);font-size:13px;line-height:1.4}

html[data-theme="light"] .live-bus-root .city-picker input{background:#fff;color:#17241d;border-color:#9fbbaa;box-shadow:none}
html[data-theme="light"] .live-bus-root .city-picker input::placeholder{color:#687d72}
html[data-theme="light"] .live-bus-root .city-suggestions{background:#fff;border-color:#9fbbaa;box-shadow:0 16px 36px rgba(20,45,32,.18)}
html[data-theme="light"] .live-bus-root .city-suggestion{color:#17241d;border-bottom-color:#d9e4de}
html[data-theme="light"] .live-bus-root .city-suggestion:hover,html[data-theme="light"] .live-bus-root .city-suggestion.active{background:#edf6f1;outline-color:#8eb29f}
html[data-theme="light"] .live-bus-root .city-suggestion-mark{background:#e6f2eb;color:#075f39}
html[data-theme="light"] .live-bus-root .city-suggestion-badge{border-color:#b8ccc1;color:#4d6458;background:#f7faf8}

@media(max-width:767px){
  .live-bus-root .brand-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px}
  .live-bus-root .brand-row .brand{grid-column:1}.live-bus-root .help-link{grid-column:2;grid-row:1}
  .live-bus-root .city-picker{grid-column:1/-1;grid-row:2;width:100%;margin-top:1px}
  .live-bus-root .city-picker-label{font-size:11px}
  .live-bus-root .city-picker input{min-height:50px;font-size:17px}
  .live-bus-root .city-suggestions{max-height:min(52dvh,360px)}
  .live-bus-root .city-suggestion{min-height:62px}
  .live-bus-root .city-suggestion-copy strong{font-size:16px}
  .live-bus-root .city-suggestion-copy small{font-size:13px}
}
@media(min-width:768px){
  .live-bus-root .brand-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(230px,330px) auto;align-items:center;gap:10px;width:100%}
  .live-bus-root .city-picker{width:100%}
}

/* 2026-08-30 Mobile-Readability-Pass: größere Karte, klarere Bedienung, Senioren-Lesbarkeit. */
.live-bus-root .bus-marker.held{
  opacity:.78;
  border-style:dashed;
  filter:saturate(.75);
}
.live-bus-root .bus-marker.held:after{
  content:"PAUSE";
  position:absolute;
  left:50%;
  bottom:-17px;
  transform:translateX(-50%);
  padding:1px 4px;
  border-radius:999px;
  background:rgba(255,255,255,.95);
  color:#25382e;
  font-size:8px;
  font-weight:950;
  letter-spacing:.04em;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
}
html:not([data-theme="light"]) .live-bus-root .bus-marker.held:after{
  background:#07120e;
  color:#f1d987;
  border:1px solid #6d5927;
}

@media(max-width:900px){
  /* Die Live-Ansicht darf auf Mobilgeräten mitwachsen statt alle Bereiche in 100vh zu quetschen. */
  .live-bus-root .app-shell{
    height:auto!important;
    min-height:0!important;
    overflow:visible;
  }
  .live-bus-root .workspace{
    min-height:0;
    height:auto;
  }
  body[data-mobile-view="map"] .live-bus-root .workspace{
    height:auto!important;
    min-height:0!important;
  }
  /* Mobile First: Die Buskarte ist die Hauptflaeche, nicht nur ein schmaler Streifen. */
  body[data-mobile-view="map"] .live-bus-root .map-panel,
  body[data-mobile-view="map"] .live-bus-root .map{
    height:clamp(520px,72svh,760px)!important;
    min-height:520px!important;
  }
  body[data-mobile-view="lines"] .live-bus-root .workspace,
  body[data-mobile-view="trips"] .live-bus-root .workspace{
    min-height:58svh;
  }
}

@media(max-width:767px){
  .live-page{padding:.25rem .25rem .75rem}
  .live-bus-root{border-radius:11px}
  .live-bus-root .topbar{gap:10px;padding:10px}
  .live-bus-root .brand h1{font-size:21px;line-height:1.12}
  .live-bus-root .brand-mark,.live-bus-root .help-link{width:44px;height:44px}
  .live-bus-root .city-picker-label{font-size:13px;letter-spacing:.07em}
  .live-bus-root .city-picker input{min-height:54px;font-size:18px;padding-left:39px}
  .live-bus-root .city-search-icon{left:12px;font-size:20px}
  .live-bus-root .city-search-clear{width:42px;height:42px;font-size:26px}
  .live-bus-root .city-suggestions{max-height:min(56svh,440px);padding:6px}
  .live-bus-root .city-suggestion{min-height:66px;padding:10px;grid-template-columns:36px minmax(0,1fr) auto}
  .live-bus-root .city-suggestion-mark{width:34px;height:34px;font-size:20px}
  .live-bus-root .city-suggestion-copy strong{font-size:17px;line-height:1.25}
  .live-bus-root .city-suggestion-copy small{font-size:14px;line-height:1.3}
  .live-bus-root .city-suggestion-badge{font-size:11px;padding:4px 7px}
  .live-bus-root .city-suggestion-empty{font-size:15px;line-height:1.45;padding:16px 12px}

  .live-bus-root .top-actions{gap:8px}
  .live-bus-root .top-actions .button,.live-bus-root .top-actions .home-link{
    min-height:52px;
    font-size:15px;
    line-height:1.2;
    padding:8px 7px;
  }
  .live-bus-root .statusbar{gap:7px;padding:7px 8px}
  .live-bus-root .status-pill{font-size:13px;padding:7px 10px;line-height:1.2}
  .live-bus-root #tripCountPill,.live-bus-root #stopCountPill{display:none}
  .live-bus-root #sourcePill{max-width:78vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .live-bus-root .mobile-tabs{gap:7px;padding:7px 8px}
  .live-bus-root .mobile-tab{min-height:52px;font-size:15px}

  .live-bus-root .map-legend{
    left:9px;right:9px;bottom:9px;
    width:auto;max-width:none;
    padding:8px 10px;
    gap:9px;
    font-size:13px;
    line-height:1.25;
  }
  .live-bus-root .zoom-hint{
    top:9px;
    max-width:calc(100% - 106px);
    padding:7px 10px;
    font-size:13px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .live-bus-root .leaflet-bar a{
    width:44px!important;
    height:44px!important;
    line-height:44px!important;
    font-size:24px!important;
  }
  .live-bus-root .leaflet-control-attribution{font-size:10px!important}
  .live-bus-root .bus-marker{width:42px;height:42px;font-size:12px}
  .live-bus-root .stop-marker{transform:scale(1.08)}

  .live-bus-root .panel{border-radius:11px}
  .live-bus-root .line-panel{padding:14px}
  .live-bus-root .panel-heading h2{font-size:20px;line-height:1.25}
  .live-bus-root .eyebrow{font-size:13px}
  .live-bus-root .line-search{min-height:50px;font-size:17px}
  .live-bus-root .small-button{min-height:46px;font-size:15px}
  .live-bus-root .service-filter-row{align-items:stretch;flex-direction:column;gap:5px}
  .live-bus-root .service-filter-state{font-size:14px;white-space:normal}
  .live-bus-root .line-filter{min-height:48px;font-size:15px}
  .live-bus-root .hint{font-size:15px;line-height:1.55}
  .live-bus-root .connection-group-head{min-height:68px}
  .live-bus-root .group-copy strong,.live-bus-root .connection-route,.live-bus-root .nearby-copy strong{font-size:16px}
  .live-bus-root .group-copy small,.live-bus-root .connection-meta,.live-bus-root .nearby-copy small{font-size:14px;line-height:1.35}
  .live-bus-root .connection-time,.live-bus-root .nearby-time{font-size:15px}
  .live-bus-root .direction-group h3{font-size:15px}.live-bus-root .direction-group h3 small{font-size:13px}
  .live-bus-root .stop-time{font-size:15px}.live-bus-root .stop-extra{font-size:14px}
  .live-bus-root .stop-destination strong{font-size:16px}.live-bus-root .stop-destination small,.live-bus-root .stop-dep-time small{font-size:13px}
  .live-bus-root .trip-foot,.live-bus-root .location-privacy-note{font-size:14px;line-height:1.45}
}

@media(max-width:390px){
  body[data-mobile-view="map"] .live-bus-root .workspace{height:auto!important;min-height:0!important}
  body[data-mobile-view="map"] .live-bus-root .map-panel,
  body[data-mobile-view="map"] .live-bus-root .map{height:clamp(520px,72svh,700px)!important;min-height:520px!important}
  .live-bus-root .top-actions .button,.live-bus-root .top-actions .home-link{font-size:14px}
  .live-bus-root .status-pill{font-size:12px}
  .live-bus-root .mobile-tab{font-size:14px}
  .live-bus-root .map-legend{font-size:12px;gap:7px}
  .live-bus-root .zoom-hint{font-size:12px}
}

@media(max-width:767px){
  .live-bus-root .city-suggestion-copy strong,
  .live-bus-root .city-suggestion-copy small{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
  /* Die globale Mobile-Navigation liegt über dem Inhalt; Kartenhinweise bleiben darüber lesbar. */
  .live-bus-root .map-legend{bottom:calc(78px + env(safe-area-inset-bottom))}
}


/* SO-OEPNVPRO MOBILE BUS MAP HEIGHT FINAL */
@media (max-width:900px) and (orientation:portrait){
  body[data-mobile-view="map"] .live-bus-root .workspace{height:auto!important;min-height:0!important}
  body[data-mobile-view="map"] .live-bus-root .map-panel,
  body[data-mobile-view="map"] .live-bus-root #map{
    height:clamp(520px,72svh,760px)!important;
    min-height:520px!important;
  }
}
@media (max-width:900px) and (orientation:landscape){
  body[data-mobile-view="map"] .live-bus-root .workspace{height:auto!important;min-height:0!important}
  body[data-mobile-view="map"] .live-bus-root .map-panel,
  body[data-mobile-view="map"] .live-bus-root #map{
    height:clamp(320px,78svh,560px)!important;
    min-height:320px!important;
  }
}


/* 2026-08-30 MAP FULLSCREEN + FAVORITEN-KARTENFILTER
   Der Vollbildmodus ist bewusst CSS-basiert: dadurch funktioniert er auch auf
   iPhone/iPad ohne Fullscreen-API und Overlays/Busfahrplaene bleiben erreichbar. */
.live-bus-root .map-view-tools{
  position:absolute;
  top:10px;
  right:10px;
  z-index:820;
  display:flex;
  align-items:center;
  gap:8px;
  max-width:calc(100% - 90px);
}
.live-bus-root .map-view-button{
  min-height:46px;
  padding:9px 13px;
  border:2px solid rgba(19,58,39,.72);
  border-radius:12px;
  background:rgba(255,255,255,.96);
  color:#173426;
  font:800 14px/1.1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  box-shadow:0 3px 14px rgba(0,0,0,.18);
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.live-bus-root .map-view-button:hover,
.live-bus-root .map-view-button:focus-visible{
  background:#f4fbf7;
  border-color:#176b45;
  outline:3px solid rgba(25,112,72,.25);
  outline-offset:2px;
}
.live-bus-root .map-favorite-button.active{
  background:#0a6b42;
  border-color:#06492e;
  color:#fff;
}
.live-bus-root .map-favorite-button:disabled{
  background:rgba(245,247,246,.95);
  color:#617168;
  border-color:#aebbb4;
  cursor:not-allowed;
  opacity:.92;
}
.live-bus-root .map-fullscreen-close{
  display:none;
  width:52px;
  min-width:52px;
  height:52px;
  padding:0;
  border-radius:999px;
  background:#fff;
  color:#16251d;
  border-color:#273b31;
  font-size:32px;
  line-height:1;
}
body.map-fullscreen-active{
  overflow:hidden!important;
  overscroll-behavior:none;
}
body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen{
  position:fixed!important;
  inset:0!important;
  z-index:2147482000!important;
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:#e8eee9;
  overflow:hidden!important;
}
body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen #map{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  border-radius:0!important;
}
body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen .map-view-tools{
  top:max(12px, env(safe-area-inset-top));
  right:max(12px, env(safe-area-inset-right));
  z-index:2147482500;
}
body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen .map-fullscreen-close{
  display:grid;
  place-items:center;
}
body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen .map-legend{
  bottom:max(12px, calc(env(safe-area-inset-bottom) + 8px));
  z-index:2147482400;
}
body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen .zoom-hint{
  top:max(12px, env(safe-area-inset-top));
  z-index:2147482300;
}
body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen .leaflet-control-container{
  position:relative;
  z-index:2147482200;
}
html:not([data-theme="light"]) .live-bus-root .map-view-button{
  background:rgba(7,25,16,.96);
  color:#f1fff7;
  border-color:#4a7d61;
}
html:not([data-theme="light"]) .live-bus-root .map-favorite-button.active{
  background:#16794f;
  border-color:#78c69e;
  color:#fff;
}
html:not([data-theme="light"]) .live-bus-root .map-favorite-button:disabled{
  background:rgba(18,35,27,.96);
  color:#a9b9b0;
  border-color:#4b6256;
}
html:not([data-theme="light"]) .live-bus-root .map-fullscreen-close{
  background:#07190f;
  color:#fff;
  border-color:#90c3a8;
}
@media(max-width:767px){
  .live-bus-root .map-view-tools{
    top:9px;
    right:9px;
    gap:7px;
    max-width:calc(100% - 72px);
  }
  .live-bus-root .map-view-button{
    min-height:48px;
    padding:9px 11px;
    font-size:14px;
  }
  .live-bus-root .map-fullscreen-close{
    width:52px;
    min-width:52px;
    height:52px;
    font-size:32px;
  }
  body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen{
    height:100svh!important;
    min-height:100svh!important;
  }
  body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen .map-view-tools{
    top:max(10px, env(safe-area-inset-top));
    right:max(10px, env(safe-area-inset-right));
  }
  body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen .map-legend{
    left:max(9px, env(safe-area-inset-left));
    right:max(9px, env(safe-area-inset-right));
    bottom:max(10px, env(safe-area-inset-bottom));
  }
}

/* Dual-fullscreen refinement: map controls are separate from the global website fullscreen. */
.live-bus-root .map-fullscreen-open{white-space:nowrap}
body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen .map-fullscreen-open{display:none!important}
body.map-fullscreen-active .live-bus-root .map-panel.is-map-fullscreen .map-favorite-button{display:inline-flex}
