:root{
  --ink:#0b1730;--muted:#66758a;--line:#dce3ec;--soft:#f4f7fa;--panel:#fff;
  --navy:#102a56;--navy2:#173a73;--accent:#1769aa;--accent-soft:#edf6ff;
  --green:#19764a;--green-soft:#eaf7ef;--amber:#9b6400;--amber-soft:#fff6dd;
  --red:#b42318;--red-soft:#fff0ee;--shadow:0 14px 36px rgba(16,42,86,.07)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff}
a{color:inherit;text-decoration:none}
.shell{width:min(1180px,calc(100% - 32px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(220,227,236,.86);background:rgba(255,255,255,.95);backdrop-filter:blur(16px)}
.header-inner{min-height:72px;display:flex;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:11px}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,var(--navy),var(--accent));color:#fff;font-weight:950;box-shadow:0 8px 22px rgba(16,42,86,.18)}
.brand strong,.brand small{display:block}.brand strong{font-size:15px}.brand small{margin-top:1px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.13em;font-weight:850}
.module-name{display:flex;align-items:center;gap:8px;margin-left:8px;padding-left:18px;border-left:1px solid var(--line);font-size:13px;font-weight:850;color:#344054}
.module-name span{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.legacy-link{margin-left:auto;color:var(--accent);font-size:12px;font-weight:850}
.rail-hero{overflow:hidden;background:radial-gradient(circle at 88% 8%,rgba(23,105,170,.34),transparent 28%),linear-gradient(135deg,#091b39 0%,var(--navy) 58%,var(--navy2) 100%);color:#fff}
.hero-grid{min-height:390px;display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center;padding:58px 0}
.eyebrow,.section-kicker{font-size:11px;font-weight:950;letter-spacing:.16em;text-transform:uppercase}.eyebrow{color:#82c6ff}
.rail-hero h1{max-width:720px;margin:14px 0 18px;font-size:clamp(44px,5.4vw,68px);line-height:.98;letter-spacing:-.052em}
.rail-hero p{max-width:690px;margin:0;color:rgba(255,255,255,.74);font-size:17px;line-height:1.7}
.data-status{display:grid;gap:8px;padding:22px 24px;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:rgba(255,255,255,.09);box-shadow:0 24px 60px rgba(0,0,0,.14);backdrop-filter:blur(12px)}
.data-status strong{font-size:16px}.data-status span{color:rgba(255,255,255,.68);font-size:11px}
.data-status.status-ok strong{color:#8ee2b2}.data-status.status-wait strong,.data-status.status-warn strong{color:#ffd982}.data-status.status-error strong{color:#ffaaa2}
.section{padding:66px 0}.section-soft{background:var(--soft)}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:end;margin-bottom:24px}
.section-head h2,.legacy-box h2{margin:7px 0 0;font-size:31px;letter-spacing:-.04em}
.section-head>p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}.section-head>p strong{color:var(--ink)}
.section-kicker{color:var(--accent)}
.notice{margin:0 0 18px;padding:13px 15px;border-radius:12px;font-size:12px;font-weight:750}.notice-error{background:var(--red-soft);color:var(--red)}
.metric-grid{display:grid;gap:14px}.metric-grid-main{grid-template-columns:repeat(4,1fr)}
.metric-card{min-height:170px;padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}
.metric-card>span{display:block;color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.metric-card>strong{display:block;margin-top:22px;font-size:42px;line-height:1;letter-spacing:-.05em}
.metric-card>small{display:block;margin-top:11px;color:var(--muted);font-size:11px;line-height:1.45}
.metric-primary{border-color:#bfd5e8;background:linear-gradient(145deg,#fff 0%,#f7fbff 100%)}
.metric-primary>strong{color:var(--accent)}
.status-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:14px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.status-strip>div{padding:16px 18px;border-right:1px solid var(--line)}.status-strip>div:last-child{border-right:0}
.status-strip span,.status-strip strong{display:block}.status-strip span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.055em}.status-strip strong{margin-top:6px;font-size:19px}
.punctuality-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.score-card{min-height:210px;padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff}
.score-card>span{display:block;color:var(--muted);font-size:11px;font-weight:850}.score-card>strong{display:block;margin:26px 0 7px;font-size:38px;letter-spacing:-.045em}.score-card>small{color:var(--muted);font-size:11px}
.score-bar{height:7px;margin-top:23px;border-radius:999px;background:#edf1f5;overflow:hidden}.score-bar i{display:block;width:var(--score);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#51a7dc)}
.score-secondary{background:linear-gradient(145deg,#fff,#f8fafc)}.score-secondary>strong{font-size:30px}
.delay-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.delay-card{padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:#fff}.delay-card span{display:block;color:var(--muted);font-size:11px;font-weight:800}.delay-card strong{display:block;margin-top:12px;font-size:32px;letter-spacing:-.04em}
.delay-card:nth-child(1) strong{color:#1769aa}.delay-card:nth-child(2) strong{color:#9b6400}.delay-card:nth-child(3) strong{color:#c04b18}.delay-card:nth-child(4) strong{color:#b42318}
.delay-summary{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.delay-summary span{padding:9px 12px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:11px}.delay-summary strong{color:var(--ink)}
.top-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.list-card{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden}
.list-head{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line)}.list-head strong{font-size:14px}.list-head span{padding:5px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:9px;font-weight:900;letter-spacing:.08em}
.train-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 20px;border-bottom:1px solid var(--line)}.train-row:last-child{border-bottom:0}.train-row strong,.train-row small{display:block}.train-row strong{font-size:12px}.train-row small{margin-top:4px;color:var(--muted);font-size:10px}.train-row>b{white-space:nowrap;color:var(--red);font-size:14px}
.empty-state{padding:28px 20px;color:var(--muted);font-size:12px;line-height:1.6}
.history-card{border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.history-row{display:grid;grid-template-columns:58px 1fr 230px;gap:20px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.history-row:last-child{border-bottom:0}
.history-row time{font-size:12px;font-weight:900;color:#344054}
.history-label{display:flex;justify-content:space-between;gap:16px;margin-bottom:7px;font-size:10px;color:var(--muted)}.history-label strong{color:var(--ink)}
.history-bar{height:8px;border-radius:999px;background:#edf1f5;overflow:hidden}.history-bar i{display:block;width:var(--value);height:100%;border-radius:inherit;background:linear-gradient(90deg,#1769aa,#5eb3dc)}
.history-side{display:flex;justify-content:flex-end;gap:16px;color:var(--muted);font-size:10px}.history-side span{white-space:nowrap}
.history-row.is-missing{background:#fafbfc}.history-missing{grid-column:2/-1}.history-missing strong,.history-missing span{display:block}.history-missing strong{font-size:11px}.history-missing span{margin-top:3px;color:var(--muted);font-size:10px}
.section-legacy{padding-top:8px}.legacy-box{display:grid;grid-template-columns:1fr 1.2fr auto;gap:28px;align-items:center;padding:28px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#fff,#f7fafe)}
.legacy-box p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}.legacy-box a{color:var(--accent);font-size:12px;font-weight:850;white-space:nowrap}
.site-footer{margin-top:54px;border-top:1px solid var(--line);background:#fff}.footer-inner{min-height:106px;display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;color:var(--muted);font-size:10px}.footer-inner>span{font-weight:900;color:#344054}.footer-inner p{margin:0}.footer-inner a{font-weight:850}
@media(max-width:980px){
  .hero-grid,.section-head{grid-template-columns:1fr}.hero-grid{gap:28px;min-height:0}
  .metric-grid-main,.punctuality-grid{grid-template-columns:1fr 1fr}
  .status-strip,.delay-grid{grid-template-columns:1fr 1fr}.status-strip>div:nth-child(2){border-right:0}.status-strip>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .top-grid{grid-template-columns:1fr}.history-row{grid-template-columns:52px 1fr}.history-side{grid-column:2;justify-content:flex-start}.legacy-box{grid-template-columns:1fr}
}
@media(max-width:620px){
  .shell{width:min(100% - 22px,1180px)}.header-inner{min-height:64px}.legacy-link{display:none}.module-name{margin-left:auto}
  .hero-grid{padding:46px 0}.rail-hero h1{font-size:42px}.rail-hero p{font-size:15px}
  .section{padding:48px 0}.section-head{gap:8px}.section-head h2,.legacy-box h2{font-size:27px}
  .metric-grid-main,.punctuality-grid,.delay-grid{grid-template-columns:1fr}
  .status-strip{grid-template-columns:1fr}.status-strip>div{border-right:0;border-bottom:1px solid var(--line)}.status-strip>div:last-child{border-bottom:0}
  .metric-card{min-height:145px}.metric-card>strong{font-size:38px}.score-card{min-height:180px}
  .history-row{grid-template-columns:44px 1fr;gap:12px;padding:14px}.history-side{display:grid;gap:3px}
  .footer-inner{grid-template-columns:1fr;padding:25px 0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* R2 — wyszukiwanie pociągów i stacji */
.module-nav{margin-left:auto;display:flex;gap:6px;align-items:center}
.module-nav a{padding:8px 11px;border-radius:10px;color:var(--muted);font-size:11px;font-weight:850}
.module-nav a:hover,.module-nav a.is-active{background:var(--accent-soft);color:var(--accent)}
.section-search-hub{padding:34px 0 10px;background:linear-gradient(180deg,#f8fbfe 0%,#fff 100%)}
.search-hub{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.search-panel{padding:25px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow)}
.search-panel h2{margin:7px 0 8px;font-size:25px;letter-spacing:-.035em}
.search-panel>p{margin:0 0 20px;color:var(--muted);font-size:12px;line-height:1.6}
.search-panel-train{border-top:3px solid var(--accent)}
.search-panel-station{border-top:3px solid var(--green)}
.search-form{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:10px;align-items:end}
.search-form-station{grid-template-columns:minmax(0,1fr) auto}
.search-form label,.board-filters label{display:grid;gap:6px}
.search-form label>span,.board-filters label>span{font-size:9px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.search-form input,.board-filters input,.board-filters select{width:100%;height:42px;border:1px solid #cfd8e3;border-radius:11px;background:#fff;padding:0 12px;color:var(--ink);font:inherit;font-size:12px;outline:none}
.search-form input:focus,.board-filters input:focus,.board-filters select:focus{border-color:#8bb8dc;box-shadow:0 0 0 3px rgba(23,105,170,.09)}
.search-form button,.board-filters button{height:42px;border:0;border-radius:11px;padding:0 17px;background:var(--navy);color:#fff;font:inherit;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}
.search-form button:hover,.board-filters button:hover{background:var(--navy2)}
.rail-subhero{background:radial-gradient(circle at 82% 5%,rgba(23,105,170,.28),transparent 30%),linear-gradient(135deg,#091b39,var(--navy));color:#fff}
.subhero-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center;min-height:260px;padding:42px 0}
.rail-subhero h1{margin:8px 0 10px;font-size:clamp(36px,4.2vw,54px);letter-spacing:-.05em;line-height:1}
.rail-subhero p{max-width:600px;margin:0;color:rgba(255,255,255,.72);font-size:14px;line-height:1.65}
.search-form-hero{padding:18px;border:1px solid rgba(255,255,255,.17);border-radius:18px;background:rgba(255,255,255,.09);backdrop-filter:blur(10px)}
.search-form-hero label>span{color:rgba(255,255,255,.67)}
.search-form-hero button{background:#fff;color:var(--navy)}
.search-form-hero button:hover{background:#eaf4ff}
.section-compact{padding:24px 0 0}
.results-list{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;box-shadow:var(--shadow)}
.result-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.7fr) auto;gap:18px;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line);transition:background .12s ease}
.result-row:last-child{border-bottom:0}
.result-row:hover{background:#f8fbfe}
.result-main strong,.result-main span,.result-meta span{display:block}
.result-main strong{font-size:13px}.result-main span{margin-top:4px;color:var(--muted);font-size:11px}
.result-meta{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap;color:var(--muted);font-size:10px}
.result-row>b{color:var(--accent);font-size:11px;white-space:nowrap}
.state-pill{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent)!important;font-size:9px!important;font-weight:900;text-transform:uppercase;letter-spacing:.055em}
.train-summary-card{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:26px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#fff,#f7fafe);box-shadow:var(--shadow)}
.train-summary-card h2,.station-title-row h2{margin:7px 0 5px;font-size:30px;letter-spacing:-.04em}
.train-summary-card p,.station-title-row p{margin:0;color:var(--muted);font-size:12px}
.train-summary-meta{display:flex;max-width:390px;gap:7px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.train-summary-meta>span:not(.state-pill){padding:5px 9px;border-radius:999px;background:#f0f3f7;color:var(--muted);font-size:9px;font-weight:800}
.notice-warn{background:var(--amber-soft);color:var(--amber);margin-top:14px}
.table-card{border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.table-scroll{overflow:auto}
.route-table,.board-table{width:100%;border-collapse:collapse;min-width:760px}
.route-table th,.board-table th{padding:11px 15px;border-bottom:1px solid var(--line);background:#f7f9fb;color:var(--muted);font-size:9px;font-weight:900;text-align:left;text-transform:uppercase;letter-spacing:.07em}
.route-table td,.board-table td{padding:13px 15px;border-bottom:1px solid var(--line);font-size:11px;vertical-align:middle}
.route-table tr:last-child td,.board-table tr:last-child td{border-bottom:0}
.route-table td:first-child strong{display:block;font-size:11px}
.route-table td small,.board-table td small{display:block;margin-top:4px}
.time-badge{display:inline-flex!important;width:max-content;margin-top:4px!important;padding:3px 6px;border-radius:999px;font-size:8px!important;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.time-planned{background:#f0f3f7;color:#66758a}.time-estimate{background:var(--amber-soft);color:var(--amber)}.time-confirmed{background:var(--green-soft);color:var(--green)}
.delay-positive{color:var(--red);font-weight:850}.danger-text{color:var(--red)!important;font-weight:850}.is-cancelled{opacity:.66;text-decoration-color:var(--red)}
.empty-welcome{padding:42px;border:1px dashed #cdd7e2;border-radius:20px;text-align:center;background:#fbfcfd}
.empty-welcome strong{font-size:17px}.empty-welcome p{margin:8px 0 0;color:var(--muted);font-size:12px}
.station-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}
.board-filters{display:grid;grid-template-columns:145px 125px 180px 120px auto;gap:10px;align-items:end;padding:16px;border:1px solid var(--line);border-radius:16px;background:#f8fafc}
.train-link{color:var(--accent);font-weight:900}.train-link:hover{text-decoration:underline}
.event-type{display:inline-flex;padding:4px 6px;border-radius:7px;background:#eef3f7;color:#526070;font-size:8px;font-weight:900;text-transform:uppercase}
.station-results-list .result-row{grid-template-columns:minmax(0,1fr) 180px auto}

@media(max-width:980px){
  .search-hub,.subhero-grid{grid-template-columns:1fr}
  .search-form{grid-template-columns:minmax(0,1fr) 150px auto}
  .search-form-station{grid-template-columns:minmax(0,1fr) auto}
  .result-row{grid-template-columns:1fr auto}.result-meta{grid-column:1;justify-content:flex-start}.result-row>b{grid-column:2;grid-row:1/3}
  .train-summary-card{grid-template-columns:1fr}.train-summary-meta{justify-content:flex-start}
  .board-filters{grid-template-columns:1fr 1fr 1fr 1fr}.board-filters button{grid-column:1/-1}
}
@media(max-width:620px){
  .module-nav{gap:2px}.module-nav a{padding:7px 6px;font-size:9px}
  .subhero-grid{padding:38px 0;gap:25px}.rail-subhero h1{font-size:38px}
  .search-form,.search-form-station{grid-template-columns:1fr}.search-form button{width:100%}
  .search-hub{gap:12px}.search-panel{padding:20px}
  .result-row,.station-results-list .result-row{grid-template-columns:1fr;padding:15px}.result-row>b{grid-column:1;grid-row:auto}.result-meta{grid-column:1}
  .station-title-row{align-items:flex-start;flex-direction:column}
  .board-filters{grid-template-columns:1fr 1fr}.board-filters button{grid-column:1/-1}
  .train-summary-card h2,.station-title-row h2{font-size:26px}
}

/* R2.1 — autocomplete + wizualny przebieg pociągu */
.train-suggest-host{position:relative}
.train-suggest-list{position:absolute;z-index:50;top:calc(100% + 7px);left:0;right:0;max-height:330px;overflow:auto;border:1px solid #cfd8e3;border-radius:14px;background:#fff;box-shadow:0 18px 42px rgba(16,42,86,.17);padding:6px}
.train-suggest-list[hidden]{display:none}
.train-suggest-item{display:grid;gap:3px;padding:10px 11px;border-radius:10px;color:var(--ink);text-decoration:none}
.train-suggest-item:hover,.train-suggest-item.is-active{background:var(--accent-soft)}
.train-suggest-item strong{font-size:12px;line-height:1.25}
.train-suggest-item span{font-size:10px;color:#44546a;line-height:1.35}
.train-suggest-item small{font-size:9px;color:var(--muted);line-height:1.3}

.route-visual-legend{display:flex;flex-wrap:wrap;align-items:center;gap:7px 13px;margin-bottom:12px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted);font-size:9px}
.route-visual-legend>span{display:inline-flex;align-items:center;gap:5px}
.route-legend-separator{opacity:.45}
.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#98a2b3}
.legend-ok{background:#12b76a}.legend-late{background:#f79009}.legend-high{background:#d92d20}.legend-unknown{background:#98a2b3}

.route-visual-timeline{border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow);overflow:visible}
.route-visual-row{display:grid;grid-template-columns:54px minmax(220px,1.2fr) minmax(130px,.72fr) minmax(130px,.72fr) minmax(150px,.68fr);min-height:74px;border-bottom:1px solid var(--line);position:relative}
.route-visual-row:last-child{border-bottom:0}
.route-visual-row.is-cancelled{background:#fff7f6}
.route-visual-axis{position:relative;display:flex;align-items:center;justify-content:center}
.route-visual-axis::before{content:"";position:absolute;top:-1px;bottom:-1px;left:50%;width:3px;transform:translateX(-50%);background:linear-gradient(180deg,#d7dee8,#b8c4d3)}
.route-visual-row:first-child .route-visual-axis::before{top:50%}
.route-visual-row:last-child .route-visual-axis::before{bottom:50%}
.route-state-dot{position:relative;z-index:2;display:grid;place-items:center;width:30px;height:30px;min-width:30px;border:2px solid #fff;border-radius:50%;outline:1px solid #98a2b3;box-shadow:0 0 0 3px #fff;color:#fff;font-size:12px;font-weight:950;text-shadow:0 1px 2px rgba(16,24,40,.32)}
.route-state-dot-split{--route-arrival-color:#98a2b3;--route-departure-color:#98a2b3;background:linear-gradient(to bottom,var(--route-arrival-color) 0%,var(--route-arrival-color) 39%,color-mix(in srgb,var(--route-arrival-color) 50%,var(--route-departure-color)) 50%,var(--route-departure-color) 61%,var(--route-departure-color) 100%)}
.route-state-dot-split.route-arrival-ok{--route-arrival-color:#12b76a}
.route-state-dot-split.route-arrival-late{--route-arrival-color:#f79009}
.route-state-dot-split.route-arrival-high{--route-arrival-color:#d92d20}
.route-state-dot-split.route-arrival-unknown{--route-arrival-color:#98a2b3}
.route-state-dot-split.route-arrival-na{--route-arrival-color:#eaecf0}
.route-state-dot-split.route-departure-ok{--route-departure-color:#12b76a}
.route-state-dot-split.route-departure-late{--route-departure-color:#f79009}
.route-state-dot-split.route-departure-high{--route-departure-color:#d92d20}
.route-state-dot-split.route-departure-unknown{--route-departure-color:#98a2b3}
.route-state-dot-split.route-departure-na{--route-departure-color:#eaecf0}
.route-state-dot.route-icon-next{outline:2px solid #1570ef;box-shadow:0 0 0 4px #fff,0 0 0 7px rgba(21,112,239,.13)}
.route-state-dot.route-icon-passed{outline-color:#12b76a}
.route-state-dot.route-icon-future{outline-color:#98a2b3}
.route-state-dot.route-icon-cancelled{outline:2px solid #d92d20;background:#d92d20}

.route-visual-station,.route-visual-event,.route-visual-delay{display:flex;flex-direction:column;justify-content:center;padding:11px 13px}
.route-visual-station{padding-left:5px}
.route-station-link{width:max-content;max-width:100%;color:var(--ink)}
.route-station-link strong{font-size:12px}
.route-station-link:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.route-station-meta{display:flex;flex-wrap:wrap;gap:5px 10px;margin-top:5px;color:var(--muted);font-size:9px}
.route-event-label{display:block;margin-bottom:5px;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.075em}
.route-time-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.route-time-line strong{font-size:14px}
.route-time-line small{color:var(--muted);font-size:9px}
.route-event-empty,.route-delay-empty{color:#98a2b3;font-size:11px}

.route-time-icon{display:inline-block;width:11px;height:11px;min-width:11px;border-radius:50%;vertical-align:-1px}
.route-time-icon-plan{border:2px solid #98a2b3;background:#fff}
.route-time-icon-actual{border:2px solid #12b76a;background:#12b76a;box-shadow:inset 0 0 0 2px #fff}
.route-time-icon-predicted{border:2px solid #f79009;background:#fff;position:relative}
.route-time-icon-predicted::after{content:"";position:absolute;inset:2px;border-radius:50%;background:#f79009}

.delay-details{position:relative;width:max-content;max-width:100%}
.delay-details>summary{display:inline-flex;align-items:center;gap:6px;list-style:none;cursor:pointer;padding:6px 9px;border:1px solid #dde4ed;border-radius:999px;background:#f8fafc;color:#344054;font-size:10px;font-weight:850;white-space:nowrap}
.delay-details>summary::-webkit-details-marker{display:none}
.delay-details>summary::after{content:"▾";font-size:9px;color:var(--muted)}
.delay-details[open]>summary::after{content:"▴"}
.delay-details>summary>span{font-size:8px;color:var(--muted);font-weight:750}
.delay-details>summary.delay-positive{border-color:#f3c5c0;background:#fff5f4;color:var(--red)}
.delay-details-panel{position:absolute;z-index:30;right:0;top:calc(100% + 7px);width:270px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 16px 36px rgba(16,42,86,.17)}
.delay-details-panel>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 4px;border-bottom:1px solid #eef1f4}
.delay-details-panel>div:last-child{border-bottom:0}
.delay-details-panel span{color:var(--muted);font-size:9px}
.delay-details-panel strong{font-size:10px;text-align:right}

@media(max-width:980px){
  .route-visual-row{grid-template-columns:50px minmax(0,1fr) minmax(110px,.55fr) minmax(110px,.55fr);grid-template-rows:auto auto}
  .route-visual-axis{grid-column:1;grid-row:1/3}
  .route-visual-station{grid-column:2/5;grid-row:1;padding-bottom:3px}
  .route-visual-event{grid-row:2;padding-top:4px}.route-visual-event:nth-of-type(3){grid-column:2}.route-visual-event:nth-of-type(4){grid-column:3}
  .route-visual-delay{grid-column:4;grid-row:2;padding-top:4px}
}
@media(max-width:620px){
  .train-suggest-list{position:fixed;left:11px;right:11px;top:auto;max-height:42vh}
  .route-visual-legend{gap:7px 10px}
  .route-visual-row{grid-template-columns:46px 1fr 1fr;grid-template-rows:auto auto auto;min-height:104px}
  .route-visual-axis{grid-column:1;grid-row:1/4}
  .route-visual-station{grid-column:2/4;grid-row:1;padding:10px 8px 3px}
  .route-visual-event{padding:6px 8px}.route-visual-event:nth-of-type(3){grid-column:2;grid-row:2}.route-visual-event:nth-of-type(4){grid-column:3;grid-row:2}
  .route-visual-delay{grid-column:2/4;grid-row:3;padding:4px 8px 11px}
  .delay-details-panel{left:0;right:auto;width:min(270px,calc(100vw - 90px))}
}

/* R3 — mapa przebiegu + utrudnienia */
.train-disruptions-section{background:#fff}
.disruption-items{display:grid;gap:10px}
.disruption-card{border:1px solid #f2c7c2;border-radius:16px;background:#fff8f7;overflow:hidden}
.disruption-card>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;cursor:pointer;list-style:none}
.disruption-card>summary::-webkit-details-marker{display:none}
.disruption-card>summary::after{content:"▾";grid-column:4;color:var(--muted);font-size:10px}
.disruption-card[open]>summary::after{content:"▴"}
.disruption-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--red);color:#fff;font-size:15px;font-weight:950}
.disruption-summary-main{display:grid;gap:3px}
.disruption-summary-main strong{font-size:12px}
.disruption-summary-main small{color:var(--muted);font-size:10px}
.disruption-code{padding:5px 8px;border-radius:999px;background:#fff;color:var(--red);font-size:8px;font-weight:900;letter-spacing:.06em}
.disruption-card-body{padding:0 16px 15px 56px}
.disruption-card-body p{margin:0;color:#344054;font-size:11px;line-height:1.6}
.disruption-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:9px;color:var(--muted);font-size:9px}
.disruption-empty{padding:18px;border:1px dashed #d6dde6;border-radius:14px;background:#fafbfc;color:var(--muted);font-size:11px}
.disruption-empty-ok{border-color:#b9dfca;background:#f3fbf6;color:var(--green)}

.train-route-map{height:430px;border:1px solid var(--line);border-radius:20px;background:#eaf0f5;box-shadow:var(--shadow);overflow:hidden}
.train-route-map.is-partial{border-color:#e7cf9c}
.train-route-map.is-unavailable{display:grid;place-items:center;padding:24px;background:#f8fafc;color:var(--muted);font-size:11px}
.map-status{margin-bottom:12px;padding:10px 12px;border-radius:12px;font-size:10px;font-weight:800}
.map-status-partial{border:1px solid #f0d9a6;background:var(--amber-soft);color:var(--amber)}
.map-status-ok{border:1px solid #bce0ca;background:var(--green-soft);color:var(--green)}
.map-placeholder{display:grid;place-items:center;min-height:150px;padding:24px;border:1px dashed #cad5e2;border-radius:18px;background:#f8fafc;color:var(--muted);font-size:11px;text-align:center}

.route-visual-row.has-disruption{background:linear-gradient(90deg,#fff9f8 0%,#fff 24%)}
.route-disruption-details{position:relative;display:inline-block}
.route-disruption-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid #f1c1bc;border-radius:999px;background:#fff5f4;color:var(--red);cursor:pointer;list-style:none;font-size:8px;font-weight:900;white-space:nowrap}
.route-disruption-badge::-webkit-details-marker{display:none}
.route-disruption-panel{position:absolute;z-index:35;left:0;top:calc(100% + 7px);width:330px;max-width:min(330px,calc(100vw - 90px));padding:11px;border:1px solid #f0c7c2;border-radius:13px;background:#fff;box-shadow:0 16px 38px rgba(16,42,86,.18)}
.route-disruption-panel article{padding:8px 3px;border-bottom:1px solid #edf1f4}
.route-disruption-panel article:last-of-type{border-bottom:0}
.route-disruption-panel strong{font-size:10px}
.route-disruption-panel p{margin:4px 0 0;color:#475467;font-size:9px;line-height:1.5}
.route-disruption-panel>small{display:block;margin-top:9px;padding-top:8px;border-top:1px dashed #d7dee8;color:var(--muted);font-size:8px;line-height:1.45}

.leaflet-control-attribution{font-size:9px!important}

@media(max-width:620px){
  .train-route-map{height:330px;border-radius:16px}
  .disruption-card>summary{grid-template-columns:auto minmax(0,1fr);padding:12px}
  .disruption-code{grid-column:2;width:max-content}
  .disruption-card>summary::after{grid-column:3;grid-row:1}
  .disruption-card-body{padding:0 12px 13px 52px}
  .route-disruption-panel{left:0;right:auto;width:min(310px,calc(100vw - 82px))}
}

/* R4 — podsumowanie kursu i czytelniejsze utrudnienia */
.train-course-runtime{display:flex;align-items:center;flex-wrap:wrap;gap:6px 9px;margin-top:8px!important;color:var(--muted)!important;font-size:10px!important}
.train-course-runtime span{font-weight:750}
.train-course-runtime strong{color:var(--ink);font-size:11px}
.train-course-runtime b{padding:4px 7px;border-radius:999px;background:#eef3f7;color:#44546a;font-size:9px;font-weight:900}
.disruption-location{color:#7a2e29!important;font-weight:800}

@media(max-width:620px){
  .train-course-runtime{align-items:flex-start}
}

/* R4.1 — początek i koniec biegu na tablicy stacji */
.board-route-badge{display:block;width:max-content;max-width:100%;margin-top:5px;padding:4px 7px;border:1px solid;border-radius:7px;font-size:8px;font-weight:950;line-height:1.15;letter-spacing:.035em}
.board-route-end{border-color:#e5484d;background:#fff5f5;color:#b42318}
.board-route-start{border-color:#6ba5d7;background:#f3f8fd;color:#175d96}

@media(max-width:620px){
  .board-route-badge{font-size:7.5px}
}


/* R4.4 — numer międzynarodowy pociągu */
.train-international-number{display:inline-grid;gap:2px;margin-top:10px;padding:9px 11px;border:1px solid #d6e1ec;border-radius:11px;background:#f8fbfe}
.train-international-number span{color:var(--muted);font-size:8px;font-weight:950;letter-spacing:.06em}
.train-international-number strong{color:var(--ink);font-size:13px;line-height:1.2}

/* R5.1 — pełne statystyki bieżącej doby */
.stats-page-hero{background:radial-gradient(circle at 84% 10%,rgba(61,154,219,.27),transparent 31%),linear-gradient(135deg,#071a37,#102f5d);color:#fff}
.stats-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:54px;align-items:center;min-height:330px;padding:46px 0}
.stats-page-hero h1{margin:12px 0 16px;font-size:clamp(42px,5vw,64px);line-height:.98;letter-spacing:-.052em}
.stats-page-hero p{max-width:650px;margin:0;color:rgba(255,255,255,.73);font-size:15px;line-height:1.65}
.stats-status-card{padding:21px 22px;border:1px solid rgba(255,255,255,.17);border-radius:20px;background:rgba(255,255,255,.09);box-shadow:0 22px 55px rgba(0,0,0,.14)}
.stats-status-card>span{display:block;color:rgba(255,255,255,.58);font-size:9px;font-weight:950;letter-spacing:.1em}
.stats-status-card>strong{display:block;margin:7px 0 15px;font-size:20px}
.stats-status-card.status-ok>strong{color:#8ee2b2}.stats-status-card.status-warn>strong,.stats-status-card.status-wait>strong{color:#ffd982}.stats-status-card.status-error>strong{color:#ffaaa2}
.stats-status-card dl{margin:0;border-top:1px solid rgba(255,255,255,.12)}
.stats-status-card dl>div{display:flex;justify-content:space-between;gap:18px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:10px}
.stats-status-card dt{color:rgba(255,255,255,.56)}.stats-status-card dd{margin:0;text-align:right;font-weight:800}

.stats-kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}
.stats-kpi{min-height:165px;padding:20px;border:1px solid var(--line);border-radius:19px;background:#fff;box-shadow:var(--shadow)}
.stats-kpi>span{display:block;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.stats-kpi>strong{display:block;margin:24px 0 8px;font-size:37px;line-height:1;letter-spacing:-.045em}
.stats-kpi>small{display:block;color:var(--muted);font-size:10px;line-height:1.5}
.stats-kpi-primary{border-color:#bfd5e8;background:linear-gradient(145deg,#fff,#f5faff)}.stats-kpi-primary>strong{color:var(--accent)}
.stats-kpi-live{border-color:#bee1cc}.stats-kpi-live>strong{color:var(--green)}
.stats-kpi-alert{border-color:#efc3be}.stats-kpi-alert>strong{color:var(--red)}

.execution-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.execution-card{padding:23px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}
.execution-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.execution-head span,.execution-head strong{display:block}.execution-head span{color:var(--muted);font-size:10px;font-weight:850}.execution-head strong{margin-top:7px;font-size:31px;letter-spacing:-.04em}.execution-head>b{color:var(--accent);font-size:26px}
.execution-bar{height:9px;margin:18px 0 10px;border-radius:999px;background:#edf1f5;overflow:hidden}.execution-bar i{display:block;width:var(--value);height:100%;border-radius:inherit;background:linear-gradient(90deg,#1769aa,#55aedb)}
.execution-card>small{color:var(--muted);font-size:10px}
.execution-footnotes{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.execution-footnotes span{padding:9px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:10px}.execution-footnotes strong{color:var(--ink)}

.punctuality-full-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.punctuality-detail-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}
.punctuality-title{display:flex;justify-content:space-between;gap:20px;align-items:end}.punctuality-title span{color:var(--muted);font-size:11px;font-weight:900}.punctuality-title strong{font-size:36px;letter-spacing:-.045em}
.punctuality-detail-card dl{display:grid;grid-template-columns:1fr 1fr;margin:20px 0 0;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.punctuality-detail-card dl>div{padding:12px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.punctuality-detail-card dl>div:nth-child(2n){border-right:0}.punctuality-detail-card dl>div:nth-last-child(-n+2){border-bottom:0}
.punctuality-detail-card dt{color:var(--muted);font-size:9px;font-weight:800}.punctuality-detail-card dd{margin:4px 0 0;font-size:16px;font-weight:900}

.running-delay-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}
.running-delay-summary article{padding:15px 16px;border:1px solid var(--line);border-radius:15px;background:#fff}.running-delay-summary span,.running-delay-summary strong{display:block}.running-delay-summary span{color:var(--muted);font-size:9px;font-weight:850}.running-delay-summary strong{margin-top:6px;font-size:19px}
.delay-distribution{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;box-shadow:var(--shadow)}
.delay-distribution-row{display:grid;grid-template-columns:190px 1fr 76px;gap:18px;align-items:center;padding:16px 19px;border-bottom:1px solid var(--line)}.delay-distribution-row:last-child{border-bottom:0}
.delay-distribution-row span,.delay-distribution-row small{display:block}.delay-distribution-row span{font-size:11px;font-weight:900}.delay-distribution-row small{margin-top:3px;color:var(--muted);font-size:9px}
.delay-distribution-row>strong{text-align:right;font-size:20px}
.delay-distribution-bar{height:9px;border-radius:999px;background:#edf1f5;overflow:hidden}.delay-distribution-bar i{display:block;width:var(--value);height:100%;border-radius:inherit;background:linear-gradient(90deg,#f1a208,#d04432)}

.stats-train-row{color:inherit}.stats-train-row:hover{background:#f8fbfe}.stats-train-row>b{color:var(--red)}
.quality-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quality-grid article{padding:18px;border:1px solid var(--line);border-radius:17px;background:#fff}.quality-grid span,.quality-grid strong,.quality-grid small{display:block}.quality-grid span{color:var(--muted);font-size:9px;font-weight:900}.quality-grid strong{margin-top:8px;font-size:13px}.quality-grid small{margin-top:6px;color:var(--muted);font-size:9px;line-height:1.45}
.methodology-card{display:grid;grid-template-columns:repeat(4,1fr);margin-top:12px;border:1px solid var(--line);border-radius:17px;background:#fff;overflow:hidden}.methodology-card>div{padding:15px;border-right:1px solid var(--line)}.methodology-card>div:last-child{border-right:0}.methodology-card strong,.methodology-card span{display:block}.methodology-card strong{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.methodology-card span{margin-top:6px;font-size:10px;line-height:1.45}
.stats-next-step{padding-top:8px}.stats-next-box{display:grid;grid-template-columns:.85fr 1.3fr auto;gap:28px;align-items:center;padding:25px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#fff,#f7fafe)}.stats-next-box h2{margin:6px 0 0;font-size:25px;letter-spacing:-.035em}.stats-next-box p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.stats-next-box a{color:var(--accent);font-size:11px;font-weight:900;white-space:nowrap}
.section-head-with-action{align-items:center}.section-head-side{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.section-head-side p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}.section-action{flex:0 0 auto;padding:9px 12px;border:1px solid #bdd4e7;border-radius:10px;background:#f7fbff;color:var(--accent);font-size:10px;font-weight:900}

@media(max-width:980px){
  .stats-hero-grid{grid-template-columns:1fr;gap:25px}
  .stats-kpi-grid{grid-template-columns:repeat(2,1fr)}
  .running-delay-summary{grid-template-columns:repeat(3,1fr)}
  .quality-grid,.methodology-card{grid-template-columns:1fr 1fr}
  .methodology-card>div:nth-child(2){border-right:0}.methodology-card>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .stats-next-box{grid-template-columns:1fr}
  .section-head-side{align-items:flex-start}
}
@media(max-width:620px){
  .stats-hero-grid{padding:38px 0}.stats-page-hero h1{font-size:40px}
  .stats-kpi-grid,.execution-grid,.punctuality-full-grid,.running-delay-summary,.quality-grid,.methodology-card{grid-template-columns:1fr}
  .methodology-card>div{border-right:0;border-bottom:1px solid var(--line)}.methodology-card>div:last-child{border-bottom:0}
  .delay-distribution-row{grid-template-columns:1fr auto;gap:8px 14px}.delay-distribution-bar{grid-column:1/-1;grid-row:2}.delay-distribution-row>strong{grid-column:2;grid-row:1}
  .punctuality-detail-card dl{grid-template-columns:1fr}.punctuality-detail-card dl>div{border-right:0;border-bottom:1px solid var(--line)!important}.punctuality-detail-card dl>div:last-child{border-bottom:0!important}
  .section-head-side{display:grid}
}

/* Stats UX R1 — source separation + contextual help */
.stats-section-head{align-items:center}
.section-kicker-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.stats-source-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:8px;font-weight:950;letter-spacing:.08em;white-space:nowrap}
.stats-source-badge-plk{border:1px solid #b9d5e9;background:#eef7fd;color:#1769aa}
.stats-source-badge-tm{border:1px solid #bfdcc9;background:#f0faf4;color:#24774a}
.stats-source-live{background:linear-gradient(180deg,#fff 0%,#f7fbfe 100%)}
.stats-source-day{background:linear-gradient(180deg,#f5f8fb 0%,#f3f8f5 100%)}
.stats-kpi-label,.execution-label-row,.footnote-label{display:flex!important;align-items:center;gap:7px}
.stats-kpi-label>span,.execution-label-row>span{color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.metric-help{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;width:18px;height:18px;padding:0;border:1px solid #c9d5df;border-radius:999px;background:#fff;color:#607080;font:900 10px/1 inherit;cursor:help;box-shadow:none}
.metric-help:hover,.metric-help:focus-visible,.metric-help[aria-expanded="true"]{border-color:#76a9ce;color:#1769aa;background:#f4faff;outline:none}
.metric-tooltip{position:absolute;z-index:60;left:50%;bottom:calc(100% + 9px);width:260px;padding:10px 12px;border:1px solid #d6e0e8;border-radius:12px;background:#12243a;color:#fff;text-align:left;text-transform:none;letter-spacing:0;font-size:10px;font-weight:650;line-height:1.5;box-shadow:0 14px 35px rgba(7,26,55,.22);opacity:0;visibility:hidden;transform:translate(-50%,4px);transition:opacity .15s ease,transform .15s ease,visibility .15s}
.metric-tooltip:after{content:"";position:absolute;left:50%;top:100%;margin-left:-5px;border:5px solid transparent;border-top-color:#12243a}
.metric-help:hover .metric-tooltip,.metric-help:focus-visible .metric-tooltip,.metric-help[aria-expanded="true"] .metric-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.stats-kpi-label+.stats-kpi>strong{margin-top:24px}
.stats-kpi .stats-kpi-label+strong{margin:24px 0 8px}
.stats-kpi-alert-soft{border-color:#ead7b0;background:linear-gradient(145deg,#fff,#fffaf0)}.stats-kpi-alert-soft>strong{color:#a86500}
.stats-section-note{display:flex;align-items:center;gap:10px;margin-top:14px;padding:11px 13px;border:1px solid #cfe0ec;border-radius:13px;background:#f4faff;color:#52677a;font-size:10px;line-height:1.5}
.stats-section-note>span{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#1769aa;color:#fff;font-size:8px;font-weight:950;letter-spacing:.08em}
.stats-section-note-day{border-color:#cfe2d6;background:#f3faf6}.stats-section-note-day>span{background:#2e7d4f}
.stats-day-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px}
.stats-kpi-compact{min-height:138px}
.stats-kpi-compact>strong{margin-top:19px}
.stats-footnote-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stats-footnote-cards>span{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:14px;padding:12px 13px}
.stats-footnote-cards .footnote-label{color:var(--muted);font-size:10px;line-height:1.35}
.stats-footnote-cards>span>strong{font-size:17px}
.stats-footnote-cards .metric-tooltip{left:auto;right:-14px;transform:translate(0,4px)}
.stats-footnote-cards .metric-help:hover .metric-tooltip,.stats-footnote-cards .metric-help:focus-visible .metric-tooltip,.stats-footnote-cards .metric-help[aria-expanded="true"] .metric-tooltip{transform:translate(0,0)}
.stats-footnote-cards .metric-tooltip:after{left:auto;right:18px}

@media(max-width:980px){
  .stats-day-plan-grid{grid-template-columns:1fr 1fr}
  .stats-footnote-cards{grid-template-columns:1fr}
}
@media(max-width:620px){
  .stats-day-plan-grid{grid-template-columns:1fr}
  .stats-source-badge{height:20px}
  .metric-tooltip{position:fixed;left:18px!important;right:18px!important;bottom:22px;width:auto;transform:translateY(8px)!important;font-size:11px;line-height:1.55;padding:13px 14px}
  .metric-help:hover .metric-tooltip,.metric-help:focus-visible .metric-tooltip,.metric-help[aria-expanded="true"] .metric-tooltip{transform:translateY(0)!important}
  .metric-tooltip:after{display:none}
}


/* Stats records R2 — three top-10 rankings */
.stats-records-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.stats-records-grid .list-card{min-width:0}
.stats-records-grid .train-row{padding:13px 16px}
.stats-records-grid .train-row strong{overflow-wrap:anywhere}
.stats-records-grid .train-row small{line-height:1.4}
.stats-records-grid .list-head{gap:12px}
.stats-records-grid .list-head span{white-space:nowrap}
@media(max-width:1180px){
  .stats-records-grid{grid-template-columns:1fr 1fr}
  .stats-records-grid .list-card:last-child{grid-column:1/-1}
}
@media(max-width:760px){
  .stats-records-grid{grid-template-columns:1fr}
  .stats-records-grid .list-card:last-child{grid-column:auto}
}


/* Stats route change R3 — recovered / lost delay */
.stats-change-head{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:end;margin:34px 0 16px;padding-top:28px;border-top:1px solid var(--line)}
.stats-change-head h3{margin:7px 0 0;font-size:24px;letter-spacing:-.035em}
.stats-change-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}
.stats-change-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.stats-train-row-gain>b{color:var(--green)!important}
.stats-train-row-loss>b{color:var(--red)!important}
.list-card-gain .list-head span{background:#edf8f1;color:var(--green)}
.list-card-loss .list-head span{background:#fff0ee;color:var(--red)}
@media(max-width:760px){
  .stats-change-head,.stats-change-grid{grid-template-columns:1fr}
  .stats-change-head{gap:10px}
}


/* Stats rankings R4 — TOP 5 compact view, TOP 10 on demand */
.ranking-card[data-expanded="false"] .train-row:nth-of-type(n+6){display:none}
.ranking-toggle{display:flex;align-items:center;justify-content:center;width:100%;min-height:42px;padding:10px 14px;border:0;border-top:1px solid var(--line);background:#f8fbfe;color:var(--accent);font:900 10px/1.2 inherit;letter-spacing:.025em;cursor:pointer}
.ranking-toggle:hover,.ranking-toggle:focus-visible{background:#eef6fc;outline:none}
.ranking-toggle-less{display:none}
.ranking-card[data-expanded="true"] .ranking-toggle-more{display:none}
.ranking-card[data-expanded="true"] .ranking-toggle-less{display:inline}


/* Stats rankings R5 — one explicit five-table grid */
.stats-all-rankings-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;align-items:start}
.stats-all-rankings-grid>.ranking-card{min-width:0;grid-column:span 2}
.stats-all-rankings-grid>.ranking-card:nth-child(4),
.stats-all-rankings-grid>.ranking-card:nth-child(5){grid-column:span 3}
.stats-all-rankings-grid .train-row{padding:13px 16px}
.stats-all-rankings-grid .train-row strong{overflow-wrap:anywhere}
.stats-all-rankings-grid .train-row small{line-height:1.4}
.stats-all-rankings-grid .list-head{gap:12px}
.stats-all-rankings-grid .list-head span{white-space:nowrap}
@media(max-width:1180px){
  .stats-all-rankings-grid{grid-template-columns:1fr 1fr}
  .stats-all-rankings-grid>.ranking-card{grid-column:auto!important}
  .stats-all-rankings-grid>.ranking-card:last-child{grid-column:1/-1!important}
}
@media(max-width:760px){
  .stats-all-rankings-grid{grid-template-columns:1fr}
  .stats-all-rankings-grid>.ranking-card,
  .stats-all-rankings-grid>.ranking-card:last-child{grid-column:auto!important}
}


/* R5.2 public history boundary */
.history-locked-card{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 28px;border:1px solid var(--line);border-radius:24px;background:#fff}
.history-locked-card strong{display:block;font-size:18px;margin-bottom:6px}
.history-locked-card p{margin:0;max-width:760px;color:var(--muted);line-height:1.6}
.history-locked-badge{flex:0 0 auto;padding:10px 14px;border-radius:999px;background:#edf5fc;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.04em;white-space:nowrap}
@media(max-width:760px){.history-locked-card{align-items:flex-start;flex-direction:column}.history-locked-badge{white-space:normal}}

/* R5.2 protected rail history */
.history-access-hero,.history-page-hero{padding-bottom:38px}
.history-access-card{display:flex;align-items:center;gap:20px;padding:28px;border:1px solid var(--line);border-radius:24px;background:#fff}
.history-access-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#edf5fc;font-size:22px}
.history-access-card strong{font-size:18px}
.history-access-card p{margin:6px 0 0;color:var(--muted);line-height:1.6}
.history-hero-grid{display:flex;align-items:flex-end;justify-content:space-between;gap:28px}
.history-range-switch{display:inline-flex;padding:4px;border:1px solid var(--line);border-radius:999px;background:#fff}
.history-range-switch a{padding:10px 18px;border-radius:999px;color:var(--muted);font-weight:800;text-decoration:none}
.history-range-switch a.is-active{background:#edf5fc;color:var(--accent)}
.history-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.history-kpi{padding:20px;border:1px solid var(--line);border-radius:20px;background:#fff}
.history-kpi small{display:block;color:var(--muted);font-weight:700}
.history-kpi strong{display:block;margin:8px 0 4px;font-size:30px;letter-spacing:-.04em}
.history-kpi span{color:var(--muted);font-size:11px;line-height:1.45}
.history-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.history-chart-card{position:relative;padding:20px;border:1px solid var(--line);border-radius:22px;background:#fff;overflow:hidden}
.history-chart-title{display:flex;justify-content:space-between;gap:18px;align-items:baseline;margin-bottom:10px}
.history-chart-title span{color:var(--muted);font-size:11px}
.history-chart-legend{display:flex;gap:18px;margin-bottom:8px;font-size:11px;font-weight:800}
.legend-start{color:#116ba8}.legend-finish{color:#bf2d1d}
.history-line-chart{display:block;width:100%;height:auto;overflow:visible}
.chart-grid{stroke:#e7edf3;stroke-width:1}
.chart-line-start,.chart-line-finish,.chart-line-delay{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.chart-line-start{stroke:#116ba8}.chart-line-finish{stroke:#bf2d1d}.chart-line-delay{stroke:#7554a7}
.chart-line-start-dot{fill:#116ba8}.chart-line-finish-dot{fill:#bf2d1d}.chart-line-delay-dot{fill:#7554a7}
.history-chart-scale{position:absolute;right:10px;top:58px;bottom:20px;display:flex;flex-direction:column;justify-content:space-between;color:var(--muted);font-size:9px;pointer-events:none}
.history-compare-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.history-compare-grid article{padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff}
.history-compare-grid small{display:block;color:var(--muted);font-weight:700}
.history-compare-grid strong{display:block;margin:7px 0 3px;font-size:25px}
.history-compare-grid span{font-size:12px;color:var(--muted)}
.history-detail-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:16px;margin-top:16px;align-items:start}
.history-method-card{padding:22px;border:1px solid var(--line);border-radius:22px;background:#fff}
.history-method-card strong{font-size:16px}.history-method-card p{margin:8px 0 0;color:var(--muted);line-height:1.65}
.history-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:20px;background:#fff}
.history-table{width:100%;border-collapse:collapse;min-width:900px}
.history-table th,.history-table td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:right;font-size:12px}
.history-table th:first-child,.history-table td:first-child{text-align:left}
.history-table thead th{background:#f7fafc;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.history-table tbody th{font-weight:900}.history-table tr:last-child>*{border-bottom:0}
.history-table tr.is-missing>*{background:#fbfbfc;color:var(--muted)}
@media(max-width:980px){
  .history-kpi-grid,.history-compare-grid{grid-template-columns:1fr 1fr}
  .history-chart-grid,.history-detail-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .history-hero-grid{align-items:flex-start;flex-direction:column}
  .history-kpi-grid,.history-compare-grid{grid-template-columns:1fr}
  .history-range-switch{width:100%}
  .history-range-switch a{flex:1;text-align:center}
}


/* R6 station UX — passenger labels + disruption panel */
.board-status-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:14px;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.035em}
.board-status-legend span{display:inline-flex;align-items:center;gap:5px}
.board-status-legend i{font-style:normal;color:var(--accent);font-size:11px}
.time-badge{display:inline-flex!important;align-items:center;gap:4px;white-space:nowrap}
.time-badge i{font-style:normal;font-size:10px}
.time-confirmed{color:#087a50!important;background:#edf8f1!important}
.time-estimate{color:#9a5a00!important;background:#fff6df!important}
.time-planned{color:#52657a!important;background:#eef3f7!important}
.delay-icon{margin-right:3px;font-size:10px;vertical-align:1px}
.station-disruptions{padding-top:0!important;padding-bottom:0!important}
.station-disruption-card{border:1px solid #f0c8c3;border-radius:22px;background:#fff8f7;overflow:hidden}
.station-disruption-head{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 20px;border-bottom:1px solid #f0d7d3}
.station-disruption-head strong{display:block;margin-top:3px;font-size:15px}
.station-disruption-badge{padding:7px 10px;border-radius:999px;background:#fff0ee;color:var(--red);font-size:9px;font-weight:900;letter-spacing:.05em}
.station-disruption-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.station-disruption-list article{padding:16px 20px;border-right:1px solid #f0d7d3;border-bottom:1px solid #f0d7d3}
.station-disruption-list article:nth-child(2n){border-right:0}
.station-disruption-list article:last-child:nth-child(odd){grid-column:1/-1;border-right:0}
.station-disruption-list strong{display:block;font-size:13px}
.station-disruption-list p{margin:5px 0;color:var(--muted);font-size:11px;line-height:1.5}
.station-disruption-list small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.45}
@media(max-width:720px){
  .station-disruption-list{grid-template-columns:1fr}
  .station-disruption-list article{border-right:0}
  .station-disruption-list article:last-child:nth-child(odd){grid-column:auto}
}


/* R6.1 station board — desktop hierarchy + true mobile cards */
.board-table{table-layout:auto}
.board-table .board-cell-time{width:132px;white-space:nowrap}
.board-table .board-cell-type{width:92px}
.board-table .board-cell-train{min-width:185px}
.board-table .board-cell-relation{min-width:220px;line-height:1.45}
.board-table .board-cell-delay{width:125px;white-space:nowrap}
.board-table .board-cell-platform{width:105px;white-space:nowrap}
.board-cell-time>strong{display:block;font-size:14px;line-height:1.15}
.board-planned-time{margin-top:4px!important;color:var(--muted);font-size:9px!important;white-space:nowrap}
.board-cell-relation{color:#40536b}
.board-cell-platform{font-weight:800;color:#40536b}
.board-table tbody tr:hover td{background:#f9fbfd}
.board-table tbody tr.is-cancelled:hover td{background:#fff8f7}

@media(max-width:720px){
  .station-board-head{padding-bottom:24px}
  .board-filters{grid-template-columns:1fr 1fr;padding:12px}
  .board-status-legend{gap:7px 10px;padding:0 2px}
  .table-card{border:0;background:transparent;box-shadow:none;overflow:visible}
  .table-scroll{overflow:visible}
  .board-table{display:block;min-width:0;width:100%;border-collapse:separate}
  .board-table thead{display:none}
  .board-table tbody{display:grid;gap:10px}
  .board-table tr{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "time delay"
      "train train"
      "relation relation"
      "type platform";
    gap:9px 12px;
    padding:14px 15px;
    border:1px solid var(--line);
    border-radius:17px;
    background:#fff;
    box-shadow:0 5px 18px rgba(15,40,76,.045);
  }
  .board-table td{
    display:block;
    width:auto!important;
    min-width:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    font-size:11px;
  }
  .board-table td::before{
    content:attr(data-label);
    display:block;
    margin-bottom:3px;
    color:var(--muted);
    font-size:7.5px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
  }
  .board-table .board-cell-time{grid-area:time}
  .board-table .board-cell-delay{grid-area:delay;text-align:right;align-self:start}
  .board-table .board-cell-delay::before{text-align:right}
  .board-table .board-cell-train{grid-area:train;padding-top:2px!important}
  .board-table .board-cell-train::before{display:none}
  .board-table .board-cell-relation{grid-area:relation;padding-top:2px!important}
  .board-table .board-cell-type{grid-area:type}
  .board-table .board-cell-platform{grid-area:platform;text-align:right}
  .board-table .board-cell-platform::before{text-align:right}
  .board-cell-time>strong{font-size:18px}
  .time-badge{margin-top:5px!important}
  .board-planned-time{display:inline-block!important;margin:5px 0 0 5px!important;vertical-align:middle}
  .train-link,.board-cell-train>strong{display:inline-block;font-size:13px;line-height:1.35}
  .board-cell-relation{font-size:10.5px!important;line-height:1.45}
  .board-route-badge{margin-top:6px}
  .event-type{margin-top:1px}
  .board-table tr.is-cancelled{opacity:.72}
}
@media(max-width:420px){
  .board-filters{grid-template-columns:1fr}
  .board-filters button{grid-column:auto}
  .board-table tr{
    grid-template-columns:1fr auto;
    padding:13px;
  }
}


/* R6.2 station board long-label safety */
.board-cell-train,.board-cell-relation{overflow-wrap:anywhere;word-break:normal}
.station-disruption-list strong,.station-disruption-list p{overflow-wrap:anywhere}


/* R6.4 station platform / track hierarchy — compact aligned columns */
.board-table .board-cell-platform{width:112px}
.platform-track-display{
  display:grid;
  row-gap:5px;
  width:max-content;
  min-width:76px;
  line-height:1;
}
.platform-display,.track-display{
  display:grid;
  grid-template-columns:36px minmax(18px,auto);
  column-gap:7px;
  align-items:baseline;
  white-space:nowrap;
}
.platform-display small,.track-display small{
  margin:0!important;
  color:var(--muted);
  font-size:8px!important;
  font-weight:850;
  line-height:1;
  text-align:right;
  text-transform:none;
}
.platform-display strong{
  color:var(--ink);
  font-size:17px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.025em;
  text-align:left;
}
.track-display strong{
  color:#40536b;
  font-size:14px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.015em;
  text-align:left;
}
.platform-track-empty{color:var(--muted)}
@media(max-width:720px){
  .platform-track-display{
    margin-left:auto;
    min-width:72px;
  }
  .platform-display,.track-display{
    grid-template-columns:34px minmax(18px,auto);
    column-gap:6px;
  }
  .platform-display strong{font-size:16px}
  .track-display strong{font-size:13px}
}


/* R8.2 — passenger operational summary on train view */
.train-operation-alert{display:grid;gap:3px;width:min(100%,620px);margin-top:12px;padding:11px 13px;border:1px solid #efc5bf;border-radius:13px;background:#fff7f6}
.train-operation-alert>span{color:#a83a31;font-size:8px;font-weight:950;letter-spacing:.075em}
.train-operation-alert>strong{color:#8f2f28;font-size:12px;line-height:1.35}
.train-operation-alert>small{color:#7c5a57;font-size:9px;line-height:1.45}
.train-operation-alert.is-full{border-color:#e8aaa3;background:#fff2f1}
.train-operation-alert.is-full>strong{color:#a12820}
.train-last-confirmed{display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px;width:max-content;max-width:100%;margin-top:9px;padding:6px 9px;border:1px solid #d8e1ea;border-radius:10px;background:#f8fafc}
.train-last-confirmed span{color:var(--muted);font-size:8px;font-weight:850}
.train-last-confirmed strong{font-size:10px;color:var(--ink)}
.train-source-status-note{margin-top:7px!important;color:#8a6413!important;font-size:9px!important;font-weight:750}
@media(max-width:620px){
  .train-operation-alert{padding:10px 11px}
  .train-last-confirmed{width:100%;align-items:flex-start;flex-direction:column}
}


/* R8.3 — semantic train state pills */
.state-pill.state-pill-planned{background:#f0f3f7;color:#596579!important}
.state-pill.state-pill-running{background:var(--accent-soft);color:var(--accent)!important}
.state-pill.state-pill-completed{background:var(--green-soft);color:var(--green)!important}
.state-pill.state-pill-cancelled{background:var(--red-soft);color:var(--red)!important}
.state-pill.state-pill-partial{background:var(--amber-soft);color:#9a5b00!important;box-shadow:inset 0 0 0 1px #efd7a6}
.state-pill.state-pill-warning{background:var(--amber-soft);color:var(--amber)!important}
.state-pill.state-pill-history{background:#eef1f5;color:#687386!important}


/* R8.4 — route execution state semantics */
.route-state-dot.route-icon-unconfirmed{outline-color:#667085;background:#fff;color:#667085;text-shadow:none}
.route-state-legend{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;font-size:8px;font-weight:950;line-height:1}
.route-state-legend-confirmed{background:#12b76a;color:#fff}
.route-state-legend-current{background:#1570ef;color:#fff}
.route-state-legend-unconfirmed{border:1px solid #98a2b3;background:#fff;color:#667085}
.route-state-legend-cancelled{background:#d92d20;color:#fff}

/* R9.4 — history module entry */
.history-locked-link{text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.history-locked-link:hover{border-color:#b9d4ea;box-shadow:0 12px 34px rgba(22,80,126,.08);transform:translateY(-1px)}
.history-locked-link:hover .history-locked-badge{background:#dfeefa}

/* LIVE ranking freshness filter */
.live-ranking-filter-wrap{padding:12px 16px;border-bottom:1px solid var(--line);background:#fbfdff}
.live-ranking-filter-wrap>small{display:block;margin-bottom:8px;color:var(--muted);font-size:10px;font-weight:800;line-height:1.35}
.live-ranking-filters{display:flex;flex-wrap:wrap;gap:6px}
.live-age-filter{appearance:none;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);padding:7px 10px;font:800 10px/1 inherit;cursor:pointer;white-space:nowrap}
.live-age-filter:hover,.live-age-filter:focus-visible{border-color:#b9d5ea;color:var(--accent);outline:none}
.live-age-filter.is-active{border-color:#b8d8ef;background:#edf6fd;color:var(--accent)}
.live-ranking-group[hidden]{display:none!important}
@media(max-width:760px){.live-ranking-filters{gap:5px}.live-age-filter{padding:7px 9px}}

/* K5 station board filters */
.board-filter-toggles{grid-column:1/-2;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;min-height:42px;padding:7px 10px;border:1px solid var(--line);border-radius:11px;background:#fff}
.board-filters .board-filter-check{display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.board-filters .board-filter-check input{width:16px;height:16px;min-width:16px;padding:0;margin:0;accent-color:var(--accent);box-shadow:none}
.board-filters .board-filter-check span{font-size:9px;font-weight:900;color:var(--ink);text-transform:none;letter-spacing:0}
.board-quick-windows{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.board-quick-windows a{display:inline-flex;align-items:center;min-height:31px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:9px;font-weight:900;text-decoration:none}
.board-quick-windows a:hover,.board-quick-windows a.is-active{border-color:#b8d8ef;background:#edf6fd;color:var(--accent)}
.board-carrier-code{display:inline-flex;margin-top:4px;padding:2px 6px;border-radius:999px;background:#eef3f7;color:#5b6878;font-size:8px;font-weight:950;letter-spacing:.04em}
@media(max-width:980px){.board-filter-toggles{grid-column:1/-1}}
@media(max-width:760px){.board-filter-toggles{grid-column:1/-1;align-items:flex-start}.board-quick-windows{gap:5px}}
/* K5 responsive filter layout */
.board-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.board-filters>label:not(.board-filter-check){flex:1 1 140px;min-width:130px}
.board-filter-toggles{grid-column:auto;flex:2 1 360px}
.board-filters>button{flex:0 0 auto}
@media(max-width:760px){
  .board-filters>label:not(.board-filter-check),.board-filter-toggles,.board-filters>button{flex:1 1 100%;width:100%;min-width:0}
}

/* K7 — protected train history */
.history-train-section{padding-top:28px}.history-train-search{display:flex;gap:10px;align-items:flex-end;margin:18px 0 20px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.history-train-search label{flex:1;display:grid;gap:6px}.history-train-search label span{font-size:9px;font-weight:950;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.history-train-search input{width:100%;height:44px;padding:0 13px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font:inherit;font-weight:750}.history-train-search button{height:44px;padding:0 16px;border:0;border-radius:11px;background:var(--accent);color:#fff;font-weight:900;cursor:pointer}.history-train-clear{height:44px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:11px;color:var(--muted);font-size:10px;font-weight:900;text-decoration:none}.history-train-results{display:grid;gap:8px}.history-train-result{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);text-decoration:none}.history-train-result:hover{border-color:#b9d7eb;background:#f8fcff}.history-train-result>span:first-child{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.history-train-result strong{font-size:17px}.history-train-result b{font-size:12px}.history-train-result small{padding:2px 6px;border-radius:999px;background:#eef3f7;color:#5e6a78;font-size:8px}.history-train-result>span:last-child{font-size:10px;font-weight:800;color:var(--muted);text-align:right}.history-train-profile{margin-top:18px;border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}.history-train-profile-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:20px;border-bottom:1px solid var(--line)}.history-train-profile-head h3{margin:4px 0 5px;font-size:25px}.history-train-profile-head p{margin:0;color:var(--muted);font-size:11px}.history-train-profile-id{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.history-train-profile-id span{padding:7px 9px;border-radius:10px;background:#f4f7f9;font-size:9px;color:var(--muted)}.history-train-profile-id strong{color:var(--ink)}.history-train-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line)}.history-train-kpis>div{min-height:96px;padding:16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:5px}.history-train-kpis>div:nth-child(4n){border-right:0}.history-train-kpis small,.history-trip-summary small{font-size:8px;font-weight:950;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.history-train-kpis strong{font-size:20px}.history-train-kpis span,.history-trip-summary span{font-size:9px;color:var(--muted)}.history-train-routes{padding:15px 20px;border-bottom:1px solid var(--line)}.history-train-routes>strong{display:block;margin-bottom:8px;font-size:10px}.history-train-routes>div{display:flex;flex-wrap:wrap;gap:7px}.history-train-routes span{padding:6px 9px;border-radius:999px;background:#f4f7f9;font-size:9px;color:#475467}.history-train-routes b{color:var(--accent)}.history-train-trip-list{padding:16px 20px}.history-train-trip{display:grid;grid-template-columns:110px minmax(0,1fr) 90px 145px;gap:14px;align-items:center;padding:11px 8px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.history-train-trip:first-of-type{border-top:0}.history-train-trip:hover,.history-train-trip.is-active{background:#f8fbfd}.history-train-trip span{min-width:0}.history-train-trip-date,.history-train-trip-route,.history-train-trip-delay{display:flex;flex-direction:column;gap:3px}.history-train-trip small{font-size:9px;color:var(--muted)}.history-train-trip-route strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.history-train-trip-delay{text-align:right}.history-train-state{display:inline-flex;justify-content:center;align-items:center;padding:6px 8px;border-radius:999px;font-size:8px;font-weight:950;text-align:center}.history-train-state.is-ok{background:#eaf7ef;color:#177245}.history-train-state.is-warn{background:#fff4df;color:#9a5b00}.history-train-state.is-danger{background:#fdecec;color:#a12727}.history-train-state.is-info{background:#edf5fc;color:#1769aa}.history-train-state.is-muted{background:#f2f4f7;color:#667085}.history-trip-detail{border-top:1px solid var(--line);padding:20px;background:#fbfcfd}.history-trip-detail .section-head{margin-bottom:13px}.history-trip-detail h3{font-size:18px}.history-trip-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:15px}.history-trip-summary>div{padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff;display:flex;flex-direction:column;gap:4px}.history-trip-summary strong{font-size:12px}.history-trip-stops-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.history-trip-stops{width:100%;min-width:900px;border-collapse:collapse}.history-trip-stops th,.history-trip-stops td{padding:9px 10px;border-bottom:1px solid var(--line);font-size:9px;text-align:left;vertical-align:top}.history-trip-stops thead th{font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8fafb}.history-trip-stops tbody th{font-size:10px}.history-trip-stops td small{display:block;margin-top:2px;color:var(--muted);font-size:8px}.history-trip-stops tr.is-plan-only{opacity:.72}.history-trip-stops tr.is-cancelled{background:#fff8f8}.history-trip-stops tr:last-child>*{border-bottom:0}
@media(max-width:980px){.history-train-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.history-train-kpis>div:nth-child(4n){border-right:1px solid var(--line)}.history-train-kpis>div:nth-child(2n){border-right:0}.history-trip-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.history-train-trip{grid-template-columns:90px minmax(0,1fr) 80px}.history-train-trip .history-train-state{grid-column:2/4;justify-self:start}}
@media(max-width:680px){.history-train-search{align-items:stretch;flex-direction:column}.history-train-search button,.history-train-clear{width:100%;justify-content:center}.history-train-result,.history-train-profile-head{flex-direction:column}.history-train-result>span:last-child{text-align:left}.history-train-profile-id{justify-content:flex-start}.history-train-kpis{grid-template-columns:1fr 1fr}.history-trip-summary{grid-template-columns:1fr 1fr}.history-train-trip{grid-template-columns:1fr 72px;gap:8px}.history-train-trip-date{grid-column:1}.history-train-trip-route{grid-column:1}.history-train-trip-delay{grid-column:2;grid-row:1/3;align-self:center}.history-train-trip .history-train-state{grid-column:1/3}.history-trip-detail{padding:14px}}
.history-k6-coverage{margin:-8px 0 18px;padding:9px 11px;border-radius:11px;background:#f4f7f9;color:#667085;font-size:9px;line-height:1.5}.history-k6-coverage strong{color:#344054}.train-history-link{display:inline-flex;align-items:center;padding:5px 8px;border:1px solid #cfe0ed;border-radius:999px;background:#f7fbfe;color:var(--accent)!important;font-size:8px!important;font-weight:950!important;text-decoration:none}.train-history-link:hover{background:#edf6fc}
.history-k6-coverage.is-complete{background:#eef8f1;color:#2f6f49}.history-k6-coverage.is-incomplete{background:#fff8e8;color:#8b6415}.history-k6-coverage b{margin-left:5px;color:inherit}

/* K7 UI R2 — czytelny przebieg, kolory, footer */
.history-access-denied,.history-page-body{min-height:100vh;display:flex;flex-direction:column}.history-access-denied main,.history-page-body main{flex:1 0 auto}.history-access-denied .site-footer,.history-page-body .site-footer{margin-top:auto}
.history-train-result-main{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:5px!important}.history-train-result-title{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.history-train-result-route{display:flex;align-items:center;gap:6px;color:#475467;font-size:10px;font-weight:750}.history-train-result-route i{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:6px;background:#edf6fd;color:#1769aa;font-style:normal;font-weight:950}.history-train-result-route em{padding:2px 6px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:8px;font-style:normal}.history-train-result-meta{font-size:9px!important;font-weight:850!important;color:var(--muted)!important;text-align:right}
.history-trip-summary>div{position:relative;overflow:hidden}.history-trip-summary>div::before{display:block;width:24px;height:24px;margin-bottom:3px;border-radius:8px;line-height:24px;text-align:center;font-size:12px;font-weight:950}.history-trip-summary>div:nth-child(1)::before{content:'◷';background:#f2f4f7;color:#475467}.history-trip-summary>div:nth-child(2)::before{content:'▶';background:#edf6fd;color:#1769aa}.history-trip-summary>div:nth-child(3)::before{content:'◇';background:#f2f4f7;color:#475467}.history-trip-summary>div:nth-child(4)::before{content:'◆';background:#eef8f1;color:#177245}.history-trip-summary>div:nth-child(5)::before{content:'!';background:#fff4df;color:#9a5b00}.history-trip-summary>div:nth-child(6)::before{content:'↘';background:#edf6fd;color:#1769aa}
.history-stop-list{display:grid;gap:8px}.history-stop-row{display:grid;grid-template-columns:34px minmax(150px,1.25fr) minmax(180px,1.2fr) minmax(180px,1.2fr) minmax(150px,.95fr) 85px 120px;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff}.history-stop-row:hover{border-color:#bed7e8;box-shadow:0 4px 16px rgba(26,73,112,.06)}.history-stop-row.is-plan-only{background:#fafbfc;opacity:.82}.history-stop-row.is-cancelled{background:#fff8f8;border-color:#f3cdcd}.history-stop-seq{display:flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:999px;background:#0f345f;color:#fff;font-size:9px;font-weight:950}.history-stop-station{display:flex;flex-direction:column;gap:4px;min-width:0}.history-stop-station strong{font-size:11px}.history-stop-station small{font-size:8px;color:var(--muted)}.history-stop-time-group{padding:8px;border-radius:10px;background:#f8fafb}.history-stop-time-group.is-actual{background:#f2f8fd}.history-stop-group-label{display:block;margin-bottom:5px;font-size:8px;font-weight:950;letter-spacing:.05em;text-transform:uppercase;color:#667085}.history-stop-time-pair{display:grid;grid-template-columns:1fr 1fr;gap:7px}.history-stop-time-pair>span{display:grid;grid-template-columns:16px 1fr;grid-template-rows:auto auto;column-gap:3px;align-items:center}.history-stop-time-pair i{grid-row:1/3;display:flex;width:16px;height:16px;align-items:center;justify-content:center;border-radius:5px;background:#fff;color:#1769aa;font-style:normal;font-size:9px}.history-stop-time-pair small{font-size:7px;text-transform:uppercase;color:#667085}.history-stop-time-pair b{font-size:9px;white-space:nowrap}.history-stop-metrics{display:flex;gap:7px;flex-wrap:wrap}.history-metric{display:flex;flex-direction:column;gap:4px}.history-metric>small,.history-stop-dwell>small{font-size:7px;font-weight:950;text-transform:uppercase;color:#667085}.history-pill{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:max-content;max-width:100%;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:950;white-space:nowrap}.history-pill.is-good{background:#eaf7ef;color:#177245}.history-pill.is-warn{background:#fff4df;color:#9a5b00}.history-pill.is-bad{background:#fdecec;color:#a12727}.history-pill.is-recovered{background:#edf6fd;color:#1769aa}.history-pill.is-neutral{background:#f2f4f7;color:#475467}.history-pill.is-unknown{background:#f6f7f8;color:#98a2b3}.history-stop-dwell{display:flex;flex-direction:column;gap:3px}.history-stop-dwell strong{font-size:10px}.history-stop-dwell span{font-size:8px;color:var(--muted)}.history-stop-status{display:flex;justify-content:flex-end}
@media(max-width:1180px){.history-stop-row{grid-template-columns:34px minmax(150px,1fr) 1fr 1fr}.history-stop-metrics,.history-stop-dwell,.history-stop-status{grid-column:auto}.history-stop-status{justify-content:flex-start}.history-stop-metrics{grid-column:2/4}.history-stop-dwell{grid-column:4}.history-stop-status{grid-column:2/5}}
@media(max-width:760px){.history-stop-row{grid-template-columns:30px 1fr;align-items:start}.history-stop-seq{grid-row:1/6}.history-stop-station,.history-stop-time-group,.history-stop-metrics,.history-stop-dwell,.history-stop-status{grid-column:2}.history-stop-time-pair{grid-template-columns:1fr 1fr}.history-stop-status{justify-content:flex-start}.history-train-result-meta{text-align:left}.history-train-result{align-items:flex-start}}

/* K7 UI R3 — historyczne wykresy opóźnień na trasie */
.history-station-history{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.history-station-history-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:12px}.history-station-history-head h3{margin:4px 0 6px;font-size:19px}.history-station-history-head p{max-width:720px;margin:0;color:var(--muted);font-size:10px;line-height:1.55}.history-chart-range{padding:6px 9px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:8px;font-weight:950;white-space:nowrap}.history-station-legend{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 14px}.history-station-legend>span{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid transparent;border-radius:999px;color:#475467;font-size:8px;font-weight:850}.history-station-legend>span.is-selected{border-color:#b9d7eb;background:#f4faff;color:#184f7d}.history-station-legend i{display:block;width:9px;height:9px;border-radius:999px}.history-station-chart-card{margin-top:12px;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.history-station-chart-title{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);background:#fbfcfd}.history-station-chart-title>div{display:flex;flex-direction:column;gap:2px}.history-station-chart-title strong{font-size:11px}.history-station-chart-title small{font-size:8px;color:var(--muted)}.history-chart-icon{display:flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:9px;font-size:15px;font-weight:950}.history-chart-icon.is-arrival{background:#edf6fd;color:#1769aa}.history-chart-icon.is-departure{background:#eef8f1;color:#177245}.history-station-chart-scroll{overflow-x:auto;overflow-y:hidden;padding:8px 8px 2px;scrollbar-width:thin}.history-station-chart{display:block;height:auto;max-width:none}.history-chart-grid{stroke:#dbe3e9;stroke-width:1}.history-chart-zero{stroke:#8393a5;stroke-width:1.5}.history-chart-x-grid{stroke:#eef2f5;stroke-width:1}.history-chart-y-label{fill:#667085;font-size:9px;font-weight:700}.history-chart-x-label{fill:#344054;font-size:8px;font-weight:750}.history-station-chart path,.history-station-chart circle{vector-effect:non-scaling-stroke}
@media(max-width:760px){.history-station-history-head{flex-direction:column;gap:8px}.history-chart-range{align-self:flex-start}.history-station-chart-scroll{margin-left:-4px;margin-right:-4px}}
.history-chart-fallback-note{display:flex;align-items:center;gap:8px;padding:8px 14px 10px;border-top:1px solid var(--line);background:#fafbfc;color:#667085;font-size:8px;line-height:1.45}.history-chart-fallback-note i{display:block;width:24px;height:0;border-top:2px dashed #98a2b3;flex:0 0 auto}

/* K8 — historyczny profil stacji */
.station-title-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.station-history-link,.history-station-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 11px;border:1px solid #cfe0ed;border-radius:999px;background:#f7fbfe;color:var(--accent);font-size:8px;font-weight:950;text-decoration:none}.station-history-link:hover,.history-station-actions a:hover{background:#edf6fc}
.history-station-profile{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}.history-station-profile-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:20px;border-bottom:1px solid var(--line)}.history-station-profile-head h2{margin:4px 0 5px;font-size:27px}.history-station-profile-head p{margin:0;color:var(--muted);font-size:10px}.history-station-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.history-station-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.history-station-kpis>div{min-height:96px;padding:15px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:5px}.history-station-kpis>div:nth-child(4n){border-right:0}.history-station-kpis small{font-size:8px;font-weight:950;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.history-station-kpis strong{font-size:20px}.history-station-kpis span{font-size:8px;color:var(--muted);line-height:1.4}.history-station-trends{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line);background:#fbfcfd}.history-station-trends .history-chart-card{margin:0}.legend-station-arrival{color:#0e7490}.legend-station-departure{color:#15803d}.chart-line-station-arrival,.chart-line-station-departure{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chart-line-station-arrival{stroke:#0e7490}.chart-line-station-departure{stroke:#15803d}.chart-line-station-arrival-dot{fill:#0e7490;stroke:#fff;stroke-width:1.4}.chart-line-station-departure-dot{fill:#15803d;stroke:#fff;stroke-width:1.4}.history-station-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:20px;border-bottom:1px solid var(--line)}.history-station-columns>section{min-width:0}.history-station-block-head{display:flex;justify-content:space-between;gap:14px;align-items:baseline;margin-bottom:10px}.history-station-block-head strong{font-size:11px}.history-station-block-head span{font-size:8px;color:var(--muted)}.history-station-carriers{display:grid;gap:7px}.history-station-carriers>div{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:5px 9px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fff}.history-carrier-code{grid-row:1/3;display:flex;width:38px;height:28px;align-items:center;justify-content:center;border-radius:8px;background:#edf6fd;color:#1769aa;font-size:8px;font-weight:950}.history-station-carriers strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-station-carriers b{font-size:9px;text-align:right}.history-station-carriers small{grid-column:2/4;font-size:8px;color:var(--muted)}.history-station-routes{display:grid;gap:6px}.history-station-routes>div{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) auto;gap:6px;align-items:center;padding:8px 9px;border-bottom:1px solid var(--line);font-size:9px}.history-station-routes i{color:#1769aa;font-style:normal;text-align:center}.history-station-routes b{padding:3px 6px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:8px}.history-station-recent{padding:20px}.history-station-recent-list{border:1px solid var(--line);border-radius:12px;overflow:hidden}.history-station-recent-list>a,.history-station-recent-list>div{display:grid;grid-template-columns:100px minmax(0,1fr) 90px 90px;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.history-station-recent-list>a:last-child,.history-station-recent-list>div:last-child{border-bottom:0}.history-station-recent-list>a:hover{background:#f8fbfd}.history-station-recent-time,.history-station-recent-train,.history-station-recent-delay{display:flex;flex-direction:column;gap:2px;min-width:0}.history-station-recent-time strong{font-size:9px}.history-station-recent-time small,.history-station-recent-train small,.history-station-recent-delay small{font-size:7px;color:var(--muted)}.history-station-recent-train strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-station-recent-delay{align-items:flex-end}.history-station-recent-delay b{font-size:9px}.history-station-recent-delay b.is-good{color:#177245}.history-station-recent-delay b.is-warn{color:#9a5b00}.history-station-recent-delay b.is-bad{color:#a12727}.history-station-recent-delay b.is-unknown{color:#98a2b3}
@media(max-width:980px){.history-station-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.history-station-kpis>div:nth-child(4n){border-right:1px solid var(--line)}.history-station-kpis>div:nth-child(2n){border-right:0}.history-station-trends,.history-station-columns{grid-template-columns:1fr}.history-station-recent-list>a,.history-station-recent-list>div{grid-template-columns:88px minmax(0,1fr) 72px 72px}}
@media(max-width:680px){.station-title-actions,.history-station-profile-head{align-items:flex-start}.history-station-profile-head{flex-direction:column}.history-station-actions{justify-content:flex-start}.history-station-kpis{grid-template-columns:1fr 1fr}.history-station-trends,.history-station-columns,.history-station-recent{padding:14px}.history-station-recent-list>a,.history-station-recent-list>div{grid-template-columns:74px minmax(0,1fr);gap:6px}.history-station-recent-delay{align-items:flex-start}.history-station-recent-delay:nth-of-type(3){grid-column:1}.history-station-recent-delay:nth-of-type(4){grid-column:2}}

/* K8 — wyszukiwarka stacji w module historii */
.history-station-search{display:flex;gap:10px;align-items:flex-end;margin:18px 0 16px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.history-station-search label{flex:1;display:grid;gap:6px}.history-station-search label span{font-size:9px;font-weight:950;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.history-station-search input{width:100%;height:44px;padding:0 13px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font:inherit;font-weight:750}.history-station-search button{height:44px;padding:0 16px;border:0;border-radius:11px;background:var(--accent);color:#fff;font-weight:900;cursor:pointer}.history-station-search-results{display:grid;gap:8px}.history-station-search-results>a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);text-decoration:none}.history-station-search-results>a:hover{border-color:#b9d7eb;background:#f8fcff}.history-station-search-results>a>span{display:flex;flex-direction:column;gap:3px}.history-station-search-results strong{font-size:12px}.history-station-search-results small{font-size:8px;color:var(--muted)}.history-station-search-results b{font-size:9px;color:var(--accent);white-space:nowrap}
@media(max-width:680px){.history-station-search{flex-direction:column;align-items:stretch}.history-station-search button,.history-station-search .history-train-clear{width:100%;justify-content:center}.history-station-search-results>a{align-items:flex-start;flex-direction:column}}

/* K8.1 — zmiana opóźnienia podczas postoju */
.history-station-impact{padding:20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fbfcfd 0%,#fff 100%)}.history-station-impact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}.history-station-impact-head h3{margin:4px 0 5px;font-size:18px}.history-station-impact-head p{max-width:720px;margin:0;color:var(--muted);font-size:9px;line-height:1.55}.history-impact-sample{padding:6px 9px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:8px;font-weight:950;white-space:nowrap}.history-impact-distribution{padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}.history-impact-bar{display:flex;height:12px;overflow:hidden;border-radius:999px;background:#eef1f4}.history-impact-bar>span{height:100%}.history-impact-bar .is-recovered{background:#35a56f}.history-impact-bar .is-unchanged{background:#b8c1cb}.history-impact-bar .is-increased{background:#d85b5b}.history-impact-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:9px}.history-impact-legend>span{display:inline-flex;align-items:center;gap:5px;font-size:8px;color:#667085}.history-impact-legend i{display:block;width:8px;height:8px;border-radius:999px}.history-impact-legend .is-recovered i{background:#35a56f}.history-impact-legend .is-unchanged i{background:#b8c1cb}.history-impact-legend .is-increased i{background:#d85b5b}.history-impact-legend strong{font-size:9px;color:#344054}.history-impact-legend small{font-size:7px;color:#98a2b3}.history-impact-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin-top:12px;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff}.history-impact-kpis>div{min-height:95px;padding:13px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:5px}.history-impact-kpis>div:last-child{border-right:0}.history-impact-kpis small{font-size:7px;font-weight:950;letter-spacing:.04em;text-transform:uppercase;color:#667085}.history-impact-kpis strong{font-size:16px}.history-impact-kpis strong.is-recovered{color:#177245}.history-impact-kpis strong.is-warn{color:#9a5b00}.history-impact-kpis strong.is-bad{color:#a12727}.history-impact-kpis strong.is-neutral,.history-impact-kpis strong.is-unknown{color:#475467}.history-impact-kpis em{font-style:normal;color:#98a2b3}.history-impact-kpis span{font-size:7px;line-height:1.4;color:#98a2b3}.history-impact-chart-card{margin-top:12px;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.history-impact-chart-card .history-chart-title{padding:11px 13px}.chart-zero-strong{stroke:#667085;stroke-width:1.7;stroke-dasharray:4 3}.chart-line-station-impact{fill:none;stroke:#1769aa;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}.chart-line-station-impact-dot{fill:#1769aa;stroke:#fff;stroke-width:1.4}.history-impact-day-labels{display:grid;grid-template-columns:repeat(var(--impact-days,7),minmax(0,1fr));gap:0;padding:0 24px 10px;color:#667085;font-size:7px;font-weight:800;text-align:center}.history-impact-day-labels>span{min-width:0;white-space:nowrap}.history-impact-day-labels>span.is-gap{color:#b42318;font-weight:950}.history-impact-chart{display:block;width:100%;height:auto}
@media(max-width:1100px){.history-impact-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.history-impact-kpis>div{border-bottom:1px solid var(--line)}.history-impact-kpis>div:nth-child(3n){border-right:0}}
@media(max-width:680px){.history-station-impact{padding:14px}.history-station-impact-head{flex-direction:column;gap:8px}.history-impact-sample{align-self:flex-start}.history-impact-kpis{grid-template-columns:1fr 1fr}.history-impact-kpis>div:nth-child(3n){border-right:1px solid var(--line)}.history-impact-kpis>div:nth-child(2n){border-right:0}.history-impact-day-labels{padding-left:18px;padding-right:18px}}

/* K8.2 — punktualność wg pory dnia */
.history-station-timeofday{padding:20px;border-bottom:1px solid var(--line);background:#fff}.history-station-timeofday-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:14px}.history-station-timeofday-head h3{margin:4px 0 5px;font-size:18px}.history-station-timeofday-head p{max-width:760px;margin:0;color:var(--muted);font-size:9px;line-height:1.55}.history-timeofday-basis{padding:6px 9px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:8px;font-weight:950;white-space:nowrap}.history-daypart-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.history-daypart-grid>article{padding:11px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}.history-daypart-title{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:9px}.history-daypart-title strong{font-size:10px}.history-daypart-title span{font-size:7px;color:#98a2b3}.history-daypart-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}.history-daypart-metrics>div{display:flex;flex-direction:column;gap:3px}.history-daypart-metrics small{font-size:7px;font-weight:950;text-transform:uppercase;color:#667085}.history-daypart-metrics strong{font-size:16px}.history-daypart-metrics span{font-size:7px;line-height:1.4;color:#98a2b3}.history-heatmap-legend{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:15px 0 9px}.history-heatmap-legend>span{display:inline-flex;align-items:center;gap:5px;font-size:7px;color:#667085}.history-heatmap-legend i{display:block;width:10px;height:10px;border-radius:3px}.history-heatmap-legend .is-excellent i{background:#2f9e69}.history-heatmap-legend .is-good i{background:#8fce9d}.history-heatmap-legend .is-warn i{background:#f0c36b}.history-heatmap-legend .is-bad i{background:#df6b6b}.history-heatmap-legend .is-empty i{background:#edf0f2}.history-heatmap-legend>small{margin-left:auto;font-size:7px;color:#98a2b3}.history-heatmap-card{margin-top:10px;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}.history-heatmap-card-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:10px 12px;border-bottom:1px solid var(--line);background:#fbfcfd}.history-heatmap-card-head strong{font-size:10px}.history-heatmap-card-head span{font-size:7px;color:#98a2b3}.history-heatmap-scroll{overflow-x:auto;overflow-y:hidden;padding:10px 10px 12px;scrollbar-width:thin}.history-heatmap{min-width:900px;display:grid;gap:4px}.history-heatmap-hours,.history-heatmap-row{display:grid;grid-template-columns:68px repeat(24,minmax(30px,1fr));gap:3px;align-items:center}.history-heatmap-hours>b{font-size:6px;color:#98a2b3;text-align:center;font-weight:800}.history-heatmap-row>strong{font-size:7px;color:#667085;font-weight:900;white-space:nowrap}.history-heatmap-row>span{display:flex;height:24px;align-items:center;justify-content:center;border-radius:5px;font-size:6px;font-weight:950;cursor:help;transition:transform .12s ease}.history-heatmap-row>span:hover{transform:scale(1.08);position:relative;z-index:2}.history-heatmap-row>span.is-excellent{background:#2f9e69;color:#fff}.history-heatmap-row>span.is-good{background:#b6dfbf;color:#1f5135}.history-heatmap-row>span.is-warn{background:#f7d996;color:#6e4b00}.history-heatmap-row>span.is-bad{background:#e88989;color:#701f1f}.history-heatmap-row>span.is-empty{background:#edf0f2;color:#98a2b3}.history-heatmap-row>span.is-low-sample{opacity:.72;outline:1px dashed rgba(102,112,133,.55);outline-offset:-2px}
@media(max-width:1100px){.history-daypart-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.history-station-timeofday{padding:14px}.history-station-timeofday-head{flex-direction:column;gap:8px}.history-timeofday-basis{align-self:flex-start}.history-daypart-grid{grid-template-columns:1fr 1fr}.history-heatmap-legend>small{width:100%;margin-left:0}.history-heatmap{min-width:860px}}

/* K8.2 R2 — wiersz średniej godzinowej */
.history-heatmap-row.is-average{margin-top:4px;padding-top:6px;border-top:2px solid #c7d2dc}.history-heatmap-row.is-average>strong{color:#0f345f;font-weight:950}.history-heatmap-row.is-average>span{box-shadow:inset 0 0 0 1px rgba(15,52,95,.16)}

/* Future schedule revisions — R1 */
.future-schedule-hero .search-form-hero{grid-template-columns:minmax(0,1fr) 210px auto}
.future-schedule-head{align-items:flex-end}
.future-schedule-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:18px}
.future-schedule-summary>div{display:flex;min-height:92px;flex-direction:column;justify-content:center;gap:5px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.future-schedule-summary strong{font-size:25px;letter-spacing:-.04em}
.future-schedule-summary span{font-size:8px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.055em}
.future-revision-list,.future-change-list{display:grid;gap:10px}
.future-revision-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:#fff}
.future-revision-row>div{display:flex;flex-direction:column;gap:3px}
.future-revision-row strong,.future-revision-row b{font-size:10px}
.future-revision-row span{font-size:8px;color:var(--muted)}
.future-change-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}
.future-change-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:12px}
.future-change-top h3{margin:7px 0 0;font-size:18px;letter-spacing:-.025em}
.future-change-top time{font-size:8px;color:var(--muted);white-space:nowrap}
.future-change-badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:950;letter-spacing:.05em}
.future-change-major{background:#fdecec;color:#a12727}.future-change-route{background:#edf6fd;color:#1769aa}.future-change-time{background:#fff4df;color:#9a5b00}.future-change-minor{background:#f2f4f7;color:#475467}
.future-change-line{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:9px 0;border-top:1px solid var(--line)}
.future-change-line>span{font-size:8px;font-weight:900;color:var(--muted);text-transform:uppercase}
.future-change-line strong{font-size:10px;line-height:1.55}.future-change-line em{padding:0 5px;color:var(--accent);font-style:normal}
.future-change-stops{display:grid;gap:5px;margin-top:10px;padding:10px 12px;border-radius:11px;background:#f8fafc}
.future-change-stops span{font-size:9px;line-height:1.45}
.future-empty-state{padding:28px}.future-empty-state p{margin:7px 0 0;color:var(--muted);font-size:10px;line-height:1.55}
.search-panel-future{border-top:3px solid var(--amber)}.search-panel-future .future-hub-link{display:inline-flex;align-items:center;min-height:42px;padding:0 15px;border-radius:11px;background:var(--navy);color:#fff;font-size:11px;font-weight:900}
@media(max-width:980px){.future-schedule-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.future-schedule-hero .search-form-hero{grid-template-columns:1fr 210px auto}}
@media(max-width:680px){.future-schedule-summary{grid-template-columns:1fr 1fr}.future-schedule-hero .search-form-hero{grid-template-columns:1fr}.future-revision-row{grid-template-columns:1fr}.future-change-top{flex-direction:column;gap:8px}.future-change-line{grid-template-columns:1fr;gap:4px}}

/* Future schedule revisions — R2 UX */
.future-monitor-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0 0}
.future-monitor-strip>div{display:flex;min-height:66px;flex-direction:column;justify-content:center;gap:4px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.future-monitor-strip span{font-size:7px;font-weight:950;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}.future-monitor-strip strong{font-size:11px}
.future-monitor-strip>div.is-active{border-color:#b8dec9;background:#f1faf5}.future-monitor-strip>div.is-active strong{color:#237a4b}
.future-monitor-strip>div.is-idle{border-color:#ead8aa;background:#fff9eb}.future-monitor-strip>div.is-idle strong{color:#8b6100}
.future-monitor-note{margin:7px 2px 0;color:var(--muted);font-size:8px;line-height:1.5}
.future-change-filters{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 7px}.future-change-filters button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:9px;font-weight:900;cursor:pointer}
.future-change-filters button b{display:inline-flex;min-width:19px;height:19px;align-items:center;justify-content:center;padding:0 5px;border-radius:999px;background:#edf1f5;font-size:7px}.future-change-filters button.is-active{border-color:var(--navy);background:var(--navy);color:#fff}.future-change-filters button.is-active b{background:rgba(255,255,255,.16)}
.future-filter-result{margin:0 0 12px;color:var(--muted);font-size:8px}.future-change-card[hidden]{display:none!important}
.future-train-name{display:block;margin-top:3px;color:var(--muted);font-size:9px;font-weight:800}
.future-time-delta{display:inline-flex;margin-left:7px;padding:3px 6px;border-radius:999px;background:#fff4df;color:#9a5b00;font-size:8px;font-weight:950}
.future-route-note{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding:9px 11px;border-radius:10px;background:#edf6fd;color:#24597e}.future-route-note strong{font-size:9px}.future-route-note span{font-size:8px;white-space:nowrap}
@media(max-width:820px){.future-monitor-strip{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.future-monitor-strip{grid-template-columns:1fr}.future-route-note{align-items:flex-start;flex-direction:column;gap:4px}.future-route-note span{white-space:normal}}

/* Future schedule R3: arbitrary date comparison + change timeline */
.future-compare-form{grid-template-columns:minmax(230px,1fr) 148px 148px auto!important;align-items:end}
.future-compare-form input[type="date"]{min-height:42px}
.future-compare-results{padding-bottom:28px}
.future-daytype-note{margin:0 0 16px}
.future-compare-summary{margin-bottom:24px}
.future-timeline-block{margin:26px 0 24px;padding-top:22px;border-top:1px solid var(--line)}
.future-timeline-head{margin-bottom:14px}
.future-timeline{display:grid;grid-template-columns:minmax(120px,.8fr) repeat(2,minmax(170px,1fr)) minmax(120px,.8fr);gap:10px;align-items:stretch}
.future-timeline-edge,.future-timeline-point{display:flex;min-width:0;min-height:92px;flex-direction:column;justify-content:center;gap:5px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.future-timeline-edge strong,.future-timeline-point b{font-size:12px}
.future-timeline-edge span,.future-timeline-point span{font-size:8px;color:var(--muted);line-height:1.35}
.future-timeline-point{text-decoration:none;color:inherit;transition:border-color .15s ease,transform .15s ease}
.future-timeline-point small{font-size:7px;color:var(--muted)}
.future-timeline-point.is-monitored{border-width:2px;border-color:var(--navy)}
.future-timeline-point.is-monitored b{color:var(--navy)}
.future-timeline-point.is-detected{background:#f8fafc}
.future-timeline-point:hover{transform:translateY(-1px);border-color:var(--navy)}
.future-watch-date-form{min-width:250px}
.future-watch-date-form label{display:flex;flex-direction:column;gap:5px}
.future-watch-date-form label>span{font-size:7px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.future-watch-date-form select{min-height:38px;padding:0 34px 0 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:9px;font-weight:800}
.future-compare-change-list{margin-top:0}
@media(max-width:1100px){
  .future-compare-form{grid-template-columns:minmax(220px,1fr) 145px 145px!important}
  .future-compare-form button{grid-column:1/-1}
  .future-timeline{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .future-compare-form{grid-template-columns:1fr!important}
  .future-compare-form button{grid-column:auto}
  .future-timeline{grid-template-columns:1fr}
  .future-timeline-edge,.future-timeline-point{min-height:74px}
  .future-watch-date-form{width:100%;min-width:0}
}

/* Future schedule R4: compact summary tables */
.future-summary-tables{margin:28px 0 30px;padding-top:24px;border-top:1px solid var(--line)}
.future-summary-tables-head{margin-bottom:14px}
.future-summary-group{margin-top:12px;border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden}
.future-summary-group>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 15px;border-bottom:1px solid var(--line);background:#fbfcfd}
.future-summary-group>header>div{display:flex;align-items:center;gap:9px;min-width:0}
.future-summary-group>header span{font-size:9px;font-weight:950;letter-spacing:.045em}
.future-summary-group>header strong{display:inline-flex;min-width:27px;height:27px;align-items:center;justify-content:center;padding:0 7px;border-radius:999px;background:#edf1f5;font-size:9px}
.future-summary-group>header p{margin:0;color:var(--muted);font-size:8px;line-height:1.45;text-align:right}
.future-summary-added>header{border-left:4px solid #2f9e69}
.future-summary-time>header{border-left:4px solid #d99a25}
.future-summary-route>header{border-left:4px solid #2878b7}
.future-summary-removed>header{border-left:4px solid #c94f4f}
.future-summary-table-wrap{overflow-x:auto;scrollbar-width:thin}
.future-summary-table{width:100%;border-collapse:collapse;font-size:9px}

.future-summary-table th{padding:9px 11px;border-bottom:1px solid var(--line);background:#f7f9fb;color:var(--muted);font-size:7px;font-weight:950;letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap}
.future-summary-table td{padding:10px 11px;border-bottom:1px solid #edf0f2;vertical-align:top;line-height:1.45}
.future-summary-table tr:last-child td{border-bottom:0}
.future-summary-table tbody tr:hover{background:#fafcfd}
.future-summary-table td:first-child{white-space:nowrap}
.future-summary-table td:nth-child(2){color:#667085}
.future-summary-time-table td:nth-child(3),.future-summary-time-table td:nth-child(4),.future-summary-time-table td:nth-child(5){white-space:nowrap}
.future-summary-time-table .is-time-changed{font-weight:850}
.future-summary-time-table .is-time-unchanged{color:var(--muted)}
.future-summary-time-table .is-time-unchanged b{font-weight:700}
.future-summary-time-deltas{display:flex;gap:4px;flex-wrap:wrap}
.future-summary-delta{display:inline-flex;padding:3px 6px;border-radius:999px;background:#fff4df;color:#8b6100;font-size:8px;font-weight:950}
.future-summary-route-table th:nth-child(3){width:34%}.future-summary-route-table th:nth-child(4){width:42%}
.future-summary-route-diff{display:grid;gap:4px}.future-summary-route-diff span{font-size:8px;line-height:1.45}.future-summary-route-diff .is-added{color:#237a4b}.future-summary-route-diff .is-removed{color:#a12727}
.future-summary-more{display:flex;width:100%;min-height:38px;align-items:center;justify-content:center;border:0;border-top:1px solid var(--line);background:#fbfcfd;color:var(--accent);font:inherit;font-size:8px;font-weight:950;cursor:pointer}
.future-summary-more:hover{background:#f2f7fb}
.future-summary-empty{padding:16px;color:var(--muted);font-size:9px}
.future-summary-table tr[hidden]{display:none}

@media(max-width:720px){
  .future-summary-group>header{align-items:flex-start;flex-direction:column;gap:6px}
  .future-summary-group>header p{text-align:left}
  .future-summary-table thead{display:none}
  .future-summary-table,.future-summary-table tbody,.future-summary-table tr,.future-summary-table td{display:block;width:100%}
  .future-summary-table tr{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:8px 10px;border-bottom:1px solid var(--line)}
  .future-summary-table tr:last-child{border-bottom:0}
  .future-summary-table td{display:grid;grid-template-columns:88px minmax(0,1fr);gap:7px;padding:5px 2px;border:0!important}
  .future-summary-table td::before{content:attr(data-label);color:var(--muted);font-size:7px;font-weight:950;text-transform:uppercase}
  .future-summary-table td[data-label="Relacja"],.future-summary-table td[data-label="Przebieg"]{grid-column:1/-1}
  .future-summary-route-diff{display:grid!important}
}

/* Future schedule R5: train renumber reconciliation */
.future-compare-summary{grid-template-columns:repeat(6,minmax(0,1fr))}
.future-summary-renumbered>header{border-left:4px solid #6f63c7}
.future-change-number{background:#f1effd;color:#5c51b7}
.future-summary-renumber-table td:nth-child(1),.future-summary-renumber-table td:nth-child(2),.future-summary-renumber-table td:nth-child(4){white-space:nowrap}
@media(max-width:1100px){.future-compare-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.future-compare-summary{grid-template-columns:1fr 1fr}}

/* Future schedule R7: classification explanation */
.future-classification-note{margin:0 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.future-classification-note strong{display:block;margin-bottom:4px;font-size:9px}
.future-classification-note p{margin:0;color:var(--muted);font-size:8px;line-height:1.55}
.future-classification-note b{color:var(--ink)}

/* Future schedule R9: final-destination departure comparison */
.future-destination-compare{margin:18px 0 22px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.future-destination-head{padding:18px 18px 12px;margin:0}
.future-destination-head>p{max-width:520px;text-align:right}
.future-destination-totals{display:grid;grid-template-columns:1fr 1fr .8fr;gap:10px;padding:0 18px 14px}
.future-destination-totals>div{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}
.future-destination-totals span{display:block;color:var(--muted);font-size:7px;font-weight:950;letter-spacing:.05em}
.future-destination-totals strong{display:block;margin:4px 0 1px;font-size:22px;line-height:1}
.future-destination-totals small{color:var(--muted);font-size:8px}
.future-destination-totals .is-up strong{color:#237a4b}
.future-destination-totals .is-down strong{color:#a12727}

.future-destination-legend{display:flex;gap:16px;align-items:center;padding:8px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafbfc;color:var(--muted);font-size:8px;font-weight:800}
.future-destination-legend span{display:flex;gap:6px;align-items:center}
.future-destination-legend i{width:12px;height:5px;border-radius:99px;background:#aeb7c2}
.future-destination-legend i.is-b{background:var(--accent)}
.future-destination-list{display:grid}
.future-destination-row{padding:14px 18px;border-bottom:1px solid var(--line)}
.future-destination-row:last-child{border-bottom:0}
.future-destination-row>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.future-destination-row h3{margin:0;font-size:11px}
.future-destination-delta{min-width:34px;padding:3px 7px;border-radius:999px;text-align:center;background:#f1f3f5;color:var(--muted);font-size:8px;font-weight:950}
.future-destination-delta.is-up{background:#eaf7ef;color:#237a4b}
.future-destination-delta.is-down{background:#fff0f0;color:#a12727}

.future-destination-bars{display:grid;gap:5px;margin-bottom:10px}
.future-destination-bar{display:grid;grid-template-columns:48px 1fr;gap:8px;align-items:center}
.future-destination-bar>span{font-size:8px;color:var(--muted);font-weight:850}
.future-destination-bar>span b{color:var(--ink);font-size:9px}
.future-destination-bar>i{display:block;height:7px;border-radius:99px;background:#eef1f4;overflow:hidden}
.future-destination-bar>i>b{display:block;height:100%;min-width:0;border-radius:inherit;background:#aeb7c2}
.future-destination-bar.is-b>i>b{background:var(--accent)}
.future-destination-times{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.future-destination-times>div{min-width:0}
.future-destination-times>div>strong{display:block;margin-bottom:5px;color:var(--muted);font-size:7px;letter-spacing:.04em}
.future-destination-times>div>div{display:flex;gap:4px;flex-wrap:wrap}
.future-destination-times span{padding:3px 5px;border:1.5px solid var(--line);border-radius:6px;background:#fff;font-size:8px;font-weight:800}
.future-destination-times span.is-ic{border-color:#1757d8;background:#eaf1ff;color:#123b8f;box-shadow:inset 0 0 0 1px rgba(23,87,216,.08)}
.future-destination-times span.is-regional{border-color:#159947;background:#eaf8ef;color:#116b34;box-shadow:inset 0 0 0 1px rgba(21,153,71,.08)}
.future-destination-times span.is-other{border-color:#98a2b3;background:#f5f6f7;color:#475467}
.future-destination-legend .future-destination-train-kind{margin-left:4px}
.future-destination-legend .future-destination-train-kind i{width:14px;height:9px;border:1.5px solid #98a2b3;border-radius:3px;background:#f5f6f7}
.future-destination-legend .future-destination-train-kind i.is-ic{border-color:#1757d8;background:#eaf1ff}
.future-destination-legend .future-destination-train-kind i.is-regional{border-color:#159947;background:#eaf8ef}
.future-destination-times em{color:var(--muted);font-size:8px}
.future-destination-more{display:flex;width:100%;min-height:42px;align-items:center;justify-content:center;border:0;border-top:1px solid var(--line);background:#fbfcfd;color:var(--accent);font:inherit;font-size:8px;font-weight:950;cursor:pointer}
.future-destination-more:hover{background:#f2f7fb}
.future-destination-row[hidden]{display:none}

@media(max-width:720px){
  .future-destination-head{align-items:flex-start;flex-direction:column;gap:7px}
  .future-destination-head>p{max-width:none;text-align:left}
  .future-destination-totals{grid-template-columns:1fr 1fr}
  .future-destination-totals>div:last-child{grid-column:1/-1}
  .future-destination-times{grid-template-columns:1fr}
  .future-destination-row{padding:13px 14px}
  .future-destination-bar{grid-template-columns:42px 1fr}
  .future-destination-legend{align-items:flex-start;flex-direction:column;gap:5px}
}

.future-direction-switch{display:flex;gap:6px;margin:18px 0 8px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#f6f8fa;width:max-content;max-width:100%}
.future-direction-switch button{border:0;border-radius:8px;background:transparent;color:var(--muted);padding:8px 12px;font:inherit;font-size:8px;font-weight:950;cursor:pointer;white-space:nowrap}
.future-direction-switch button.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(16,24,40,.12)}
.future-through-search{display:grid;gap:6px;padding:0 18px 14px}
.future-through-search label{font-size:8px;font-weight:950}
.future-through-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
.future-through-search select{width:100%;min-height:42px;padding:0 38px 0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;font-size:9px;color:var(--ink);outline:none;cursor:pointer}
.future-through-search select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(30,102,168,.08)}
.future-through-search-row button{min-height:42px;padding:0 16px;border:0;border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-size:8px;font-weight:950;cursor:pointer}
.future-through-search-row button:hover{filter:brightness(.96)}
.future-through-search small{color:var(--muted);font-size:8px;line-height:1.5}
.future-through-empty{padding:18px;color:var(--muted);font-size:9px;text-align:center}
@media(max-width:720px){.future-direction-switch{width:100%;overflow:auto}.future-direction-switch button{flex:1}.future-through-search{padding:0 14px 12px}}

/* Station statistics R16 */
.station-stats-hero-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.station-stats-hero-actions a{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:8px;font-weight:900;text-decoration:none}
.station-stats-hero-actions a:hover{border-color:var(--accent);color:var(--accent)}
.station-stats-head{padding-bottom:18px}
.station-stats-date-form{display:flex;align-items:flex-end;gap:8px}
.station-stats-date-form label{display:grid;gap:5px}
.station-stats-date-form label span{font-size:7px;font-weight:900;color:var(--muted)}
.station-stats-date-form input{min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit;font-size:9px}
.station-stats-date-form button,.station-stats-direction-select button{min-height:40px;padding:0 14px;border:0;border-radius:9px;background:var(--accent);color:#fff;font:inherit;font-size:8px;font-weight:950;cursor:pointer}
.station-stats-method-note{margin:0 0 12px}

.station-stats-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.station-stats-kpis>div,.station-stats-secondary>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.station-stats-kpis span,.station-stats-secondary span{display:block;color:var(--muted);font-size:7px;font-weight:900;letter-spacing:.04em}
.station-stats-kpis strong{display:block;margin-top:5px;font-size:21px;line-height:1}
.station-stats-secondary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.station-stats-secondary strong{display:block;margin:4px 0 2px;font-size:13px}
.station-stats-secondary small{display:block;color:var(--muted);font-size:8px;line-height:1.45}
.station-stats-hourly{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 14px}
.station-stats-hour-row{display:grid;grid-template-columns:48px 1fr;gap:8px;align-items:center;padding:5px 0}
.station-stats-hour-row>strong{font-size:8px}
.station-stats-hour-bars{display:grid;gap:3px}

.station-stats-hour-bars>span{display:grid;grid-template-columns:14px 20px 1fr;gap:4px;align-items:center;color:var(--muted);font-size:7px;font-weight:800}
.station-stats-hour-bars>span>b{color:var(--ink);text-align:right}
.station-stats-hour-bars i{display:block;height:5px;border-radius:99px;background:#e9edf1;overflow:hidden}
.station-stats-hour-bars em{display:block;height:100%;border-radius:inherit;background:#aeb7c2}
.station-stats-hour-bars>span:first-child em{background:var(--accent)}
.station-stats-tabs{display:flex;gap:6px;margin-bottom:12px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#f6f8fa;width:max-content;max-width:100%}
.station-stats-tabs a{padding:8px 12px;border-radius:8px;color:var(--muted);font-size:8px;font-weight:950;text-decoration:none;white-space:nowrap}
.station-stats-tabs a.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(16,24,40,.12)}
.station-stats-direction-select{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin:0 0 10px}
.station-stats-direction-select label{display:grid;gap:5px}
.station-stats-direction-select label span{font-size:7px;font-weight:900;color:var(--muted)}
.station-stats-direction-select select{min-height:40px;width:100%;padding:0 38px 0 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit;font-size:9px}

.station-stats-legend{margin-bottom:0}
.station-stats-direction-list{margin:0;border-radius:0 0 16px 16px}
.station-stats-times{display:flex;gap:4px;flex-wrap:wrap}
.station-stats-times span{padding:3px 5px;border:1.5px solid var(--line);border-radius:6px;background:#fff;font-size:8px;font-weight:800}
.station-stats-times span.is-ic{border-color:#1757d8;background:#eaf1ff;color:#123b8f}
.station-stats-times span.is-regional{border-color:#159947;background:#eaf8ef;color:#116b34}
.station-stats-times span.is-other{border-color:#98a2b3;background:#f5f6f7;color:#475467}
@media(max-width:900px){.station-stats-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){
 .station-stats-hero-actions{justify-content:flex-start}
 .station-stats-date-form{width:100%}
 .station-stats-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .station-stats-secondary{grid-template-columns:1fr}
 .station-stats-hourly{grid-template-columns:1fr}
 .station-stats-tabs{width:100%;overflow:auto}
 .station-stats-tabs a{flex:1;text-align:center}
 .station-stats-direction-select{grid-template-columns:1fr}
}
/* Station statistics R17: rhythm charts */
.station-stats-hour-column{display:grid;align-content:start;gap:0}
.station-stats-global-chart-card{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.station-stats-chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);background:#fbfcfd}
.station-stats-chart-legend{display:flex;gap:12px;flex-wrap:wrap}
.station-stats-chart-legend span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:8px;font-weight:850}
.station-stats-chart-legend i{display:block;width:14px;height:5px;border-radius:99px}
.station-stats-chart-legend i.is-departure{background:#176fae}
.station-stats-chart-legend i.is-arrival{background:#aab5c2}
.station-stats-bin-switch{display:flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:9px;background:#f5f7f9}
.station-stats-bin-switch button{border:0;border-radius:6px;background:transparent;color:var(--muted);padding:5px 8px;font:inherit;font-size:7px;font-weight:900;cursor:pointer}
.station-stats-bin-switch button.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(16,24,40,.12)}
.station-stats-global-chart-scroll,.station-stats-flow-svg-scroll{overflow:hidden}
.station-stats-global-chart-scroll{padding:8px 10px 0}
.station-stats-global-chart-scroll svg,.station-stats-flow-svg-scroll svg{display:block;width:100%;max-width:100%;height:auto}
.station-stats-svg-grid{stroke:#e4e9ee;stroke-width:1}
.station-stats-svg-hour-grid{stroke:#eef2f5;stroke-width:1}
.station-stats-svg-y-label,.station-stats-svg-x-label{fill:#667085;font-size:8px;font-weight:750}
.station-stats-svg-departure{fill:#176fae}
.station-stats-svg-arrival{fill:#aab5c2}
.station-stats-chart-note{margin:0;padding:8px 14px 12px;color:var(--muted);font-size:8px;line-height:1.5}
.station-stats-flow-picker{margin:0 0 10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}
.station-stats-flow-picker>div:first-child{display:flex;justify-content:space-between;gap:14px;align-items:baseline;margin-bottom:8px}
.station-stats-flow-picker strong{font-size:9px}
.station-stats-flow-picker small{color:var(--muted);font-size:8px}
.station-stats-flow-picker-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
.station-stats-flow-picker-controls select{min-height:40px;width:100%;padding:0 36px 0 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit;font-size:9px}
.station-stats-flow-picker-controls button,.station-stats-chart-button{border:0;border-radius:8px;background:#eef5fb;color:#1769aa;font:inherit;font-size:7px;font-weight:950;cursor:pointer}
.station-stats-flow-picker-controls button{min-height:40px;padding:0 14px}
.station-stats-chart-button{padding:5px 8px;border:1px solid #c7dced;background:#f5faff}
.station-stats-chart-button:hover,.station-stats-flow-picker-controls button:hover{background:#e5f1f9}
.station-stats-chart-button:disabled,.station-stats-flow-picker-controls button:disabled{opacity:.55;cursor:wait}
.station-stats-direction-actions{display:flex;align-items:center;gap:6px}
.station-stats-flow-chart,.station-stats-flow-picker-chart{margin-top:11px;border-top:1px solid var(--line);padding-top:11px}
.station-stats-flow-picker-chart{margin-top:12px}
.station-stats-flow-chart-inner{border:1px solid var(--line);border-radius:12px;background:#fbfcfd;overflow:hidden}
.station-stats-flow-chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:11px 12px;border-bottom:1px solid var(--line);background:#fff}
.station-stats-flow-chart-head>div{display:flex;flex-direction:column;gap:2px}
.station-stats-flow-chart-head span{font-size:7px;font-weight:950;letter-spacing:.05em;color:#1769aa}
.station-stats-flow-chart-head strong{font-size:11px}
.station-stats-flow-chart-head small{font-size:8px;color:var(--muted)}
.station-stats-flow-filters{display:flex!important;flex-direction:row!important;align-items:center;gap:7px!important;flex-wrap:wrap;justify-content:flex-end}
.station-stats-flow-filter-option{display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;cursor:pointer}
.station-stats-flow-filter-option input{margin:0;accent-color:#1769aa}
.station-stats-flow-filter-option span{color:#475467!important;letter-spacing:0!important;text-transform:none}
.station-stats-flow-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:9px 12px}
.station-stats-flow-metrics>div{padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:#fff}
.station-stats-flow-metrics span{display:block;color:var(--muted);font-size:7px}
.station-stats-flow-metrics b{display:block;margin-top:2px;font-size:8px}
.station-stats-flow-svg-scroll{padding:2px 10px 0;background:#fff}
.station-stats-flow-axis{stroke:#7b8998;stroke-width:1.2}
.station-stats-chart-loading{padding:18px;text-align:center;color:var(--muted);font-size:9px}
@media(max-width:720px){
 .station-stats-chart-toolbar{align-items:flex-start;flex-direction:column}
 .station-stats-bin-switch{width:100%}
 .station-stats-bin-switch button{flex:1}
 .station-stats-flow-picker>div:first-child{align-items:flex-start;flex-direction:column;gap:3px}
 .station-stats-flow-picker-controls{grid-template-columns:1fr}
 .station-stats-flow-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .station-stats-direction-actions{flex-wrap:wrap;justify-content:flex-end}
}

.station-stats-flow-explanation{margin:0 0 10px;padding:7px 10px;border-left:3px solid #b9d7eb;background:#f7fbfe;color:var(--muted);font-size:8px;line-height:1.5}
.station-stats-flow-explanation strong{color:#1769aa}

.station-stats-flow-track{fill:#e9eef3}
.station-stats-flow-gap{fill:#fff0f0;stroke:#efc2c2;stroke-width:1}
.station-stats-flow-gap-label{fill:#a12727;font-size:8px;font-weight:850}
.station-stats-flow-marker{shape-rendering:geometricPrecision}
@media(max-width:720px){
 .station-stats-flow-chart-head{flex-direction:column}
 .station-stats-flow-filters{justify-content:flex-start}
}

.station-stats-global-filters{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.station-stats-global-filters label{display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#475467;font-size:7px;font-weight:850;cursor:pointer}
.station-stats-global-filters input{margin:0;accent-color:#1769aa}
@media(max-width:720px){.station-stats-global-filters{width:100%}}

.station-stats-flow-gap.is-max{stroke-width:1.35}
.station-stats-flow-gap-label.is-max{font-weight:950}

/* Future schedule R24: direct accessibility comparison */
.future-accessibility-compare{margin:18px 0 20px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.future-accessibility-head{margin:0;padding:18px 18px 12px}
.future-accessibility-head>p{max-width:560px;text-align:right}
.future-accessibility-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:0 18px 14px}
.future-accessibility-kpis>div{min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fafbfc}
.future-accessibility-kpis span{display:block;color:var(--muted);font-size:7px;font-weight:950;letter-spacing:.045em}
.future-accessibility-kpis strong{display:block;margin:4px 0 2px;font-size:20px;line-height:1}
.future-accessibility-kpis small{display:block;color:var(--muted);font-size:7.5px;line-height:1.4}
.future-accessibility-kpis .is-up strong{color:#237a4b}
.future-accessibility-kpis .is-down strong{color:#a12727}

.future-accessibility-balance{display:flex;gap:8px 18px;align-items:center;flex-wrap:wrap;padding:9px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafbfc;color:var(--muted);font-size:8px}
.future-accessibility-balance b{color:var(--ink)}
.future-accessibility-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px 18px 18px}
.future-accessibility-group{min-width:0;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.future-accessibility-group>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-bottom:1px solid var(--line);background:#fafbfc}
.future-accessibility-group>header span{font-size:7px;font-weight:950;letter-spacing:.04em}
.future-accessibility-group>header strong{min-width:27px;padding:3px 6px;border-radius:999px;background:#eef1f4;text-align:center;font-size:8px}
.future-accessibility-group.is-new>header strong,.future-accessibility-group.is-up>header strong{background:#eaf7ef;color:#237a4b}
.future-accessibility-group.is-lost>header strong,.future-accessibility-group.is-down>header strong{background:#fff0f0;color:#a12727}
.future-accessibility-list{display:grid}
.future-accessibility-list>a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:35px;padding:6px 10px;border-bottom:1px solid #edf0f2;color:var(--ink);font-size:8px;font-weight:800;text-decoration:none}
.future-accessibility-list>a:last-child{border-bottom:0}
.future-accessibility-list>a:hover{background:#f7fafc}

.future-accessibility-counts{display:flex;align-items:center;gap:5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.future-accessibility-counts>b{font-size:8px}
.future-accessibility-counts>i{color:var(--muted);font-style:normal}
.future-accessibility-counts>em{min-width:28px;padding:2px 5px;border-radius:999px;background:#f1f3f5;color:var(--muted);text-align:center;font-size:7px;font-style:normal;font-weight:950}
.future-accessibility-counts>em.is-up{background:#eaf7ef;color:#237a4b}
.future-accessibility-counts>em.is-down{background:#fff0f0;color:#a12727}
.future-accessibility-more,.future-accessibility-empty{margin:0;padding:8px 10px;border-top:1px solid var(--line);background:#fbfcfd;color:var(--muted);font-size:7.5px;line-height:1.45}
@media(max-width:900px){.future-accessibility-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){
 .future-accessibility-head{align-items:flex-start;flex-direction:column;gap:7px}
 .future-accessibility-head>p{max-width:none;text-align:left}
 .future-accessibility-kpis{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 14px 12px}
 .future-accessibility-groups{grid-template-columns:1fr;padding:12px 14px 14px}
 .future-accessibility-balance{padding:8px 14px}
}

/* Future schedule R25: trains behind new/lost direct stations */
.future-accessibility-main{display:grid;gap:4px;min-width:0}
.future-accessibility-station{font-size:8px;font-weight:900}
.future-accessibility-trains{display:flex;align-items:flex-start;gap:5px;min-width:0;color:var(--muted);font-size:7px;font-weight:700;line-height:1.35}
.future-accessibility-trains>small{flex:0 0 auto;padding-top:2px;color:var(--muted);font-size:7px;font-weight:800}
.future-accessibility-trains>span{display:flex;gap:4px;flex-wrap:wrap;min-width:0}
.future-accessibility-trains b{display:inline-flex;align-items:center;min-height:19px;padding:2px 5px;border:1px solid #cfd6de;border-radius:6px;background:#f6f7f8;color:#475467;font-size:7px;font-weight:900;white-space:nowrap}
.future-accessibility-trains b.is-ic{border-color:#1757d8;background:#eaf1ff;color:#123b8f}
.future-accessibility-trains b.is-regional{border-color:#159947;background:#eaf8ef;color:#116b34}
.future-accessibility-list>a{align-items:flex-start;padding-top:8px;padding-bottom:8px}
.future-accessibility-counts{padding-top:1px}
@media(max-width:720px){
 .future-accessibility-trains{display:grid;gap:3px}
 .future-accessibility-trains>small{padding-top:0}
}

/* Rail carrier presentation R26 */
.station-stats-times span.is-carrier,
.future-destination-times span.is-carrier{
  border-color:var(--carrier-border);background:var(--carrier-bg);color:var(--carrier-text)
}
.future-destination-train-kind.carrier-specific i,
.station-stats-global-filters label>i,
.station-stats-flow-filter-option>i{
  width:12px;height:8px;border:1.5px solid var(--carrier-border);border-radius:3px;background:var(--carrier-bg)
}
.station-stats-global-filters label,
.station-stats-flow-filter-option{
  border-color:color-mix(in srgb,var(--carrier-border) 45%,#d0d5dd);background:var(--carrier-bg);color:var(--carrier-text)
}
.station-stats-global-filters label span,
.station-stats-flow-filter-option span{color:var(--carrier-text)!important}

/* Carrier-specific filters R26 */
.future-carrier-filter{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:9px 18px;border-bottom:1px solid var(--line);background:#fbfcfd}
.future-carrier-filter label{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--carrier-border);border-radius:8px;background:var(--carrier-bg);color:var(--carrier-text);font-size:7px;font-weight:900;cursor:pointer}
.future-carrier-filter label input{margin:0;accent-color:var(--carrier-border)}
.future-carrier-filter label i{width:11px;height:8px;border:1.5px solid var(--carrier-border);border-radius:3px;background:var(--carrier-bg)}
.future-carrier-filter label span{color:var(--carrier-text)}
.future-accessibility-trains b.is-carrier{border-color:var(--carrier-border);background:var(--carrier-bg);color:var(--carrier-text)}
.station-stats-global-filters label>i,.station-stats-flow-filter-option>i{display:inline-block;flex:0 0 auto}
@media(max-width:720px){.future-carrier-filter{padding:8px 14px}}

.future-carrier-filter>small{color:var(--muted);font-size:7px;line-height:1.4}
.future-destination-delta b{font:inherit}

/* Future schedule R29: journey-time comparison */
.future-journey-compare{margin:18px 0 20px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.future-journey-head{margin:0;padding:18px 18px 12px}
.future-journey-head>p{max-width:590px;text-align:right}
.future-journey-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 18px 14px}
.future-journey-summary>div{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fafbfc}
.future-journey-summary span{display:block;color:var(--muted);font-size:7px;font-weight:950;letter-spacing:.045em}
.future-journey-summary strong{display:block;margin:4px 0 2px;font-size:20px;line-height:1}
.future-journey-summary small{display:block;color:var(--muted);font-size:7.5px;line-height:1.4}
.future-journey-summary .is-up strong{color:#237a4b}
.future-journey-summary .is-down strong{color:#a12727}
.future-journey-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 18px 14px}
.future-journey-group{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.future-journey-group>header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;border-bottom:1px solid var(--line);background:#fafbfc}
.future-journey-group>header span{font-size:7px;font-weight:950;letter-spacing:.04em}
.future-journey-group>header strong{min-width:27px;padding:3px 6px;border-radius:999px;background:#eef1f4;text-align:center;font-size:8px}
.future-journey-group.is-faster>header strong{background:#eaf7ef;color:#237a4b}
.future-journey-group.is-slower>header strong{background:#fff0f0;color:#a12727}
.future-journey-list{display:grid}
.future-journey-list>a{display:grid;gap:6px;padding:9px 10px;border-bottom:1px solid #edf0f2;color:var(--ink);text-decoration:none}
.future-journey-list>a:last-child{border-bottom:0}
.future-journey-list>a:hover{background:#f7fafc}
.future-journey-row-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.future-journey-row-head>strong{font-size:8px}
.future-journey-row-head>em{padding:2px 6px;border-radius:999px;background:#f1f3f5;color:var(--muted);font-size:7px;font-style:normal;font-weight:950;white-space:nowrap}
.future-journey-row-head>em.is-up{background:#eaf7ef;color:#237a4b}
.future-journey-row-head>em.is-down{background:#fff0f0;color:#a12727}
.future-journey-ab{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.future-journey-ab>div{padding:6px 7px;border:1px solid #e4e7ec;border-radius:8px;background:#fafbfc}
.future-journey-ab span{display:block;color:var(--muted);font-size:6.5px;font-weight:850}
.future-journey-ab b{display:block;margin-top:2px;font-size:7.5px;line-height:1.35}
.future-journey-list>a>small,.future-journey-more,.future-journey-note{color:var(--muted);font-size:7px;line-height:1.45}
.future-journey-more{margin:0;padding:8px 10px;border-top:1px solid var(--line);background:#fbfcfd}
.future-journey-note{margin:0;padding:9px 18px 13px;border-top:1px solid var(--line);background:#fbfcfd}
.future-journey-inline{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center;margin:9px 0 2px;padding:8px 9px;border:1px solid #e4e7ec;border-radius:10px;background:#fafbfc}
.future-journey-inline>div span{display:block;color:var(--muted);font-size:6.5px;font-weight:850}
.future-journey-inline>div b{display:block;margin-top:2px;font-size:7.5px}
.future-journey-inline i{font-style:normal}
.future-journey-inline>em{padding:3px 6px;border-radius:999px;background:#f1f3f5;color:var(--muted);font-size:7px;font-style:normal;font-weight:950;white-space:nowrap}
.future-journey-inline>em.is-up{background:#eaf7ef;color:#237a4b}
.future-journey-inline>em.is-down{background:#fff0f0;color:#a12727}
.future-destination-times span.is-carrier{display:inline-flex;align-items:center;gap:4px}
.future-destination-times span.is-carrier>b{font:inherit;font-weight:950}
.future-destination-times span.is-carrier>small{font-size:6.5px;font-weight:800;opacity:.78}
@media(max-width:820px){.future-journey-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.future-journey-groups{grid-template-columns:1fr}.future-journey-inline{grid-template-columns:1fr 1fr}.future-journey-inline>em{grid-column:1/-1;justify-self:start}}
@media(max-width:620px){.future-journey-head{align-items:flex-start;flex-direction:column;gap:7px}.future-journey-head>p{text-align:left;max-width:none}.future-journey-summary{padding:0 14px 12px}.future-journey-groups{padding:0 14px 12px}.future-journey-note{padding:9px 14px 12px}.future-journey-ab{grid-template-columns:1fr}}

/* Future schedule R31: trains behind min/max journey times */
.future-journey-extreme{display:flex!important;align-items:flex-start;gap:5px;margin-top:5px}
.future-journey-extreme>small{flex:0 0 44px;padding-top:3px;color:var(--muted);font-size:6.5px;font-weight:900;line-height:1.2}
.future-journey-extreme>span{display:flex!important;gap:4px;flex-wrap:wrap;min-width:0}
.future-journey-extreme i.is-carrier{display:inline-flex;align-items:center;min-height:19px;padding:2px 5px;border:1px solid var(--carrier-border);border-radius:6px;background:var(--carrier-bg);color:var(--carrier-text);font-size:6.7px;font-style:normal;font-weight:900;line-height:1.2;white-space:nowrap}
@media(max-width:620px){.future-journey-extreme{display:grid!important;gap:3px}.future-journey-extreme>small{padding-top:0}}

/* Future schedule R32: diversified journey-time ranking */
.future-journey-group>header strong{white-space:nowrap}
.future-journey-grouped-stations{display:grid;gap:2px;padding:6px 8px;border:1px dashed #d7dee8;border-radius:8px;background:#fbfcfe}
.future-journey-grouped-stations>strong{color:#344054;font-size:6.8px;font-weight:950}
.future-journey-grouped-stations>span{color:var(--muted);font-size:6.6px;line-height:1.4}

/* Future schedule R33: expandable full rankings */
.future-accessibility-list>a[hidden],
.future-journey-list>a[hidden]{display:none!important}
.future-accessibility-more,
.future-journey-more{display:flex;align-items:center;justify-content:center}
.future-accessibility-more button,
.future-journey-more button{appearance:none;border:1px solid #cfd8e5;border-radius:8px;background:#fff;color:#0d5f9e;padding:6px 10px;font:inherit;font-weight:950;cursor:pointer}
.future-accessibility-more button:hover,
.future-journey-more button:hover{background:#f2f7fb;border-color:#9fbdd5}

/* Future schedule R34: rhythm/takt comparison */
.future-rhythm-compare{margin:18px 0 20px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.future-rhythm-head{margin:0;padding:18px 18px 12px}
.future-rhythm-head>p{max-width:620px;text-align:right}
.future-rhythm-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 18px 14px}
.future-rhythm-summary>div{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fafbfc}
.future-rhythm-summary span{display:block;color:var(--muted);font-size:7px;font-weight:950;letter-spacing:.045em}
.future-rhythm-summary strong{display:block;margin:4px 0 2px;font-size:20px;line-height:1}
.future-rhythm-summary small{display:block;color:var(--muted);font-size:7.5px;line-height:1.4}
.future-rhythm-summary .is-up strong{color:#237a4b}
.future-rhythm-summary .is-down strong{color:#a12727}
.future-rhythm-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 18px 14px}
.future-rhythm-group{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.future-rhythm-group>header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;border-bottom:1px solid var(--line);background:#fafbfc}
.future-rhythm-group>header span{font-size:7px;font-weight:950;letter-spacing:.04em}
.future-rhythm-group>header strong{min-width:27px;padding:3px 6px;border-radius:999px;background:#eef1f4;text-align:center;font-size:8px;white-space:nowrap}
.future-rhythm-group.is-better>header strong{background:#eaf7ef;color:#237a4b}
.future-rhythm-group.is-worse>header strong{background:#fff0f0;color:#a12727}
.future-rhythm-list{display:grid}
.future-rhythm-list>a{display:grid;gap:7px;padding:10px;border-bottom:1px solid #edf0f2;color:var(--ink);text-decoration:none}
.future-rhythm-list>a:last-child{border-bottom:0}
.future-rhythm-list>a:hover{background:#f7fafc}
.future-rhythm-list>a[hidden]{display:none!important}

.future-rhythm-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.future-rhythm-row-head>strong{font-size:8px}
.future-rhythm-row-head>span{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.future-rhythm-row-head em{padding:2px 6px;border-radius:999px;background:#f1f3f5;color:var(--muted);font-size:6.8px;font-style:normal;font-weight:950;white-space:nowrap}
.future-rhythm-row-head em.is-up{background:#eaf7ef;color:#237a4b}
.future-rhythm-row-head em.is-down{background:#fff0f0;color:#a12727}
.future-rhythm-ab{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.future-rhythm-ab>div{padding:7px 8px;border:1px solid #e4e7ec;border-radius:8px;background:#fafbfc}
.future-rhythm-ab span{display:block;color:var(--muted);font-size:6.6px;font-weight:850}
.future-rhythm-ab b{display:block;margin-top:2px;font-size:7.5px;line-height:1.35}
.future-rhythm-ab small{display:block;margin-top:3px;color:var(--muted);font-size:6.5px;line-height:1.35}
.future-rhythm-window{display:flex;gap:8px 16px;align-items:center;flex-wrap:wrap;padding:6px 8px;border:1px dashed #d7dee8;border-radius:8px;background:#fbfcfe;color:var(--muted);font-size:6.8px}
.future-rhythm-window b{color:var(--ink);font-size:6.8px}
.future-rhythm-grouped-stations{display:grid;gap:2px;padding:6px 8px;border:1px dashed #d7dee8;border-radius:8px;background:#fbfcfe}
.future-rhythm-grouped-stations>strong{color:#344054;font-size:6.8px;font-weight:950}
.future-rhythm-grouped-stations>span{color:var(--muted);font-size:6.6px;line-height:1.4}
.future-rhythm-more{display:flex;align-items:center;justify-content:center;margin:0;padding:8px 10px;border-top:1px solid var(--line);background:#fbfcfd}
.future-rhythm-more button{appearance:none;border:1px solid #cfd8e5;border-radius:8px;background:#fff;color:#0d5f9e;padding:6px 10px;font-size:7px;font-weight:950;cursor:pointer}
.future-rhythm-more button:hover{background:#f2f7fb;border-color:#9fbdd5}
.future-rhythm-note{margin:0;padding:9px 18px 13px;border-top:1px solid var(--line);background:#fbfcfd;color:var(--muted);font-size:7px;line-height:1.45}

@media(max-width:820px){
 .future-rhythm-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .future-rhythm-groups{grid-template-columns:1fr}
}
@media(max-width:620px){
 .future-rhythm-head{align-items:flex-start;flex-direction:column;gap:7px}
 .future-rhythm-head>p{text-align:left;max-width:none}
 .future-rhythm-summary{padding:0 14px 12px}
 .future-rhythm-groups{padding:0 14px 12px}
 .future-rhythm-note{padding:9px 14px 12px}
 .future-rhythm-ab{grid-template-columns:1fr}
 .future-rhythm-row-head{display:grid}
 .future-rhythm-row-head>span{justify-content:flex-start}
}

/* Future schedule R35: result tabs */
[data-result-view-panel][hidden]{display:none!important}
.future-result-tabs{display:flex;gap:6px;margin:14px 0 16px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#f7f9fb;overflow-x:auto;scrollbar-width:thin}
.future-result-tabs button{appearance:none;flex:1 1 0;min-width:0;border:1px solid transparent;border-radius:8px;background:transparent;color:#536273;padding:9px 10px;font-size:7.4px;font-weight:950;letter-spacing:.035em;white-space:nowrap;cursor:pointer}
.future-result-tabs button:hover{background:#fff;color:#153f61}
.future-result-tabs button.is-active{border-color:#b9d0e2;background:#fff;color:#0d5f9e;box-shadow:0 1px 3px rgba(15,44,67,.06)}

.future-result-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 16px}
.future-result-overview article{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fff}
.future-result-overview span{display:block;color:var(--muted);font-size:6.8px;font-weight:950;letter-spacing:.045em}
.future-result-overview strong{display:block;margin:4px 0 3px;font-size:18px;line-height:1}
.future-result-overview small{display:block;color:var(--muted);font-size:7px;line-height:1.35}
.future-result-overview small.is-up{color:#237a4b;font-weight:900}
.future-result-overview small.is-down{color:#a12727;font-weight:900}
.future-result-overview small.is-flat{color:#667085;font-weight:900}

@media(max-width:820px){
 .future-result-tabs{margin-left:-2px;margin-right:-2px}
 .future-result-tabs button{flex:0 0 auto;min-width:118px}
 .future-result-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
 .future-result-tabs{padding:5px}
 .future-result-tabs button{min-width:106px;padding:8px 9px;font-size:7px}
 .future-result-overview{grid-template-columns:1fr 1fr}
}

/* Future schedule R36: carrier A→B comparison */
.future-carrier-compare{margin:16px 0 18px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.future-carrier-head{margin:0;padding:18px 18px 12px}
.future-carrier-head>p{max-width:650px;text-align:right}
.future-carrier-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 18px 14px}
.future-carrier-summary>div{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}
.future-carrier-summary span{display:block;color:var(--muted);font-size:6.8px;font-weight:950;letter-spacing:.04em}
.future-carrier-summary strong{display:block;margin:4px 0 2px;font-size:18px;line-height:1}
.future-carrier-summary small{display:block;color:var(--muted);font-size:7px}
.future-carrier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 18px 14px}
.future-carrier-card{border:1px solid var(--line);border-top:3px solid var(--carrier-border);border-radius:12px;background:#fff;overflow:hidden}
.future-carrier-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:11px 12px;border-bottom:1px solid #edf0f2;background:linear-gradient(180deg,var(--carrier-bg),#fff)}
.future-carrier-card>header>div{display:flex;align-items:center;gap:8px;min-width:0}
.future-carrier-card>header i{width:9px;height:9px;border-radius:50%;background:var(--carrier-border);flex:0 0 auto}
.future-carrier-card>header span{display:grid;gap:1px;min-width:0}
.future-carrier-card>header strong{font-size:8.2px;line-height:1.2}
.future-carrier-card>header small{color:var(--muted);font-size:6.7px}
.future-carrier-card>header em{padding:3px 6px;border-radius:999px;background:#f1f3f5;color:var(--muted);font-size:6.8px;font-style:normal;font-weight:950;white-space:nowrap}
.future-carrier-card>header em.is-up{background:#eaf7ef;color:#237a4b}
.future-carrier-card>header em.is-down{background:#fff0f0;color:#a12727}

.future-carrier-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px}
.future-carrier-metrics>div{padding:7px 8px;border:1px solid #e4e7ec;border-radius:8px;background:#fafbfc}
.future-carrier-metrics span{display:block;color:var(--muted);font-size:6.2px;font-weight:900;letter-spacing:.03em}
.future-carrier-metrics strong{display:block;margin:3px 0 2px;font-size:10px;line-height:1.1}
.future-carrier-metrics small{display:block;color:var(--muted);font-size:6.4px;line-height:1.3}
.future-carrier-metrics small.is-up{color:#237a4b;font-weight:900}
.future-carrier-metrics small.is-down{color:#a12727;font-weight:900}
.future-carrier-change-tags{display:flex;gap:4px;flex-wrap:wrap;padding:0 12px 10px}
.future-carrier-change-tags span{padding:3px 6px;border-radius:999px;background:#f1f3f5;color:#536273;font-size:6.4px;font-weight:850}
.future-carrier-change-tags span.is-added{background:#eaf7ef;color:#237a4b}
.future-carrier-change-tags span.is-removed{background:#fff0f0;color:#a12727}
.future-carrier-stations{margin:0 12px 11px;border:1px dashed #d7dee8;border-radius:8px;background:#fbfcfe}
.future-carrier-stations summary{padding:7px 8px;color:#344054;font-size:6.8px;font-weight:900;cursor:pointer}
.future-carrier-stations p{margin:0;padding:0 8px 7px;color:var(--muted);font-size:6.5px;line-height:1.45}
.future-carrier-stations p.is-added b{color:#237a4b}
.future-carrier-stations p.is-removed b{color:#a12727}
.future-carrier-note{margin:0;padding:9px 18px 13px;border-top:1px solid var(--line);background:#fbfcfd;color:var(--muted);font-size:7px;line-height:1.45}

@media(max-width:820px){
 .future-carrier-grid{grid-template-columns:1fr}
 .future-carrier-head{align-items:flex-start;flex-direction:column;gap:7px}
 .future-carrier-head>p{text-align:left;max-width:none}
}
@media(max-width:620px){
 .future-carrier-summary{grid-template-columns:1fr 1fr;padding:0 14px 12px}
 .future-carrier-summary>div:last-child{grid-column:1/-1}
 .future-carrier-grid{padding:0 14px 12px}
 .future-carrier-metrics{grid-template-columns:1fr}
 .future-carrier-note{padding:9px 14px 12px}
}

/* Future schedule R37: custom B-date change calendar */
.future-compare-form{position:relative;overflow:visible}
.future-date-b-field{position:relative}
.future-change-calendar-toggle{margin-top:5px;align-self:flex-start;border:1px solid #b9d0e2;border-radius:7px;background:#f7fbfe;color:#0d5f9e;padding:4px 7px;font-size:6.8px;font-weight:950;cursor:pointer}
.future-change-calendar-toggle:hover,.future-change-calendar-toggle[aria-expanded="true"]{background:#eaf4fb;border-color:#89b5d5}
.future-change-calendar-toggle.is-selected-change{background:#eaf7ef;border-color:#8fc6a7;color:#237a4b}
.future-change-calendar{position:absolute;z-index:40;right:0;top:calc(100% + 8px);width:min(350px,calc(100vw - 28px));padding:10px;border:1px solid #bdcad6;border-radius:12px;background:#fff;box-shadow:0 16px 40px rgba(15,44,67,.18)}
.future-change-calendar[hidden]{display:none!important}
.future-change-calendar-head{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;gap:8px;margin-bottom:8px}
.future-change-calendar-head strong{text-align:center;font-size:8.5px;text-transform:uppercase;letter-spacing:.04em}
.future-change-calendar-head button{height:30px;border:1px solid #d7dee8;border-radius:7px;background:#f8fafc;color:#344054;font-size:18px;line-height:1;cursor:pointer}
.future-change-calendar-head button:disabled{opacity:.25;cursor:default}

.future-change-calendar-weekdays,.future-change-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.future-change-calendar-weekdays{margin-bottom:4px}
.future-change-calendar-weekdays span{text-align:center;color:var(--muted);font-size:6px;font-weight:950}
.future-change-calendar-grid button{position:relative;min-height:34px;border:1px solid transparent;border-radius:7px;background:#f8fafc;color:#344054;font-size:7.5px;font-weight:850;cursor:pointer}
.future-change-calendar-grid button:hover:not(:disabled){border-color:#a9bfd0;background:#f1f7fb}
.future-change-calendar-grid button.is-other-month{opacity:.38}
.future-change-calendar-grid button:disabled{opacity:.28;cursor:not-allowed;text-decoration:line-through}
.future-change-calendar-grid button.is-change{border:2px solid #0d5f9e;background:#eef7fd;color:#0d5f9e;font-weight:950}
.future-change-calendar-grid button.is-change::after{content:"";position:absolute;right:4px;top:4px;width:5px;height:5px;border-radius:50%;background:#0d5f9e}
.future-change-calendar-grid button.is-selected{background:#153f61;color:#fff;border-color:#153f61;box-shadow:0 0 0 2px rgba(21,63,97,.14)}
.future-change-calendar-grid button.is-selected.is-change{box-shadow:0 0 0 2px #fff,0 0 0 4px #0d5f9e}
.future-change-calendar-grid button.is-selected.is-change::after{background:#fff}
.future-change-calendar-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:9px;padding-top:8px;border-top:1px solid #edf0f2;color:var(--muted);font-size:6.5px}
.future-change-calendar-legend span{display:flex;align-items:center;gap:5px}
.future-change-calendar-legend i{width:12px;height:12px;border-radius:4px;display:inline-block}
.future-change-calendar-legend i.is-change{border:2px solid #0d5f9e;background:#eef7fd}
.future-change-calendar-legend i.is-selected{background:#153f61}

.future-change-calendar>p{margin:7px 0 0;color:var(--muted);font-size:6.5px;line-height:1.4}
.future-change-calendar>p strong{color:#344054}
@media(max-width:820px){
 .future-change-calendar{right:0;top:calc(100% + 6px)}
}
@media(max-width:620px){
 .future-change-calendar{position:fixed;left:14px;right:14px;top:auto;bottom:14px;width:auto;max-height:calc(100vh - 28px);overflow:auto}
 .future-change-calendar-grid button{min-height:38px}
}

.future-change-calendar-empty{display:block;min-height:34px}
@media(max-width:620px){.future-change-calendar-empty{min-height:38px}}

/* R37 specificity reset inside hero search form */
.future-compare-form .future-change-calendar-toggle{height:auto;width:auto;grid-column:auto;margin-top:5px;border:1px solid #b9d0e2;border-radius:7px;background:#f7fbfe;color:#0d5f9e;padding:4px 7px;font-size:6.8px;font-weight:950}
.future-compare-form .future-change-calendar-toggle:hover,.future-compare-form .future-change-calendar-toggle[aria-expanded="true"]{background:#eaf4fb;color:#0d5f9e}
.future-compare-form .future-change-calendar-toggle.is-selected-change{background:#eaf7ef;border-color:#8fc6a7;color:#237a4b}
.future-compare-form .future-change-calendar-head button{width:auto;grid-column:auto;height:30px;padding:0;border:1px solid #d7dee8;border-radius:7px;background:#f8fafc;color:#344054;font-size:18px}
.future-compare-form .future-change-calendar-grid button{width:auto;grid-column:auto;height:auto;min-height:34px;padding:0;border:1px solid transparent;border-radius:7px;background:#f8fafc;color:#344054;font-size:7.5px}
.future-compare-form .future-change-calendar-grid button:hover:not(:disabled){background:#f1f7fb;color:#344054}
.future-compare-form .future-change-calendar-grid button.is-change{border:2px solid #0d5f9e;background:#eef7fd;color:#0d5f9e}
.future-compare-form .future-change-calendar-grid button.is-selected{background:#153f61;color:#fff;border-color:#153f61}
@media(max-width:620px){.future-compare-form .future-change-calendar-grid button{width:auto;min-height:38px}.future-compare-form .future-change-calendar-head button,.future-compare-form .future-change-calendar-toggle{width:auto}}

/* Future schedule R38: carrier choice / competition */
.future-carrier-choice{margin:2px 18px 14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}
.future-carrier-choice-head{margin:0 0 10px;padding:0}
.future-carrier-choice-head h3{margin:3px 0 0;font-size:15px}
.future-carrier-choice-head>p{max-width:620px;text-align:right}
.future-carrier-choice-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:10px}
.future-carrier-choice-kpis>div{padding:9px 10px;border:1px solid #e4e7ec;border-radius:9px;background:#fff}
.future-carrier-choice-kpis span{display:block;color:var(--muted);font-size:6.3px;font-weight:950;letter-spacing:.035em}
.future-carrier-choice-kpis strong{display:block;margin:3px 0 2px;font-size:15px;line-height:1}
.future-carrier-choice-kpis small{display:block;color:var(--muted);font-size:6.4px;line-height:1.35}
.future-carrier-choice-kpis .is-up strong{color:#237a4b}
.future-carrier-choice-kpis .is-down strong{color:#a12727}
.future-carrier-choice-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}

.future-carrier-choice-group{border:1px solid #dfe5eb;border-radius:9px;background:#fff;overflow:hidden}
.future-carrier-choice-group>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;background:#f8fafc;color:#344054;font-size:6.8px;font-weight:950;cursor:pointer}
.future-carrier-choice-group>summary b{min-width:22px;padding:2px 5px;border-radius:999px;background:#eef1f4;text-align:center}
.future-carrier-choice-group.is-up>summary b{background:#eaf7ef;color:#237a4b}
.future-carrier-choice-group.is-down>summary b{background:#fff0f0;color:#a12727}
.future-carrier-choice-group>div{display:grid}
.future-carrier-choice-group article{padding:8px 9px;border-top:1px solid #edf0f2}
.future-carrier-choice-group article header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.future-carrier-choice-group article header strong{font-size:7.5px}
.future-carrier-choice-group article header em{color:var(--muted);font-size:6.5px;font-style:normal;font-weight:850;white-space:nowrap}
.future-carrier-choice-side{display:flex;align-items:center;gap:6px;margin-top:3px}
.future-carrier-choice-side>span{width:12px;color:var(--muted);font-size:6px;font-weight:950}
.future-carrier-choice-side>div{display:flex;gap:4px;flex-wrap:wrap}
.future-carrier-choice-side i{padding:2px 5px;border:1px solid var(--carrier-border);border-radius:5px;background:var(--carrier-bg);color:var(--carrier-text);font-size:6.2px;font-style:normal;font-weight:950}
.future-carrier-choice-empty{margin:0;padding:9px;color:var(--muted);font-size:6.5px}

@media(max-width:820px){
 .future-carrier-choice-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .future-carrier-choice-groups{grid-template-columns:1fr}
 .future-carrier-choice-head{align-items:flex-start;flex-direction:column;gap:6px}
 .future-carrier-choice-head>p{text-align:left;max-width:none}
}
@media(max-width:620px){
 .future-carrier-choice{margin:2px 14px 12px;padding:10px}
 .future-carrier-choice-kpis{grid-template-columns:1fr 1fr}
}

/* Future schedule R39: hourly departure profile A→B */
.future-hourly-compare{margin:16px 0 18px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.future-hourly-head{margin:0;padding:18px 18px 12px}
.future-hourly-head>p{max-width:650px;text-align:right}
.future-hourly-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 18px 12px}
.future-hourly-summary>div{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}
.future-hourly-summary span{display:block;color:var(--muted);font-size:6.5px;font-weight:950;letter-spacing:.04em}
.future-hourly-summary strong{display:block;margin:3px 0 2px;font-size:16px;line-height:1}
.future-hourly-summary small{display:block;color:var(--muted);font-size:6.6px;line-height:1.3}
.future-hourly-summary .is-up strong,.future-hourly-summary small.is-up{color:#237a4b}
.future-hourly-summary .is-down strong,.future-hourly-summary small.is-down{color:#a12727}

.future-hourly-extremes{display:flex;gap:8px;flex-wrap:wrap;padding:0 18px 12px}
.future-hourly-extremes span{padding:6px 8px;border:1px solid #e4e7ec;border-radius:8px;background:#fafbfc;color:#536273;font-size:6.7px}
.future-hourly-extremes span.is-up{border-color:#cce5d6;background:#f2fbf5;color:#237a4b}
.future-hourly-extremes span.is-down{border-color:#f0cccc;background:#fff6f6;color:#a12727}
.future-hourly-extremes b{font-weight:950}
.future-hourly-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;padding:0 18px 14px}
.future-hourly-cell{min-width:0;padding:7px;border:1px solid #e4e7ec;border-radius:9px;background:#fbfcfd}
.future-hourly-cell.is-up{border-color:#cce5d6;background:#f7fcf9}
.future-hourly-cell.is-down{border-color:#f0cccc;background:#fffafa}
.future-hourly-cell.is-mix{border-color:#d9d0ef;background:#fbf9ff}
.future-hourly-cell header{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:6px}
.future-hourly-cell header strong{font-size:6.2px;white-space:nowrap}
.future-hourly-cell header em{padding:1px 4px;border-radius:999px;background:#eef1f4;color:#667085;font-size:6.2px;font-style:normal;font-weight:950}
.future-hourly-cell.is-up header em{background:#eaf7ef;color:#237a4b}
.future-hourly-cell.is-down header em{background:#fff0f0;color:#a12727}
.future-hourly-cell.is-mix header em{background:#f1ecfb;color:#6941c6}

.future-hourly-bars{display:grid;gap:4px}
.future-hourly-bars>div{display:grid;grid-template-columns:9px minmax(0,1fr) 14px;gap:4px;align-items:center}
.future-hourly-bars span{color:var(--muted);font-size:5.8px;font-weight:950}
.future-hourly-bars i{display:block;height:5px;border-radius:999px;background:#e8edf2;overflow:hidden}
.future-hourly-bars i b{display:block;height:100%;border-radius:inherit;background:#7d8995}
.future-hourly-bars>div:nth-child(2) i b{background:#1769aa}
.future-hourly-bars strong{text-align:right;font-size:6.2px}
.future-hourly-carriers{display:flex;gap:3px;flex-wrap:wrap;margin-top:6px}
.future-hourly-carriers span{padding:2px 4px;border:1px solid var(--carrier-border);border-radius:5px;background:var(--carrier-bg);color:var(--carrier-text);font-size:5.8px;font-weight:950;white-space:nowrap}
.future-hourly-note{margin:0;padding:9px 18px 13px;border-top:1px solid var(--line);background:#fbfcfd;color:var(--muted);font-size:7px;line-height:1.45}

@media(max-width:1100px){
 .future-hourly-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media(max-width:820px){
 .future-hourly-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .future-hourly-head{align-items:flex-start;flex-direction:column;gap:7px}
 .future-hourly-head>p{text-align:left;max-width:none}
}
@media(max-width:620px){
 .future-hourly-summary{padding:0 14px 10px}
 .future-hourly-extremes{padding:0 14px 10px}
 .future-hourly-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:0 14px 12px}
 .future-hourly-note{padding:9px 14px 12px}
}

/* Station statistics R40: leave later, arrive earlier */
.station-faster-alternatives{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.station-alt-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.station-alt-summary>div{padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff}
.station-alt-summary span{display:block;color:var(--muted);font-size:6.5px;font-weight:950;letter-spacing:.04em}
.station-alt-summary strong{display:block;margin:3px 0 2px;font-size:17px;line-height:1}
.station-alt-summary small{display:block;color:var(--muted);font-size:6.6px;line-height:1.35}
.station-alt-list{display:grid;gap:8px}
.station-alt-group{border:1px solid #dfe5eb;border-radius:11px;background:#fff;overflow:hidden}
.station-alt-group[hidden]{display:none!important}
.station-alt-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;background:#fafbfc;cursor:pointer}

.station-alt-trains{display:flex;align-items:center;gap:7px;min-width:0}
.station-alt-trains>i{color:#98a2b3;font-size:12px;font-style:normal}
.station-alt-trains .is-carrier{display:grid;gap:1px;min-width:0;padding:4px 6px;border:1px solid var(--carrier-border);border-radius:7px;background:var(--carrier-bg);color:var(--carrier-text)}
.station-alt-trains .is-carrier b{font-size:7.2px;line-height:1.2}
.station-alt-trains .is-carrier small{font-size:6.5px;font-weight:850;opacity:.78}
.station-alt-group-metrics{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.station-alt-group-metrics em{padding:3px 6px;border-radius:999px;background:#eef1f4;color:#536273;font-size:6.5px;font-style:normal;font-weight:900;white-space:nowrap}
.station-alt-group-metrics em.is-good{background:#eaf7ef;color:#237a4b}
.station-alt-targets{display:grid}
.station-alt-targets article{padding:10px 11px;border-top:1px solid #edf0f2}
.station-alt-targets article>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.station-alt-targets article>header strong{font-size:8px}
.station-alt-targets article>header span{padding:2px 5px;border-radius:999px;font-size:6.1px;font-weight:950;white-space:nowrap}
.station-alt-targets article>header span.is-same-route{background:#edf7f0;color:#237a4b}
.station-alt-targets article>header span.is-different-route{background:#fff4e5;color:#a15c00}

.station-alt-arrivals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.station-alt-arrivals>div{padding:7px 8px;border:1px solid #e4e7ec;border-radius:8px;background:#fafbfc}
.station-alt-arrivals span{display:block;color:var(--muted);font-size:6.2px;font-weight:900;letter-spacing:.03em}
.station-alt-arrivals b{display:block;margin:3px 0 2px;font-size:7.2px;line-height:1.3}
.station-alt-arrivals small{display:block;color:var(--muted);font-size:6.4px;line-height:1.35}
.station-alt-arrivals .station-alt-benefit{border-color:#cce5d6;background:#f4fbf6}
.station-alt-arrivals .station-alt-benefit b{color:#237a4b}
.station-alt-more{display:flex;justify-content:center;margin-top:10px}
.station-alt-more button{appearance:none;border:1px solid #b9d0e2;border-radius:8px;background:#fff;color:#0d5f9e;padding:6px 10px;font-size:6.8px;font-weight:950;cursor:pointer}
.station-alt-more button:hover{background:#f2f7fb}
.station-alt-note{margin:10px 0 0;padding:9px 10px;border:1px dashed #d7dee8;border-radius:8px;background:#fbfcfd;color:var(--muted);font-size:6.7px;line-height:1.45}

@media(max-width:820px){
 .station-alt-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .station-alt-group>summary{align-items:flex-start;flex-direction:column}
 .station-alt-group-metrics{justify-content:flex-start}
 .station-alt-arrivals{grid-template-columns:1fr}
}
@media(max-width:560px){
 .station-alt-summary{grid-template-columns:1fr 1fr}
 .station-alt-trains{align-items:flex-start;flex-direction:column}
 .station-alt-trains>i{transform:rotate(90deg);margin-left:10px}
 .station-alt-trains .is-carrier{width:100%}
}

/* R40b: clearer alternative effect summary */
.station-alt-arrivals .station-alt-benefit b{margin:2px 0;font-size:7px}
.station-alt-arrivals .station-alt-benefit b:first-of-type{margin-top:4px}
.station-alt-arrivals .station-alt-benefit small{margin-top:4px}

/* Station statistics R41: main result tabs */
[data-station-view-panel][hidden]{display:none!important}
.station-stats-view-tabs{display:flex;gap:6px;margin:14px 0 16px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#f7f9fb;overflow-x:auto;scrollbar-width:thin}
.station-stats-view-tabs button{appearance:none;flex:1 1 0;min-width:0;border:1px solid transparent;border-radius:8px;background:transparent;color:#536273;padding:9px 10px;font-size:7.4px;font-weight:950;letter-spacing:.035em;white-space:nowrap;cursor:pointer}
.station-stats-view-tabs button:hover{background:#fff;color:#153f61}
.station-stats-view-tabs button.is-active{border-color:#b9d0e2;background:#fff;color:#0d5f9e;box-shadow:0 1px 3px rgba(15,44,67,.06)}

@media(max-width:820px){
 .station-stats-view-tabs{margin-left:-2px;margin-right:-2px}
 .station-stats-view-tabs button{flex:0 0 auto;min-width:120px}
}
@media(max-width:520px){
 .station-stats-view-tabs{padding:5px}
 .station-stats-view-tabs button{min-width:110px;padding:8px 9px;font-size:7px}
}

/* R44 — journey reliability and transfer analytics */
.journey-analytics-hero .subhero-grid{grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr)}
.journey-analytics-range{padding:15px 16px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.07)}
.journey-analytics-range span{display:block;font-size:7px;font-weight:950;letter-spacing:.08em;opacity:.7}
.journey-analytics-range strong{display:block;margin:5px 0 3px;font-size:14px}
.journey-analytics-range small{display:block;font-size:7px;line-height:1.45;opacity:.72}
.journey-analytics-tabs{display:flex;gap:6px;margin-bottom:14px;padding:5px;border:1px solid var(--line);border-radius:12px;background:#f7f9fb;width:max-content;max-width:100%}
.journey-analytics-tabs a{padding:9px 13px;border-radius:8px;color:var(--muted);font-size:7.5px;font-weight:950;text-decoration:none;white-space:nowrap}
.journey-analytics-tabs a.is-active{background:#fff;color:#0d5f9e;box-shadow:0 1px 4px rgba(16,24,40,.1)}

.journey-analytics-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(170px,.7fr) auto;gap:8px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.journey-analytics-form.is-transfer{grid-template-columns:repeat(3,minmax(150px,1fr)) minmax(135px,.55fr) minmax(170px,.7fr) auto}
.journey-analytics-form label{display:grid;gap:5px}
.journey-analytics-form label>span{font-size:6.7px;font-weight:950;color:var(--muted);letter-spacing:.045em}
.journey-analytics-form input,.journey-analytics-form select{width:100%;min-height:40px;padding:0 10px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:8.5px;outline:none}
.journey-analytics-form input:focus,.journey-analytics-form select:focus{border-color:#8bb8dc;box-shadow:0 0 0 3px rgba(23,105,170,.09)}
.journey-analytics-form label small{color:var(--muted);font-size:6.2px;line-height:1.35}
.journey-analytics-form>button{min-height:40px;padding:0 13px;border:0;border-radius:9px;background:var(--navy);color:#fff;font:inherit;font-size:7.2px;font-weight:950;cursor:pointer;white-space:nowrap}
.journey-station-field{position:relative}
.journey-station-suggest-list{z-index:80}
.journey-station-suggest-item{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit}

.journey-analytics-method{margin:10px 0 0}
.journey-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:14px}
.journey-summary-grid.is-transfer{grid-template-columns:repeat(4,minmax(0,1fr))}
.journey-summary-grid>div{padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff}
.journey-summary-grid span{display:block;color:var(--muted);font-size:6.2px;font-weight:950;letter-spacing:.035em}
.journey-summary-grid strong{display:block;margin:4px 0 2px;font-size:15px;line-height:1}
.journey-summary-grid small{display:block;color:var(--muted);font-size:6.3px;line-height:1.35}
.journey-reliability-list,.journey-transfer-list{display:grid;gap:8px}
.journey-reliability-row,.journey-transfer-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
[data-journey-extra][hidden]{display:none!important}
.journey-reliability-row>header,.journey-transfer-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border-bottom:1px solid #edf0f2;background:#fbfcfd}

.journey-train-badge{display:flex;align-items:center;gap:7px;min-width:0}
.journey-train-badge>i{width:9px;height:9px;border-radius:50%;background:var(--carrier-border);flex:0 0 auto}
.journey-train-badge>span{display:grid;gap:1px;min-width:0}
.journey-train-badge strong{font-size:8px}
.journey-train-badge small{color:var(--muted);font-size:6.4px}
.journey-sample-badge{padding:3px 6px;border-radius:999px;font-size:6.3px;font-weight:950;white-space:nowrap}
.journey-sample-badge.is-strong{background:#eaf7ef;color:#237a4b}
.journey-sample-badge.is-medium{background:#fff5dc;color:#8a5b00}
.journey-sample-badge.is-low{background:#fff0f0;color:#a12727}
.journey-reliability-metrics,.journey-transfer-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px 11px}
.journey-reliability-metrics>div,.journey-transfer-metrics>div{padding:7px 8px;border:1px solid #e4e7ec;border-radius:8px;background:#fafbfc}
.journey-reliability-metrics span,.journey-transfer-metrics span{display:block;color:var(--muted);font-size:5.9px;font-weight:900;letter-spacing:.025em}
.journey-reliability-metrics b,.journey-transfer-metrics b{display:block;margin-top:3px;font-size:7.4px}
.journey-reliability-metrics small,.journey-transfer-metrics small{display:block;margin-top:2px;color:var(--muted);font-size:6px;line-height:1.3}
.journey-reliability-metrics .is-good,.journey-transfer-metrics .is-good{color:#237a4b}
.journey-reliability-metrics .is-bad,.journey-transfer-metrics .is-bad{color:#a12727}

.journey-recent{margin:0 11px 10px;border:1px dashed #d7dee8;border-radius:8px;background:#fbfcfd}
.journey-recent summary{padding:7px 8px;color:#536273;font-size:6.5px;font-weight:900;cursor:pointer}
.journey-recent>div{display:flex;gap:4px;flex-wrap:wrap;padding:0 8px 8px}
.journey-recent>div span{padding:3px 5px;border-radius:6px;background:#eef1f4;color:#536273;font-size:6px}
.journey-recent>div span.is-good{background:#eaf7ef;color:#237a4b}
.journey-recent>div span.is-bad{background:#fff0f0;color:#a12727}
.journey-recent b{margin-right:3px}
.journey-more{display:flex;justify-content:center;margin-top:11px}
.journey-more button{border:1px solid #b9d0e2;border-radius:8px;background:#fff;color:#0d5f9e;padding:7px 11px;font:inherit;font-size:6.8px;font-weight:950;cursor:pointer}
.journey-transfer-trains{display:flex;align-items:center;gap:6px;min-width:0}
.journey-transfer-trains>span{display:grid;gap:1px;padding:4px 6px;border:1px solid var(--carrier-border);border-radius:7px;background:var(--carrier-bg);color:var(--carrier-text)}
.journey-transfer-trains b{font-size:7.3px}
.journey-transfer-trains small{font-size:6.2px;opacity:.75}
.journey-transfer-trains>i{color:#98a2b3;font-style:normal}

.journey-transfer-success{display:grid;gap:1px;padding:5px 8px;border-radius:8px;text-align:right;font-size:11px;line-height:1}
.journey-transfer-success small{font-size:5.8px;font-weight:850}
.journey-transfer-success.is-good{background:#eaf7ef;color:#237a4b}
.journey-transfer-success.is-warn{background:#fff5dc;color:#8a5b00}
.journey-transfer-success.is-bad{background:#fff0f0;color:#a12727}
.journey-transfer-success.is-unknown{background:#eef1f4;color:#667085}
.journey-transfer-disclaimer{margin-top:12px}
@media(max-width:1100px){
 .journey-analytics-form.is-transfer{grid-template-columns:repeat(3,minmax(0,1fr))}
 .journey-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:820px){
 .journey-analytics-hero .subhero-grid{grid-template-columns:1fr}
 .journey-analytics-form,.journey-analytics-form.is-transfer{grid-template-columns:1fr 1fr}
 .journey-summary-grid,.journey-summary-grid.is-transfer{grid-template-columns:repeat(2,minmax(0,1fr))}
 .journey-reliability-metrics,.journey-transfer-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:560px){
 .journey-analytics-tabs{width:100%;overflow:auto}
 .journey-analytics-tabs a{flex:0 0 auto}
 .journey-analytics-form,.journey-analytics-form.is-transfer{grid-template-columns:1fr}
 .journey-summary-grid,.journey-summary-grid.is-transfer{grid-template-columns:1fr 1fr}
 .journey-reliability-row>header,.journey-transfer-card>header{align-items:flex-start;flex-direction:column}
 .journey-transfer-trains{align-items:flex-start;flex-direction:column;width:100%}
 .journey-transfer-trains>i{transform:rotate(90deg);margin-left:10px}
 .journey-transfer-trains>span{width:100%}
 .journey-transfer-success{align-self:flex-start;text-align:left}
 .journey-reliability-metrics,.journey-transfer-metrics{grid-template-columns:1fr}
}

/* R44 journey analytics entry points */
.history-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.history-feature-grid .history-locked-card{height:100%}
.history-feature-grid .history-locked-card.is-analytics{border-top:3px solid #7c3aed}
.history-feature-grid .history-locked-card.is-comparison{border-top:3px solid #2f7d62}
@media(max-width:860px){.history-feature-grid{grid-template-columns:1fr}}

/* R45 — corridor recovery / loss analytics */
.journey-corridor-groups{display:grid;gap:14px}
.journey-corridor-group{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.journey-corridor-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e8edf2;background:#f8fafc}
.journey-corridor-group-head>div{display:grid;gap:3px}
.journey-corridor-group-head>div>span{color:var(--accent);font-size:6.3px;font-weight:950;letter-spacing:.06em}
.journey-corridor-group-head>div>strong{font-size:8px}
.journey-corridor-group-head details{max-width:55%;text-align:right}
.journey-corridor-group-head summary{color:#536273;font-size:6.5px;font-weight:900;cursor:pointer}
.journey-corridor-group-head p{margin:5px 0 0;color:var(--muted);font-size:6.2px;line-height:1.45}
.journey-corridor-list{display:grid;gap:0}
.journey-corridor-card{border-bottom:1px solid #edf0f2;background:#fff}
.journey-corridor-card:last-child{border-bottom:0}
.journey-corridor-card[hidden]{display:none!important}

.journey-corridor-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#fff}
.journey-corridor-net{display:grid;gap:1px;padding:5px 8px;border-radius:8px;text-align:right;font-size:8px}
.journey-corridor-net small{font-size:5.8px;font-weight:800}
.journey-corridor-net.is-good{background:#eaf7ef;color:#237a4b}
.journey-corridor-net.is-bad{background:#fff0f0;color:#a12727}
.journey-corridor-net.is-neutral,.journey-corridor-net.is-unknown{background:#eef1f4;color:#667085}
.journey-corridor-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:0 12px 10px}
.journey-corridor-metrics>div{padding:7px 8px;border:1px solid #e4e7ec;border-radius:8px;background:#fafbfc}
.journey-corridor-metrics span{display:block;color:var(--muted);font-size:5.9px;font-weight:900;letter-spacing:.025em}
.journey-corridor-metrics b{display:block;margin-top:3px;font-size:7.5px}
.journey-corridor-metrics small{display:block;margin-top:2px;color:var(--muted);font-size:6px}

.journey-corridor-effects{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:0 12px 10px}
.journey-corridor-effects>div{padding:8px;border:1px solid #dfe5eb;border-radius:8px;background:#fbfcfd}
.journey-corridor-effects span{display:block;color:var(--muted);font-size:5.7px;font-weight:950;letter-spacing:.025em}
.journey-corridor-effects b{display:block;margin:4px 0 3px;font-size:6.9px;line-height:1.3}
.journey-corridor-effects em{display:block;font-size:6.5px;font-style:normal;font-weight:950}
.journey-corridor-effects em.is-good{color:#237a4b}
.journey-corridor-effects em.is-bad{color:#a12727}
.journey-corridor-effects em.is-neutral,.journey-corridor-effects em.is-unknown{color:#667085}
.journey-corridor-effects small{display:block;margin-top:3px;color:var(--muted);font-size:5.9px;line-height:1.35}
.journey-corridor-full{margin:0 12px 11px;border:1px dashed #d7dee8;border-radius:8px;background:#fbfcfd}
.journey-corridor-full>summary{padding:7px 8px;color:#536273;font-size:6.5px;font-weight:900;cursor:pointer}

.journey-corridor-full-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 8px 8px}
.journey-corridor-full-grid>div{display:grid;align-content:start;gap:4px}
.journey-corridor-full-grid>div>strong{color:#344054;font-size:6.2px;letter-spacing:.05em}
.journey-corridor-full-grid span{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 7px;align-items:center;padding:5px 6px;border:1px solid #e7ebef;border-radius:7px;background:#fff}
.journey-corridor-full-grid span b{font-size:6.2px;line-height:1.3}
.journey-corridor-full-grid span em{font-size:6px;font-style:normal;font-weight:950;white-space:nowrap}
.journey-corridor-full-grid span em.is-good{color:#237a4b}
.journey-corridor-full-grid span em.is-bad{color:#a12727}
.journey-corridor-full-grid span em.is-neutral,.journey-corridor-full-grid span em.is-unknown{color:#667085}
.journey-corridor-full-grid span small{grid-column:1/-1;color:var(--muted);font-size:5.7px}
@media(max-width:900px){
 .journey-corridor-effects{grid-template-columns:repeat(2,minmax(0,1fr))}
 .journey-corridor-group-head{flex-direction:column}
 .journey-corridor-group-head details{max-width:100%;text-align:left}
}

@media(max-width:600px){
 .journey-corridor-card>header{align-items:flex-start;flex-direction:column}
 .journey-corridor-net{text-align:left}
 .journey-corridor-metrics{grid-template-columns:1fr 1fr}
 .journey-corridor-effects{grid-template-columns:1fr}
 .journey-corridor-full-grid{grid-template-columns:1fr}
}

/* R46 — inferred traffic context ahead of a running train */
.train-traffic-context{padding-top:0!important}
.train-traffic-context-list{display:grid;gap:8px}
.train-traffic-context-card{border:1px solid #dbe4ec;border-top:3px solid #7c3aed;border-radius:12px;background:#fff;overflow:hidden}
.train-traffic-context-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #edf0f2;background:#fbf9ff}
.train-traffic-context-card>header>div{display:grid;gap:2px}
.train-traffic-context-card>header span{color:#6941c6;font-size:6px;font-weight:950;letter-spacing:.05em}
.train-traffic-context-card>header strong{font-size:8px}
.train-traffic-context-card>header em{padding:3px 6px;border-radius:999px;font-size:6.2px;font-style:normal;font-weight:950;white-space:nowrap}
.train-traffic-context-card>header em.is-high{background:#eaf7ef;color:#237a4b}
.train-traffic-context-card>header em.is-medium{background:#fff5dc;color:#8a5b00}
.train-traffic-context-card>header em.is-low{background:#eef1f4;color:#667085}

.train-traffic-context-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px 12px}
.train-traffic-context-metrics>div{padding:7px 8px;border:1px solid #e4e7ec;border-radius:8px;background:#fafbfc}
.train-traffic-context-metrics span{display:block;color:var(--muted);font-size:5.8px;font-weight:900;letter-spacing:.025em}
.train-traffic-context-metrics b{display:block;margin-top:3px;font-size:7.2px;line-height:1.3}
.train-traffic-context-metrics small{display:block;margin-top:2px;color:var(--muted);font-size:5.9px;line-height:1.35}
.train-traffic-context-link{display:inline-flex;margin:0 12px 10px;color:#6941c6;font-size:6.5px;font-weight:950;text-decoration:none}
.train-traffic-context-link:hover{text-decoration:underline}
.train-traffic-context-note{margin:9px 0 0;padding:8px 10px;border:1px dashed #d7dee8;border-radius:8px;background:#fbfcfd;color:var(--muted);font-size:6.5px;line-height:1.45}
@media(max-width:820px){.train-traffic-context-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){
 .train-traffic-context-card>header{flex-direction:column}
 .train-traffic-context-metrics{grid-template-columns:1fr}
}

/* R47 — direct journey-time comparison */
.direct-travel-hero .subhero-grid{align-items:center}
.direct-travel-badge{justify-self:end;display:grid;gap:3px;min-width:190px;padding:12px 14px;border:1px solid #d9e2ea;border-radius:12px;background:#fff}
.direct-travel-badge span{color:var(--muted);font-size:6px;font-weight:950;letter-spacing:.055em}
.direct-travel-badge strong{font-size:10px;line-height:1.15}
.direct-travel-badge small{color:var(--muted);font-size:6.2px;line-height:1.35}

.direct-travel-form{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(150px,.6fr) minmax(230px,1.25fr) auto;gap:9px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.direct-travel-form label{display:grid;gap:5px;min-width:0}
.direct-travel-form label>span{font-size:6.7px;font-weight:950;color:var(--muted);letter-spacing:.045em}
.direct-travel-form input[type="search"],.direct-travel-form input[type="date"],.direct-travel-form select{width:100%;min-height:40px;padding:0 10px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:8.5px;outline:none}
.direct-travel-form input:focus,.direct-travel-form select:focus{border-color:#8bb8dc;box-shadow:0 0 0 3px rgba(23,105,170,.09)}
.direct-travel-form label small{color:var(--muted);font-size:6.1px;line-height:1.35}
.direct-travel-origin{position:relative}
.direct-travel-origin .station-suggest-list{top:calc(100% + 4px)}
.direct-travel-origin .train-suggest-item{width:100%;text-align:left;border:0}
.direct-travel-single-toggle{display:flex!important;align-items:center;gap:7px;min-height:40px;padding:0 5px}
.direct-travel-single-toggle input{width:15px;height:15px;margin:0}
.direct-travel-single-toggle span{font-size:6.3px!important;line-height:1.35;color:var(--ink)!important;letter-spacing:0!important}
.direct-travel-status{margin-top:9px}
.direct-travel-status.is-loading{border-color:#d4e3ef;background:#f6faff}
.direct-travel-status.is-success{border-color:#cce7d7;background:#f2fbf5;color:#237a4b}
.direct-travel-status.is-error{border-color:#f0caca;background:#fff5f5;color:#a12727}

.direct-travel-sort{display:flex;gap:5px;justify-content:flex-end}
.direct-travel-sort button{min-height:31px;padding:0 9px;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#536273;font:inherit;font-size:6.3px;font-weight:900;cursor:pointer}
.direct-travel-sort button.is-active{border-color:var(--navy);background:var(--navy);color:#fff}
.direct-travel-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.direct-travel-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
.direct-travel-table{width:100%;border-collapse:collapse;min-width:680px}
.direct-travel-table th{padding:8px 10px;border-bottom:1px solid #dfe5eb;background:#f7f9fb;color:var(--muted);font-size:6px;font-weight:950;letter-spacing:.04em;text-align:left;white-space:nowrap}
.direct-travel-table td{padding:9px 10px;border-bottom:1px solid #edf0f2;font-size:7.2px;vertical-align:middle}
.direct-travel-table tbody tr:last-child td{border-bottom:0}
.direct-travel-table tbody tr.is-fastest{background:#f2fbf5}
.direct-travel-table td:first-child a{color:var(--ink);font-weight:900;text-decoration:none}
.direct-travel-table td:first-child a:hover{text-decoration:underline}
.direct-travel-time{font-variant-numeric:tabular-nums;font-weight:850;white-space:nowrap}
.direct-travel-duration{font-weight:950;white-space:nowrap}
.direct-travel-duration small{display:inline-flex;margin-left:6px;padding:2px 5px;border-radius:999px;background:#dff3e7;color:#237a4b;font-size:5.5px;font-weight:950;vertical-align:middle}
.direct-travel-method{margin-top:10px}

@media(max-width:980px){
 .direct-travel-form{grid-template-columns:1fr 1fr}
 .direct-travel-badge{justify-self:start}
}
@media(max-width:620px){
 .direct-travel-form{grid-template-columns:1fr}
 .direct-travel-summary{grid-template-columns:1fr 1fr}
 .direct-travel-sort{justify-content:flex-start}
 .direct-travel-badge{min-width:0;width:100%}
}



.direct-travel-filters{display:grid;gap:10px;margin:0 0 12px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}
.direct-travel-filter-group{display:grid;gap:6px}
.direct-travel-filter-group>span{color:var(--muted);font-size:6px;font-weight:950;letter-spacing:.055em}
.direct-travel-filter-buttons{display:flex;flex-wrap:wrap;gap:6px}
.direct-travel-filter-buttons button{min-height:30px;padding:0 9px;border:1px solid #d7dee8;border-radius:999px;background:#fff;color:#536273;font:inherit;font-size:6.3px;font-weight:900;cursor:pointer}
.direct-travel-filter-buttons button:hover:not(:disabled){border-color:#9fb2c4;background:#f7f9fb}
.direct-travel-filter-buttons button.is-active{border-color:var(--navy);background:var(--navy);color:#fff}
.direct-travel-filter-buttons button:disabled{opacity:.38;cursor:default}
.direct-travel-filter-meta{color:var(--muted);font-size:6.2px;line-height:1.4}
.direct-travel-empty-filter{padding:18px!important;text-align:center;color:var(--muted);font-size:7px!important}
@media(max-width:620px){
 .direct-travel-filter-buttons{gap:5px}
 .direct-travel-filter-buttons button{min-height:28px;padding:0 8px}
}

/* R48 — experimental timetable capacity windows */
.capacity-hero .subhero-grid{align-items:center}
.capacity-beta-badge{justify-self:end;display:grid;gap:3px;min-width:210px;padding:12px 14px;border:1px solid #e4d7a7;border-radius:12px;background:#fffaf0}
.capacity-beta-badge span{color:#8a6a18;font-size:6px;font-weight:950;letter-spacing:.055em}
.capacity-beta-badge strong{font-size:10px;line-height:1.15}
.capacity-beta-badge small{color:var(--muted);font-size:6.2px;line-height:1.35}
.capacity-form{display:grid;grid-template-columns:1fr 1.35fr 1fr .7fr auto;gap:9px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.capacity-form label{display:grid;gap:5px;min-width:0}
.capacity-form label>span{font-size:6.7px;font-weight:950;color:var(--muted);letter-spacing:.045em}
.capacity-form input,.capacity-form select{width:100%;min-height:40px;padding:0 10px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:8px}
.capacity-form button{min-height:40px;padding:0 14px;border:0;border-radius:9px;background:var(--navy);color:#fff;font:inherit;font-size:7px;font-weight:950;cursor:pointer}
.capacity-form button:hover{filter:brightness(.96)}
.capacity-scope-note{margin-top:9px}
.capacity-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.capacity-summary strong{font-size:13px!important}
.capacity-summary div:nth-child(3) strong{font-size:8px!important;line-height:1.25}
.capacity-window-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:12px}
.capacity-window-card{padding:13px;border:1px solid #cfe4d6;border-radius:12px;background:#f5fbf7}
.capacity-window-card>span{display:block;color:#397253;font-size:5.9px;font-weight:950;letter-spacing:.045em}
.capacity-window-card>strong{display:block;margin-top:3px;font-size:14px;line-height:1.1;font-variant-numeric:tabular-nums}
.capacity-window-card p{margin:7px 0 0;color:#4b5b50;font-size:6.8px;line-height:1.45}
.capacity-window-card small{display:block;margin-top:6px;color:var(--muted);font-size:6px}
.capacity-segment-list{display:grid;gap:6px}
.capacity-segment-row{display:grid;grid-template-columns:minmax(220px,1fr) 90px minmax(180px,.8fr);gap:10px;align-items:center;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff}
.capacity-segment-row strong{font-size:7px}
.capacity-segment-row span{justify-self:start;padding:3px 6px;border-radius:999px;font-size:5.5px;font-weight:950;letter-spacing:.035em}
.capacity-segment-row.is-single span{background:#fff0e5;color:#9a5316}
.capacity-segment-row.is-double span{background:#eef8f2;color:#2d744a}
.capacity-segment-row small{color:var(--muted);font-size:6px;line-height:1.35}
.capacity-method-note{line-height:1.55}
.history-feature-grid .history-locked-card.is-capacity{border-top:3px solid #b88122}
@media(max-width:980px){
 .capacity-form{grid-template-columns:1fr 1fr}
 .capacity-form button{grid-column:1/-1}
 .capacity-beta-badge{justify-self:start}
 .capacity-segment-row{grid-template-columns:1fr auto}
 .capacity-segment-row small{grid-column:1/-1}
}
@media(max-width:620px){
 .capacity-form{grid-template-columns:1fr}
 .capacity-form button{grid-column:auto}
 .capacity-summary{grid-template-columns:1fr 1fr}
 .capacity-beta-badge{min-width:0;width:100%}
 .capacity-segment-row{grid-template-columns:1fr}
 .capacity-segment-row span{justify-self:start}
 .capacity-segment-row small{grid-column:auto}
}


.capacity-timetable-note{margin:0 0 10px}
.capacity-timetable-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
.capacity-timetable{width:100%;min-width:920px;border-collapse:collapse}
.capacity-timetable th{padding:8px 9px;border-bottom:1px solid #dfe5eb;background:#f7f9fb;color:var(--muted);font-size:5.8px;font-weight:950;letter-spacing:.04em;text-align:left;white-space:nowrap}
.capacity-timetable td{padding:7px 9px;border-bottom:1px solid #edf0f2;font-size:6.6px;vertical-align:middle}
.capacity-timetable tbody tr:last-child td{border-bottom:0}
.capacity-timetable tbody tr.is-estimated{background:#fbfcfd;color:#6b7785}
.capacity-timetable tbody tr.is-long-stop{background:#fffaf0}
.capacity-timetable td:first-child strong{font-size:6.9px;color:var(--ink)}
.capacity-clock{font-variant-numeric:tabular-nums;font-weight:850;white-space:nowrap}
.capacity-point-kind{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:5.2px;font-weight:950;letter-spacing:.035em;white-space:nowrap;background:#eef2f6;color:#536273}
.capacity-point-kind.kind-origin,.capacity-point-kind.kind-destination{background:#e8f2fb;color:#1f5f91}
.capacity-point-kind.kind-stop{background:#edf8f1;color:#2f754d}
.capacity-point-kind.kind-pass_estimated{background:#f1f3f5;color:#66717d}
.capacity-long-stop{display:block;margin-top:3px;color:#9a6318;font-size:4.9px;font-weight:950;white-space:nowrap}
.capacity-track-tag{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:5.2px;font-weight:950;white-space:nowrap}
.capacity-track-tag.is-single{background:#fff0e5;color:#9a5316}
.capacity-track-tag.is-double{background:#eef8f2;color:#2d744a}
@media(max-width:620px){
 .capacity-timetable-section .section-head-with-action{display:block}
 .capacity-timetable-section .section-head-side{margin-top:6px}
}

/* R49 — cadence comparison, template selector and conflict diagnostics */
.capacity-form{grid-template-columns:.9fr 1.25fr 1fr 1.35fr .7fr auto}
.capacity-points-toggle{display:inline-flex;margin-left:8px;min-height:28px;padding:0 9px;border:1px solid #cfd8e3;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:5.8px;font-weight:950;cursor:pointer}
.capacity-points-toggle:hover{background:#f7f9fb}
.capacity-timetable.is-compact tbody tr.is-estimated{display:none}
.capacity-cadence-chart{margin:12px 0 14px;padding:18px 14px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.capacity-cadence-hours{position:relative;height:18px;margin:0 0 4px}
.capacity-cadence-hours span{position:absolute;top:0;transform:translateX(-50%);color:var(--muted);font-size:5.4px;font-weight:900}
.capacity-cadence-track{position:relative;height:74px;border-top:1px solid #dce3e9;border-bottom:1px solid #dce3e9;background:#fbfcfd}
.capacity-hour-line{position:absolute;top:0;bottom:0;width:1px;background:#e9edf1}
.capacity-window-band{position:absolute;top:9px;height:56px;min-width:2px;border-radius:6px;background:rgba(55,152,94,.12);border:1px solid rgba(55,152,94,.18)}
.capacity-cadence-marker{position:absolute;z-index:2;width:10px;height:10px;border-radius:50%;transform:translateX(-50%);box-shadow:0 0 0 2px #fff}
.capacity-cadence-marker.is-scheduled{top:42px;background:#263746}
.capacity-cadence-marker.is-simulated{top:18px;background:#3b9562}
.capacity-cadence-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:9px;color:var(--muted);font-size:5.8px;font-weight:850}
.capacity-cadence-legend span{display:flex;align-items:center;gap:5px}
.capacity-cadence-legend i{display:inline-block;width:9px;height:9px;border-radius:50%}
.capacity-cadence-legend i.is-scheduled{background:#263746}
.capacity-cadence-legend i.is-simulated{background:#3b9562}
.capacity-cadence-legend i.is-window{width:18px;border-radius:4px;background:rgba(55,152,94,.15);border:1px solid rgba(55,152,94,.2)}
.capacity-combined-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
.capacity-combined-table{width:100%;min-width:900px;border-collapse:collapse}
.capacity-combined-table th{padding:8px 9px;border-bottom:1px solid #dfe5eb;background:#f7f9fb;color:var(--muted);font-size:5.7px;font-weight:950;letter-spacing:.04em;text-align:left;white-space:nowrap}
.capacity-combined-table td{padding:8px 9px;border-bottom:1px solid #edf0f2;font-size:6.5px;vertical-align:middle}
.capacity-combined-table tbody tr:last-child td{border-bottom:0}
.capacity-combined-table tbody tr.is-simulated{background:#f3fbf6}
.capacity-service-type{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:5.1px;font-weight:950;white-space:nowrap}
.capacity-service-type.is-scheduled{background:#edf1f4;color:#374b5d}
.capacity-service-type.is-simulated{background:#dff3e7;color:#28724a}
.capacity-conflict-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}
.capacity-conflict-card{padding:11px;border:1px solid #eadfcf;border-radius:11px;background:#fff}
.capacity-conflict-card>span{display:block;color:#966322;font-size:5.5px;font-weight:950;text-transform:uppercase;letter-spacing:.035em}
.capacity-conflict-card>strong{display:block;margin-top:4px;font-size:8px}
.capacity-conflict-card p{margin:5px 0 0;font-size:6.4px;line-height:1.4}
.capacity-conflict-card small{display:block;margin-top:5px;color:var(--muted);font-size:5.7px;line-height:1.4}
@media(max-width:1180px){
 .capacity-form{grid-template-columns:1fr 1fr 1fr}
 .capacity-form button{grid-column:auto}
}
@media(max-width:760px){
 .capacity-form{grid-template-columns:1fr 1fr}
 .capacity-form button{grid-column:1/-1}
 .capacity-cadence-chart{padding-left:8px;padding-right:8px}
 .capacity-cadence-hours span:nth-child(even){display:none}
}
@media(max-width:520px){
 .capacity-form{grid-template-columns:1fr}
 .capacity-form button{grid-column:auto}
 .capacity-points-toggle{display:flex;margin:8px 0 0;width:max-content}
}

/* R50 — grouped IC intermediate points */
.capacity-timetable.is-compact tbody tr.is-estimated:not(.is-group-open){display:none}
.capacity-timetable:not(.is-compact) .capacity-group-toggle-row{display:none}
.capacity-group-toggle-row td{padding:5px 9px!important;background:#fafbfd;border-bottom:1px solid #edf0f2}
.capacity-group-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:6px 9px;border:1px dashed #cbd6df;border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;text-align:left}
.capacity-group-toggle:hover{background:#f6f9fb}
.capacity-group-toggle strong{font-size:5.8px;font-weight:950;white-space:nowrap}
.capacity-group-toggle span{color:var(--muted);font-size:5.6px;font-weight:800}
@media(max-width:620px){
 .capacity-group-toggle{align-items:flex-start;flex-direction:column;gap:2px}
 .capacity-group-toggle strong{white-space:normal}
}

/* R51 — on-demand slot details */
.capacity-window-card{position:relative;padding-bottom:46px}
.capacity-window-card.is-selected{box-shadow:0 0 0 2px rgba(47,130,80,.22)}
.capacity-window-details{position:absolute;left:23px;bottom:15px;display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:0 10px;border:1px solid #b9d8c5;border-radius:8px;background:#fff;color:#246b43;font-size:5.4px;font-weight:950;letter-spacing:.035em;text-decoration:none}
.capacity-window-details:hover{background:#eef8f2}
.capacity-timetable-toolbar{display:flex;justify-content:flex-end;align-items:center;margin:0 0 8px}
.capacity-timetable-toolbar .capacity-points-toggle{margin:0}
.capacity-timetable.is-compact tbody tr.is-estimated.is-group-open{display:table-row}
.capacity-details-hint{margin-top:12px}
@media(max-width:620px){
 .capacity-window-details{left:16px}
 .capacity-timetable-toolbar{justify-content:flex-start}
}

/* R52 — simulation switch + minimum dwell */
.capacity-timetable-toolbar{justify-content:space-between;gap:12px}
.capacity-simulation-switch{display:flex;align-items:center;gap:8px;min-width:0}
.capacity-simulation-switch>span{color:var(--muted);font-size:5.3px;font-weight:950;letter-spacing:.04em;white-space:nowrap}
.capacity-simulation-switch select{min-width:310px;max-width:560px;min-height:34px;padding:0 34px 0 10px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:6px;font-weight:850}
@media(max-width:760px){
 .capacity-timetable-toolbar{align-items:stretch;flex-direction:column}
 .capacity-simulation-switch{align-items:flex-start;flex-direction:column;gap:4px}
 .capacity-simulation-switch select{width:100%;max-width:none;min-width:0}
 .capacity-timetable-toolbar .capacity-points-toggle{margin:0}
}

/* R53 — country relation selector */
.capacity-mode-switch{display:inline-flex;gap:4px;margin:0 0 10px;padding:3px;border:1px solid var(--line);border-radius:10px;background:#f7f9fb}
.capacity-mode-switch a{display:inline-flex;align-items:center;min-height:30px;padding:0 11px;border-radius:7px;color:var(--muted);font-size:6.4px;font-weight:900;text-decoration:none}
.capacity-mode-switch a:hover{background:#fff;color:var(--ink)}
.capacity-mode-switch a.is-active{background:#fff;color:var(--navy);box-shadow:0 1px 4px rgba(15,35,70,.08)}
.capacity-country-form{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}
.capacity-country-form .capacity-start-picker{grid-column:span 2}
.capacity-station-filter{min-height:30px!important;font-size:6.8px!important;background:#f8fafc!important}
.capacity-country-form button{align-self:end}
@media(max-width:860px){
 .capacity-country-form .capacity-start-picker{grid-column:span 1}
 .capacity-mode-switch{display:flex;width:100%}
 .capacity-mode-switch a{flex:1;justify-content:center}
}

/* R54 — corridor model quality */
.capacity-corridor-quality{margin:10px 0 14px}
.capacity-corridor-quality strong{font-weight:950}

/* K-ACCESS-3 — ogólnopolska mapa dostępności kolei v0 */
.rail-accessibility-hero .hero-grid{min-height:350px}
.rail-access-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.rail-access-metrics article{min-height:145px;padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}
.rail-access-metrics span,.rail-access-metrics strong,.rail-access-metrics small{display:block}
.rail-access-metrics span{color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.rail-access-metrics strong{margin-top:18px;font-size:34px;line-height:1;letter-spacing:-.045em;color:var(--navy)}
.rail-access-metrics small{margin-top:9px;color:var(--muted);font-size:10px;line-height:1.45}
.rail-access-map-section{background:#fff}
.rail-access-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}
.rail-access-layer-buttons{display:flex;gap:8px;flex-wrap:wrap}
.rail-access-layer-buttons button,.rail-access-fit{min-height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#344054;padding:0 14px;font:inherit;font-size:11px;font-weight:850;cursor:pointer;transition:.16s ease}
.rail-access-layer-buttons button{display:inline-flex;align-items:center;gap:8px}
.rail-access-layer-buttons button span{display:inline-grid;place-items:center;min-width:25px;height:22px;padding:0 7px;border-radius:999px;background:#edf1f5;color:var(--muted);font-size:9px}
.rail-access-layer-buttons button:hover,.rail-access-fit:hover{border-color:#a8bfd4;color:var(--accent)}
.rail-access-layer-buttons button.is-active{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 7px 18px rgba(23,105,170,.16)}
.rail-access-layer-buttons button.is-active span{background:rgba(255,255,255,.16);color:#fff}
.rail-access-fit{white-space:nowrap;color:var(--accent)}
.rail-access-map-shell{position:relative;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#eef2f6;box-shadow:var(--shadow)}
.rail-access-map{height:min(72vh,760px);min-height:560px;background:#eef2f6}
.rail-access-map-status{position:absolute;z-index:500;left:14px;bottom:14px;max-width:min(520px,calc(100% - 28px));padding:9px 12px;border:1px solid rgba(16,42,86,.12);border-radius:10px;background:rgba(255,255,255,.94);box-shadow:0 7px 20px rgba(16,42,86,.12);color:#344054;font-size:10px;font-weight:750;backdrop-filter:blur(7px)}
.rail-access-map-status.is-loading{color:var(--accent)}
.rail-access-map-status.is-error{color:var(--red);border-color:#efc5c1}
.rail-access-map-status.is-ready{color:var(--green)}
.rail-access-legend{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;margin-top:12px;padding:13px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--muted);font-size:10px}
.rail-access-legend>strong{color:var(--ink);font-size:10px;text-transform:uppercase;letter-spacing:.055em}
.rail-access-legend>span{display:inline-flex;align-items:center;gap:7px}
.rail-access-dot{display:inline-block;width:11px;height:11px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(16,42,86,.12)}
.band-very-frequent{background:#102a56}.band-frequent{background:#1769aa}.band-regular{background:#2e9367}.band-limited{background:#d9aa14}.band-sparse{background:#8a95a5}
.rail-access-selected-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.rail-access-selected-stats article{padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:#fff}
.rail-access-selected-stats span,.rail-access-selected-stats strong{display:block}.rail-access-selected-stats span{color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.rail-access-selected-stats strong{margin-top:6px;font-size:16px}.rail-access-history .rail-access-selected-stats small{display:block;margin-top:6px;color:var(--muted);font-size:9px;line-height:1.4}
.rail-access-methodology{margin-top:20px;padding:22px 24px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#f8fafc)}
.rail-access-methodology h3{margin:0 0 9px;font-size:17px}.rail-access-methodology p{margin:7px 0 0;color:var(--muted);font-size:11px;line-height:1.7}.rail-access-methodology p strong{color:var(--ink)}
.rail-access-popup{min-width:225px}.rail-access-popup>strong{display:block;font-size:14px;line-height:1.3}.rail-access-popup>small{display:block;margin-top:3px;color:#66758a;font-size:10px}
.rail-access-popup-roles{display:flex;gap:4px;flex-wrap:wrap;margin:9px 0 6px}.rail-access-popup-roles span{padding:4px 6px;border-radius:999px;background:#edf6ff;color:#1769aa;font-size:8px;font-weight:850}
.rail-access-popup dl{margin:9px 0}.rail-access-popup dl>div{display:flex;justify-content:space-between;gap:16px;padding:5px 0;border-top:1px solid #edf1f5}.rail-access-popup dt{color:#66758a;font-size:9px}.rail-access-popup dd{margin:0;font-size:9px;font-weight:850;text-align:right}.rail-access-popup>a{display:inline-block;margin-top:5px;color:#1769aa;font-size:10px;font-weight:900}
.search-panel-accessibility{border-top:3px solid var(--navy)}
.search-panel-accessibility .accessibility-hub-link{display:inline-flex;align-items:center;min-height:42px;padding:0 15px;border-radius:11px;background:var(--accent);color:#fff;font-size:11px;font-weight:900}
.leaflet-container{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.leaflet-control-attribution{font-size:9px!important}
@media(max-width:980px){.rail-access-metrics,.rail-access-selected-stats{grid-template-columns:1fr 1fr}.rail-access-map{height:66vh;min-height:500px}}
@media(max-width:620px){.rail-access-metrics,.rail-access-selected-stats{grid-template-columns:1fr}.rail-access-controls{align-items:stretch;flex-direction:column}.rail-access-layer-buttons{display:grid;grid-template-columns:1fr}.rail-access-layer-buttons button{justify-content:space-between}.rail-access-fit{width:100%}.rail-access-map{height:62vh;min-height:460px}.rail-access-map-status{bottom:10px;left:10px;max-width:calc(100% - 20px)}.rail-access-legend{align-items:flex-start;flex-direction:column}}

/* K-ACCESS-3 — kontrolki i legenda unionów 51 stacji kluczowych */
.rail-access-union-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-3px 0 14px;padding:14px 16px;border:1px solid #d6e0eb;border-radius:16px;background:linear-gradient(145deg,#fff,#f7fafc)}
.rail-access-union-copy{min-width:0}.rail-access-union-copy strong,.rail-access-union-copy small{display:block}.rail-access-union-copy strong{font-size:12px}.rail-access-union-copy small{max-width:670px;margin-top:4px;color:var(--muted);font-size:9px;line-height:1.5}
.rail-access-union-buttons{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.rail-access-union-buttons button{min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#344054;font:inherit;font-size:10px;font-weight:850;cursor:pointer;transition:.16s ease}.rail-access-union-buttons button:hover{border-color:#a8bfd4;color:var(--accent)}.rail-access-union-buttons button.is-active{border-color:var(--navy);background:var(--navy);color:#fff;box-shadow:0 7px 17px rgba(16,42,86,.14)}
.rail-access-union-legend{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;margin-top:12px;padding:13px 16px;border:1px solid #d6e0eb;border-radius:14px;background:#f8fafc;color:var(--muted);font-size:10px}.rail-access-union-legend.is-hidden{display:none}.rail-access-union-legend>strong{color:var(--ink);font-size:10px;text-transform:uppercase;letter-spacing:.055em}.rail-access-union-legend>span{display:inline-flex;align-items:center;gap:7px}.rail-access-union-legend b{font-size:10px;color:#344054}.rail-access-union-legend small{margin-left:auto;color:var(--muted);font-size:9px}
.rail-access-zone{display:inline-block;width:25px;height:10px;border:1px solid rgba(16,42,86,.18);border-radius:999px;background:rgba(155,100,0,.18)}.rail-access-zone.zone-middle{background:rgba(155,100,0,.29)}.rail-access-zone.zone-inner{background:rgba(155,100,0,.44)}
.rail-access-union-legend[data-mode="walking"] .rail-access-zone{background:rgba(25,118,74,.16)}.rail-access-union-legend[data-mode="walking"] .zone-middle{background:rgba(25,118,74,.27)}.rail-access-union-legend[data-mode="walking"] .zone-inner{background:rgba(25,118,74,.43)}
.rail-access-union-legend[data-mode="bicycle"] .rail-access-zone{background:rgba(23,105,170,.15)}.rail-access-union-legend[data-mode="bicycle"] .zone-middle{background:rgba(23,105,170,.27)}.rail-access-union-legend[data-mode="bicycle"] .zone-inner{background:rgba(23,105,170,.43)}
@media(max-width:760px){.rail-access-union-controls{align-items:stretch;flex-direction:column}.rail-access-union-buttons{display:grid;grid-template-columns:repeat(2,1fr);justify-content:stretch}.rail-access-union-buttons button{width:100%}.rail-access-union-legend{align-items:flex-start;flex-direction:column}.rail-access-union-legend small{margin-left:0}}

/* K-ACCESS-3 — statystyki powierzchni pilota 51 stacji */
.rail-access-area-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.rail-access-area-stats.is-hidden{display:none}.rail-access-area-stats article{padding:15px 17px;border:1px solid var(--line);border-radius:14px;background:#fff}.rail-access-area-stats span,.rail-access-area-stats strong,.rail-access-area-stats small{display:block}.rail-access-area-stats span{color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.rail-access-area-stats strong{margin-top:7px;font-size:24px;letter-spacing:-.035em;color:var(--navy)}.rail-access-area-stats small{margin-top:4px;color:var(--muted);font-size:9px}.rail-access-area-stats .rail-access-area-uncovered{background:#fafbfc;border-style:dashed}.rail-access-area-stats .rail-access-area-uncovered strong{color:#66758a}.rail-access-area-note{margin:7px 2px 0;color:var(--muted);font-size:9px;line-height:1.5}.rail-access-area-note.is-hidden{display:none}
@media(max-width:980px){.rail-access-area-stats{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.rail-access-area-stats{grid-template-columns:1fr 1fr}.rail-access-area-stats strong{font-size:21px}}

/* K-ACCESS-3 — pre-screening luk regularnej kolei */
.rail-access-gap-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-3px 0 14px;padding:14px 16px;border:1px solid #ddd6fe;border-radius:16px;background:linear-gradient(145deg,#fff,#faf8ff)}
.rail-access-gap-copy{min-width:0}.rail-access-gap-copy strong,.rail-access-gap-copy small{display:block}.rail-access-gap-copy strong{font-size:12px}.rail-access-gap-copy small{max-width:720px;margin-top:4px;color:var(--muted);font-size:9px;line-height:1.5}
.rail-access-gap-buttons{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.rail-access-gap-buttons button{min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#344054;font:inherit;font-size:10px;font-weight:850;cursor:pointer;transition:.16s ease}.rail-access-gap-buttons button:hover{border-color:#c4b5fd;color:#6d28d9}.rail-access-gap-buttons button.is-active{border-color:#6d28d9;background:#6d28d9;color:#fff;box-shadow:0 7px 17px rgba(109,40,217,.14)}
.rail-access-gap-legend{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;margin-top:12px;padding:13px 16px;border:1px solid #ddd6fe;border-radius:14px;background:#faf8ff;color:var(--muted);font-size:10px}.rail-access-gap-legend.is-hidden{display:none}.rail-access-gap-legend>strong{color:var(--ink);font-size:10px;text-transform:uppercase;letter-spacing:.055em}.rail-access-gap-legend>span{display:inline-flex;align-items:center;gap:7px}.rail-access-gap-legend small{margin-left:auto;color:var(--muted);font-size:9px}.rail-access-gap-swatch{display:inline-block;width:25px;height:10px;border:1px solid rgba(109,40,217,.45);border-radius:999px;background:rgba(139,92,246,.22)}
.rail-access-gap-popup>small{display:block;margin-top:3px;color:var(--muted);font-size:9px}
@media(max-width:760px){.rail-access-gap-controls{align-items:stretch;flex-direction:column}.rail-access-gap-buttons{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}.rail-access-gap-buttons button{width:100%}.rail-access-gap-legend{align-items:flex-start;flex-direction:column}.rail-access-gap-legend small{margin-left:0}}

/* K-ACCESS-3 — pilot drogowy luk */
.rail-access-gap-buttons button[data-gap-mode="pilot"].is-active{border-color:#b42318;background:#b42318;color:#fff;box-shadow:0 7px 17px rgba(180,35,24,.14)}
.rail-access-gap-legend[data-mode="pilot"]{border-color:#fecdca;background:#fff8f7}.rail-access-gap-legend[data-mode="pilot"] .rail-access-gap-swatch{border-color:rgba(180,35,24,.48);background:rgba(240,68,56,.24)}

/* R55 — źródło modelu korytarza */
.capacity-model-source{display:inline-flex;align-items:center;margin-top:7px;padding:4px 8px;border:1px solid #cddbe6;border-radius:999px;background:#f7fafc;color:#425466;font-size:5.2px;font-weight:950;letter-spacing:.04em;line-height:1.2}

/* R56 — mikrogranice węzłowe */
.capacity-segment-row.is-junction span{background:#f2f0fb;color:#5d5290}
.capacity-track-tag.is-junction{background:#f2f0fb;color:#5d5290}

/* R57 — wpływ kandydata na takt */
.capacity-window-card.is-best-cadence{border-color:#9fcfb0;box-shadow:0 0 0 2px rgba(47,130,80,.10)}
.capacity-cadence-best-badge{display:inline-flex;margin:0 0 8px;padding:4px 7px;border-radius:999px;background:#dff3e7;color:#28724a;font-size:5.1px;font-style:normal;font-weight:950;letter-spacing:.04em}
.capacity-window-cadence{margin:10px 0 0;padding:9px 10px;border:1px solid rgba(55,114,83,.16);border-radius:9px;background:rgba(255,255,255,.72)}
.capacity-window-cadence>span{display:block;color:#627267;font-size:5.1px;font-weight:950;letter-spacing:.045em}
.capacity-window-cadence>strong{display:block;margin-top:3px;color:var(--ink);font-size:10px;font-variant-numeric:tabular-nums}
.capacity-window-card .capacity-window-cadence p{margin:4px 0 0;font-size:5.8px;line-height:1.4}
.capacity-window-card .capacity-window-cadence p.is-muted{color:var(--muted)}
.capacity-window-card .capacity-window-cadence b{font-weight:950}

/* K-ACCESS-5 — profile białych plam */
.rail-access-gap-buttons button[data-gap-mode="any"].is-active{border-color:#027a48;background:#027a48;color:#fff;box-shadow:0 7px 17px rgba(2,122,72,.14)}
.rail-access-gap-buttons button[data-gap-mode="regular"].is-active{border-color:#6d28d9;background:#6d28d9;color:#fff;box-shadow:0 7px 17px rgba(109,40,217,.14)}
.rail-access-gap-buttons button[data-gap-mode="frequent"].is-active{border-color:#b54708;background:#b54708;color:#fff;box-shadow:0 7px 17px rgba(181,71,8,.14)}
.rail-access-gap-legend[data-mode="any"]{border-color:#abefc6;background:#f6fef9}.rail-access-gap-legend[data-mode="any"] .rail-access-gap-swatch{border-color:rgba(2,122,72,.42);background:rgba(18,183,106,.22)}
.rail-access-gap-legend[data-mode="regular"]{border-color:#ddd6fe;background:#faf8ff}.rail-access-gap-legend[data-mode="regular"] .rail-access-gap-swatch{border-color:rgba(109,40,217,.45);background:rgba(139,92,246,.22)}
.rail-access-gap-legend[data-mode="frequent"]{border-color:#fedf89;background:#fffcf5}.rail-access-gap-legend[data-mode="frequent"] .rail-access-gap-swatch{border-color:rgba(181,71,8,.45);background:rgba(247,144,9,.22)}

/* K-ACCESS-5 — hierarchia wykluczenia kolejowego */
.rail-access-gap-buttons button[data-gap-mode="hierarchy"].is-active{border-color:#344054;background:#344054;color:#fff;box-shadow:0 7px 17px rgba(52,64,84,.16)}
.rail-access-gap-legend[data-mode="hierarchy"]{border-color:#d0d5dd;background:#f9fafb}
.rail-access-gap-legend[data-mode="hierarchy"]>span{gap:6px;flex-wrap:wrap}
.rail-access-gap-legend .rail-access-gap-swatch.gap-any{border-color:rgba(2,122,72,.42);background:rgba(18,183,106,.26)}
.rail-access-gap-legend .rail-access-gap-swatch.gap-regular{border-color:rgba(109,40,217,.45);background:rgba(139,92,246,.24)}
.rail-access-gap-legend .rail-access-gap-swatch.gap-frequent{border-color:rgba(181,71,8,.45);background:rgba(247,144,9,.24)}

/* K-ACCESS-5 — semantyczne kolory hierarchii */
.rail-access-gap-buttons button[data-gap-mode="any"].is-active{border-color:#b42318;background:#b42318;color:#fff;box-shadow:0 7px 17px rgba(180,35,24,.14)}
.rail-access-gap-buttons button[data-gap-mode="regular"].is-active{border-color:#6941c6;background:#6941c6;color:#fff;box-shadow:0 7px 17px rgba(105,65,198,.14)}
.rail-access-gap-buttons button[data-gap-mode="frequent"].is-active{border-color:#b54708;background:#b54708;color:#fff;box-shadow:0 7px 17px rgba(181,71,8,.14)}
.rail-access-gap-buttons button[data-gap-mode="pilot"].is-active{border-color:#344054;background:#344054;color:#fff;box-shadow:0 7px 17px rgba(52,64,84,.16)}
.rail-access-gap-legend[data-mode="any"]{border-color:#fecdca;background:#fff8f7}.rail-access-gap-legend[data-mode="any"] .rail-access-gap-swatch{border-color:rgba(180,35,24,.48);background:rgba(240,68,56,.24)}
.rail-access-gap-legend[data-mode="regular"]{border-color:#d9d6fe;background:#fafaff}.rail-access-gap-legend[data-mode="regular"] .rail-access-gap-swatch{border-color:rgba(105,65,198,.45);background:rgba(158,119,237,.24)}
.rail-access-gap-legend[data-mode="frequent"]{border-color:#fedf89;background:#fffcf5}.rail-access-gap-legend[data-mode="frequent"] .rail-access-gap-swatch{border-color:rgba(181,71,8,.45);background:rgba(247,144,9,.24)}
.rail-access-gap-legend[data-mode="pilot"]{border-color:#d0d5dd;background:#f9fafb}.rail-access-gap-legend[data-mode="pilot"] .rail-access-gap-swatch{border-color:rgba(52,64,84,.45);background:rgba(102,112,133,.24)}
.rail-access-gap-legend .rail-access-gap-swatch.gap-any{border-color:rgba(180,35,24,.48);background:rgba(240,68,56,.26)}
.rail-access-gap-legend .rail-access-gap-swatch.gap-regular{border-color:rgba(105,65,198,.45);background:rgba(158,119,237,.24)}
.rail-access-gap-legend .rail-access-gap-swatch.gap-frequent{border-color:rgba(181,71,8,.45);background:rgba(247,144,9,.24)}

/* K-ACCESS-6 — mocniejszy kontrast warstw mapy */
.rail-access-zone{border-color:rgba(37,99,235,.72);background:rgba(37,99,235,.30)}
.rail-access-zone.zone-middle{border-color:rgba(217,119,6,.78);background:rgba(217,119,6,.42)}
.rail-access-zone.zone-inner{border-color:rgba(21,128,61,.82);background:rgba(21,128,61,.48)}
.rail-access-union-legend[data-mode="walking"] .rail-access-zone{border-color:rgba(110,231,183,.9);background:rgba(167,243,208,.55)}
.rail-access-union-legend[data-mode="walking"] .zone-middle{border-color:rgba(16,185,129,.82);background:rgba(16,185,129,.40)}
.rail-access-union-legend[data-mode="walking"] .zone-inner{border-color:rgba(4,120,87,.9);background:rgba(4,120,87,.52)}
.rail-access-union-legend[data-mode="bicycle"] .rail-access-zone{border-color:rgba(96,165,250,.9);background:rgba(191,219,254,.62)}
.rail-access-union-legend[data-mode="bicycle"] .zone-middle{border-color:rgba(59,130,246,.88);background:rgba(59,130,246,.42)}
.rail-access-union-legend[data-mode="bicycle"] .zone-inner{border-color:rgba(29,78,216,.92);background:rgba(29,78,216,.52)}
.rail-access-gap-buttons button[data-gap-mode="frequent"].is-active{border-color:#9d174d;background:#9d174d;color:#fff;box-shadow:0 7px 17px rgba(157,23,77,.16)}
.rail-access-gap-legend[data-mode="frequent"]{border-color:#fbcfe8;background:#fdf2f8}
.rail-access-gap-legend[data-mode="frequent"] .rail-access-gap-swatch{border-color:rgba(157,23,77,.62);background:rgba(236,72,153,.32)}
.rail-access-gap-legend .rail-access-gap-swatch.gap-frequent{border-color:rgba(157,23,77,.62);background:rgba(236,72,153,.32)}

/* R58 — wejście do symulatora, kalendarz i formularz bez reloadów */
.capacity-beta-badge strong{color:#102a56!important}
.capacity-beta-badge small{color:#667085!important}
.future-change-calendar-head strong{color:#344054!important}
.future-compare-form .future-change-date-picker{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;min-width:0;height:42px;margin-top:0;padding:0 12px;
  border:1px solid var(--line);border-radius:11px;background:#fff;
  color:#14213d;font:inherit;font-size:11px;font-weight:750;
  letter-spacing:0;text-transform:none;text-align:left
}
.future-compare-form .future-change-date-picker:hover,
.future-compare-form .future-change-date-picker[aria-expanded="true"]{
  border-color:#9db9cf;background:#fff;color:#14213d
}
.future-compare-form .future-change-date-picker.is-selected-change{
  border-color:#8fc6a7;background:#f7fcf9;color:#14213d
}
.future-change-date-picker svg{flex:0 0 auto;color:#667085}
.future-change-calendar-summary{
  display:block;margin-top:5px;padding:4px 7px;border:1px solid #b9d0e2;
  border-radius:7px;background:#f7fbfe;color:#0d5f9e;
  font-size:6.8px;font-weight:950;line-height:1.2
}
.capacity-form-live-status{
  margin-top:10px;padding:9px 11px;border:1px solid #d6e0e8;
  border-radius:10px;background:#f8fafc;color:#475467;
  font-size:8px;font-weight:800;line-height:1.4
}
.capacity-form-live-status[hidden]{display:none!important}
.capacity-form-live-status.is-loading{border-color:#b9d7eb;background:#f5faff;color:#1769aa}
.capacity-form-live-status.is-ready{border-color:#b8ddc7;background:#f5fbf7;color:#237a4b}
.capacity-form-live-status.is-error{border-color:#f0c5c1;background:#fff8f7;color:#a12727}
.future-capacity-simulator-link{
  display:inline-flex;align-items:center;min-height:34px;margin-top:10px;
  padding:0 11px;border:1px solid #b9d0e2;border-radius:9px;
  background:#f7fbfe;color:#0d5f9e;text-decoration:none;
  font-size:8px;font-weight:950
}
.future-capacity-simulator-link:hover{border-color:#89b5d5;background:#eaf4fb}

.capacity-form button:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}

/* K-ACCESS-5 — ranking białych plam */
.rail-access-gap-ranking{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff}.rail-access-gap-ranking-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.rail-access-gap-ranking-head h3{margin:3px 0 0;font-size:18px}.rail-access-gap-ranking-head p{max-width:690px;margin:7px 0 0;color:var(--muted);font-size:10px;line-height:1.55}.rail-access-gap-ranking-buttons{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.rail-access-gap-ranking-buttons button{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#344054;font:inherit;font-size:9px;font-weight:850;cursor:pointer}.rail-access-gap-ranking-buttons button:hover{border-color:#98a2b3}.rail-access-gap-ranking-buttons button.is-active{border-color:#344054;background:#344054;color:#fff}.rail-access-gap-ranking-summary{margin:14px 0 10px;padding:10px 12px;border-radius:11px;background:#f9fafb;color:var(--muted);font-size:9px;line-height:1.45}.rail-access-gap-ranking-summary strong{color:var(--ink)}.rail-access-gap-ranking-list{display:grid;gap:7px}.rail-access-gap-ranking-item{display:grid;grid-template-columns:44px minmax(170px,1fr) minmax(180px,.85fr) 20px;align-items:center;gap:12px;width:100%;padding:11px 12px;border:1px solid #eaecf0;border-radius:12px;background:#fff;color:inherit;text-align:left;font:inherit;cursor:pointer;transition:.15s ease}.rail-access-gap-ranking-item:hover{border-color:#98a2b3;background:#fcfcfd;transform:translateY(-1px)}.rail-access-gap-ranking-rank{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:10px;font-weight:900}.rail-access-gap-ranking-main strong,.rail-access-gap-ranking-main small,.rail-access-gap-ranking-station strong,.rail-access-gap-ranking-station small{display:block}.rail-access-gap-ranking-main strong{font-size:12px}.rail-access-gap-ranking-main small,.rail-access-gap-ranking-station small{margin-top:2px;color:var(--muted);font-size:8px}.rail-access-gap-ranking-station strong{margin-top:2px;font-size:10px}.rail-access-gap-ranking-arrow{color:#667085;font-size:16px}.rail-access-gap-ranking-empty{padding:16px;border:1px dashed #d0d5dd;border-radius:12px;color:var(--muted);font-size:10px;text-align:center}
@media(max-width:760px){.rail-access-gap-ranking-head{align-items:stretch;flex-direction:column}.rail-access-gap-ranking-buttons{display:grid;grid-template-columns:1fr;justify-content:stretch}.rail-access-gap-ranking-buttons button{width:100%}.rail-access-gap-ranking-item{grid-template-columns:38px 1fr 18px;gap:9px}.rail-access-gap-ranking-station{grid-column:2/3}.rail-access-gap-ranking-arrow{grid-column:3;grid-row:1/3;align-self:center}}

/* R60 — historia: 4 równe kafelki */
.history-feature-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  gap:18px
}
.history-feature-grid .history-locked-card{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:space-between;
  gap:22px;
  min-width:0;
  height:100%;
  padding:28px 30px
}
.history-feature-grid .history-locked-card>div{
  min-width:0
}
.history-feature-grid .history-locked-card strong{
  margin-bottom:10px;
  font-size:17px;
  line-height:1.22
}
.history-feature-grid .history-locked-card p{
  max-width:none;
  font-size:13px;
  line-height:1.55
}
.history-feature-grid .history-locked-badge{
  display:flex;
  width:100%;
  min-height:42px;
  align-items:center;
  justify-content:center;
  margin-top:auto;
  padding:10px 12px;
  text-align:center;
  white-space:normal
}
@media(max-width:1250px){
  .history-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .history-feature-grid{grid-template-columns:1fr}
  .history-feature-grid .history-locked-card{padding:22px}
}

/* K-ACCESS-6 — województwa: powierzchnia vs ludność */
.rail-access-voiv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px}.rail-access-voiv-controls,.rail-access-voiv-measure{display:flex;gap:7px;flex-wrap:wrap}.rail-access-voiv-controls button,.rail-access-voiv-measure button{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#475467;font:inherit;font-size:9px;font-weight:850;cursor:pointer;transition:.16s ease}.rail-access-voiv-controls button:hover,.rail-access-voiv-measure button:hover{border-color:#98a2b3;color:#101828}.rail-access-voiv-controls button.is-active{border-color:#344054;background:#344054;color:#fff}.rail-access-voiv-measure button.is-active{border-color:#1769aa;background:#1769aa;color:#fff}.rail-access-voiv-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.rail-access-voiv-table{width:100%;min-width:860px;border-collapse:collapse}.rail-access-voiv-table th,.rail-access-voiv-table td{padding:13px 14px;border-bottom:1px solid #eaecf0;text-align:right;vertical-align:middle}.rail-access-voiv-table th{background:#f9fafb;color:#667085;font-size:9px;font-weight:900;line-height:1.35;text-transform:uppercase;letter-spacing:.035em}.rail-access-voiv-table th:nth-child(2),.rail-access-voiv-table td:nth-child(2){text-align:left}.rail-access-voiv-table tbody tr:last-child td{border-bottom:0}.rail-access-voiv-table tbody tr:hover{background:#fcfcfd}.rail-access-voiv-rank{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:9px;background:#f2f4f7;color:#475467;font-size:10px;font-weight:900}.rail-access-voiv-name strong,.rail-access-voiv-name small,.rail-access-voiv-table td[data-voiv-metric-cell] strong,.rail-access-voiv-table td[data-voiv-metric-cell] small{display:block}.rail-access-voiv-name strong{color:#101828;font-size:11px}.rail-access-voiv-name small{margin-top:3px;color:#98a2b3;font-size:8px}.rail-access-voiv-table td[data-voiv-metric-cell] strong{color:#101828;font-size:12px}.rail-access-voiv-table td[data-voiv-metric-cell] small{margin-top:3px;color:#98a2b3;font-size:8px;white-space:nowrap}.rail-access-voiv-section[data-measure="population"] .rail-access-voiv-table td[data-voiv-metric-cell]{background:rgba(23,105,170,.025)}.rail-access-voiv-note{margin-top:10px;color:var(--muted);font-size:9px;line-height:1.5}
@media(max-width:760px){.rail-access-voiv-toolbar{align-items:stretch;flex-direction:column}.rail-access-voiv-controls,.rail-access-voiv-measure{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.rail-access-voiv-controls{grid-template-columns:1fr}.rail-access-voiv-controls button,.rail-access-voiv-measure button{width:100%}}

/* K-ACCESS-6 — wybór województwa na mapie */
.rail-access-voiv-table tr[data-voiv-row]{cursor:pointer;outline:0;transition:background .14s ease,box-shadow .14s ease}.rail-access-voiv-table tr[data-voiv-row]:focus-visible{box-shadow:inset 0 0 0 2px #1769aa}.rail-access-voiv-table tr[data-voiv-row].is-selected{background:#f2f4f7}.rail-access-voiv-table tr[data-voiv-row].is-selected .rail-access-voiv-rank{background:#101828;color:#fff}

/* K-ACCESS-6 — ranking powiatów */
.rail-access-powiat-section{border-top:1px solid var(--line)}.rail-access-powiat-filters{display:grid;grid-template-columns:minmax(180px,260px) minmax(220px,360px) minmax(240px,1fr);gap:10px;align-items:end;margin:0 0 14px}.rail-access-powiat-filters label{display:flex;flex-direction:column;gap:5px;color:#667085;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.rail-access-powiat-filters select,.rail-access-powiat-filters input{width:100%;min-height:38px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#101828;font:inherit;font-size:10px;outline:0}.rail-access-powiat-filters select:focus,.rail-access-powiat-filters input:focus{border-color:#1769aa;box-shadow:0 0 0 3px rgba(23,105,170,.08)}.rail-access-powiat-summary{min-height:38px;display:flex;align-items:center;justify-content:flex-end;color:var(--muted);font-size:9px;line-height:1.4;text-align:right}.rail-access-powiat-table td[data-voiv-metric-cell] strong,.rail-access-powiat-table td[data-voiv-metric-cell] small{display:block}.rail-access-powiat-loading{text-align:center!important;color:var(--muted)!important;font-size:10px!important;padding:26px!important}.rail-access-powiat-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-top:10px}.rail-access-powiat-footer>button{flex:0 0 auto;min-height:36px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#344054;font:inherit;font-size:9px;font-weight:850;cursor:pointer}.rail-access-powiat-footer>button:hover:not(:disabled){border-color:#98a2b3;color:#101828}.rail-access-powiat-footer>button:disabled{opacity:.48;cursor:default}.rail-access-powiat-footer .rail-access-voiv-note{margin-top:0;text-align:right}.rail-access-powiat-section[data-measure="population"] .rail-access-powiat-table td[data-voiv-metric-cell]{background:rgba(23,105,170,.025)}
@media(max-width:900px){.rail-access-powiat-filters{grid-template-columns:1fr 1fr}.rail-access-powiat-summary{grid-column:1/-1;justify-content:flex-start;text-align:left}.rail-access-powiat-footer{flex-direction:column}.rail-access-powiat-footer .rail-access-voiv-note{text-align:left}}
@media(max-width:620px){.rail-access-powiat-filters{grid-template-columns:1fr}}
.rail-access-powiat-table tr[data-powiat-row]{cursor:pointer;outline:0;transition:background .14s ease,box-shadow .14s ease}.rail-access-powiat-table tr[data-powiat-row]:focus-visible{box-shadow:inset 0 0 0 2px #b42318}.rail-access-powiat-table tr[data-powiat-row].is-selected{background:#fff6f5}.rail-access-powiat-table tr[data-powiat-row].is-selected .rail-access-voiv-rank{background:#b42318;color:#fff}
.rail-access-voiv-section[data-measure="people"] .rail-access-voiv-table td[data-voiv-metric-cell],.rail-access-powiat-section[data-measure="people"] .rail-access-powiat-table td[data-voiv-metric-cell]{background:rgba(180,35,24,.025)}
