/* GdziePopyt 2.4 — stały, jasny motyw aplikacji. */
:root {
    color-scheme: light;
    --bg: #f6f8fc;
    --bg-grad-1: rgba(14, 165, 233, 0.10);
    --bg-grad-2: rgba(124, 58, 237, 0.08);
    --bg-alt: #eef3f9;
    --panel: rgba(255, 255, 255, 0.94);
    --panel-strong: #ffffff;
    --text: #172033;
    --text-soft: #334155;
    --muted: #64748b;
    --accent: #0369a1;
    --accent-soft: #0284c7;
    --accent-2: #6d28d9;
    --border: #dbe3ee;
    --header-bg: rgba(255, 255, 255, 0.94);
    --input-bg: #ffffff;
    --link: #0369a1;
    --shadow: rgba(15, 23, 42, 0.10);
    --hero-text: #172033;
    --hero-sub: #475569;
    --eyebrow: #0369a1;
    --dash-card-bg: #ffffff;
    --dash-card-border: #dbe3ee;
    --dash-shadow: rgba(15, 23, 42, 0.09);
    --map-shell-bg: #eef3f9;
    --map-panel-bg: rgba(255, 255, 255, 0.98);
    --map-header-bg: rgba(255, 255, 255, 0.96);
}

html,
body,
body.map-page,
.auth-body {
    background: #f6f8fc;
    color: var(--text);
}

body {
    background:
        radial-gradient(circle at 8% 0, rgba(14, 165, 233, 0.10), transparent 30%),
        radial-gradient(circle at 92% 0, rgba(124, 58, 237, 0.07), transparent 26%),
        #f6f8fc;
}

