:root{--accent:#315de4;--accent2:#2248bd;--primary:var(--accent);--ink:var(--text);--highspeed:#008d91;--day:#315de4;--night:#963ac4;--visit:#e79a29;--bad:#c4474d;--map-sea:#eaf0f3;--map-land:#fafaf5;--bg:#f4f6f8;--shadow:0 4px 20px #23334a06}
button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,svg [role=button]:focus-visible{outline:3px solid #e79a29;outline-offset:3px}button:disabled{cursor:wait}.site-header{padding:20px 4px}.brand-mark{box-shadow:none}.header-tools{display:none}.prototype-pill{font-size:11px;color:#63717c}.workspace-tabs{display:none}.workspace-help{font-size:13px;line-height:1.6;padding:16px;background:#eef2ff;border-radius:12px;margin-bottom:12px}.avoid-section{margin-top:16px;border-top:1px solid var(--line);padding-top:15px}.avoid-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.avoid-chip{display:flex;align-items:center;gap:8px;background:#fff0f1;color:#a3323b;border:1px solid #efced1;padding:5px 9px;border-radius:20px;font-size:12px}.avoid-chip button{background:none;color:inherit;padding:0;min-height:28px;width:24px}.explorer{display:none}.route-heading{align-items:center}.route-price:after{content:' est.';font-size:10px;color:var(--muted);font-weight:500}.route-select{display:none}.dual-range,.dual-handle{touch-action:none}.dual-handle{min-height:26px;min-width:26px}.workspace-panel>.card{box-shadow:none}.section-title{letter-spacing:-.015em}.notice{background:#f1f5ff;border-color:#dfe7fa}.chip.night{color:#7a299e;background:#f4eafb}.chip.visit{color:#976019;background:#fff5e5}.route.selected{border-color:var(--accent);box-shadow:0 0 0 2px #315de41a}.route.selected .route-select{background:var(--accent);color:white}.calendar-sheet{z-index:150}.sticky{padding-bottom:max(10px,env(safe-area-inset-bottom))}
@media(min-width:1000px){
 body{overflow:hidden}.app{position:absolute;inset:0 auto 0 0;width:450px;max-width:none;padding:0 22px 112px;overflow-y:auto;scrollbar-width:thin;background:var(--bg);border-right:1px solid #dce3e7}.site-header{padding:24px 2px 20px;gap:8px}.brand-kicker{font-size:9px}.header-tagline{font-size:12px}.header-tools{display:flex;align-items:flex-end;flex-direction:column;gap:8px}.header-tools a{font-size:11px;color:var(--accent);text-decoration:none}.prototype-pill{display:none}.workspace-tabs{position:sticky;top:0;display:flex;gap:5px;padding:8px 0 14px;background:var(--bg);z-index:20}.workspace-tabs button{flex:1;min-height:43px;background:#e9edf2;color:#66717e;font-size:12px;font-weight:700;border:1px solid transparent;border-radius:11px}.workspace-tabs button.active{background:#fff;color:var(--accent);border-color:#dde3ed;box-shadow:0 2px 5px #23334a05}.workspace-panel[hidden]{display:none}.workspace-panel>.card{padding:17px;border-radius:14px;margin-bottom:12px}.grid{grid-template-columns:1fr}.full{grid-column:1}.trip-places{grid-template-columns:1fr 34px 1fr;gap:6px}.trip-places label{font-size:10px}.place-input{font-size:14px;padding:9px}.finish-label-row{flex-wrap:wrap}.roundtrip-toggle{font-size:10px}.date-action-row .date-main{width:125px;min-width:110px}.date-action-row .date-shortcut{min-width:58px;font-size:10px}.window-top{gap:6px}.range-value{font-size:12px}.hint{line-height:1.55;font-size:11px}.footer{font-size:10px;line-height:1.7;padding:4px 5px}.sticky{width:450px;right:auto;left:0;border-right:1px solid #dce3e7;background:#f4f6f8f5;backdrop-filter:blur(8px)}.sticky-inner{max-width:none;padding:0 22px}.route-content{display:block}.route-map-wrap{display:none}.route{padding:14px;cursor:pointer;border-radius:12px}.route-select{display:block;width:100%;margin:12px 0 0;min-height:35px;border-radius:8px;background:#edf1ff;color:var(--accent);font-size:12px}.route .chips{gap:4px}.chip{font-size:10px}.route-meta{font-size:11px}.journey{min-width:0}.results-panel>.card{padding:12px}.explorer{display:block;position:fixed;inset:0 0 0 450px;background:var(--map-sea);overflow:hidden}.map-heading{position:absolute;z-index:3;top:28px;left:30px;right:24px;display:flex;justify-content:space-between;gap:15px;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:.17em;font-weight:800;color:#6b7b87}.map-heading h2{font-size:24px;font-weight:650;letter-spacing:-.045em;margin:7px 0;color:#2a3d51}.map-heading p{max-width:520px;font-size:12px;color:#627483;line-height:1.5;margin:0}.map-reset{pointer-events:auto;align-self:flex-start;border:1px solid #d6dfe4;background:#ffffffce;color:#465b6e;font-size:11px;padding:9px 12px;border-radius:8px;min-height:36px}.map-controls{position:absolute;bottom:90px;right:25px;display:grid;background:#fff;border-radius:10px;border:1px solid #dce3e7;box-shadow:0 3px 14px #283b4b0d;overflow:hidden}.map-controls button{width:40px;height:40px;min-height:40px;border-radius:0;background:white;color:#354e60;font-size:21px}.map-controls button+button{border-top:1px solid #edf0f3}.map-legend{position:absolute;bottom:38px;left:28px;display:flex;flex-wrap:wrap;gap:15px;border:1px solid #e0e5e8;background:#ffffffed;padding:12px 16px;border-radius:10px;font-size:10px;color:#536572;pointer-events:none}.map-legend span{display:flex;gap:7px;align-items:center}.legend-line{display:inline-block;width:20px;height:3px;border-radius:2px}.highspeed{background:var(--highspeed)}.day{background:var(--day)}.night{background:var(--night)}.legend-line.night{height:0;border-top:3px dashed var(--night);background:none}.legend-dot{width:8px;height:8px;background:var(--visit);border:2px solid white;outline:1px solid var(--visit);border-radius:50%}.map-attribution{position:absolute;bottom:12px;left:30px;color:#6e818e;font-size:9px}.map-attribution a{color:inherit}#explorerMap{width:100%;height:100%;cursor:grab;touch-action:none}#explorerMap.dragging{cursor:grabbing}.geo-land{fill:var(--map-land);stroke:#d6dfdf;stroke-width:.8;vector-effect:non-scaling-stroke}.country-label{fill:#9ba9aa;font-size:10px;letter-spacing:2px;pointer-events:none}.network-line{fill:none;stroke-width:1.7;opacity:.42;pointer-events:none}.network-hit{fill:none;stroke:transparent;stroke-width:13;cursor:pointer;pointer-events:stroke}.network-line.focused{stroke-width:3;opacity:1}.network-line.dimmed{opacity:.07;stroke:#82949f}.itinerary-line{fill:none;stroke-width:4;stroke-linecap:round;pointer-events:none;filter:drop-shadow(0 1px 1px #ffffff)}.city-marker{cursor:pointer;outline:none}.city-marker circle{fill:var(--accent);stroke:white;stroke-width:2}.city-marker.selected circle{fill:var(--visit)}.city-marker.avoided circle{fill:var(--bad)}.city-marker text{font-size:11px;font-weight:650;fill:#3b5263;paint-order:stroke;stroke:#fafaf5;stroke-width:4px;stroke-linejoin:round;pointer-events:none}.city-marker.dimmed{opacity:.23}.city-marker.active circle{stroke:var(--visit);stroke-width:3;fill:white}.city-marker:hover circle,.city-marker:focus circle{stroke:var(--accent);stroke-width:3;fill:white}.city-halo{fill:none!important;stroke:var(--visit)!important;stroke-width:1!important;opacity:.4}.map-popup{position:absolute;right:24px;top:145px;width:310px;max-width:calc(100% - 48px);max-height:calc(100% - 235px);overflow-y:auto;padding:20px;background:#fffffffa;box-shadow:0 12px 45px #24394b20;border:1px solid #dce3e7;border-radius:15px;z-index:5;scrollbar-width:thin}.map-popup[hidden]{display:none}.popup-close{position:absolute;right:10px;top:10px;min-height:28px;width:28px;background:#f0f3f5;border-radius:50%;color:#5d6f7b;font-size:18px}.popup-kicker{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#798994;font-weight:750;margin-bottom:8px}.map-popup h3{font-size:22px;letter-spacing:-.03em;line-height:1.2;margin:0 22px 12px 0;color:#243b50}.map-popup p{font-size:12px;line-height:1.6;color:#647582;margin:10px 0}.popup-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.popup-metrics div{background:#f5f7f9;border-radius:8px;padding:10px;font-size:12px;font-weight:650;line-height:1.5}.popup-metrics small{display:block;font-size:9px;font-weight:500;color:#7a8792;text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px}.popup-highlights{padding:0 0 0 16px;color:#465d6e;font-size:12px;line-height:1.8}.popup-tags{font-size:11px;color:#637682;line-height:1.6}.popup-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:15px}.popup-actions button{background:#eef2fd;border:1px solid #e2e8f8;color:var(--accent);border-radius:8px;font-size:11px;min-height:35px;padding:7px}.popup-actions button.avoid-action{color:#ab4148;background:#fff1f2;border-color:#f1dfe1}.popup-source{display:block;font-size:10px;color:#637ca1;margin-top:12px}.popup-see-more{display:flex;align-items:center;justify-content:space-between;width:100%;background:#edf2ff;color:var(--accent);min-height:40px;border-radius:8px;font-size:12px;padding:10px 12px;margin-top:14px}.departures-list{list-style:none;margin:12px 0 0;padding:0}.departures-list li{padding:10px 0;border-bottom:1px solid #e9edf2}.departure-time{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:#334c60}.departure-detail{font-size:10px;color:#74838d;margin-top:4px;line-height:1.6}.operator-link{display:block;color:var(--accent);font-size:12px;font-weight:650;text-decoration:none;margin-top:14px}.connection-list{display:grid;gap:5px;margin-top:12px}.connection-list button{display:flex;align-items:center;gap:7px;text-align:left;background:#f5f7fa;color:#42596d;border-radius:7px;font-size:11px;padding:9px;min-height:34px}.connection-list button span:last-child{margin-left:auto}.connection-list i{width:7px;height:7px;border-radius:50%;flex:none}.map-popup .hint{font-size:10px}.stop-timing{border-left:3px solid var(--visit);padding:2px 0 2px 12px;margin:14px 0}.stop-timing div{font-size:12px;color:#465c6d;line-height:1.8}.stop-timing strong{font-weight:650}.map-empty{font-size:11px;color:#768692;padding:10px 0}.map-popup a{overflow-wrap:anywhere}
}
@media(min-width:1400px){.app,.sticky{width:480px}.explorer{left:480px}.map-heading h2{font-size:29px}.prototype-pill{display:block}.map-popup{width:330px}}
@media(max-width:999px){.workspace-panel[hidden]{display:block}.header-tools{display:none}.results-panel{display:block}.app{max-width:900px}.workspace-help{display:none}.route.selected{box-shadow:none}.route-select{display:none}}
@media(max-width:620px){.app{padding-bottom:125px}.trip-places>div:not(.switch-wrap)>label,.trip-places .finish-label-row>label:first-child{display:none}.trip-places .finish-label-row{margin:0}.trip-places:has(#roundTrip:checked)>div:last-child{display:none}.trip-places:has(#roundTrip:checked){padding-right:0}.trip-places:has(#roundTrip:checked) .switch-wrap{display:none!important}.roundtrip-mobile-host{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;font-weight:650}.roundtrip-mobile-host .roundtrip-toggle{padding:4px 0}.roundtrip-mobile-host .roundtrip-toggle span{display:none}.hint{line-height:1.5}.sticky .mini{font-size:10px}.sticky-inner{padding-left:18px;padding-right:18px}.avoid-section .hint{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
@media(min-width:1000px){.trip-places{display:flex;flex-direction:column;position:relative;gap:12px}.trip-places>div:not(.switch-wrap){width:100%;padding-right:44px}.trip-places .switch-wrap{position:absolute;right:0;top:50%;transform:translateY(-4px);width:34px}.trip-places .swap-btn{transform:rotate(90deg);width:34px;height:34px}.trip-places label{font-size:11px}.finish-label-row{flex-wrap:nowrap;min-height:20px}.place-input{font-size:15px}.city-marker text{pointer-events:auto}.roundtrip-mobile-host[hidden]{display:none}.date-action-row .date-main{height:38px;white-space:nowrap;width:132px;min-width:132px;font-size:10px}.date-action-row .date-shortcut{height:38px;min-width:47px;padding:0 7px}.date-action-row{gap:4px}.network-line{opacity:.6}.network-line.dimmed{opacity:.09}}
@media(max-width:620px){body.is-roundtrip .trip-places>div:last-child{display:none}body.is-roundtrip .trip-places{padding-right:0}body.is-roundtrip .trip-places .switch-wrap{display:none!important}.roundtrip-mobile-host .roundtrip-toggle{margin-left:auto}}
@media(max-width:620px){.roundtrip-mobile-host{grid-column:1/-1;margin-bottom:0}.roundtrip-mobile-host .roundtrip-toggle{margin-bottom:0;min-width:40px;justify-content:flex-end}.trip-places{margin-top:0}}
