/* ZnajdzBus 2.8.0 — shared display themes; navigation controls in navigation.css. */
html { --zb-focus:#075f91; }
html[data-theme="dark"]{
 color-scheme:dark;--zb-bg:#101923;--zb-surface:#182432;--zb-soft:#203247;--zb-text:#f0f5fb;--zb-muted:#bdcbdc;--zb-border:#667b92;--zb-link:#8bd2ff;--zb-action:#88d2ff;--zb-action-text:#0b2335;--zb-warning:#302a18;--zb-warning-text:#ffe6a0;--zb-danger:#ff9e96;--zb-focus:#ffd52b;
}
html[data-theme="contrast"]{
 color-scheme:light;--zb-bg:#fff;--zb-surface:#fff;--zb-soft:#fff;--zb-text:#000;--zb-muted:#000;--zb-border:#000;--zb-link:#003c88;--zb-action:#000;--zb-action-text:#fff;--zb-warning:#fff;--zb-warning-text:#000;--zb-danger:#a00000;--zb-focus:#003c88;
}
html:is([data-theme="dark"],[data-theme="contrast"]){
 --c-page:var(--zb-bg)!important;--page:var(--zb-bg)!important;--c-surface:var(--zb-surface)!important;--card:var(--zb-surface)!important;
 --c-ink:var(--zb-text)!important;--c-text:var(--zb-text)!important;--text:var(--zb-text)!important;--ink:var(--zb-text)!important;
 --c-muted:var(--zb-muted)!important;--c-subtle:var(--zb-muted)!important;--muted:var(--zb-muted)!important;
 --c-line:var(--zb-border)!important;--line:var(--zb-border)!important;
 --c-primary:var(--zb-link)!important;--c-primary-strong:var(--zb-link)!important;--c-primary-soft:var(--zb-soft)!important;
 --c-warning-bg:var(--zb-warning)!important;--c-warning-line:var(--zb-border)!important;--c-warning-text:var(--zb-warning-text)!important;--c-danger:var(--zb-danger)!important;
 background:var(--zb-bg)!important;color:var(--zb-text)!important;
}

html:is([data-theme="dark"],[data-theme="contrast"]) body{background:var(--zb-bg)!important;color:var(--zb-text)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .searchCard,
html:is([data-theme="dark"],[data-theme="contrast"]) .result,
html:is([data-theme="dark"],[data-theme="contrast"]) .resultHead,
html:is([data-theme="dark"],[data-theme="contrast"]) .resultsBox,
html:is([data-theme="dark"],[data-theme="contrast"]) .details,
html:is([data-theme="dark"],[data-theme="contrast"]) .infoCard,
html:is([data-theme="dark"],[data-theme="contrast"]) .mapDrawer,
html:is([data-theme="dark"],[data-theme="contrast"]) .routeMapCard,
html:is([data-theme="dark"],[data-theme="contrast"]) .walkLeg,
html:is([data-theme="dark"],[data-theme="contrast"]) .whenPanel,
html:is([data-theme="dark"],[data-theme="contrast"]) .feedbackDialog,
html:is([data-theme="dark"],[data-theme="contrast"]) .seoRouteLinks,
html:is([data-theme="dark"],[data-theme="contrast"]) .seoLineLink,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-card,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-row,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-more,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbSeoContext,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbSeoLineCard,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbStopGroup a,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbTripTime,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbVariant,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbStopNoJs,
html:is([data-theme="dark"],[data-theme="contrast"]) .card,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbThemePanel{background:var(--zb-surface)!important;color:var(--zb-text)!important;border-color:var(--zb-border)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) input,
html:is([data-theme="dark"],[data-theme="contrast"]) select,
html:is([data-theme="dark"],[data-theme="contrast"]) textarea{background:var(--zb-surface)!important;color:var(--zb-text)!important;border-color:var(--zb-border)!important;accent-color:var(--zb-link)}

html:is([data-theme="dark"],[data-theme="contrast"]) input::placeholder,
html:is([data-theme="dark"],[data-theme="contrast"]) textarea::placeholder{color:var(--zb-muted)!important;opacity:1}

html:is([data-theme="dark"],[data-theme="contrast"]) a{color:var(--zb-link)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .mainTimes,
html:is([data-theme="dark"],[data-theme="contrast"]) .journeyType,
html:is([data-theme="dark"],[data-theme="contrast"]) .groupHeader h3,
html:is([data-theme="dark"],[data-theme="contrast"]) .infoCard :is(h2,h3),
html:is([data-theme="dark"],[data-theme="contrast"]) .fieldHead strong,
html:is([data-theme="dark"],[data-theme="contrast"]) .feedbackDialog h2,
html:is([data-theme="dark"],[data-theme="contrast"]) .seoRouteLinksHead h2,
html:is([data-theme="dark"],[data-theme="contrast"]) .seoRouteLinksHead h2 a,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbSeoContext h1,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-empty strong,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-stop-title,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-time,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-dir strong,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbSeoCrumb strong,
html:is([data-theme="dark"],[data-theme="contrast"]) .walkLegText strong,
html:is([data-theme="dark"],[data-theme="contrast"]) .routeMapTitle{color:var(--zb-text)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .searchFoot,
html:is([data-theme="dark"],[data-theme="contrast"]) .currentMeta,
html:is([data-theme="dark"],[data-theme="contrast"]) .infoCard p,
html:is([data-theme="dark"],[data-theme="contrast"]) .groupHeader span,
html:is([data-theme="dark"],[data-theme="contrast"]) .duration,
html:is([data-theme="dark"],[data-theme="contrast"]) .headsign,
html:is([data-theme="dark"],[data-theme="contrast"]) .feedbackHint,
html:is([data-theme="dark"],[data-theme="contrast"]) .feedbackDialog p,
html:is([data-theme="dark"],[data-theme="contrast"]) .feedbackDialog label,
html:is([data-theme="dark"],[data-theme="contrast"]) .checkLabel,
html:is([data-theme="dark"],[data-theme="contrast"]) .fieldHead span,
html:is([data-theme="dark"],[data-theme="contrast"]) .empty,
html:is([data-theme="dark"],[data-theme="contrast"]) .nearRow,
html:is([data-theme="dark"],[data-theme="contrast"]) #nearStatus,
html:is([data-theme="dark"],[data-theme="contrast"]) #resolveStatus,
html:is([data-theme="dark"],[data-theme="contrast"]) .searchMetaRow,
html:is([data-theme="dark"],[data-theme="contrast"]) .sectionHead span,
html:is([data-theme="dark"],[data-theme="contrast"]) .mapHeader span,
html:is([data-theme="dark"],[data-theme="contrast"]) .mapEmpty,
html:is([data-theme="dark"],[data-theme="contrast"]) .arrow,
html:is([data-theme="dark"],[data-theme="contrast"]) .walkLegText span,
html:is([data-theme="dark"],[data-theme="contrast"]) .routeMapStatus,
html:is([data-theme="dark"],[data-theme="contrast"]) .seoRouteLinksHead span,
html:is([data-theme="dark"],[data-theme="contrast"]) .seoPopularStops>strong,
html:is([data-theme="dark"],[data-theme="contrast"]) .footer,
html:is([data-theme="dark"],[data-theme="contrast"]) .foot,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-kicker,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-field,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-date-line span,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-section-title span,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-line-pages span,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-dir span,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-note,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-empty,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbSeoLead,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbSeoCrumb,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbSeoValid,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbSeoLineCard small,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbStopFind,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbStopFind small,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbStopGroup a span,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbLineDays,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbTripTime span,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbVariant summary small,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbStopChain span,
html:is([data-theme="dark"],[data-theme="contrast"]) .card p,
html:is([data-theme="dark"],[data-theme="contrast"]) .card ul{color:var(--zb-muted)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .iconBtn,
html:is([data-theme="dark"],[data-theme="contrast"]) .swapBtn,
html:is([data-theme="dark"],[data-theme="contrast"]) .nowIconBtn,
html:is([data-theme="dark"],[data-theme="contrast"]) .whenToggle,
html:is([data-theme="dark"],[data-theme="contrast"]) .showMap,
html:is([data-theme="dark"],[data-theme="contrast"]) .walkMapToggle,
html:is([data-theme="dark"],[data-theme="contrast"]) .shareRouteBtn,
html:is([data-theme="dark"],[data-theme="contrast"]) .secondaryBtn,
html:is([data-theme="dark"],[data-theme="contrast"]) .feedbackClose,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-today,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-filter,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbThemePanel button,
html:is([data-theme="dark"],[data-theme="contrast"]) .testBanner button{background:var(--zb-soft)!important;color:var(--zb-link)!important;border-color:var(--zb-border)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .whenToggle .whenLabel,
html:is([data-theme="dark"],[data-theme="contrast"]) .nowInline,
html:is([data-theme="dark"],[data-theme="contrast"]) #nearMe,
html:is([data-theme="dark"],[data-theme="contrast"]) .walkMapFooter a,
html:is([data-theme="dark"],[data-theme="contrast"]) .countdown,
html:is([data-theme="dark"],[data-theme="contrast"]) .countdown.soon,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-count,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-next,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-back,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-stop-link,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbStopGroup a em{color:var(--zb-link)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .searchBtn,
html:is([data-theme="dark"],[data-theme="contrast"]) .searchBtn:hover,
html:is([data-theme="dark"],[data-theme="contrast"]) .primaryFeedbackBtn,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-filter.active,
html:is([data-theme="dark"],[data-theme="contrast"]) .consentAccept,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbThemePanel button[aria-pressed="true"]{background:var(--zb-action)!important;color:var(--zb-action-text)!important;border-color:var(--zb-action)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .testBanner,
html:is([data-theme="dark"],[data-theme="contrast"]) .routingNotice{background:var(--zb-warning)!important;color:var(--zb-warning-text)!important;border-color:var(--zb-border)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .testBanner strong,
html:is([data-theme="dark"],[data-theme="contrast"]) .testBanner span{color:var(--zb-warning-text)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .transfer,
html:is([data-theme="dark"],[data-theme="contrast"]) .walkMapFooter,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-note,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-empty,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-status,
html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-status.no,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbSeoValid,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbStopNoResults,
html:is([data-theme="dark"],[data-theme="contrast"]) .tag,
html:is([data-theme="dark"],[data-theme="contrast"]) .pill,
html:is([data-theme="dark"],[data-theme="contrast"]) .directBadge,
html:is([data-theme="dark"],[data-theme="contrast"]) .transferBadge{background:var(--zb-soft)!important;color:var(--zb-text)!important;border-color:var(--zb-border)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .countdown.now{color:var(--zb-danger)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .countdown.departed{color:var(--zb-muted)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .zb-st-top,
html:is([data-theme="dark"],[data-theme="contrast"]) .details,
html:is([data-theme="dark"],[data-theme="contrast"]) .mapHeader,
html:is([data-theme="dark"],[data-theme="contrast"]) .footer,
html:is([data-theme="dark"],[data-theme="contrast"]) .walkMapPanel,
html:is([data-theme="dark"],[data-theme="contrast"]) .routeMapCard .inlineMap,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbStopGroup,
html:is([data-theme="dark"],[data-theme="contrast"]) .zbDirection>h2{border-color:var(--zb-border)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .consent{background:var(--zb-surface)!important;color:var(--zb-text)!important;border:2px solid var(--zb-border)}

html:is([data-theme="dark"],[data-theme="contrast"]) .consent p{color:var(--zb-text)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .consentReject{background:var(--zb-surface)!important;color:var(--zb-text)!important;border-color:var(--zb-border)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .zbThemePanel button:hover{text-decoration:underline;text-underline-offset:3px}

html:is([data-theme="dark"],[data-theme="contrast"]) :focus-visible{outline:3px solid var(--zb-focus)!important;outline-offset:3px!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .leaflet-container a{color:#075f91!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .leaflet-popup-content-wrapper,
html:is([data-theme="dark"],[data-theme="contrast"]) .leaflet-popup-tip,
html:is([data-theme="dark"],[data-theme="contrast"]) .leaflet-control{color:#14233a}

html:is([data-theme="dark"],[data-theme="contrast"]) .svgStop{fill:var(--zb-text)!important}

html:is([data-theme="dark"],[data-theme="contrast"]) .svgTime{fill:var(--zb-muted)!important}

/* Route numbers remain white in normal themes. Contrast mode also identifies routes by number. */
html[data-theme="dark"] :is(.miniLine,.journeyLine,.line,.seoLineBadge,.zb-st-line,.zbBigLine,.zbSeoLineCard>span){color:#fff!important}
html[data-theme="contrast"] :is(.miniLine,.journeyLine,.line,.seoLineBadge,.zb-st-line,.zbBigLine,.zbSeoLineCard>span){background:#000!important;color:#fff!important;border:2px solid #000!important}
html[data-theme="contrast"] :is(.hero,.top){background:#fff!important;color:#000!important;border-bottom:2px solid #000}
html[data-theme="contrast"] :is(.hero h1,.heroPageTitle,.heroLead,.brandLogoText,.top p,.top .brand){color:#000!important;text-shadow:none!important}
html[data-theme="dark"] :is(.hero h1,.heroPageTitle,.heroLead,.brandLogoText){color:#fff!important}
html[data-theme="contrast"] :is(.searchCard,.result,.infoCard,.testBanner,.routeMapCard,.walkLeg,.seoRouteLinks,.zb-st-card,.zb-st-row,.zbSeoContext,.card,input,select,textarea){border:2px solid #000!important;box-shadow:none!important}
html[data-theme="contrast"] :is(.zbThemeToggle,.zbThemePanel){background:#fff!important;color:#000!important;border:2px solid #000!important;box-shadow:none!important}
html[data-theme="contrast"] a{text-decoration:underline!important;text-underline-offset:3px}
html[data-theme="contrast"] :is(.zb-st-line,.seoLineLink,.zbSeoLineCard){text-decoration:none!important}
html[data-theme="dark"] .zbThemeToggle{background:#182432;color:#f0f5fb;border-color:#bdcbdc}
@media(forced-colors:active){
 .zbThemeToggle,.zbThemePanel,.zbThemePanel button{forced-color-adjust:auto;border:2px solid ButtonText}
 .zbThemePanel button[aria-pressed="true"]{border-color:Highlight}
 html .hero{background-image:none!important}
}
@media print{.zbTheme{display:none!important}}
html:is([data-theme="dark"],[data-theme="contrast"]) :is(.inlineMap,.mapLegend){background:var(--zb-surface)!important;color:var(--zb-text)!important;border-color:var(--zb-border)!important}
html:is([data-theme="dark"],[data-theme="contrast"]) .mapRetryBtn{background:var(--zb-soft)!important;color:var(--zb-link)!important;border-color:var(--zb-border)!important}
html:is([data-theme="dark"],[data-theme="contrast"]) .footer strong{color:var(--zb-link)!important}
html:is([data-theme="dark"],[data-theme="contrast"]) .skipLink{background:var(--zb-surface)!important;color:var(--zb-link)!important}

