:root{color-scheme:light;font-family:Inter,"SF Pro Text",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif;color:#17263b;background:#fff;font-synthesis:weight;-webkit-text-size-adjust:100%;text-size-adjust:100%;--blue:#224e80;--blue-soft:#eef5fd;--orange:#925019;--orange-soft:#fff3e5;--line:#dce4ee}
*{box-sizing:border-box}
body{margin:0}
main{max-width:780px;margin:0 auto;padding:32px 30px 44px}
button,select{font:inherit;color:#17263b;background:#fff}
a{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
a,button,select{-webkit-tap-highlight-color:#dde8f4}
button,select{border:1px solid #b6c4d4;border-radius:9px;min-height:48px;padding:8px 13px;cursor:pointer}
button:hover{background:#edf3fa}
a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid #315e91;outline-offset:4px}
[hidden]{display:none!important}
h1,h2,h3,p{margin:0}
.icon{display:inline-block;width:19px;height:19px;flex:none;vertical-align:middle}
h1{font-size:29px;line-height:1.4;font-weight:720;letter-spacing:.25px;overflow-wrap:anywhere}
.trip-picker{display:block;margin-bottom:24px;font-size:18px;font-weight:600}
.trip-picker select{display:block;width:100%;margin-top:8px;font-size:19px}
.trip-header{margin-bottom:32px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.trip-meta{display:flex;gap:8px;align-items:center;margin-top:10px;font-size:16px;line-height:1.6;font-weight:400;color:#4a5d74}
.trip-meta>.icon{width:17px;height:17px;color:#536f91}
.meta-dot{padding:0 7px;color:#526780}
.offline-notice{font-size:16px;line-height:1.5;padding:10px 12px;margin-top:12px;background:var(--orange-soft);color:#784415;border-radius:7px}
.day+.day{margin-top:32px}
.day-date{font-size:22px;font-weight:700;line-height:1.5;border-top:1px solid #c5d2e1;padding:18px 0 22px;color:var(--blue)}
.timeline{list-style:none;margin:0;padding:0}
.stop{display:grid;grid-template-columns:110px minmax(0,1fr);position:relative;break-inside:avoid}
.time{font-size:26px;font-weight:700;line-height:1.35;letter-spacing:-.6px;font-variant-numeric:tabular-nums;color:var(--blue)}
.time-status{display:block;font-size:14px;font-weight:450;color:#596b82;letter-spacing:0;margin-top:3px;line-height:1.5}
.stop-content{border-left:2px solid var(--line);padding:0 0 32px 29px;position:relative;min-width:0}
.stop-marker{position:absolute;display:grid;place-items:center;left:-15px;top:2px;width:28px;height:28px;border-radius:50%;color:var(--blue);background:#eaf1fa;box-shadow:0 0 0 5px #fff}
.stop-marker .icon{width:17px;height:17px;stroke-width:1.8}
.stop-marker.marker-rest{background:var(--orange-soft);color:var(--orange)}
.stop:last-child .stop-content{border-left-color:transparent;padding-bottom:0}
h3{font-size:23px;line-height:1.5;font-weight:650;letter-spacing:.15px;overflow-wrap:anywhere}
.description{font-size:19px;line-height:1.65;margin-top:6px;font-weight:400;color:#25364b;overflow-wrap:anywhere}
.stop-schedule{display:flex;gap:7px;align-items:baseline;font-size:17px;line-height:1.7;margin-top:7px;font-weight:400;color:#40526b}
.stop-schedule>.icon{width:16px;height:16px;align-self:flex-start;margin-top:6px;color:#547090}
.stop-schedule>span{display:flex;flex-wrap:wrap;gap:0 12px}
.schedule-part{white-space:nowrap}
.stop-schedule strong,.travel strong{font-weight:620;font-variant-numeric:tabular-nums}
.stop-links{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin-top:12px;font-size:17px;font-weight:550}
.map-link{display:inline-flex;gap:7px;align-items:center;justify-content:center;min-height:48px;padding:9px 12px;line-height:1.4;color:var(--blue);text-decoration:none;background:var(--blue-soft);border:1px solid #cbdff3;border-radius:9px}
.map-link:hover{background:#e0edfb;border-color:#9fbfe1}
.map-link>.external-icon{width:13px;height:13px;margin-left:1px}
.reminder-button{display:inline-flex;gap:7px;align-items:center;justify-content:center;font-size:17px;font-weight:550;line-height:1.4;min-height:48px;background:var(--orange-soft);color:#824511;border-color:#e7c9a8}
.reminder-button:hover{background:#fbe9d3}
.reminder-button>.icon{width:18px;height:18px}
.travel{display:flex;gap:8px;align-items:baseline;font-size:17px;line-height:1.65;margin-top:17px;padding-top:13px;border-top:1px solid #e6ebf2;font-weight:400;color:#425773;overflow-wrap:anywhere}
.travel>.icon{width:17px;height:17px;align-self:flex-start;margin-top:5px;color:#536e91}
.load-message{font-size:20px;line-height:1.6}
.retry-button{margin-top:16px;font-size:20px}
dialog{color:#17263b;background:#fff;border:1px solid #d1dce8;border-radius:16px;width:min(540px,calc(100vw - 32px));max-height:85dvh;padding:24px;box-shadow:0 12px 50px #152b4a30;overflow-y:auto}
dialog::backdrop{background:#142d4b80}
.dialog-header{display:flex;align-items:flex-start;gap:16px;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:18px}
.dialog-header h2{font-size:23px;line-height:1.4;font-weight:700;color:var(--blue);overflow-wrap:anywhere}
.dialog-header button{flex:none;font-size:17px;font-weight:500;background:#f3f6fa}
#reminder-content p{font-size:19px;line-height:1.6;margin-top:12px;overflow-wrap:anywhere}
.departures{font-size:27px;font-weight:700;line-height:1.7;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0;font-variant-numeric:tabular-nums;color:var(--blue)}
.departures span{text-align:center;padding:4px 8px;background:var(--blue-soft);border-radius:8px}
.transit-route{font-weight:650}
.popup-source{display:block;font-size:16px;font-weight:400;line-height:1.65;margin-top:20px;min-height:44px;overflow-wrap:anywhere}
@media(max-width:600px){main{padding:24px 20px 36px}h1{font-size:26px}.trip-meta{font-size:15px;gap:7px}.trip-header{margin-bottom:29px;padding-bottom:19px}.stop{grid-template-columns:100px minmax(0,1fr)}.time{font-size:24px}.stop-content{padding-left:24px;padding-bottom:30px}h3{font-size:21px}.description{font-size:18px}.stop-schedule,.travel{font-size:17px}.stop-links{font-size:16px;gap:8px}.map-link{padding:9px 10px;gap:6px}.map-link .icon{width:17px;height:17px}.map-link .external-icon{width:12px;height:12px}.reminder-button{font-size:16px;padding:9px 10px}.day-date{font-size:21px}.dialog-header h2{font-size:22px}dialog{padding:20px}.departures{font-size:clamp(20px,6vw,25px);gap:8px}}
@media(max-width:350px){main{padding-left:16px;padding-right:16px}.stop{grid-template-columns:90px minmax(0,1fr)}.stop-content{padding-left:21px}.time{font-size:22px}h3{font-size:20px}.trip-meta{font-size:14px}.map-link{padding:9px}.map-link .external-icon{display:none}}
@media print{@page{margin:15mm}main{padding:0;max-width:none}.trip-picker,.reminder-button,.offline-notice,dialog{display:none!important}.stop{break-inside:avoid}body{color:#000;background:#fff}.time,h3,.description{color:#000}.stop-marker{box-shadow:none}.map-link{background:none}}
