/* Moving train overlay shares the exact schematic viewBox; no CSS timing loop. */
.train-map{position:relative;margin:12px 14px}.train-map>img{display:block;width:100%;height:auto}.train-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.train-halo{fill:#0b2030;stroke:#fff4f7;stroke-width:2}.train-dot{fill:var(--car-color,#ff86bd)}.train-stop-ring{fill:none;stroke:var(--car-color,#ff86bd);stroke-width:6;display:none}
.train-marker[data-stage="dwell"] .train-stop-ring{display:block}.train-marker[data-stage="dwell"] .train-halo,.train-marker[data-stage="dwell"] .train-dot{display:none}
.train-tracker{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 28px 0;padding:16px 0;border-block:1px solid #2b4851}.train-tracker[hidden]{display:none}.train-tracker>div{min-width:0}.train-label{display:flex;align-items:center;gap:9px;color:#ffacd0;font-size:12px;margin:0 0 6px}.train-key{display:inline-block;width:10px;height:10px;border-radius:50%;background:#ff86bd;flex:none}
.train-position{font-size:14px;line-height:1.5;color:#f5f0e5;margin:0;min-height:42px}.train-mode{font-size:11px;line-height:1.5;color:#b4c7c6;margin:6px 0 0;min-height:33px}.train-pause{border:1px solid #69868b;border-radius:4px;background:#102f39;color:#f5f0e5;font:inherit;font-size:12px;cursor:pointer;min-height:44px;min-width:92px;padding:10px;flex-shrink:0}.train-pause:hover{background:#1d414a}.train-pause:focus-visible{outline:3px solid #ff86bd;outline-offset:4px}
@media(max-width:1100px){.train-tracker{margin-inline:22px;align-items:flex-start;flex-direction:column;gap:8px}.train-position{min-height:42px}}
@media(min-width:501px) and (max-width:800px){.train-tracker{align-items:center;flex-direction:row}}
@media(max-width:500px){.train-map{margin-inline:0}.train-tracker{margin-inline:18px}.train-position{min-height:42px}.train-mode{min-height:33px}}

.car-2{--car-color:#ffd17a}.car-number,.stop-car-number{font:700 15px system-ui,sans-serif;fill:#0b2030}.stop-car-number{fill:var(--car-color,#ff86bd);paint-order:stroke;stroke:#0b2030;stroke-width:5px;display:none}.train-marker[data-stage="dwell"] .car-number{display:none}.train-marker[data-stage="dwell"] .stop-car-number{display:block}.car-two .train-label{color:#ffd17a}.car-two .train-key{background:#ffd17a}.car-statuses{display:grid;gap:12px;grid-template-columns:1fr 1fr;width:100%}.car-statuses .train-mode{grid-column:1/-1;min-height:0}.departure-car{display:block;margin-top:4px;font-size:11px;color:#b4c7c6}.train-tracker{align-items:flex-start;flex-wrap:wrap}.train-position{min-height:42px}@media(max-width:500px){.car-statuses{grid-template-columns:1fr}.train-position{min-height:0}}
