/* VHD Kutná Hora – departure board; colours follow vhd-homepage (core.css tokens). */
.vhd-departures { margin: 18px 0 0; padding: 10px 15px 8px; border: 1px solid var(--vhd-home-border, #dce2e8); border-radius: 5px; background: #fff; }
.vhd-departures .vhd-departures-head { flex-wrap: wrap; margin: 0 0 4px; }
.vhd-departures .vhd-departures-head :is(h2, h3) { gap: 9px; font-size: 19px; font-weight: 650; letter-spacing: -.35px; }
.vhd-departures .vhd-departures-head :is(h2, h3) svg { width: 25px; height: 25px; color: var(--vhd-home-red, #aa2432); fill: none; stroke: currentColor; stroke-width: 2; }
.vhd-departures-stop select { max-width: min(330px, 100%); min-height: 34px; padding: 5px 10px; border: 1px solid #c9d1d9; border-radius: 4px; background-color: #fff; color: var(--vhd-home-ink, #202733); font: inherit; font-size: 14px; }
.vhd-departures-list { margin: 0; padding: 0; list-style: none; }
.vhd-departures-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 6px 0; border-top: 1px solid #e8ecef; }
.vhd-departures-row .vhd-home-line { justify-self: start; min-height: 23px; }
.vhd-departures-main { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10px; min-width: 0; }
.vhd-departures-headsign { min-width: 0; color: #27303c; font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; }
.vhd-departures-detail { color: var(--vhd-home-muted, #65707e); font-size: 12.5px; white-space: nowrap; }
.vhd-departures-time { display: grid; grid-template-columns: auto auto; justify-items: end; align-items: baseline; gap: 0 8px; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.vhd-departures-time strong { color: var(--vhd-home-ink, #202733); font-size: 15px; font-weight: 650; }
.vhd-departures-delay { font-size: 12.5px; font-weight: 600; }
.vhd-departures-delay.is-late, .vhd-departures-delay.is-canceled { color: #b3261e; }
.vhd-departures-delay.is-on-time { color: #1f7a3d; }
.vhd-departures-in { grid-column: 1 / -1; color: var(--vhd-home-muted, #65707e); font-size: 12.5px; }
.vhd-departures-in:empty { display: none; }
.vhd-departures-row.is-canceled .vhd-departures-headsign, .vhd-departures-row.is-canceled .vhd-departures-time strong { color: var(--vhd-home-muted, #65707e); text-decoration: line-through; }
.vhd-departures-status { margin: 8px 0; color: var(--vhd-home-muted, #65707e); font-size: 14px; }
.vhd-departures-notice { margin: 4px 0 8px; padding: 7px 10px; border: 1px solid var(--vhd-home-amber-border, #eed898); border-radius: 4px; background: var(--vhd-home-amber, #fff7dd); color: #27303c; font-size: 13px; line-height: 1.4; }
.vhd-departures-source { margin: 6px 0 0; color: var(--vhd-home-muted, #65707e); font-size: 12px; line-height: 1.4; }
.vhd-departures-updated:not(:empty)::after { content: " · "; }
.vhd-departures-updated.is-stale { color: #8a5a00; }
.vhd-departures-board[aria-busy="true"] { min-height: 60px; }
/* Wide screens: one line per departure, time | delay | countdown in aligned columns. */
@media (min-width: 541px) {
 .vhd-departures-row { grid-template-columns: 44px minmax(0, 1fr) 46px 74px 82px; gap: 10px; padding: 4px 0; }
 .vhd-departures-time { display: contents; }
 .vhd-departures-time strong { justify-self: end; }
 .vhd-departures-delay { justify-self: start; }
 .vhd-departures-in, .vhd-departures-in:empty { display: block; grid-column: auto; justify-self: end; text-align: right; white-space: nowrap; }
}
@media (max-width: 540px) {
 .vhd-departures { padding: 10px 12px 6px; }
 .vhd-departures-stop { flex: 1 1 100%; }
 .vhd-departures-stop select { width: 100%; max-width: none; }
 /* Fixed delay column keeps the times aligned when a service has no delay data. */
 .vhd-departures-time { grid-template-columns: auto 58px; }
 .vhd-departures-delay { justify-self: start; }
}
@media print { .vhd-departures { display: none !important; } }
