/* KOLEJ POLSKA 2.0 — unified experience layer. Existing railway components are preserved. */
:root {
  --xp-bg: #f6f7f4;
  --xp-surface: #ffffff;
  --xp-surface-2: #f2f5f2;
  --xp-ink: #16272c;
  --xp-secondary: #64757a;
  --xp-line: #e2e9e7;
  --xp-primary: #174f52;
  --xp-primary-deep: #0c3135;
  --xp-accent: #d7f278;
  --xp-accent-ink: #1c3624;
  --xp-side: #14272d;
  --xp-side-line: #2a4146;
  --xp-radius: 20px;
  --xp-shadow: 0 6px 25px rgba(22,45,45,.055);
  color-scheme: light;
}
html[data-theme="dark"] {
  --xp-bg: #111b1f;
  --xp-surface: #1b2a2f;
  --xp-surface-2: #223238;
  --xp-ink: #ebf2ef;
  --xp-secondary: #afc2bd;
  --xp-line: #365056;
  --xp-primary: #b9e2d2;
  --xp-primary-deep: #23695f;
  --xp-accent: #d7f278;
  --xp-accent-ink: #142b25;
  --xp-side: #0b151a;
  --xp-side-line: #284147;
  --xp-shadow: 0 8px 24px rgba(0,0,0,.16);
  color-scheme: dark;
}
html {scroll-behavior:smooth}
html,body {max-width:100%;min-width:320px}
body {background:var(--xp-bg)!important;color:var(--xp-ink);font-family:Inter,"Segoe UI",ui-sans-serif,system-ui,sans-serif;line-height:1.5}
button,input,select,textarea {font:inherit}
button {transition:background-color .16s ease,border-color .16s ease,transform .16s ease,color .16s ease,box-shadow .16s ease}
button:active:not(:disabled){transform:translateY(1px)}
:where(button,a,input,select,textarea,summary):focus-visible {outline:3px solid #7dbba8!important;outline-offset:3px!important}
.skip-link{position:absolute;top:-60px;left:16px;z-index:9999;background:var(--xp-accent);color:var(--xp-accent-ink);padding:12px 16px;border-radius:10px;font-weight:700}
.skip-link:focus{top:12px}
[hidden]{display:none!important}
.shell{display:grid!important;grid-template-columns:242px minmax(0,1fr)!important;align-items:stretch;min-height:100vh;gap:0}
.app-sidebar{position:sticky!important;top:0!important;align-self:start!important;height:100vh!important;min-height:100vh!important;width:242px!important;padding:0 13px 20px!important;display:flex!important;flex-direction:column!important;gap:0!important;background:var(--xp-side)!important;color:#f0f7f5!important;box-shadow:none!important;z-index:50;overflow-x:hidden;overflow-y:auto}
.sidebar-header{padding:25px 8px 26px;border-bottom:1px solid var(--xp-side-line);margin-bottom:27px}
.app-sidebar .brand{display:flex;gap:10px;padding:0;align-items:center;color:#fff;text-decoration:none}
.app-sidebar .brand-icon{width:54px!important;min-width:54px!important;height:48px!important;display:grid;place-items:center;background:#26434a!important;border:1px solid #3c5960;border-radius:15px!important;padding:5px!important;overflow:hidden}
.app-sidebar .brand-icon img{width:50px;height:34px;object-fit:contain}
.app-sidebar .brand-wordmark{min-width:0}
.app-sidebar .brand strong{font-size:17px!important;line-height:1.15;letter-spacing:-.65px;font-weight:800;color:#fff}
.app-sidebar .brand small{display:block!important;font-size:10px!important;color:#a9c5bd!important;letter-spacing:.25px;margin-top:5px}
.brand-dot{color:var(--xp-accent)}
.app-sidebar .aside-caption,.nav-group-title{font-size:10px!important;color:#8ba7a7!important;letter-spacing:1.4px!important;font-weight:800!important;padding:0 13px;margin:0 0 13px!important}
.app-sidebar nav{display:grid!important;gap:4px!important;overflow:visible!important;scrollbar-width:none}
.app-sidebar nav button{display:flex!important;align-items:center!important;gap:12px!important;width:100%;min-width:0;white-space:normal!important;text-align:left!important;color:#c0d0cc!important;background:transparent!important;border:1px solid transparent!important;border-radius:12px!important;padding:11px 12px!important;min-height:44px;font-size:13px;font-weight:650!important;letter-spacing:0!important;box-shadow:none!important}
.app-sidebar nav button:hover{color:#fff!important;background:#263d43!important}
.app-sidebar nav button.active{background:var(--xp-accent)!important;color:var(--xp-accent-ink)!important;border-color:transparent!important;font-weight:800!important;box-shadow:0 5px 16px #00000024!important}
.nav-glyph{display:grid!important;place-items:center;min-width:24px;width:24px;font-family:inherit;font-size:21px!important;font-weight:500;color:inherit;line-height:1.1}
.nav-group-title{margin:23px 0 11px!important;padding:0 13px}
.sidebar-bottom{margin-top:auto;min-height:0}
.app-sidebar .aside-tip{margin:38px 2px 20px!important;padding:20px!important;border:1px solid #3b5457!important;border-radius:17px!important;background:#233b40!important;color:#eaf3ef!important;box-shadow:none!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:10px!important}
.app-sidebar .aside-tip-icon{display:grid;place-items:center;font-size:23px!important;line-height:1;width:40px;height:40px;background:#405a55!important;color:var(--xp-accent)!important;border-radius:12px}
.app-sidebar .aside-tip strong{font-size:15px;color:#fff}
.app-sidebar .aside-tip>span:not(.aside-tip-icon){font-size:12px;line-height:1.6;color:#b8cdc8}
.app-sidebar .aside-tip button{background:var(--xp-accent)!important;color:var(--xp-accent-ink)!important;width:100%;min-height:42px;border:0!important;border-radius:10px!important;padding:9px 11px!important;font-size:12px;font-weight:800;display:flex;justify-content:space-between;align-items:center;margin-top:5px}
.app-sidebar footer{padding:10px 13px!important;font-size:10px!important;line-height:1.9!important;letter-spacing:.1px;color:#a3bab4!important}
.source-dot,.product-indicator{display:inline-block;width:7px;height:7px;background:var(--xp-accent);border-radius:50%;box-shadow:0 0 0 3px #d7f27822;margin-right:7px}
.app-content{min-width:0;min-height:100vh;overflow:clip}
.topbar{min-height:71px;padding:0 clamp(24px,4vw,64px);display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--xp-surface);border-bottom:1px solid var(--xp-line)}
.topbar-left,.topbar-tools{display:flex;align-items:center;gap:12px;min-width:0}
.topbar-left{font-size:10px;font-weight:850;letter-spacing:1.25px;color:var(--xp-ink)}
.topbar-subtle,.topbar-date{font-size:12px;font-weight:550;letter-spacing:0;color:var(--xp-secondary)}
.topbar-separator{height:18px;width:1px;background:var(--xp-line);margin:0 2px}
.theme-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--xp-line)!important;background:var(--xp-surface-2)!important;color:var(--xp-ink)!important;border-radius:11px!important;padding:8px 11px!important;min-height:39px;font-size:12px;font-weight:750;box-shadow:none!important}
#theme-icon{font-size:17px;line-height:1}
main{max-width:1700px!important;width:100%!important;margin:0 auto!important;padding:clamp(28px,3vw,46px) clamp(24px,4vw,64px) 45px!important;min-width:0}
main>.view-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 28px!important}
.eyebrow{color:#63877c!important;font-size:10px!important;letter-spacing:1.35px!important;font-weight:800!important}
.eyebrow span{color:#95b96a}
.view-heading h1{font-size:clamp(29px,3vw,42px)!important;letter-spacing:-1.7px!important;line-height:1.14;margin:7px 0 8px!important;color:var(--xp-ink)!important;font-weight:820}
.view-heading p{font-size:13px!important;line-height:1.5;color:var(--xp-secondary)!important}
#status.pill{background:var(--xp-surface)!important;color:var(--xp-secondary)!important;border:1px solid var(--xp-line)!important;font-size:11px!important;font-weight:700;padding:11px 15px!important;box-shadow:var(--xp-shadow);margin:0;white-space:normal;text-align:center}
#mainpanel.panel{background:var(--xp-surface)!important;border:1px solid var(--xp-line)!important;box-shadow:var(--xp-shadow)!important;padding:27px!important;border-radius:var(--xp-radius)!important;margin-bottom:22px!important;overflow:visible;min-width:0}
#mainpanel:has(.home-hero){padding:0!important;background:transparent!important;border:none!important;box-shadow:none!important}
#mainpanel:has(.home-hero) #feedback:not(:empty){padding:11px 16px;background:var(--xp-surface);border:1px solid var(--xp-line);border-radius:10px;margin-top:13px}
#mainpanel h2{color:var(--xp-ink);letter-spacing:-.6px;font-weight:800}
#mainpanel p{color:var(--xp-secondary)}
#feedback{color:var(--xp-primary)!important;font-size:12px!important;line-height:1.6;margin:12px 0 0!important}
#feedback:empty{display:none}
#feedback.warning{color:#c45130!important}
.panel,.result-card,.tile,.timetable-wrap,.kpi-card,.rail-stops-card,.rail-diagram,.result-summary{border-color:var(--xp-line)!important}
.fields{gap:16px!important}
.field,.fields label{color:var(--xp-secondary)!important;font-size:12px!important;font-weight:750!important;letter-spacing:.05px;gap:8px!important}
input,select{min-height:48px!important;border-radius:11px!important;background:var(--xp-surface)!important;color:var(--xp-ink)!important;border:1px solid #cedbd6!important;outline:none!important;padding:11px 13px!important;box-shadow:none!important}
input::placeholder{color:#8b9e9c}
input:focus,select:focus{border-color:#559b87!important;box-shadow:0 0 0 3px #5cb09c22!important}
input[type=checkbox]{width:17px;min-height:17px!important;accent-color:var(--xp-primary)}
.primary,.secondary,.search-submit{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border-radius:11px!important;padding:11px 17px!important;font-size:13px;font-weight:800!important;box-shadow:none!important;text-decoration:none}
.primary,.search-submit{background:var(--xp-primary-deep)!important;color:#fff!important;border:1px solid transparent!important}
.primary:hover,.search-submit:hover{background:#24666a!important}
.secondary{background:var(--xp-surface-2)!important;color:var(--xp-primary)!important;border:1px solid var(--xp-line)!important}
.secondary:hover{background:#e1efe7!important;border-color:#accfc1!important;color:#155259!important}
.buttonlink{color:var(--xp-primary)!important;font-size:12px!important;font-weight:800;text-decoration:none!important;min-height:32px!important;padding:5px!important}
.buttonlink:hover{text-decoration:underline!important}
.form-actions{margin-top:7px;gap:10px!important}
.suggestions{border-radius:12px!important;box-shadow:0 16px 36px #001e2226!important;border:1px solid var(--xp-line)!important;background:var(--xp-surface)!important;max-height:275px;z-index:500!important}
.suggestions button{background:var(--xp-surface)!important;color:var(--xp-ink)!important;font-size:13px}
.suggestions button:hover,.suggestions button:focus,.suggestions button[aria-selected=true]{background:var(--xp-surface-2)!important;color:var(--xp-primary)!important}
.help,.muted{color:var(--xp-secondary)!important}
/* Hero / passenger home */
.home-hero{position:relative!important;height:320px!important;min-height:300px!important;margin:0 0 0!important;background:radial-gradient(circle at 83% 15%,#326b70 0%,transparent 45%),linear-gradient(115deg,#122f33,#12484b)!important;border-radius:23px!important;box-shadow:0 18px 45px #164a4121!important;isolation:isolate;overflow:hidden!important}
.home-hero::after{content:'';position:absolute;z-index:-1;pointer-events:none;right:-50px;bottom:-110px;width:530px;height:340px;border:1px solid #bde5dd24;border-radius:50%;transform:rotate(-15deg);box-shadow:0 0 0 45px #adedd70b,0 0 0 91px #ade9d00a}
.home-hero-copy{position:relative;z-index:2!important;padding:42px 44px!important;max-width:57%!important}
.home-hero-copy .hero-tag{font-size:10px!important;letter-spacing:1.45px!important;color:var(--xp-accent)!important;font-weight:850;background:#e2efba19!important;border:1px solid #cee88c3d;border-radius:100px;display:inline-flex;padding:6px 11px!important}
.home-hero-copy h2{font-size:clamp(33px,3.65vw,54px)!important;letter-spacing:-2.1px!important;line-height:1.09!important;color:#fff!important;max-width:540px;margin:18px 0 15px!important;font-weight:860}
.home-hero-copy h2 em{display:block!important;color:var(--xp-accent)!important;font-style:normal!important}
.home-hero-copy p{font-size:13px!important;line-height:1.75!important;color:#c9e1da!important;max-width:450px!important;margin:0 0 18px!important}
.hero-guarantee{font-size:10px!important;letter-spacing:.3px!important;color:#b9d7d2!important;font-weight:650!important}
.home-hero-art{position:absolute!important;width:52%!important;max-width:none!important;height:auto!important;max-height:96%!important;object-fit:contain!important;object-position:right bottom;right:-20px!important;bottom:-10px!important;top:auto!important;z-index:1;opacity:.98!important;filter:drop-shadow(0 20px 30px #001e2640)}
.search-dock{position:relative!important;z-index:10!important;margin:-1px 23px 0!important;padding:23px 25px 18px!important;background:var(--xp-surface)!important;border:1px solid var(--xp-line)!important;border-top:none!important;border-radius:0 0 20px 20px!important;box-shadow:var(--xp-shadow)!important}
.search-dock-title{display:flex;align-items:center;gap:10px!important;margin-bottom:18px!important;color:var(--xp-ink)}
.search-dock-title strong{font-size:16px!important;font-weight:850;letter-spacing:-.35px}
.search-dock-icon{display:grid;place-items:center;width:33px;height:33px;border-radius:10px!important;background:#e9f4dc!important;color:#345a29!important;font-size:19px}
.search-mode{margin-left:auto!important;background:var(--xp-surface-2)!important;border:1px solid var(--xp-line);font-size:10px!important;color:var(--xp-secondary)!important;border-radius:30px;padding:7px 11px}
.home-search-grid{display:grid!important;grid-template-columns:minmax(115px,1fr) 32px minmax(115px,1fr) minmax(125px,.8fr) minmax(125px,.75fr) auto!important;gap:11px!important;align-items:end!important}
.home-search-grid .field{min-width:0}
.home-search-grid input{min-width:0}
.home-swap{border-radius:10px!important;background:var(--xp-surface-2)!important;color:var(--xp-primary)!important;border:1px solid var(--xp-line)!important;width:32px!important;min-height:48px!important;padding:0!important;font-size:20px!important;display:grid;place-items:center}
.home-search-grid .search-submit{height:48px;min-width:145px;grid-column:auto!important;white-space:nowrap}
.search-hint{font-size:11px!important;color:var(--xp-secondary)!important;margin-top:12px!important;line-height:1.6}
.home-metrics{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:13px!important;margin:20px 0 20px!important}
.dashboard-metric{background:var(--xp-surface)!important;border:1px solid var(--xp-line)!important;border-radius:17px!important;box-shadow:var(--xp-shadow)!important;padding:19px 18px!important;display:flex;gap:15px!important;align-items:center;min-width:0}
.dashboard-metric>span{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;border:1px solid #cfe1d7!important;border-radius:14px!important;background:#edf5ee!important;color:#295b49!important;font-size:22px!important}
.dashboard-metric small{font-size:11px!important;line-height:1.45;color:var(--xp-secondary)!important;display:block!important;font-weight:650}
.dashboard-metric strong{font-size:26px!important;letter-spacing:-1.1px;line-height:1.3;color:var(--xp-ink)!important}
.home-bottom{display:grid!important;grid-template-columns:minmax(0,1.52fr) minmax(255px,.78fr)!important;gap:16px!important;align-items:start!important}
.home-departures,.home-bottom>.home-side{min-width:0;background:var(--xp-surface)!important;border:1px solid var(--xp-line)!important;border-radius:19px!important;box-shadow:var(--xp-shadow)!important;padding:22px!important}
.home-block-title{display:flex!important;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px!important}
.home-block-title h2{font-size:18px!important;line-height:1.3!important;color:var(--xp-ink)!important;margin:0 0 4px!important}
.home-block-title p{margin:0!important;font-size:11px!important;color:var(--xp-secondary)!important}
.title-symbol{display:none}
.home-mini-header,.mini-row{display:grid!important;grid-template-columns:80px minmax(140px,1fr) 90px 85px!important;align-items:center!important;gap:8px}
.home-mini-header{background:var(--xp-surface-2)!important;color:var(--xp-secondary)!important;padding:9px 13px!important;font-size:10px!important;font-weight:800!important;letter-spacing:.6px;border-radius:9px}
.mini-row{padding:12px!important;border-bottom:1px solid var(--xp-line)!important;min-height:59px}
.mini-row:last-child{border-bottom:0!important}
.mini-time{color:var(--xp-ink)!important;font-size:17px!important;font-variant-numeric:tabular-nums}
.mini-details strong{font-size:12px!important;color:var(--xp-ink)!important}
.mini-track{color:var(--xp-secondary)!important;font-size:12px!important}
.mini-action{color:var(--xp-primary)!important;font-size:11px!important;font-weight:800!important;background:none!important;border:0!important;text-align:right}
.home-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px!important;padding:30px 16px!important;min-height:185px;text-align:center;background:var(--xp-surface-2)!important;border-radius:13px!important;color:var(--xp-ink)!important}
.home-empty>span{font-size:30px;color:#587e6c}
.home-empty strong{font-size:14px}
.home-empty p{font-size:12px!important;color:var(--xp-secondary)!important;max-width:370px;margin:0 0 5px!important}
.home-bottom>.home-side{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:8px!important;background:linear-gradient(155deg,#e8f1e8,#f6f8f3 65%)!important;position:relative!important;top:auto!important;height:auto!important;min-height:0!important;align-self:start!important;overflow:hidden!important;color:var(--xp-ink)!important}
.home-side h2{font-size:18px!important;color:var(--xp-ink)!important;margin:0 0 4px!important;letter-spacing:-.5px}
.home-side p{font-size:12px!important;color:var(--xp-secondary)!important;line-height:1.6!important;margin:0!important}
.home-side-art{object-fit:contain!important;width:100%!important;max-width:245px!important;max-height:140px!important;margin:5px auto!important;mix-blend-mode:multiply}
.home-side-actions{width:100%;display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin:0!important}
.home-side-actions button{width:100%!important;font-size:12px!important}
.home-side small{display:block;font-size:10px!important;color:var(--xp-secondary)!important;line-height:1.55}
/* Non-home modules */
/* The journey planner is a single full-width panel; it no longer has a second grid column. */
.planner-shell-passenger.compact.journey-planner-shell{display:block!important;grid-template-columns:none!important;width:100%;min-width:0}
.planner-shell-passenger.compact .planner-copy{border:0!important;background:transparent!important;box-shadow:none!important;padding:5px 3px!important;color:var(--xp-ink)!important}
.planner-shell-passenger.compact .planner-copy.planner-copy-illustrated{position:relative!important;overflow:hidden!important;width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--xp-line)!important;background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(248,251,250,.96) 100%)!important;box-shadow:var(--xp-shadow)!important;border-radius:20px!important;padding:26px!important;isolation:isolate}
.planner-copy-illustrated::before{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at right center,rgba(220,240,232,.72) 0,rgba(220,240,232,.40) 24%,rgba(220,240,232,.10) 46%,rgba(220,240,232,0) 62%);z-index:0;pointer-events:none}
.planner-copy-illustrated::after{content:'';position:absolute;top:12px;right:12px;width:260px;height:150px;border-radius:18px;background:url('/assets/journey-planner.webp') center right/contain no-repeat;opacity:.20;z-index:0;pointer-events:none;filter:drop-shadow(0 12px 18px rgba(18,51,67,.08))}
.planner-copy-illustrated>*{position:relative;z-index:1}
.planner-copy-illustrated form,.planner-copy-illustrated .form-actions{position:relative;z-index:1}
.planner-copy h2{font-size:24px!important;color:var(--xp-ink)!important;letter-spacing:-1px}
.planner-copy p{font-size:13px;color:var(--xp-secondary)!important;max-width:580px}
.planner-kicker{color:#648d71!important;font-size:10px!important;font-weight:850!important;letter-spacing:1.4px!important}
.planner-shell-passenger.compact .planner-copy .fields{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.planner-shell-passenger.compact .planner-copy .fields>:nth-child(5){grid-column:1/-1}
.planner-shell-passenger.compact .planner-visual-card{background:linear-gradient(165deg,#ebf5ec,#e1eee8)!important;border:1px solid #d5e9dc!important;box-shadow:none!important;border-radius:16px!important;padding:20px!important;min-height:0!important;align-self:start!important;height:auto!important;top:auto!important}
.planner-visual-card h3{color:#244b44!important;line-height:1.2!important}
.planner-visual-card p{color:#60766c!important}
.planner-visual-card .planner-asset{width:100%;max-height:140px!important;object-fit:contain}
.planner-chip{background:#d4e9d5!important;color:#2e634e!important}
.results{margin-top:13px!important;display:grid;gap:14px!important;min-width:0}
#results>h2{font-size:22px;color:var(--xp-ink)}
.result-card,.timetable-wrap{border-radius:18px!important;background:var(--xp-surface)!important;color:var(--xp-ink)!important;box-shadow:var(--xp-shadow)!important;min-width:0}
.result-card{padding:24px!important}
.result-card h3{color:var(--xp-ink)!important;letter-spacing:-.4px;font-size:18px!important}
.result-card h4{color:var(--xp-ink)!important}
.result-card p{color:var(--xp-secondary)!important}
.record{border-bottom-color:var(--xp-line)!important}
.record strong{color:var(--xp-secondary)!important}
.record span{color:var(--xp-ink)!important}
.timetable-wrap{overflow:hidden!important;padding:20px!important}
.timetable-wrap h2{color:var(--xp-ink)!important;font-size:19px!important}
.table-scroll{overflow-x:auto!important;max-width:100%}
.timetable{border-collapse:separate;border-spacing:0;min-width:600px;width:100%;background:var(--xp-surface)!important;color:var(--xp-ink)!important;font-size:12px!important}
.timetable th{background:var(--xp-surface-2)!important;color:var(--xp-secondary)!important;text-align:left;font-size:10px!important;letter-spacing:.4px!important;white-space:nowrap;padding:13px 11px!important;border-bottom:1px solid var(--xp-line)!important}
.timetable td{border-bottom:1px solid var(--xp-line)!important;color:var(--xp-ink)!important;padding:12px 10px!important;font-variant-numeric:tabular-nums}
.timetable tbody tr:hover{background:var(--xp-surface-2)!important}
.timetable td .secondary{min-height:37px;padding:8px 10px!important;font-size:11px!important}
.result-summary{background:var(--xp-surface-2)!important;color:var(--xp-secondary)!important;border:1px solid var(--xp-line)!important;padding:12px 15px!important;border-radius:12px!important;font-size:12px!important;line-height:1.7}
.result-summary.stored-result{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.empty{background:var(--xp-surface)!important;border:1px dashed #abbeb8!important;color:var(--xp-secondary)!important;border-radius:15px!important;padding:35px 22px!important;font-size:13px}
.kpi-grid{gap:12px!important}
.kpi-card{background:var(--xp-surface)!important;border:1px solid var(--xp-line)!important;border-radius:14px!important;color:var(--xp-ink)!important;box-shadow:none!important}
.kpi-card strong{color:var(--xp-ink)!important}
.kpi-card span{color:var(--xp-secondary)!important}
.status-badge{font-weight:750!important;border-radius:99px!important;white-space:nowrap}
.passenger-fields{gap:0!important}
.passenger-fields .record{padding:10px 0!important}
.stop-timeline li,.rail-stops-card,.rail-diagram,.stop-expander{background:var(--xp-surface)!important;border-color:var(--xp-line)!important;color:var(--xp-ink)!important}
.stop-timeline li strong{color:var(--xp-ink)!important}
.stop-timeline li p,.stop-times{color:var(--xp-secondary)!important}
.stop-timeline li.state-passed{background:#eef7f2!important;border-color:#d4e8dd!important}
.stop-timeline li.state-last_confirmed{background:#e5f6ec!important;border-color:#afdac5!important}
.stop-timeline li.state-upcoming{background:var(--xp-surface)!important}
.stop-timeline li.state-cancelled{background:#fff4f3!important;border-color:#f3cfcf!important}
.stop-row-heading strong{color:var(--xp-ink)!important}
.rail-diagram-heading h3,.rail-stops-head h3{color:var(--xp-ink)!important}
.rail-route-arrow{background:var(--xp-surface-2)!important;border-color:var(--xp-line)!important;color:var(--xp-primary)!important}
.rail-diagram-scroll{scrollbar-color:#b3c6bf transparent}
.rail-diagram-point .rail-diagram-name{color:var(--xp-ink)!important}
.rail-progress-note{color:var(--xp-secondary)!important}
.stop-expander summary{color:var(--xp-primary)!important;background:var(--xp-surface-2)!important}
.stop-expander[open]>summary{border-bottom:1px solid var(--xp-line)!important}
.route-fade{background:var(--xp-surface-2)!important;color:var(--xp-primary)!important;border-color:var(--xp-line)!important}
.tag,.tabs button.active{background:#e6f2e8!important;color:#245e4a!important}
.tabs button{border-color:var(--xp-line)!important;background:var(--xp-surface)!important;color:var(--xp-ink)!important;border-radius:11px!important;min-height:42px}
.json{background:var(--xp-surface-2)!important;color:var(--xp-ink)!important;max-height:400px}
summary{color:var(--xp-primary)!important}
.footnote{background:transparent!important;box-shadow:none!important;margin:38px 0 10px!important;padding:20px 0 0;border-top:1px solid var(--xp-line);font-size:11px!important;color:var(--xp-secondary)!important;line-height:1.8!important}
.footnote strong{color:var(--xp-ink)}
.footnote a{color:var(--xp-primary)!important;text-decoration:underline;text-underline-offset:3px}
/* Dark mode for inherited legacy rail structures */
html[data-theme="dark"] .view-heading .eyebrow{color:#a9cbbd!important}
html[data-theme="dark"] input,html[data-theme="dark"] select{border-color:#48616a!important}
html[data-theme="dark"] .suggestions button{color:var(--xp-ink)!important}
html[data-theme="dark"] .search-dock-icon,html[data-theme="dark"] .dashboard-metric>span{background:#2d4a42!important;color:#d4f08c!important;border-color:#506f65!important}
html[data-theme="dark"] .home-bottom>.home-side,html[data-theme="dark"] .planner-shell-passenger.compact .planner-visual-card,html[data-theme="dark"] #mainpanel aside.planner-visual-card{background:linear-gradient(155deg,#273f3d,#1b3033)!important;border-color:#45615b!important;color:var(--xp-ink)!important}
html[data-theme="dark"] .planner-shell-passenger.compact .planner-copy.planner-copy-illustrated{background:linear-gradient(180deg,rgba(28,43,48,.97) 0%,rgba(24,37,42,.98) 100%)!important;border-color:#375159!important}
html[data-theme="dark"] .planner-copy-illustrated::before{background:radial-gradient(circle at right center,rgba(62,104,95,.44) 0,rgba(62,104,95,.2) 24%,rgba(62,104,95,.06) 42%,rgba(62,104,95,0) 60%)}
html[data-theme="dark"] .planner-copy-illustrated::after{opacity:.23;filter:drop-shadow(0 12px 18px rgba(0,0,0,.2))}
html[data-theme="dark"] .home-side-art{mix-blend-mode:normal;opacity:.85}
html[data-theme="dark"] .planner-visual-card h3{color:#e3f4ed!important}
html[data-theme="dark"] .planner-visual-card p{color:#bdcfc8!important}
html[data-theme="dark"] .planner-chip{background:#375d4f!important;color:#d6f6df!important}
html[data-theme="dark"] .home-empty{background:#263a3d!important}
html[data-theme="dark"] .secondary:hover{background:#355751!important;color:#e0f7e9!important}
html[data-theme="dark"] .stop-timeline li.state-passed{background:#213d3d!important;border-color:#42655d!important}
html[data-theme="dark"] .stop-timeline li.state-last_confirmed{background:#244642!important;border-color:#61917a!important}
html[data-theme="dark"] .stop-timeline li.state-cancelled{background:#4b3034!important;border-color:#86545b!important}
html[data-theme="dark"] .stop-timeline li.state-cancelled strong{color:#ffe6e6!important}
html[data-theme="dark"] .tag,html[data-theme="dark"] .tabs button.active{background:#38534b!important;color:#d4f4dc!important}
html[data-theme="dark"] .rail-diagram-scroll{background:var(--xp-surface)!important}
html[data-theme="dark"] .rail-diagram-track{color:var(--xp-ink)!important}
html[data-theme="dark"] .rail-recenter{color:#d4efe4!important}
html[data-theme="dark"] .rail-diagram-point .rail-diagram-name{color:#e6f5ee!important}
html[data-theme="dark"] .rail-stops-counter{background:#2d5453!important;color:#ceeadd!important}
html[data-theme="dark"] .home-side h2{color:var(--xp-ink)!important}
/* Desktop / tablet / mobile adapt the same functional DOM. */
@media(max-width:1450px){
 .home-search-grid{grid-template-columns:minmax(130px,1fr) 32px minmax(130px,1fr) minmax(115px,.75fr) minmax(115px,.7fr)!important}
 .home-search-grid .search-submit{grid-column:1/-1!important;width:100%}
 .home-hero-copy{max-width:65%!important}
 .home-hero-art{width:50%!important;right:-25px!important}
}
@media(max-width:1160px){
 .shell{grid-template-columns:205px minmax(0,1fr)!important}
 .app-sidebar{width:205px!important}
 .sidebar-header{padding:18px 4px 21px}
 .app-sidebar .brand strong{font-size:15px!important}
 .app-sidebar .brand-icon{width:45px!important;min-width:45px!important}
 .app-sidebar .brand-icon img{width:42px}
 .home-bottom{grid-template-columns:1fr!important}
 .home-side-art{max-height:100px!important}
 .home-side-actions{grid-template-columns:repeat(2,1fr)!important}
 .home-hero-art{width:53%!important;opacity:.72!important}
 .planner-copy-illustrated::after{width:200px;opacity:.19}
}
@media(max-width:900px){
 .shell{display:block!important}
 .app-sidebar{position:relative!important;top:auto!important;width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important;padding:0 14px 9px!important}
 .sidebar-header{padding:12px 4px 10px;margin:0!important;border:0}
 .app-sidebar .brand-icon{height:39px!important;width:43px!important;min-width:43px!important}
 .app-sidebar .brand strong{font-size:17px!important}
 .app-sidebar .brand small{display:none!important}
 .app-sidebar>.aside-caption,.nav-group-title,.sidebar-bottom{display:none!important}
 .app-sidebar nav{display:flex!important;overflow-x:auto!important;overflow-y:hidden!important;gap:5px!important;padding:2px 0 8px;scrollbar-width:thin}
 .app-sidebar nav button{width:auto!important;min-width:max-content!important;padding:7px 12px!important;min-height:39px!important;gap:6px!important;font-size:11px!important;border-radius:10px!important}
 .app-sidebar nav button .nav-glyph{width:18px;min-width:18px;font-size:17px!important}
 .app-content{overflow:visible}
 .topbar{min-height:55px;padding:8px 22px}
 main{padding:25px 22px 38px!important}
 .home-hero-copy{max-width:69%!important;padding:32px!important}
 .home-hero-copy h2{font-size:38px!important}
 .home-hero-art{width:56%!important;opacity:.64!important}
 .planner-copy-illustrated::after{top:12px;right:8px;bottom:auto;left:auto;transform:none;width:145px;height:105px;opacity:.17;background-position:center top}
 .planner-copy-illustrated::before{background:radial-gradient(circle at 95% 12%,rgba(220,240,232,.35) 0,rgba(220,240,232,.09) 30%,rgba(220,240,232,0) 60%)}
}
@media(max-width:650px){
 .topbar{padding:10px 17px;min-height:52px}
 .topbar-subtle,.topbar-separator,.topbar-date{display:none}
 .topbar-left{letter-spacing:.65px;font-size:9px}
 main{padding:21px 15px 32px!important}
 main>.view-heading{align-items:flex-start;flex-wrap:wrap;gap:10px;margin-bottom:20px!important}
 .view-heading h1{font-size:30px!important;letter-spacing:-1.2px!important}
 .view-heading p{font-size:12px!important}
 #status.pill{font-size:10px!important;padding:7px 11px!important}
 #mainpanel.panel{padding:17px!important;border-radius:15px!important}
 .home-hero{height:auto!important;min-height:310px!important;border-radius:18px!important}
 .home-hero-copy{max-width:100%!important;padding:25px!important}
 .home-hero-copy h2{font-size:37px!important;max-width:340px!important;margin:16px 0!important}
 .home-hero-copy p{font-size:12px!important;line-height:1.55!important;max-width:285px!important}
 .hero-guarantee{font-size:9px!important;position:relative;z-index:3}
 .home-hero-art{width:75%!important;max-height:170px!important;right:-35px!important;bottom:-13px!important;opacity:.53!important}
 .search-dock{margin:-1px 9px 0!important;padding:19px 16px 16px!important;border-radius:0 0 15px 15px!important}
 .search-dock-title{margin-bottom:16px!important}
 .search-dock-title strong{font-size:14px!important}
 .search-mode{font-size:9px!important;padding:5px 7px!important}
 .home-search-grid{grid-template-columns:1fr 42px 1fr!important;gap:11px!important}
 .home-search-grid .field{grid-column:1/-1!important}
 .home-search-grid .home-swap{grid-column:1/-1!important;justify-self:center!important;min-height:36px!important;width:42px!important;transform:rotate(90deg);margin:-3px 0}
 .home-search-grid .search-submit{grid-column:1/-1!important}
 .home-metrics{grid-template-columns:1fr 1fr!important;gap:9px!important;margin:13px 0!important}
 .dashboard-metric{padding:12px!important;gap:9px!important;border-radius:12px!important}
 .dashboard-metric>span{width:34px;height:34px;flex-basis:34px;font-size:18px!important;border-radius:10px!important}
 .dashboard-metric small{font-size:10px!important}
 .dashboard-metric strong{font-size:20px!important}
 .dashboard-metric:last-child{grid-column:1/-1}
 .home-bottom{gap:12px!important}
 .home-departures,.home-bottom>.home-side{padding:17px!important;border-radius:14px!important}
 .home-block-title{gap:5px;align-items:start}
 .home-mini-header,.mini-row{grid-template-columns:70px minmax(0,1fr) 65px!important;gap:5px!important}
 .home-mini-header span:last-child,.mini-row .mini-action{grid-column:2/-1;text-align:right;min-height:30px!important;justify-self:end}
 .home-mini-header span:last-child{display:none}
 .mini-row{grid-template-columns:65px minmax(0,1fr) 55px!important;padding:12px 4px!important}
 .mini-row .mini-action{font-size:10px!important}
 .mini-time{font-size:15px!important}
 .home-side-actions{grid-template-columns:1fr!important}
 .fields,.planner-shell-passenger.compact .planner-copy .fields{grid-template-columns:1fr!important}
 .planner-shell-passenger.compact .planner-copy .fields>:nth-child(5){grid-column:auto!important}
 .planner-copy-illustrated::after{width:128px;height:100px;top:6px;right:4px;bottom:auto;opacity:.23}
 .planner-copy h2{font-size:20px!important}
 .result-card{padding:17px!important;border-radius:14px!important}
 .timetable-wrap{padding:14px!important}
 .kpi-grid{grid-template-columns:1fr!important;gap:10px!important}
 .kpi-card{padding:12px!important;border-radius:12px!important}
 .kpi-card span{font-size:10px!important;letter-spacing:.5px!important}
 .kpi-card strong{font-size:18px!important;line-height:1.3!important;overflow-wrap:anywhere}
 .table-scroll{overflow:visible!important}
 .timetable{display:block!important;min-width:0!important;width:100%!important;border-spacing:0 10px!important;background:transparent!important}
 .timetable thead{display:none!important}
 .timetable tbody{display:grid!important;gap:10px!important}
 .timetable tbody tr{display:block!important;background:var(--xp-surface)!important;border:1px solid var(--xp-line)!important;border-radius:14px!important;overflow:hidden!important;box-shadow:none!important}
 .timetable td{display:grid!important;grid-template-columns:minmax(86px,106px) minmax(0,1fr)!important;gap:8px!important;align-items:start!important;padding:10px 12px!important;font-size:12px!important;line-height:1.45!important;white-space:normal!important;word-break:break-word!important}
 .timetable td::before{content:attr(data-label);display:block;font-size:10px!important;line-height:1.35!important;font-weight:800!important;letter-spacing:.55px!important;text-transform:uppercase!important;color:var(--xp-secondary)!important}
 .timetable td:last-child{border-bottom:0!important}
 .timetable td[data-label="Szczegóły"],.timetable td[data-label="Akcja"]{grid-template-columns:1fr!important}
 .timetable td[data-label="Szczegóły"]::before,.timetable td[data-label="Akcja"]::before{margin-bottom:2px}
 .timetable td[data-label="Szczegóły"] .secondary,.timetable td[data-label="Akcja"] .secondary{width:100%!important;justify-content:center!important}
 .carrier-identity{max-width:none!important;align-items:flex-start!important;flex-wrap:wrap!important}
 .carrier-identity .carrier-logo{max-width:56px!important;height:24px!important}
 .carrier-identity .carrier-label{font-size:11px!important}
 .footnote{font-size:10px!important}
 .stop-timeline li{padding-right:9px!important}
}
@media(max-width:400px){
 .timetable td{grid-template-columns:1fr!important}
 .timetable td::before{margin-bottom:2px}
 .home-hero-copy h2{font-size:32px!important}
 .home-hero-art{width:85%!important;opacity:.4!important}
 .search-mode{display:none}
 .topbar-left{font-size:8px}
 .theme-toggle{font-size:11px;padding:7px 8px!important}
 .mini-row{grid-template-columns:56px minmax(0,1fr) 52px!important}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Dark mode polish */
html[data-theme="dark"] .home-empty strong{color:var(--xp-ink)!important}
html[data-theme="dark"] .home-empty p{color:var(--xp-secondary)!important}
html[data-theme="dark"] .footnote{background:transparent!important;color:var(--xp-secondary)!important;border-color:var(--xp-line)!important}
html[data-theme="dark"] .footnote strong{color:var(--xp-ink)!important}
html[data-theme="dark"] .primary,html[data-theme="dark"] .search-submit{color:#ffffff!important}
html[data-theme="dark"] .rail-stops-card .stop-progress-label{color:#132924!important}

/* v2.0.1 — operator brand marks remain legible against the dark theme.
   Official multi-colour logos should NOT be inverted or recoloured. Their own
   neutral, light backing ensures dark lettering in transparent SVGs remains visible. */
.carrier-identity .carrier-logo {
  box-sizing:content-box;
  background:#ffffff;
  padding:5px 7px;
  border:1px solid #dce6e2;
  border-radius:9px;
  box-shadow:0 1px 3px rgb(16 39 40 / 8%);
  filter:none;
}
.carrier-identity .carrier-label {
  color:var(--xp-ink);
}
.mini-row .carrier-identity .carrier-logo {
  padding:3px 5px;
  border-radius:7px;
}
/* The train-detail badge contains an entire identity, not just the artwork. */
html[data-theme="dark"] .spotlight>.carrier-identity {
  background:var(--xp-surface-2);
  border-color:var(--xp-line);
}
html[data-theme="dark"] .carrier-identity .carrier-logo {
  background:#ffffff;
  border-color:#e2e9e6;
  box-shadow:0 2px 8px rgb(0 0 0 / 20%);
}
html[data-theme="dark"] .carrier-identity .carrier-label {
  color:#edf5f1;
}

/* v2.0.19 — Passenger first: route details are a destination, not a technical search. */
.train-context{display:flex;gap:22px;align-items:center;justify-content:space-between;flex-wrap:wrap;min-width:0}
.train-context h2{margin:5px 0 8px;font-size:clamp(19px,2vw,25px)}
.train-context p{margin:0;line-height:1.6;max-width:650px;color:var(--muted,#61778a)}
.train-context-copy{flex:1 1 300px;min-width:0}
.train-context-actions{display:flex;gap:9px;flex-wrap:wrap}
.train-recent{justify-self:start}
.advanced-information{border-top:1px solid var(--line,#dae3ee);margin-top:18px;padding-top:10px}
.advanced-information>summary{font-weight:650}
.info-choices h2{margin-top:8px}
@media(max-width:600px){.train-context-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.train-context-actions button{padding:10px 7px;white-space:normal}}

/* v2.0.20: timetable-only progress is never styled as PLK-confirmed */
.stop-timeline li.state-scheduled_passed{background:#f2f5fa!important;border:1px dashed #c4cfdf!important;opacity:.86}
.stop-timeline li.state-scheduled_at_stop{background:#fff6e7!important;border:1px solid #e8cd9b!important}
.rail-diagram-point.state-scheduled_passed .rail-diagram-dot{background:#eef1f7;border:3px dashed #829ab2;color:#647a94;box-shadow:none}
.rail-diagram-point.state-scheduled_at_stop .rail-diagram-dot{background:#f8e7c0;border-color:#c4a267;box-shadow:0 0 0 4px #fdf5e4}
.legend-item.state-scheduled_passed::before{background:#e1e7ef;border:2px dashed #8195a9;box-sizing:border-box}
.legend-item.state-scheduled_at_stop::before{background:#f5daaa;border:1px solid #b7975b}
.stop-timeline li.state-scheduled_passed::before{background:#e1e7ef;border:2px dashed #8195a9}
.stop-timeline li.state-scheduled_at_stop::before{background:#f5daaa;border-color:#b7975b}
.rail-live-refresh{margin-top:12px}
html[data-theme="dark"] .stop-timeline li.state-scheduled_passed{background:#273545!important;border-color:#546c85!important}
html[data-theme="dark"] .stop-timeline li.state-scheduled_at_stop{background:#443d30!important;border-color:#977a47!important}

/* v2.0.26 — focused station amenities, progressive details and optional ODT catalogue. */
#mainpanel:has(.open-data-intro){padding:21px 26px!important;margin-bottom:14px!important}
.open-data-intro{padding:0!important;display:grid;grid-template-columns:minmax(185px,0.75fr) minmax(0,1.7fr);align-items:end;gap:26px;max-width:none!important}
.open-data-intro h2{font-size:19px!important;line-height:1.25;margin:0 0 5px!important}
.open-data-intro p{font-size:12px!important;max-width:39ch;line-height:1.6;margin:0!important}
.source-station-form{display:flex;align-items:end;gap:10px;min-width:0}
.source-station-form>.fields{display:block;flex:1 1 auto;min-width:0}
.source-station-form .form-actions{flex:0 0 auto}
.source-station-form .primary{white-space:nowrap}
.source-station-form .field{gap:6px!important}
#results .open-data-card{padding:23px 26px!important;margin:0!important}
.station-result-head{margin:0 0 16px!important;display:flex;justify-content:space-between;align-items:center;gap:12px}
.station-result-name{font-size:24px!important;letter-spacing:-.65px!important;line-height:1.23;margin:4px 0 0!important;color:var(--xp-ink)!important}
.station-eyebrow{display:block;color:var(--xp-secondary);font-size:10px;font-weight:800;letter-spacing:1.35px}
.station-result-body{display:grid;gap:16px}
.station-access-summary{display:flex;gap:13px;align-items:center;border:1px solid var(--xp-line);background:var(--xp-surface-2);border-radius:13px;padding:14px 17px}
.station-access-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;font-size:26px;color:var(--xp-primary);background:var(--xp-surface);border:1px solid var(--xp-line);border-radius:12px}
.station-access-copy{min-width:0}
.station-access-copy strong{display:block;font-weight:800;font-size:14px;line-height:1.4;color:var(--xp-ink)}
.station-access-copy p{font-size:12px!important;line-height:1.45;margin:3px 0 0!important;color:var(--xp-secondary)!important}
.station-access-positive{border-color:#b8dfcf;background:#eff8f2}
.station-access-partial{border-color:#e2d5a2;background:#faf6e9}
.station-access-caution{border-color:#ead0bb;background:#fff4e9}
html[data-theme="dark"] .station-access-positive,html[data-theme="dark"] .station-access-partial,html[data-theme="dark"] .station-access-caution{background:var(--xp-surface-2);border-color:var(--xp-line)}
.station-amenities{display:grid;gap:10px}
.station-amenities h3{margin:0!important;font-size:15px!important;font-weight:800!important;color:var(--xp-ink)!important}
.station-amenity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:9px}
.station-amenity{display:flex;align-items:center;gap:11px;border:1px solid var(--xp-line);border-radius:12px;padding:12px 14px;background:var(--xp-surface);min-width:0}
.station-amenity strong{font-size:22px;font-weight:850;line-height:1;min-width:25px;font-variant-numeric:tabular-nums;color:var(--xp-ink)}
.station-amenity span{font-size:12px;font-weight:650;line-height:1.4;color:var(--xp-secondary)}
.station-amenity-caption{font-size:11px!important;margin:0!important;color:var(--xp-secondary)!important}
.source-message{display:flex;align-items:flex-start;gap:10px;padding:13px 15px;border:1px solid var(--xp-line);background:var(--xp-surface-2);border-radius:12px}
.source-message-symbol{flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:900;background:var(--xp-surface);color:var(--xp-primary)}
.source-message-warn .source-message-symbol{background:#f4e7d6;color:#8a5426}
.source-message-copy{display:grid;gap:2px;min-width:0}
.source-message-copy strong{font-size:12px;font-weight:800;color:var(--xp-ink)}
.source-message-copy span{font-size:12px;line-height:1.5;color:var(--xp-secondary)}
.station-retry{justify-self:start;min-height:37px!important;padding:8px 12px!important;font-size:12px!important}
.station-source-details{border-top:1px solid var(--xp-line);padding-top:12px}
.station-source-details summary{color:var(--xp-secondary)!important;font-size:12px!important;font-weight:650!important;margin:0!important;cursor:pointer;list-style:disclosure-closed}
.station-source-details[open] summary{list-style:disclosure-open}
.station-details-inner{padding:10px 0 0;max-width:80ch;display:grid;gap:8px}
.station-details-inner p{margin:0!important;font-size:12px!important;line-height:1.6}
.station-details-inner a{font-size:12px;font-weight:700;color:var(--xp-primary)}
.source-directory-disclosure{border:1px solid var(--xp-line);border-radius:15px;background:var(--xp-surface);box-shadow:var(--xp-shadow);overflow:hidden}
.source-directory-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 25px;cursor:pointer;margin:0!important;list-style:none}
.source-directory-summary::-webkit-details-marker{display:none}
.source-directory-title{font-size:14px;font-weight:800;color:var(--xp-ink);line-height:1.4}
.source-directory-hint{font-size:12px;color:var(--xp-secondary);font-weight:550;text-align:right}
.source-directory-summary:after{content:'⌄';font-size:21px;color:var(--xp-secondary);transition:transform .15s ease}
.source-directory-disclosure[open] .source-directory-summary:after{transform:rotate(180deg)}
.source-directory-panel{padding:0 25px 21px;display:flex;flex-direction:column;align-items:flex-start;gap:11px;border-top:1px solid var(--xp-line)}
.source-directory-panel>.source-directory-meta{margin-top:14px!important}
.source-directory-meta{font-size:12px!important;margin:0!important;color:var(--xp-secondary)!important}
.source-directory-panel>.rail-link{font-size:12px;color:var(--xp-primary);font-weight:700;text-decoration:underline}
.source-directory-body{width:100%;display:grid;gap:10px}
.source-directory-status{display:grid;gap:10px}
.source-directory-body .open-data-filter{margin:0!important;font-size:13px}
.source-directory-body .open-data-feeds{width:100%;max-height:310px;overflow:auto;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:0!important}
.source-directory-body .open-data-feed{padding:10px 11px;border-radius:9px;background:var(--xp-surface-2)}
.source-directory-body .open-data-feed strong{font-size:12px;color:var(--xp-ink)}
.source-directory-body .open-data-feed span{font-size:11px;color:var(--xp-secondary)}
.station-empty{display:flex;align-items:center;gap:10px;border:1px dashed var(--xp-line);background:var(--xp-surface);padding:15px 22px;border-radius:15px;color:var(--xp-secondary)}
.station-empty-icon{font-size:23px;color:var(--xp-primary)}
.station-empty p{margin:0;font-size:13px}
@media(max-width:1020px){.open-data-intro{grid-template-columns:1fr;gap:16px}.source-station-form{max-width:850px}}
@media(max-width:680px){#mainpanel:has(.open-data-intro){padding:18px!important}.open-data-intro{gap:14px}.source-station-form{flex-direction:column;align-items:stretch;gap:10px}.source-station-form>.fields,.source-station-form .form-actions,.source-station-form button{width:100%}#results .open-data-card{padding:17px!important}.station-result-name{font-size:21px!important}.station-amenity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.station-amenity{padding:10px;gap:8px}.station-amenity strong{font-size:20px}.station-amenity span{font-size:11px}.source-directory-summary{padding:16px;align-items:flex-start}.source-directory-hint{display:none}.source-directory-panel{padding:0 16px 16px}.station-access-summary{padding:12px;gap:9px}.station-access-icon{width:36px;height:36px;flex-basis:36px;font-size:22px}}

/* v2.13.1 — hotfix: journey search without outer white frame */
#mainpanel[data-view="journeys"]{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  margin-bottom:14px !important;
  overflow:visible !important;
}
#mainpanel[data-view="journeys"] > #controls{
  margin:0;
}
#mainpanel[data-view="journeys"] > #feedback:not(:empty){
  margin:14px 2px 0;
  padding:0;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
#mainpanel[data-view="journeys"] .journey-planner-shell{
  max-width:none;
  margin:0;
}

/* 2.13.2: editor-selected destination photo fills the ENTIRE excursion page.
   The sidebar/topbar stay separate; the background is behind heading, content
   gutters, and the complete results list, never inside a single hero card. */
body[data-view="excursion"] .app-content{
  position:relative;
  isolation:isolate;
}
body[data-view="excursion"] .app-content::before{
  content:"";
  position:absolute;
  top:71px;
  bottom:auto;
  left:0;
  right:0;
  height:max(118vh,1100px);
  z-index:0;
  pointer-events:none;
  background-color:#173d42;
  background-image:
    linear-gradient(180deg,rgba(10,32,39,.52) 0%,rgba(10,32,39,.46) 26%,rgba(234,243,239,.69) 65%,#f5f8f6 100%),
    var(--excursion-page-image,linear-gradient(135deg,#315c63,#769899));
  background-position:center,center 45%;
  background-size:cover;
  background-repeat:no-repeat;
}
body[data-view="excursion"] .app-content main{
  position:relative;
  z-index:1;
}
body[data-view="excursion"] .app-content .topbar{
  position:relative;
  z-index:2;
}
body[data-view="excursion"] .view-heading h1,
body[data-view="excursion"] .view-heading .eyebrow,
body[data-view="excursion"] .view-heading p{
  color:#fff!important;
  text-shadow:0 1px 8px rgba(0,0,0,.37);
}
body[data-view="excursion"] .view-heading .eyebrow span{color:#d7f278!important}
body[data-view="excursion"] #mainpanel.panel{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin-bottom:18px!important;
}
body[data-view="excursion"] #mainpanel .excursion-hero{
  position:relative;
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  overflow:visible;
  padding:0;
}
body[data-view="excursion"] .excursion-back-button{
  position:static;
  margin:0;
  background:rgba(255,255,255,.94)!important;
  color:#075c53!important;
  border:1px solid rgba(255,255,255,.6)!important;
}
body[data-view="excursion"] .excursion-hero-content{
  max-width:980px;
  gap:12px;
  color:#fff;
  text-shadow:0 1px 5px rgba(0,0,0,.18);
}
body[data-view="excursion"] #mainpanel .excursion-hero-content h2,
body[data-view="excursion"] #mainpanel .excursion-hero-content p{
  color:#fff!important;
}
body[data-view="excursion"] .excursion-hero-meta span{
  background:rgba(10,39,42,.62);
  border:1px solid rgba(255,255,255,.24);
}
body[data-view="excursion"] .excursion-hero-credit,
body[data-view="excursion"] .excursion-hero-credit a{
  color:#fff!important;
}
body[data-view="excursion"] .excursion-hero-credit a{
  text-decoration:underline;
  text-underline-offset:3px;
}
body[data-view="excursion"] .excursion-options{
  background:rgba(255,255,255,.91);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 24px 60px rgba(6,34,35,.14);
  backdrop-filter:blur(10px);
}
body[data-view="excursion"] #results:empty{display:none}
body[data-view="excursion"] .footnote{
  padding:12px 16px;
  border-radius:12px;
  background:rgba(255,255,255,.82);
  color:#456260;
}
@media(max-width:900px){
  body[data-view="excursion"] .app-content::before{top:55px}
}
@media(max-width:650px){
  body[data-view="excursion"] #mainpanel.panel{padding:0!important}
  body[data-view="excursion"] .excursion-hero-content h2{font-size:clamp(1.8rem,6vw,2.6rem)}
  body[data-view="excursion"] .excursion-options{padding:13px}
}