a,
.panel-link,
.insight-card a { color: #0369a1; }

.muted,
.metric-note,
.event-copy p,
.insight-card p,
.promo-box p,
.upcoming-card p { color: #64748b; }

.site-header,
body.map-page .site-header {
    background: rgba(255, 255, 255, 0.95);
    color: #172033;
    border-bottom-color: #dbe3ee;
    box-shadow: 0 8px 30px rgba(15, 23, 42, 0.07);
}

.brand strong,
.site-header .brand strong { color: #172033; }

.tagline,
.site-header .tagline { color: #64748b; }

.site-header nav a,
.site-header .site-nav a,
body.map-page .site-header nav a { color: #475569; }

.site-header nav a:hover,
.site-header .site-nav a:hover {
    background: #e0f2fe;
    color: #075985;
}

.site-header nav a.active,
.site-header .site-nav a.active,
body.map-page .site-header nav a.active {
    background: #0369a1;
    color: #ffffff;
}

.city-badge {
    background: #f0f9ff;
    color: #075985;
    border-color: #bae6fd;
}

.plan-badge--free { background: #f1f5f9; color: #475569; }
.plan-badge--pro { background: #ecfdf5; color: #047857; }
.plan-badge--premium { background: #f5f3ff; color: #6d28d9; }

.page.dashboard-page,
.page.events-page {
    background: rgba(255, 255, 255, 0.72);
    border-color: #e2e8f0;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.08);
}

.page.dashboard-page::before,
.page.events-page::before {
    background: linear-gradient(120deg, rgba(14, 165, 233, 0.05), transparent 42%, rgba(124, 58, 237, 0.04));
}

.dashboard-hero,
.events-hero-card,
.hero {
    background: linear-gradient(135deg, #e0f2fe 0%, #f5f3ff 100%);
    border-color: #cbd5e1;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.08);
}

.dashboard-hero h1,
.events-hero-card h1,
.hero-copy h1 {
    color: #172033;
    -webkit-text-fill-color: initial;
    background: none;
}

.dashboard-hero p,
.events-hero-card p,
.hero-copy p { color: #475569; }

.hero-kicker,
.badge {
    background: #ffffff;
    color: #0369a1;
    border-color: #bae6fd;
}

.hero-card,
.panel,
.promo-box,
.card,
.login-box,
.auth-box,
.metric-card,
.hero-panel,
.insight-card,
.upcoming-card,
.board-card,
.live-city-card,
.cc-map-card,
.cc-alert,
.stat-card,
.pkp-panel,
.ev-card {
    background: #ffffff;
    color: #172033;
    border-color: #dbe3ee;
    box-shadow: 0 10px 32px rgba(15, 23, 42, 0.08);
}

.hero-card h2,
.hero-panel h2,
.panel h2,
.panel-head h2,
.board-card h2,
.insight-card h3,
.promo-box h3,
.upcoming-card h3,
.ev-card h3 { color: #172033; }

.dashboard-page .cc-map-card,
.dashboard-page .cc-alert,
.dashboard-page .stat-card,
.dashboard-page .pkp-panel,
.dashboard-page .coming-soon--compact,
.events-page .coming-soon,
.events-page #events-map,
.events-page .event-list-card,
.events-page .event-filter-pill {
    background: #ffffff;
    color: #172033;
    border-color: #dbe3ee;
    box-shadow: 0 12px 36px rgba(15, 23, 42, 0.08);
}

.events-page .event-list-card strong { color: #172033; }
.events-page .event-list-card .muted,
.events-page .page-head .muted { color: #64748b; }
.events-page .event-filter-pill { color: #475569; }
.events-page .event-filter-pill.ghost { background: #f8fafc; }

.demand-now {
    background:
        radial-gradient(circle at 95% 0, rgba(124, 58, 237, 0.08), transparent 36%),
        #ffffff;
    border-color: #cbd5e1;
    box-shadow: 0 18px 52px rgba(15, 23, 42, 0.09);
}

.demand-now__head h1 { color: #172033; }
.demand-now__head p { color: #475569; }
.demand-now__kicker { color: #0369a1; }
.demand-now__refresh { color: #64748b; }

.font-size-controls {
    background: #f8fafc;
    border-color: #dbe3ee;
}

.font-size-controls button {
    background: #ffffff;
    color: #075985;
    border-color: #bae6fd;
}

.font-size-controls button:hover,
.font-size-controls button:focus-visible {
    background: #e0f2fe;
    border-color: #38bdf8;
}

.source-health__item {
    background: #f8fafc;
    border-color: #e2e8f0;
}

.source-health__item strong { color: #334155; }
.source-health__item small { color: #64748b; }
.source-health__item--stale {
    border-color: #fca5a5;
    background: #fff1f2;
}
.source-health__item--stale strong { color: #b91c1c; }
.source-health__item--stale small { color: #9f1239; }

.recommendation-card,
.recommendation-card--primary {
    background:
        linear-gradient(155deg, color-mix(in srgb, var(--reco-color, #0369a1) 8%, white), #ffffff 52%);
    border-color: color-mix(in srgb, var(--reco-color, #0369a1) 38%, #dbe3ee);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.recommendation-card:hover,
.recommendation-card--primary:hover {
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.12);
}

.recommendation-card__icon {
    background: color-mix(in srgb, var(--reco-color, #0369a1) 9%, white);
}

.recommendation-card__title h2,
.recommendation-card--empty h2,
.recommendation-card--primary .recommendation-card__title h2 { color: #172033; }

.recommendation-card__title > strong,
.recommendation-card--primary .recommendation-card__title > strong { color: #475569; }
.recommendation-card__score span { color: #64748b; }

.recommendation-card__timing,
.recommendation-card--primary .recommendation-card__timing {
    background: #f1f5f9;
    color: #172033;
}

.recommendation-card__reason,
.recommendation-card--primary .recommendation-card__reason { color: #475569; }
.recommendation-card__meta { color: #64748b; }
.recommendation-card__meta strong { color: #334155; }
.recommendation-card__foot { border-color: #e2e8f0; }
.recommendation-card__foot small { color: #64748b; }

.recommendation-card__action,
.recommendation-card__action--go,
.recommendation-card__action--prepare,
.recommendation-card__action--quiet { color: #ffffff; background: transparent; border-color: transparent; }

.demand-now__note,
.demand-timeline {
    background: #f8fafc;
    border-color: #e2e8f0;
}

.demand-now__note p,
#recommendations-updated { color: #64748b; }
.demand-now__note strong { color: #334155; }
.demand-now__note-icon { color: #0369a1; border-color: #7dd3fc; background: #ffffff; }

.demand-timeline__head h2,
.demand-timeline__item strong { color: #172033; }
.demand-timeline__head > div:first-child > span,
.demand-timeline__item small { color: #64748b; }

.demand-timeline__arrival {
    background: #ffffff;
    color: color-mix(in srgb, var(--arrival-color) 78%, #172033);
    border-color: color-mix(in srgb, var(--arrival-color) 58%, #dbe3ee);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.09);
}

.demand-timeline__arrival:hover,
.demand-timeline__arrival:focus-visible {
    background: color-mix(in srgb, var(--arrival-color) 10%, white);
    color: color-mix(in srgb, var(--arrival-color) 78%, #172033);
    border-color: var(--arrival-color);
}

.demand-timeline__arrival-empty { color: #64748b; }

.timeline-arrival-detail {
    border-color: #bae6fd;
    background: rgba(255, 255, 255, 0.98);
    color: #172033;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.2);
}

.timeline-arrival-detail__head h2,
.timeline-arrival-detail__row dd { color: #172033; }
.timeline-arrival-detail__row dt { color: #64748b; }
.timeline-arrival-detail__row { border-top-color: #e2e8f0; }
.timeline-arrival-detail__close {
    border-color: #cbd5e1;
    background: #f8fafc;
    color: #334155;
}
.timeline-arrival-detail__note {
    background: #e0f2fe;
    color: #075985;
}

.timeline-arrival-detail__row--delayed {
    border-color: #fca5a5;
    background: linear-gradient(115deg, #fff1f2, #ffe4e6 52%, #fecdd3);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.85);
}

.timeline-arrival-detail__row--delayed dt {
    color: #9f1239;
}

.timeline-arrival-detail__row--delayed dd {
    color: #881337;
}

.timeline-arrival-detail__collapse {
    background: rgba(248, 250, 252, 0.95);
    color: #334155;
    border-color: rgba(148, 163, 184, 0.6);
}

.timeline-arrival-detail__collapse:hover {
    background: rgba(226, 232, 240, 1);
    color: #0f172a;
    border-color: rgba(148, 163, 184, 0.9);
}
.demand-timeline__legend small,
.demand-timeline__clock span,
.demand-timeline__progress span,
.demand-timeline__empty { color: #64748b; }
.demand-timeline__signal {
    background: #ffffff;
    color: #172033;
    box-shadow: 0 7px 20px rgba(15, 23, 42, 0.10);
}
.demand-timeline__signal:hover { color: #172033; }
.demand-timeline__pin { background: color-mix(in srgb, var(--reco-color, #0369a1) 10%, white); }
.demand-timeline__signal em { background: color-mix(in srgb, var(--reco-color, #0369a1) 10%, white); }

.quick-tool-card {
    background: #ffffff;
    border-color: #dbe3ee;
    color: #172033;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07);
}

.quick-tool-card:hover { box-shadow: 0 14px 30px rgba(15, 23, 42, 0.11); }
.quick-tool-card__title { color: #172033; }
.quick-tool-card__text,
.quick-tool-card__meta { color: #64748b; }

.dash-tool {
    background: linear-gradient(145deg, color-mix(in srgb, var(--tool-color, #0369a1) 7%, white), #ffffff);
    color: #172033;
    border-color: color-mix(in srgb, var(--tool-color, #0369a1) 28%, #dbe3ee);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07);
}
.dash-tool:hover { color: #172033; box-shadow: 0 13px 30px rgba(15, 23, 42, 0.11); }
.dash-tool__icon { background: color-mix(in srgb, var(--tool-color, #0369a1) 10%, white); }
.dash-tool strong { color: #172033; }
.dash-tool small { color: #64748b; }
.cc-map-placeholder { color: #64748b; }
.cc-map-placeholder strong { color: #334155; }
.panel-heading-row > a { color: #0369a1; }
.data-mode-badge { color: #15803d; background: #ecfdf5; border-color: #86efac; }
.airport-manual-status { background: #f0f9ff; border-color: #bae6fd; }
.airport-manual-status strong { color: #075985; }
.airport-manual-status span { color: #64748b; }
.airport-manual-status--fresh { background: #f0fdf4; border-color: #bbf7d0; }
.airport-manual-status--fresh strong { color: #166534; }
.airport-manual-status--old,
.airport-manual-status--stale,
.airport-manual-status--missing { background: #fffbeb; border-color: #fde68a; }
.airport-manual-status--old strong,
.airport-manual-status--stale strong,
.airport-manual-status--missing strong { color: #92400e; }

.stat-card .sc-num,
.stat-card .sc-label,
.cc-map-head h2,
.pkp-panel h2 { color: #172033; }

.dashboard-page .pkp-panel .ts-note,
.dashboard-page .cc-airport-panel .ts-note { color: #64748b; }

.station-tab {
    background: #f1f5f9;
    border-color: #cbd5e1;
    color: #475569;
}

.station-tab.active {
    background: #0369a1;
    border-color: #0369a1;
    color: #ffffff;
}

.train-row,
.train-row-compact,
.train-row-dash,
.event-item { border-color: #e2e8f0; }
.train-row-compact:hover,
.event-item:hover { background: #f8fafc; }
.trc-route,
.trc-meta,
.event-time { color: #64748b; }

.auth-top,
.auth-footer {
    background: #ffffff;
    border-color: #e2e8f0;
}

.auth-brand strong,
.auth-box h1 { color: #172033; }
.auth-brand span,
.auth-box .muted { color: #64748b; }

.auth-form input,
.auth-form select,
.login-box input,
.login-box select {
    background: #ffffff;
    color: #172033;
    border-color: #cbd5e1;
}

.plan-summary,
.coming-soon {
    background: #f8fafc;
    color: #334155;
    border-color: #dbe3ee;
}

.site-footer { color: #64748b; border-color: #dbe3ee; }
.site-footer--desktop {
    border-color: #dbe3ee;
    background:
        linear-gradient(120deg, rgba(14, 165, 233, 0.06), transparent 34%, rgba(124, 58, 237, 0.05)),
        rgba(255, 255, 255, 0.97);
    box-shadow: 0 -8px 30px rgba(15, 23, 42, 0.07);
}
.site-footer__brand-line strong { color: #172033; }
.site-footer__brand-line small,
.site-footer__brand p,
.site-footer__system span { color: #64748b; }
.site-footer__nav > strong,
.site-footer__system > strong { color: #334155; }
.site-footer__nav a,
.site-footer__system a { color: #4f46e5; }
.site-footer__bottom { color: #64748b; border-color: #e2e8f0; }
.site-footer--mobile { background: #ffffff; border-color: #dbe3ee; }

.airport-arrival-countdown {
    color: #0c4a6e;
}

/* Pełnoekranowa mapa i jej rozwijane menu. */
.map-loading {
    background:
        radial-gradient(circle at 50% 46%, rgba(14, 165, 233, 0.18), transparent 34%),
        linear-gradient(145deg, rgba(239, 246, 255, 0.96), rgba(248, 250, 252, 0.94));
}
.map-loading__hud {
    border-color: #7dd3fc;
    background: rgba(255, 255, 255, 0.92);
    color: #172033;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.18), inset 0 0 36px rgba(14, 165, 233, 0.07);
}
.map-loading__radar span { color: #075985; }
.map-loading__hud small { color: #64748b; }

.map-app,
.map-app-body,
.map-page .page { background: #eef3f9; color: #172033; }

.map-app-header {
    background: rgba(255, 255, 255, 0.97);
    color: #172033;
    border-color: #dbe3ee;
    box-shadow: 0 8px 26px rgba(15, 23, 42, 0.09);
}

.map-app-header .brand strong,
.map-app-header nav a { color: #334155; }
.map-app-header nav a:hover { color: #075985; background: #e0f2fe; }

.map-legend,
.map-layers-card,
.layer-menu,
.map-menu,
.map-dropdown,
.map-controls-panel,
.radar-box,
#station-panel,
.events-panel {
    background: rgba(255, 255, 255, 0.98);
    color: #172033;
    border-color: #cbd5e1;
    box-shadow: 0 14px 38px rgba(15, 23, 42, 0.13);
}

#map-status,
.map-tool,
.map-tool-sub,
.map-live-card,
.gp-toast {
    background: rgba(255, 255, 255, 0.97);
    color: #334155;
    border-color: #cbd5e1;
    box-shadow: 0 5px 18px rgba(15, 23, 42, 0.16);
}

.map-tool:hover,
.map-tool-sub:hover { background: #f0f9ff; }
.map-tool.is-on { background: #ccfbf1; color: #0f766e; }
.map-tool--sos { color: #b91c1c; }
.legend-toggle { background: #f1f5f9; color: #475569; border-color: #cbd5e1; }
.map-live-card input,
.map-live-card select,
.map-live-card textarea { background: #ffffff; color: #172033; border: 1px solid #cbd5e1; }
.map-live-bar { background: #e2e8f0; }

.map-legend h4,
.map-layers-card h4,
.sp-header h3 { color: #172033; }
.leg-row,
.map-legend p,
.sp-ts { color: #64748b; }

.map-layer-btn,
.layer-toggle,
.filter-btn,
.sp-font-controls button {
    background: #f1f5f9;
    color: #334155;
    border-color: #cbd5e1;
}

.map-layer-btn:hover,
.layer-toggle:hover,
.filter-btn:hover,
.sp-font-controls button:hover {
    background: #e0f2fe;
    color: #075985;
}

.map-layer-btn.active,
.layer-toggle.active,
.filter-btn.active {
    background: #0369a1;
    color: #ffffff;
    border-color: #0369a1;
}

.wchip,
.driver-tip,
.filter-buttons {
    background: #f8fafc;
    color: #334155;
}

.traffic-summary {
    background: #f8fafc;
}

.traffic-summary__metric {
    background: #ffffff;
}

.flight-list {
    border-color: #e2e8f0;
}

.flight-list-row {
    border-color: #e2e8f0;
}

.flight-list-countdown {
    background: #e0f2fe;
    color: #075985;
}

.flight-list-countdown--now {
    background: #dcfce7;
    color: #15803d;
}

.flight-list-status {
    background: #f1f5f9;
}

.driver-tip.green { color: #166534; }
.driver-tip.yellow { color: #92400e; }
.driver-tip.red { color: #b91c1c; }
.driver-tip.purple { color: #6d28d9; }
.driver-tip.sky,
.driver-tip.sky .chip-title { color: #075985; }

.train-tbl th { color: #64748b; }
.train-tbl td { border-color: #e2e8f0; }
.train-tbl tr.delayed td,
.train-tbl--flights tr.delayed .flight-status-label { color: #b91c1c; }
.flight-status-label,
.arrival-train { color: #334155; }
.flight-origin,
.train-tbl--flights .flight-origin,
.arrival-train .flight-origin,
.arrival-status-text { color: #64748b; }
.flight-status-time { color: #a16207; }
.mins-big { color: #075985; }
.arrival-meta .arrival-time,
.flight-list-timing > strong,
.train-tbl--flights .col-time strong { color: #0f172a; }
.arrival-meta .arrival-mins span[style*="#4ade80"],
.train-tbl--flights .col-mins span[style*="#4ade80"] { color: #15803d !important; }
.arrival-status-text.delayed { color: #b45309; }
.arrival-status-text.landed { color: #15803d; }
.tag.arr { background: #dcfce7; color: #166534; }
.tag.dep { background: #dbeafe; color: #1d4ed8; }
.err-note { background: #eef2ff; border-color: #a5b4fc; color: #4338ca; }
.arrivals-preview h4 { color: #15803d; }

.events-filter-chip {
    background: #f8fafc !important;
    color: #475569;
    border-color: #dbe3ee;
}
.events-filter-chip.is-active {
    background: #ccfbf1 !important;
    color: #0f766e;
    border-color: #2dd4bf;
}

.events-panel-card {
    background: #ffffff;
    border-color: #dbe3ee;
}
.events-panel-card.is-active { background: #f0fdfa; }
.events-panel-card__title { color: #172033; }
.events-panel-card__time,
.events-panel-card__venue,
.events-panel-card__type,
.events-panel-card__sub { color: #64748b; }
.events-panel-card__people { color: #15803d; }

.gp-city-label,
.gp-event-label,
.gp-event-cluster {
    background: rgba(255, 255, 255, 0.96);
    color: #172033;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.18);
}
.gp-city-label { border-color: #94a3b8; color: #172033; }
.gp-event-label__title { color: #172033; }
.gp-event-cluster { color: #0f766e; border-color: #14b8a6; }

.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
    background: #ffffff;
    color: #172033;
}

/* Dolny pasek i szuflada pozostają ponad mapą, ale są jasne. */
.bottom-nav {
    background: rgba(255, 255, 255, 0.96);
    border-color: #dbe3ee;
    box-shadow: 0 -8px 28px rgba(15, 23, 42, 0.12);
}
.bottom-nav-item { color: #64748b; }
.bottom-nav-item:hover { color: #334155; }
.bottom-nav-item.active { color: #0369a1; }
.bottom-nav-item:active { background: #e0f2fe; }
.bottom-nav-item--center,
.bottom-nav-item--center:hover,
.bottom-nav-item--center.active { color: #ffffff; }
.bottom-nav-drawer-backdrop { background: rgba(15, 23, 42, 0.28); }
.bottom-nav-drawer {
    background: #ffffff;
    color: #172033;
    border-color: #dbe3ee;
    box-shadow: 0 -16px 44px rgba(15, 23, 42, 0.16);
}
.drawer-handle { background: #cbd5e1; }
.driver-name { color: #172033; }
.driver-role { color: #64748b; }
.drawer-close { color: #475569; background: #f1f5f9; }
.drawer-close:hover { background: #e2e8f0; color: #172033; }
.drawer-plan-info { background: #f8fafc; color: #334155; border-color: #dbe3ee; }
.drawer-grid-item { background: #f8fafc; color: #334155; border-color: #dbe3ee; }
.drawer-grid-item:hover { background: #f0f9ff; color: #075985; border-color: #7dd3fc; }
.drawer-grid-item.logout-item { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }
.drawer-grid-item.logout-item:hover { background: #fee2e2; color: #991b1b; }
.drawer-font-size { background: #f8fafc; border-color: #dbe3ee; }
.drawer-font-size strong { color: #172033; }
.drawer-font-size small { color: #64748b; }
.gp-plan-toast {
    border-color: #c4b5fd;
    background: rgba(255, 255, 255, 0.98);
    color: #5b21b6;
    box-shadow: 0 12px 34px rgba(76, 29, 149, 0.18);
}

@media (max-width: 767px) {
    .page.dashboard-page,
    .page.events-page {
        background: transparent;
        border: 0;
        box-shadow: none;
    }
}

/* Nagłówek 4.3.1 — jasny wariant, bez dodatkowego tła pod A−/A+. */
.partner-ticker {
    border-color: #dbeafe;
    background: linear-gradient(90deg, #eff6ff, #ffffff 48%, #f5f3ff);
    color: #334155;
    box-shadow: inset 0 1px #ffffff;
}

.partner-ticker__group i { color: #0284c7; }
.partner-ticker__group a { color: #4f46e5; text-decoration-color: rgba(79, 70, 229, 0.55); }
.partner-ticker__group a::after { color: #4f46e5; }

.driver-ad-banner {
    border-color: #c7d2fe;
    background: linear-gradient(90deg, #eef2ff, #f5f3ff);
    color: #334155;
}

.driver-ad-banner a { color: #4f46e5; }

.theme-toggle {
    border-color: #bae6fd;
    background: linear-gradient(135deg, #f0f9ff, #ede9fe);
    color: #075985;
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.08);
}

.font-size-controls--header {
    border: 0;
    background: transparent;
    box-shadow: none;
}

.font-size-controls--header button {
    border-color: #bae6fd;
    background: linear-gradient(135deg, #f0f9ff, #e0f2fe);
    color: #075985;
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.07);
}
