/* Only map controls, route strokes and city markers are restyled. */
.fixed-map .map-rail-heading>span{display:none}
.fixed-map{grid-template-columns:300px minmax(0,1fr)}
.fixed-map .map-rail{padding:22px 16px 16px;gap:0}
.fixed-map .map-rail-heading{padding:0 4px 16px}
.fixed-map .map-rail-heading>span{font-size:12px;letter-spacing:.09em;color:#94a8c0}
.fixed-map .map-rail-heading>strong{font-size:25px;margin-top:7px;color:#f3f7ff}
.fixed-endpoints{display:grid;gap:8px;padding:16px 0}
.fixed-endpoint{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:1px solid #293c54;border-radius:10px;background:#0c1b2c;color:#c6d6e8;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}
.fixed-endpoint.current{border-color:#73b7ff;background:#102942;box-shadow:inset 3px 0 #73b7ff}
.fixed-endpoint.destination.current{border-color:#6cd7b7;box-shadow:inset 3px 0 #6cd7b7;background:#0d292b}
.endpoint-letter{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#73b7ff;color:#071626;font-size:16px;font-weight:800}
.destination .endpoint-letter{background:#6cd7b7}
.endpoint-copy{display:grid;flex:1;min-width:0;gap:2px}
.endpoint-copy small{color:#a2b4cb;font-size:14px}
.endpoint-copy strong{color:#f5f8ff;font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.fixed-search{display:grid;gap:7px;color:#b9c9dd;font-size:14px}
.fixed-search input{width:100%;min-height:42px;padding:10px 12px;border:1px solid #344861;border-radius:8px;color:#fff;background:#061220;font:16px/1.3 var(--body,Arial,sans-serif)}
.fixed-search input::placeholder{color:#8a9fb8}
.fixed-city-count{padding:12px 4px 4px;color:#91a6bf;font-size:13px}
.fixed-map .fixed-city-list{display:flex;flex-direction:column;gap:3px;padding:4px 0 12px;overflow-x:hidden;overflow-y:auto;min-height:110px}
.fixed-map .fixed-city-list button{display:flex;align-items:center;gap:10px;flex:0 0 auto;min-width:0;width:100%;min-height:54px;padding:9px;border:1px solid transparent}
.fixed-map .fixed-city-list button.active{background:#132d45;border-color:#335a7e}
.fixed-map .fixed-city-list button.active:after{display:none}
.city-choice-copy{display:grid;gap:2px;flex:1;min-width:0}
.city-choice-copy strong{font-size:15px;font-weight:600;line-height:1.35;color:#e6edf8}
.fixed-map .fixed-city-list .city-choice-copy small{display:block;font-size:12px;color:#a0b2c8;line-height:1.3}
.city-choice-dot{height:7px;width:7px;border:1px solid #8bc1fb;border-radius:50%;flex:0 0 7px;background:#34699d}
.city-choice-dot.destination{border-color:#72ddbb;background:#237969}
.city-choice-check{font-size:17px;color:#8ac8ff}
.fixed-empty{font-size:14px;color:#c2cddd;padding:8px}
.fixed-route-summary{padding:15px 3px 0;border-top:1px solid #26394f}
.fixed-route-summary strong{font-size:14px;color:#dfeaf7}
.fixed-route-summary p{font-size:13px;line-height:1.45;color:#a4b5ca;margin:6px 0 0}
.fixed-map .map-canvas{touch-action:pan-y}
.fixed-map svg{touch-action:pan-y}
.fixed-background-routes path{fill:none;stroke:#4d81aa;stroke-width:1;opacity:.12;vector-effect:non-scaling-stroke;pointer-events:none}
.fixed-selected-routes path{fill:none;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}
.fixed-route-halo{stroke:#061321;stroke-width:6;opacity:.9}
.fixed-route-line{stroke:#8bc8ff;stroke-width:2.7}
.fixed-route-line.sea{stroke:#7edac7;stroke-dasharray:5 6;stroke-width:2.2}
.fixed-city{cursor:pointer;outline:none}
.fixed-city-hit{fill:transparent;stroke:none}
.fixed-city-ring{fill:#091829;stroke:#45719a;stroke-width:1.1;vector-effect:non-scaling-stroke}
.fixed-city-core{fill:#8cc8ff;stroke:#d1e8fd;stroke-width:.6;vector-effect:non-scaling-stroke}
.fixed-city.destination .fixed-city-ring{stroke:#439984;fill:#0b211f}
.fixed-city.destination .fixed-city-core{fill:#6cdbb8;stroke:#c2f6e7}
.fixed-city.selected .fixed-city-ring{stroke:#b6dfff;stroke-width:1.6;fill:#102b46}
.fixed-city.destination.selected .fixed-city-ring{stroke:#a9edda;fill:#163e36}
.fixed-city:hover .fixed-city-ring,.fixed-city:focus-visible .fixed-city-ring{stroke:#fff;stroke-width:2.5}
.fixed-city-letter{fill:#061725;font:800 14px var(--body,Arial,sans-serif);stroke:none;pointer-events:none}
.fixed-city-label{pointer-events:none}
.fixed-city-label rect{fill:#081422;fill-opacity:.82;stroke:transparent}
.fixed-city-label text{fill:#b6c6d9;font:500 14px var(--display,Arial,sans-serif);stroke:none}
.fixed-city.selected .fixed-city-label rect,.fixed-city:hover .fixed-city-label rect,.fixed-city:focus-visible .fixed-city-label rect{fill:#0d2238;stroke:#3d6288;fill-opacity:.97}
.fixed-city.selected .fixed-city-label text,.fixed-city:hover .fixed-city-label text,.fixed-city:focus-visible .fixed-city-label text{fill:#fff;font-size:15px;font-weight:650}
.fixed-map-footer{position:absolute;left:14px;right:14px;bottom:10px;z-index:2;display:flex;justify-content:space-between;align-items:end;gap:14px;pointer-events:none}
.fixed-legend{display:flex;gap:13px;flex-wrap:wrap;padding:9px 12px;border:1px solid #283c52;border-radius:8px;color:#b1c3d8;background:#06121eef;font-size:12px}
.fixed-legend>span{display:flex;align-items:center;gap:7px}
.fixed-legend i{width:7px;height:7px;display:block;border-radius:50%;background:#8cc8ff}
.fixed-legend i.destination{background:#6cdbb8}
.fixed-legend i.rail{width:18px;height:2px;background:#8bc8ff;border-radius:0}
.fixed-credit{max-width:310px;color:#92a6bd!important;font-size:12px;line-height:1.3;text-align:right;text-decoration:none;pointer-events:auto}
.fixed-map button:focus-visible,.fixed-map input:focus-visible{outline:2px solid #c0e5ff;outline-offset:2px}
.fixed-train-animation{pointer-events:none}
.fixed-hub-dot{fill:#347bff;stroke:#b9ddff;stroke-width:1;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px #347bff);pointer-events:none}
.fixed-city.hub .fixed-city-letter{fill:#fff}
.fixed-city-leader{fill:none;stroke:#6cdbb8;stroke-width:1;stroke-dasharray:2 3;pointer-events:none}
.city-choice-dot.hub{outline:none;border:2px solid #8cc8ff;border-radius:50%;background:#2464ed;width:10px;height:10px;flex-basis:10px}
.fixed-map .fixed-city-list .city-hub-badge{color:#8cc8ff;font-size:12px}
.fixed-legend i.hub{width:10px;height:10px;border:2px solid #8cc8ff;border-radius:50%;background:#2464ed}
.fixed-map .fixed-city-list .city-choice-copy strong{overflow-wrap:anywhere}
.train-coupling{fill:none;stroke:#8295a8;stroke-width:2.3;stroke-linecap:round}
.container-train{filter:drop-shadow(0 2px 2px #000a)}
.container-train.train-engine image{filter:saturate(1.08) contrast(1.04) brightness(1.06)}
.train-steam circle,.train-steam ellipse{fill:#dce2e6;stroke:none;filter:blur(.9px)}
.train-controls{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:12px}
.train-controls>span{flex-basis:100%;color:#c3d8ed;font-size:13px}
.train-controls button{padding:6px 10px;border:1px solid #395777;border-radius:7px;color:#d5e9ff;background:#10283e;font-size:13px;cursor:pointer}
.train-controls button:hover{background:#1c3f5e;border-color:#86c3ff}
@media(max-width:1100px){.fixed-map{grid-template-columns:270px minmax(0,1fr);height:700px;display:grid}.fixed-map .map-rail{display:flex}.fixed-map .map-canvas{height:100%;min-height:0}}
@media(max-width:820px){.fixed-map{display:flex;flex-direction:column;height:auto}.fixed-map .map-rail{display:block;padding:18px 14px}.fixed-endpoints{grid-template-columns:1fr 1fr}.fixed-map .fixed-city-list{max-height:145px;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:4px}.fixed-route-summary{margin-top:8px;padding-top:10px}.fixed-map .map-canvas{height:460px;flex:none}.fixed-map-footer{flex-direction:column;align-items:start;gap:5px;left:8px;right:8px}.fixed-credit{text-align:left;max-width:none}.fixed-map .map-rail-heading>strong{font-size:23px}.fixed-map .map-rail-heading{padding-bottom:4px}}
@media(max-width:440px){.fixed-endpoint{gap:7px;padding:9px}.endpoint-letter{flex-basis:25px;height:25px}.endpoint-copy strong{font-size:14px}.fixed-map .map-canvas{height:400px}.city-choice-copy strong{font-size:14px}.fixed-map .fixed-city-list .city-choice-copy small{font-size:12px}.fixed-legend{font-size:12px}}

.fixed-ship-animation{pointer-events:none;filter:drop-shadow(0 1px 1px #0008)}
