/* SO-OEPNVPRO: helles, seniorenfreundliches Standard-Theme + altes grünes Theme. */
html[data-theme="light"] {
  color-scheme: light;
  --bg:#eef3f0; --bg-2:#f8faf9; --panel:#ffffff; --panel-strong:#ffffff;
  --line:#c7d6ce; --line-strong:#6d9d83; --text:#16221c; --muted:#51635a;
  --green:#087443; --green-2:#0b8b50; --cyan:#087a94; --amber:#9a6500; --red:#b32332;
  --shadow:0 12px 34px rgba(20,45,32,.10); --focus:0 0 0 4px rgba(8,116,67,.20);
}
html[data-theme="light"],html[data-theme="light"] body{background:#eef3f0;color:var(--text)}
html[data-theme="light"] body{background:linear-gradient(180deg,#f8faf9,#eef3f0 62%,#e7eeea)}
html[data-theme="light"] .topbar{background:rgba(255,255,255,.96);border-color:#cbd8d1;box-shadow:0 2px 12px rgba(18,47,31,.07)}
html[data-theme="light"] .brand-mark{background:#e8f4ed;color:#075d38;border-color:#91bba5;box-shadow:none}
html[data-theme="light"] .brand strong{color:#15251c}
html[data-theme="light"] .desktop-nav a,html[data-theme="light"] .language-switch a{color:#35483e}
html[data-theme="light"] .desktop-nav a:hover,html[data-theme="light"] .desktop-nav a.is-active,html[data-theme="light"] .language-switch a.is-active{color:#075f39;background:#e7f4ec;border-color:#8bb69f}
html[data-theme="light"] .icon-button,html[data-theme="light"] .radar-link,html[data-theme="light"] .mini-button,html[data-theme="light"] .square-button,html[data-theme="light"] .swap-button{background:#fff;color:#21362a;border-color:#bdcec5}
html[data-theme="light"] .glass-panel{background:#fff;border-color:#c9d7d0;box-shadow:var(--shadow)}
html[data-theme="light"] .glass-panel::after{opacity:.15}
html[data-theme="light"] input,html[data-theme="light"] select,html[data-theme="light"] textarea{background:#fff;color:#17231d;border-color:#aebfb6}
html[data-theme="light"] input::placeholder,html[data-theme="light"] textarea::placeholder{color:#6e7d75}
html[data-theme="light"] .planner-more,html[data-theme="light"] .address-card,html[data-theme="light"] .route-card,html[data-theme="light"] .quick-stop-button,html[data-theme="light"] .favorite-route-card,html[data-theme="light"] .map-route-summary{background:#f8fbf9;border-color:#c8d6cf}
html[data-theme="light"] .scope-option span,html[data-theme="light"] .filter-chip span,html[data-theme="light"] .quick-stops button{background:#f7faf8;border-color:#c8d6cf;color:#3f5248}
html[data-theme="light"] .scope-option input:checked+span,html[data-theme="light"] .filter-chip input:checked+span{background:#e5f4eb;border-color:#6fa88b;color:#075f39}
html[data-theme="light"] .primary-button{background:linear-gradient(135deg,#0a8750,#12a463);color:#fff;box-shadow:0 8px 20px rgba(10,135,80,.16)}
html[data-theme="light"] .live-badge,html[data-theme="light"] .status-pill{background:#eaf6ef;color:#075f39;border-color:#8db8a1}
html[data-theme="light"] .site-footer{background:#f8faf9;border-color:#cbd8d1;color:#53655b}
html[data-theme="light"] .site-footer a{color:#0a6640}
html[data-theme="light"] .mobile-nav{background:rgba(255,255,255,.98);border-color:#cbd8d1;box-shadow:0 -4px 18px rgba(16,42,28,.09)}
html[data-theme="light"] .mobile-nav a{color:#485c51}
html[data-theme="light"] .mobile-nav a.is-active{color:#075f39;background:#e6f4eb}
html[data-theme="light"] .toast{background:#fff;color:#19271f;border-color:#85aa96;box-shadow:0 12px 35px rgba(22,46,33,.16)}
html[data-theme="light"] .journey-suggestions,html[data-theme="light"] .autocomplete-list{background:#fff;border-color:#aabdb3;box-shadow:0 16px 38px rgba(18,43,29,.16)}
html[data-theme="light"] .journey-suggestion:hover,html[data-theme="light"] .journey-suggestion.is-active{background:#eaf5ef}

/* Altes grünes Theme: die vorhandene grüne Gestaltung bleibt maßgeblich. */
html[data-theme="green"]{color-scheme:dark}

/* Lesbarkeit und Bedienbarkeit in beiden Themes. */
body{font-size:16px;line-height:1.5}
button,input,select,textarea{font-size:max(16px,1em)}
.theme-toggle{white-space:nowrap}

/* 2026-08-30: Routenkarte – Kontrast-Fix fuer helles/seniorenfreundliches Theme.
   Die Basiskomponenten bleiben fuer das alte gruene Theme unveraendert. */
html[data-theme="light"] .map-page .view-switch{
  background:#f2f7f4;
  border-color:#b8ccc1;
}
html[data-theme="light"] .map-page .view-tab{
  color:#40584b;
}
html[data-theme="light"] .map-page .view-tab.is-active{
  background:#dcefe4;
  color:#075f39;
  box-shadow:none;
}

html[data-theme="light"] .map-page .route-mode-filter{
  background:#ffffff;
  border-color:#b9cdc2;
  box-shadow:0 6px 18px rgba(20,45,32,.07);
  color:#16221c;
}
html[data-theme="light"] .map-page .route-mode-filter__head small{
  color:#087443;
  font-size:.58rem;
}
html[data-theme="light"] .map-page .route-mode-filter__head strong{
  color:#17251d;
  font-size:.82rem;
}
html[data-theme="light"] .map-page .route-filter-all{
  background:#f8fbf9;
  color:#385044;
  border-color:#adc4b7;
}
html[data-theme="light"] .map-page .route-filter-all.is-active{
  background:#e1f2e8;
  color:#075f39;
  border-color:#6f9f85;
  box-shadow:none;
}
html[data-theme="light"] .map-page .route-filter-chip{
  opacity:.92;
  color:#2d4136;
  background:color-mix(in srgb,var(--route-color,#68ffae) 9%,#ffffff);
  border-color:color-mix(in srgb,var(--route-color,#68ffae) 42%,#9fb5aa);
  font-size:.68rem;
}
html[data-theme="light"] .map-page .route-filter-chip.is-active{
  opacity:1;
  color:#132119;
  background:color-mix(in srgb,var(--route-color,#68ffae) 18%,#ffffff);
  border-color:color-mix(in srgb,var(--route-color,#68ffae) 64%,#668376);
  box-shadow:0 2px 8px rgba(20,45,32,.06);
}
html[data-theme="light"] .map-page .route-filter-chip i{
  box-shadow:none;
}
html[data-theme="light"] .map-page .route-mode-filter__hint{
  color:#52675c;
  font-size:.65rem;
}

html[data-theme="light"] .map-page .globe-line-strip{
  background:#ffffff;
  border-color:#bccfc5;
  color:#17251d;
}
html[data-theme="light"] .map-page .globe-line-chip{
  color:#17251d;
  background:color-mix(in srgb,var(--line-color) 10%,#ffffff);
  border-color:color-mix(in srgb,var(--line-color) 45%,#a6baaf);
}
html[data-theme="light"] .map-page .globe-focus-city{
  background:#e8f4ed;
  color:#183025;
  border-color:#91b8a3;
}

html[data-theme="light"] .map-page .map-insight-card{
  background:#ffffff;
  color:#17251d;
  border-color:#bdcfc5;
  box-shadow:0 5px 16px rgba(20,45,32,.06);
}
html[data-theme="light"] .map-page .map-insight-kicker{
  color:#087443;
  font-size:.56rem;
}
html[data-theme="light"] .map-page .map-insight-card>strong{
  color:#17251d;
  font-size:.82rem;
}
html[data-theme="light"] .map-page .map-insight-card>p{
  color:#50665a;
  font-size:.68rem;
}
html[data-theme="light"] .map-page .map-ticket-card.is-valid{
  background:#edf8f1;
  border-color:#7fac93;
}
html[data-theme="light"] .map-page .map-ticket-card.is-warning,
html[data-theme="light"] .map-page .map-alert-card{
  background:#fff8e6;
  border-color:#d1ad54;
}
html[data-theme="light"] .map-page .map-ticket-card.is-invalid{
  background:#fff0f1;
  border-color:#d88790;
}
html[data-theme="light"] .map-page .map-transfer-card{
  background:#eef8fb;
  border-color:#83b9c6;
}
html[data-theme="light"] .map-page .map-action-card{
  background:#f1f8f4;
  border-color:#9cbcab;
}
html[data-theme="light"] .map-page .map-insight-row{
  background:rgba(255,255,255,.82);
  border-color:#c8d6cf;
  color:#17251d;
}
html[data-theme="light"] .map-page .map-insight-row strong{
  color:#17251d;
  font-size:.65rem;
}
html[data-theme="light"] .map-page .map-insight-row span{
  color:#4e6257;
  font-size:.61rem;
}
html[data-theme="light"] .map-page .map-insight-row.is-danger{
  background:#fff5f5;
  border-color:#d8a0a6;
}
html[data-theme="light"] .map-page .map-insight-row.is-delay{
  background:#fffaed;
  border-color:#d5ba72;
}
html[data-theme="light"] .map-page .map-primary-action{
  background:#e2f3e9!important;
  color:#075f39!important;
  border-color:#78a98e!important;
}

html[data-theme="light"] .map-page .map-favorites{
  background:#ffffff;
  border-color:#bdcfc5;
  color:#17251d;
  box-shadow:0 5px 16px rgba(20,45,32,.05);
}
html[data-theme="light"] .map-page .map-favorites-head strong{
  color:#17251d;
  font-size:.78rem;
}
html[data-theme="light"] .map-page .map-favorite-chip{
  background:#f6faf8;
  border-color:#b9cdc2;
  color:#17251d;
}
html[data-theme="light"] .map-page .map-favorite-chip strong{
  color:#17251d;
  font-size:.68rem;
}
html[data-theme="light"] .map-page .map-favorite-chip span{
  color:#52675c;
  font-size:.58rem;
}

html[data-theme="light"] .map-page .map-detail-note,
html[data-theme="light"] .map-page .map-route-summary{
  background:#ffffff;
  border-color:#bdcfc5;
  color:#17251d;
}
html[data-theme="light"] .map-page .map-detail-note span,
html[data-theme="light"] .map-page .map-route-summary small,
html[data-theme="light"] .map-page .map-route-summary .muted{
  color:#50665a;
}
html[data-theme="light"] .map-page .map-detail-note{
  font-size:.68rem;
}

/* Die Karten-Bedienelemente duerfen im hellen Theme ebenfalls hell sein. */
html[data-theme="light"] .map-page .maplibregl-ctrl-group{
  background:#ffffff!important;
  border-color:#9fb8ab!important;
  box-shadow:0 4px 14px rgba(20,45,32,.12)!important;
}
html[data-theme="light"] .map-page .maplibregl-ctrl-group button{
  background-color:#ffffff!important;
}
html[data-theme="light"] .map-page .maplibregl-ctrl-icon{
  filter:none;
}
html[data-theme="light"] .map-page .maplibregl-ctrl-attrib{
  background:rgba(255,255,255,.94)!important;
  color:#3f5448!important;
}
html[data-theme="light"] .map-page .maplibregl-ctrl-attrib a{
  color:#075f39!important;
}
html[data-theme="light"] .map-page .maplibregl-popup-content{
  background:#ffffff!important;
  color:#17251d;
  border-color:#91b49f;
  box-shadow:0 12px 30px rgba(20,45,32,.18)!important;
}
html[data-theme="light"] .map-page .maplibregl-popup-tip{
  border-top-color:#ffffff!important;
  border-bottom-color:#ffffff!important;
}
html[data-theme="light"] .map-page .map-loading,
html[data-theme="light"] .map-page .map-fallback{
  color:#40564a;
  background:rgba(247,250,248,.94);
}

@media (max-width:767px){
  html[data-theme="light"] .map-page .route-mode-filter__head strong{font-size:.78rem}
  html[data-theme="light"] .map-page .route-filter-chip{font-size:.66rem}
  html[data-theme="light"] .map-page .route-mode-filter__hint{font-size:.62rem}
  html[data-theme="light"] .map-page .map-insight-kicker{font-size:.58rem}
  html[data-theme="light"] .map-page .map-insight-card>strong{font-size:.84rem}
  html[data-theme="light"] .map-page .map-insight-card>p{font-size:.7rem}
}
