:root{--ink:#193b36;--muted:#6c7f79;--line:#dce5df;--green:#236a53;--paper:#fff;--bg:#f3f5ee}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px}.shell{max-width:1540px;margin:auto;padding:22px 38px}button,select,input,.file-button{font:inherit}button,.file-button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);padding:11px 15px}button:hover,.file-button:hover{background:#edf3ed}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #cf8b38;outline-offset:3px}[hidden]{display:none!important}.promo{display:flex;align-items:center;gap:22px;background:#e4ebd8;padding:15px 24px;border-radius:12px;color:var(--ink);text-decoration:none}.promo-label,.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.8px}.promo strong{font-size:21px;letter-spacing:-.5px}.promo-link{margin-left:auto;font-size:13px}header{display:flex;justify-content:space-between;align-items:center;padding:34px 0 24px}h1{font-size:34px;letter-spacing:-1px;margin:10px 0}h2{font-size:21px;letter-spacing:-.5px;margin:8px 0}h3{margin:0 0 8px}p{line-height:1.6}header p{margin:0;color:var(--muted)}.route-badge{display:inline-block;background:var(--ink);color:white;border-radius:12px;padding:4px 13px;margin-right:10px}.quiet{border-color:transparent;background:transparent;font-size:13px}.outline{background:transparent}.search{display:flex;align-items:flex-end;gap:14px;background:white;border:1px solid var(--line);border-radius:16px;padding:23px}.search label{flex:1;min-width:0;font-size:12px;font-weight:650}select{display:block;width:100%;margin-top:8px;border:1px solid var(--line);border-radius:9px;padding:13px 36px 13px 12px;color:var(--ink);background:white;font-size:16px}.swap{font-size:27px;padding:5px 15px;height:48px}.search>.outline{height:48px}.toolbar{display:flex;gap:22px;align-items:center;padding:21px 0}.tabs{background:#e6ece2;border-radius:11px;padding:4px;display:flex}.tabs button{background:none;border:0;padding:9px 18px}.tabs .active{background:white;box-shadow:0 1px 4px #193b3615}.time-filter{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}input[type=time]{padding:8px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:white}#share{margin-left:auto}main{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:22px;align-items:start}.results,.map-section{background:white;border:1px solid var(--line);border-radius:16px;padding:25px;min-width:0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.pill{font-size:12px;background:#eef3e9;padding:7px 11px;border-radius:20px;white-space:nowrap}.muted{color:var(--muted);font-size:13px;margin:9px 0 20px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);padding:14px 9px;border-bottom:1px solid var(--line)}td{padding:16px 9px;border-bottom:1px solid #edf0e9;font-size:18px}td:first-child{font-weight:750}td:nth-child(3){font-size:13px;white-space:nowrap}td:last-child{font-size:12px;max-width:150px;color:var(--muted)}tr.fast td:nth-child(3){color:var(--green)}.notice{font-size:12px;line-height:1.7;background:#f4f5ef;padding:16px;border-radius:10px;margin-top:20px}.empty{padding:38px 10px;color:var(--muted);line-height:1.8}.map-controls{display:flex;align-items:center;gap:6px;margin-bottom:12px}.map-controls button{padding:7px 12px}.map-controls span{font-size:10px;color:var(--muted);margin-left:auto;max-width:140px}#mapViewport{height:650px;overflow:hidden;position:relative;background:#eef0e7;border-radius:10px;touch-action:none;cursor:grab}#mapStage{position:absolute;left:0;top:0;transform-origin:0 0;width:100%}#mapImage{display:block;width:100%;height:auto;user-select:none}#markers{position:absolute;inset:0;pointer-events:none}.marker{position:absolute;transform:translate(-50%,-50%) scale(var(--marker-scale,1));padding:0;width:30px;height:30px;border-radius:50%;background:white;border:3px solid var(--green);box-shadow:0 2px 8px #0004;pointer-events:auto;font-size:11px;font-weight:800;touch-action:none}.marker.from{background:#236a53;color:white}.marker.to{background:#1053ff;color:white;border-color:#1053ff}.marker.selected{outline:4px solid #e7b863}.marker span{position:absolute;left:33px;top:2px;background:#fffe;border-radius:5px;padding:3px 7px;white-space:nowrap;color:var(--ink);font-size:11px;max-width:190px;overflow:hidden;text-overflow:ellipsis}.map-footer{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:12px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 4px 0 10px}.from-dot{background:#236a53}.to-dot{background:#1053ff}#editor{padding:17px;background:#f6edda;border-radius:10px;margin-bottom:14px}#editor p{font-size:12px;margin:6px 0}#editor select{font-size:13px}.editor-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.editor-actions button,.file-button{padding:8px;font-size:11px}.file-button input{display:none}.mobile-map{display:none}footer{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding:27px 0;gap:15px}footer a{color:var(--ink)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:10px;padding:13px 22px;z-index:100;max-width:90vw;font-size:13px}@media(min-width:901px){.map-section{position:sticky;top:20px}}@media(max-width:1100px){.shell{padding:18px}.search{gap:10px}.results,.map-section{padding:18px}td{padding:14px 6px;font-size:16px}}@media(max-width:900px){.shell{padding:12px}header{padding:23px 2px 18px;gap:10px}h1{font-size:25px}.route-badge{margin-right:4px;padding:4px 8px}header>.quiet{font-size:11px;max-width:105px;padding:8px}.promo{padding:11px 14px;gap:12px}.promo-label{font-size:9px;max-width:55px}.promo strong{font-size:18px}.promo-link{font-size:11px}header .eyebrow{font-size:9px}header p{font-size:12px}.search{display:grid;grid-template-columns:1fr 44px;padding:15px;gap:12px}.search label:first-child{grid-column:1;grid-row:1}.search label:nth-of-type(2){grid-column:1;grid-row:2}.swap{grid-column:2;grid-row:1/3;align-self:center;padding:5px;width:44px}.search>.outline{grid-column:1/3;height:auto;font-size:13px}select{font-size:15px;padding:11px;margin-top:5px}.toolbar{flex-wrap:wrap;gap:12px;padding:15px 0}.tabs button{padding:8px 14px;font-size:13px}.time-filter{margin-left:auto;font-size:11px;gap:5px}input[type=time]{width:98px;padding:7px}#share{padding:2px 0;margin-left:0;font-size:12px}main{display:flex;flex-direction:column;gap:15px}.results,.map-section{width:100%;padding:16px}h2{font-size:19px}th{font-size:10px;padding:12px 5px}td{font-size:17px;padding:14px 5px}td:last-child{font-size:10px;max-width:105px}td:nth-child(3){font-size:12px}.mobile-map{display:block;width:100%}#mapContents{display:none}.map-section.open #mapContents{display:block;margin-top:18px}#mapViewport{height:65vh;min-height:380px}footer{flex-direction:column;line-height:1.7}#resetPick{font-size:11px;padding:7px}.map-controls span{max-width:110px}}

.map-canvas{position:relative}.map-canvas>.map-controls{position:absolute;left:12px;right:auto;top:12px;z-index:5;display:flex;flex-direction:row;gap:5px;margin:0;padding:5px;background:#ffffffeb;border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 14px #193b3620}.map-canvas>.map-controls button{min-width:44px;min-height:44px;padding:7px;font-size:24px;font-weight:650}.map-canvas>.map-controls #fit{font-size:11px;font-weight:500;max-width:60px}.map-help{color:var(--muted);font-size:11px;margin:0 0 12px}

.map-heading-actions{display:flex;gap:8px;align-items:center}
body.editing-map{overflow:hidden}
.editing-map #mapSection{position:fixed;inset:0;z-index:50;width:100%;height:100dvh;max-width:none;border:0;border-radius:0;padding:18px 24px;background:var(--bg);overflow:auto}
.editing-map #mapContents{display:flex!important;flex-direction:column;height:100%;margin:0;gap:8px}
.editing-map #showMap,.editing-map #resetPick,.editing-map #mapHint,.editing-map .map-help,.editing-map #mapContents>.section-heading .eyebrow{display:none}
.editing-map #mapContents>.section-heading{flex:none}
.editing-map #mapContents>.section-heading h2{margin:0;font-size:21px}
.editing-map #closeEditor{background:var(--ink);color:white;border-color:var(--ink);font-size:13px}
.editing-map #editor{flex:none;margin:0;padding:12px 16px;display:grid;grid-template-columns:minmax(220px,1fr) auto;column-gap:20px;align-items:center}
.editing-map #editor h3{font-size:14px;margin:0}
.editing-map #editor>p:first-of-type{grid-column:1;margin:4px 0}
.editing-map #editStop{grid-column:1;margin:3px 0;font-size:14px;padding:9px}
.editing-map .editor-actions{grid-column:2;grid-row:1/4;margin:0;justify-content:flex-end}
.editing-map #editorStatus{grid-column:1/-1;margin:3px 0 0;font-size:11px}
.editing-map .map-canvas{flex:1;min-height:200px}
.editing-map #mapViewport{height:100%;min-height:200px}
.editing-map .map-footer{flex:none;margin:0}
@media(max-width:700px){.editing-map #mapSection{padding:10px}.editing-map #editor{display:block;padding:10px}.editing-map #editor h3{display:none}.editing-map .editor-actions{justify-content:flex-start;margin-top:6px}.editing-map #mapContents>.section-heading h2{font-size:17px}.editing-map #closeEditor{font-size:11px;padding:9px}.editing-map .map-heading-actions{gap:0}}

.layer-label{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted);margin:12px 0}.layer-label select{flex:1;max-width:330px;margin:0;padding:9px;font-size:13px}#layerStatus:empty{display:none}#layerStatus{margin:6px 0 12px}#liveMap{height:650px;width:100%;border-radius:10px;overflow:hidden;position:relative;z-index:0}.geo-marker{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:3px solid #236a53;border-radius:50%;font:bold 13px system-ui;box-shadow:0 2px 7px #0004;cursor:pointer;padding:0}.geo-marker.selected{outline:4px solid #e7b863}.yandex-marker{transform:translate(-50%,-50%)}.map-canvas>.map-controls{z-index:1000}.editing-map #liveMap{height:100%;min-height:200px}.editing-map .layer-label{margin:0;flex:none}.editing-map #layerStatus{margin:0;font-size:11px}.editing-map .map-canvas{isolation:isolate}.leaflet-container{font-family:inherit}.leaflet-control-attribution{max-width:80%;font-size:10px}@media(max-width:900px){#liveMap{height:65vh;min-height:380px}}@media(max-width:700px){.layer-label{gap:6px}.layer-label select{max-width:none;font-size:12px}}

.maplibregl-ctrl-attrib{font-size:10px!important}.maplibregl-canvas:focus-visible{outline:2px solid #236a53}.maplibregl-marker.geo-marker{box-sizing:border-box}
.editing-map #editor{display:block;padding:12px 16px}.route-workflow{display:flex;gap:18px;align-items:end;flex-wrap:wrap}.route-workflow>label{flex:1;min-width:280px;font-size:12px}.workflow-label{display:block;font-size:12px;margin-bottom:5px}.workflow-actions{display:flex;gap:5px;flex-wrap:wrap}.workflow-actions button{font-size:11px;padding:10px}#stopTools{display:flex;gap:9px;align-items:end;margin-top:12px}#stopTools>label:first-of-type{flex:1;font-size:11px}#stopTools #editStop{margin:4px 0 0}.auto-next{font-size:11px;max-width:160px;align-self:center}.auto-next input{vertical-align:middle}#lineTools{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:12px}#lineTools span{flex:1}#lineTools button,#deletePoint{font-size:11px}#stepHint{font-weight:650;font-size:13px;margin:10px 0 3px}.editing-map #editorStatus{font-size:10px;color:var(--muted);margin-top:3px}.route-vertex{width:14px;height:14px;padding:0;border:2px solid #fff;background:#1053ff;border-radius:50%;box-shadow:0 0 0 1px #8d4b21;cursor:grab}.editing-map #liveMap{min-height:220px}@media(max-width:700px){.route-workflow{gap:8px}.route-workflow>label{min-width:100%;font-size:11px}.workflow-actions button{padding:7px;font-size:10px}.route-workflow .tabs button{padding:6px 12px}#stopTools{flex-wrap:wrap;gap:5px}#stopTools>label:first-of-type{min-width:65%}.auto-next{max-width:none}#lineTools{flex-wrap:wrap}#lineTools span{min-width:100%}#stepHint{font-size:11px}.editing-map #mapSection{overflow:auto}.editing-map .map-canvas{min-height:250px}}
.extra-stop-marker{width:9px;height:9px;box-sizing:border-box;border-radius:50%;background:#fff;border:2px solid #737f78;box-shadow:0 1px 3px #0003;cursor:default}.stop-time-card{font-family:system-ui,sans-serif;color:#193b36;padding:8px;min-width:220px}.stop-time-card strong{font-size:16px}.stop-time-card p{font-size:12px;margin:8px 0;color:#6c7f79}.stop-time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;max-height:230px;overflow:auto;font-variant-numeric:tabular-nums}.stop-time-grid span{font-size:13px;padding:5px;background:#edf3eb;border-radius:5px;text-align:center}.stop-time-actions{display:flex;gap:8px;margin-top:12px}.stop-time-actions button{flex:1;font-size:12px;padding:8px}.maplibregl-popup{z-index:1001}

.route-filter{display:flex;align-items:center;gap:15px;font-size:13px;font-weight:650;margin:0 0 18px}.route-filter select{max-width:720px;margin:0;font-size:15px;padding:11px}.editing-map .route-filter{flex:none;margin:0}.editing-map .route-filter select{max-width:720px;padding:8px;font-size:13px}@media(max-width:700px){.route-filter{gap:10px}.route-filter select{flex:1;max-width:none;font-size:13px}.editing-map .route-filter select{max-width:none}}
.stop-departure-group{margin:12px 0;padding-left:10px;border-left:3px solid}.stop-departure-group h3{font-size:13px;margin:0}.stop-departure-group p{margin:5px 0 8px;font-size:11px}.stop-departure-group.route-north{border-color:#1053ff}.stop-departure-group.route-harmony{border-color:#236a53}.stop-departure-group.route-north h3{color:#1053ff}.stop-departure-group.route-harmony h3{color:#236a53}.route-north .stop-time-grid span{color:#1053ff;background:#eaf0ff}.route-harmony .stop-time-grid span{color:#236a53;background:#e4f1e9}.stop-time-card{max-height:430px;overflow-y:auto}.stop-time-grid{max-height:none}

/* Route membership is independent of the selected A/B marker fill. */
.geo-marker.route-blue{border-color:#1053ff}.geo-marker.route-green{border-color:#236a53}.geo-marker.routes-both{border-top-color:#1053ff;border-right-color:#1053ff;border-bottom-color:#236a53;border-left-color:#236a53}
.stop-time-dialog{border:0;border-radius:16px;padding:24px;width:min(700px,calc(100vw - 28px));max-width:700px;max-height:none;overflow:visible;box-sizing:border-box;color:#193b36;box-shadow:0 20px 80px #0005}
.stop-time-dialog::backdrop{background:#122d3266}.stop-dialog-close{position:absolute;right:12px;top:10px;padding:2px 9px;background:transparent;color:#193b36;font-size:26px;border:0;line-height:1.2}
.stop-time-dialog .stop-time-card{padding:0;min-width:0;max-height:none;overflow:visible}.stop-time-dialog .stop-time-card strong{display:block;font-size:21px;padding-right:25px}.stop-time-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px}.stop-time-dialog .stop-departure-group{margin:8px 0}.stop-time-dialog .stop-time-grid{grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible;max-height:none}.stop-time-dialog .stop-time-grid span{font-size:14px;padding:7px 2px}.stop-time-dialog .stop-departure-group p{min-height:28px}.stop-time-dialog .stop-time-actions button{font-size:14px;padding:12px}
@media(max-width:600px){.stop-time-dialog{padding:18px 14px}.stop-time-columns{grid-template-columns:1fr;gap:0}.stop-time-dialog .stop-time-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.stop-time-dialog .stop-time-grid span{font-size:12px;padding:5px 0}.stop-time-dialog .stop-departure-group p{min-height:0;margin:4px 0}.stop-time-dialog .stop-time-card strong{font-size:17px}.stop-time-dialog .stop-departure-group{margin:6px 0}.stop-time-dialog .stop-time-actions{margin-top:8px}}

/* Compact timetable panel. */
.results{padding:16px 18px}
.results .section-heading h2{font-size:19px;margin:4px 0}
.results .eyebrow{font-size:10px;letter-spacing:1.3px}
.results .pill{padding:5px 9px;font-size:11px}
.results #routeNote{font-size:12px;line-height:1.45;margin:6px 0 10px}
.results th{padding:9px 7px;font-size:10px;letter-spacing:.35px}
.results td{padding:8px 7px;font-size:16px;line-height:1.3}
.results td:nth-child(3){font-size:12px}
.results td:last-child{font-size:11px;line-height:1.35}
.results .notice{padding:10px 12px;margin-top:12px;font-size:11px;line-height:1.45}
@media(max-width:900px){.results{padding:14px}.results .section-heading h2{font-size:18px}.results td{padding:9px 5px}.results th{padding:8px 5px}.results td:last-child{font-size:10px}}

/* Route colors in the schedule and one chronological stream at a stop. */
.results tr.ride-north{background:#f1f5ff}.results tr.ride-harmony{background:#f0f7f2}
.results tr.ride-north td:first-child{border-left:3px solid #1053ff}.results tr.ride-harmony td:first-child{border-left:3px solid #236a53}
.results tr.ride-north td:first-child,.results tr.ride-north td:last-child{color:#1053ff}.results tr.ride-harmony td:first-child,.results tr.ride-harmony td:last-child{color:#236a53}.results td:last-child{font-weight:650}
.departure-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0;font-size:12px;font-weight:650}.departure-legend span:before{content:'';display:inline-block;width:8px;height:8px;background:currentColor;border-radius:50%;margin-right:6px}.departure-legend .route-north{color:#1053ff}.departure-legend .route-harmony{color:#236a53}
.departure-timeline{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;list-style:none;padding:0;margin:12px 0;font-variant-numeric:tabular-nums}
.departure-chip{padding:7px 3px;text-align:center;border-radius:7px;border-top:3px solid;line-height:1.25}.departure-chip.route-north{color:#1053ff;background:#eaf0ff;border-color:#1053ff}.departure-chip.route-harmony{color:#236a53;background:#e4f1e9;border-color:#236a53}.departure-chip time{display:block;font-size:17px;font-weight:750}.departure-chip span{display:block;font-size:10px;margin-top:3px;white-space:nowrap}
@media(max-width:600px){.departure-timeline{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.departure-chip{padding:5px 2px}.departure-chip time{font-size:16px}.departure-chip span{font-size:9px}.departure-legend{font-size:11px;gap:6px 12px}}

.search>.stop-field{flex:1;min-width:0}.search .stop-field label{display:block}.stop-map-button{margin-top:8px;font-size:12px;padding:7px 11px}.search>.swap{align-self:center}.stop-map-button:hover{border-color:var(--green)}
@media(max-width:900px){.search>.stop-field{grid-column:1}.search>.stop-field:first-child{grid-row:1}.search>.stop-field:last-child{grid-row:2}.search>.swap{grid-column:2;grid-row:1/3}.stop-map-button{font-size:12px;margin-top:7px;padding:8px 11px}}

/* Highlight the endpoint currently being selected on the map. */
.stop-field{border-radius:10px;transition:background .15s,box-shadow .15s}.stop-field.is-picking{background:#fff5dc;box-shadow:0 0 0 8px #fff5dc}.stop-field.is-picking select{border-color:#b47716;box-shadow:0 0 0 2px #e7b863}.stop-field.is-picking label{color:#82520a}.stop-field.is-picking label:after{content:' · выбор на карте';font-weight:500}.stop-field.is-picking .stop-map-button{background:#f7e6bb;border-color:#d7aa54;color:#66410c}
/* Wide Napolke banner fills the space to the right of the title. */
.masthead{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:32px;margin-bottom:24px}.masthead header{min-width:0;padding:24px 0}
.promo.promo-banner{width:100%;min-width:0;min-height:170px;display:grid;grid-template-columns:52px minmax(0,1fr);align-content:center;align-items:center;column-gap:22px;row-gap:8px;padding:22px 28px;background:#f3e5d5;border:1px solid #e7d4bf;border-radius:16px;color:#40291e;transition:background .15s,transform .15s}.promo.promo-banner:hover{background:#eddbc5;transform:translateY(-2px)}
.promo-banner .promo-logo{display:block;grid-column:1;grid-row:1/4;width:52px;height:52px;object-fit:contain}.promo-banner strong{grid-column:2;font-size:25px;letter-spacing:-1px}.promo-banner .promo-copy{grid-column:2;font-size:13px;line-height:1.5}.promo-banner .promo-link{grid-column:2;margin:0;font-size:11px;font-weight:650;color:#9b461e}
@media(max-width:900px){.masthead{grid-template-columns:minmax(0,1fr);gap:0;margin-bottom:18px}.masthead header{width:100%;padding:20px 2px}.promo.promo-banner{min-height:140px;padding:18px 20px;column-gap:18px}.promo-banner .promo-logo{width:44px;height:44px}.promo-banner strong{font-size:24px}.promo-banner .promo-copy{font-size:12px}.promo-banner .promo-link{font-size:10px}}

/* Three banner columns on desktop, stacked on mobile. */
.promo.promo-banner{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px;row-gap:0}
.promo-banner .promo-brand{display:flex;flex-direction:row;align-items:center;gap:10px;min-width:0;white-space:nowrap}
.promo-banner .promo-logo{grid-column:auto;grid-row:auto;width:44px;height:44px}
.promo-banner strong{grid-column:auto;font-size:clamp(18px,1.8vw,25px)}
.promo-banner .promo-copy,.promo-banner .promo-link{grid-column:auto;min-width:0}
.promo-banner .promo-link{font-size:12px;line-height:1.7}
@media(max-width:900px){.promo.promo-banner{grid-template-columns:minmax(0,1fr);gap:14px;min-height:0;padding:22px}.promo-banner strong{font-size:24px}.promo-banner .promo-copy{font-size:13px}.promo-banner .promo-link{font-size:12px}}

@media(min-width:901px){.promo.promo-banner{grid-template-columns:max-content max-content minmax(0,1fr);column-gap:16px;padding-inline:20px}.promo-banner .promo-copy{white-space:nowrap}}
@media(min-width:901px) and (max-width:1100px){.promo.promo-banner{grid-template-columns:max-content max-content minmax(0,1fr);column-gap:8px;padding-inline:12px}.promo-banner .promo-copy,.promo-banner .promo-link{font-size:10px}.promo-banner strong{font-size:16px}}

.promo-brand .promo-logo{flex:none}
@media(min-width:901px) and (max-width:1100px){.masthead{gap:20px}.masthead h1{font-size:28px}}

/* Combined vector wordmark and larger banner copy. */
.promo-brand-image{display:block;width:230px;height:auto;max-width:100%;object-fit:contain}.promo-banner .promo-copy{font-size:16px}.promo-banner .promo-link{font-size:14px;line-height:1.6}
@media(min-width:901px) and (max-width:1150px){.masthead{grid-template-columns:minmax(0,1fr);gap:0}.masthead header{padding:18px 0}.promo.promo-banner{column-gap:20px;padding-inline:24px}.promo-banner .promo-copy{font-size:16px}.promo-banner .promo-link{font-size:14px}}
@media(max-width:900px){.promo-brand-image{width:240px}.promo-banner .promo-copy{font-size:16px}.promo-banner .promo-link{font-size:14px}}

/* Updated banner headline and description. */
.promo.promo-banner{grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.45fr);gap:20px;padding:24px}
.promo-banner .promo-copy{font-size:20px;font-weight:700;line-height:1.3;letter-spacing:-.3px;white-space:normal;margin:0}
.promo-banner .promo-description{min-width:0;font-size:14px;line-height:1.6;color:#6e4b37}
@media(max-width:900px){.promo.promo-banner{grid-template-columns:minmax(0,1fr);gap:16px;padding:22px}.promo-banner .promo-copy{font-size:22px}.promo-banner .promo-description{font-size:15px}}

/* Selected banner: bookshelf. Illustration retains its natural proportions. */
.promo.promo-banner.promo-shelf{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:0;padding:0;min-height:256px;background:#eee6da;overflow:hidden}
.promo-shelf .promo-shelf-copy{padding:26px 28px;min-width:0}.promo-shelf .promo-brand-image{width:175px;max-width:100%;height:auto;margin-bottom:16px}.promo-shelf .promo-copy{font-size:27px;line-height:1.15;letter-spacing:-.6px;white-space:normal;margin:0;font-weight:700}.promo-shelf .promo-description{display:block;font-size:14px;line-height:1.55;margin:12px 0 16px;color:#775b48}.promo-shelf .promo-link{display:inline-block;margin:0;font-size:12px;line-height:1.4;font-weight:700;color:#914624}
.promo-shelf .promo-books{display:flex;align-items:flex-end;justify-content:center;background:#e5d6c2;padding:0 14px;min-width:0}.promo-books img{display:block;width:100%;max-width:220px;height:auto;object-fit:contain}
@media(max-width:900px){.promo.promo-banner.promo-shelf{grid-template-columns:minmax(0,1fr);min-height:0}.promo-shelf .promo-shelf-copy{padding:24px}.promo-shelf .promo-copy{font-size:27px}.promo-shelf .promo-description{font-size:15px}.promo-shelf .promo-books{height:auto;min-height:0;padding:16px 24px 12px}.promo-books img{width:200px;max-width:100%;height:auto}}

@media(max-width:900px){.promo-shelf .promo-books{display:none}}

/* Public timetable: live summary, quick time filters and searchable stops. */
.stop-native-select{display:none}.stop-field{position:relative}.stop-combobox-input{display:block;width:100%;min-width:0;margin-top:8px;border:1px solid var(--line);border-radius:9px;padding:13px 36px 13px 12px;color:var(--ink);background:white;font-size:16px;min-height:48px}.stop-field.is-picking .stop-combobox-input{border-color:#b47716;box-shadow:0 0 0 2px #e7b863;background:#fffdf7}
.stop-options{position:absolute;left:0;right:0;top:calc(100% - 36px);z-index:1100;max-height:260px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #193b3626;padding:5px}.stop-options [role=option]{padding:11px 10px;min-height:40px;font-size:14px;cursor:pointer;border-radius:6px}.stop-options [role=option]:hover,.stop-options [role=option].active{background:#eaf0ff;color:#1053ff}.stop-options-empty{padding:14px 10px;font-size:13px;color:var(--muted)}
.toolbar{flex-wrap:wrap;gap:12px 18px}.time-shortcuts{display:flex;gap:5px}.time-shortcuts button{font-size:12px;padding:8px 11px}.time-shortcuts button[aria-pressed=true]{background:#193b36;color:white;border-color:#193b36}
.next-ride{display:flex;flex-direction:column;gap:5px;background:#f1f5ed;border:1px solid #dce5d5;border-radius:10px;padding:12px 14px;margin:0 0 12px}.next-ride strong{font-size:18px}.next-ride span{font-size:12px;line-height:1.4}.next-ride small{font-size:10px;line-height:1.4;color:var(--muted)}.next-ride.no-next-ride{background:#f7f6f1;border-color:var(--line)}
.results .ride-past{opacity:.45}.results .ride-next{box-shadow:inset 0 0 0 2px #193b36}.results td:last-child{max-width:200px;font-size:11px;line-height:1.4}
@media(max-width:900px){.stop-combobox-input{font-size:16px;padding:11px;margin-top:5px}.stop-options{top:calc(100% - 39px)}.time-shortcuts{margin-left:auto}.time-shortcuts button{min-height:40px}.next-ride strong{font-size:17px}.results td:last-child{font-size:10px;max-width:140px}}

.masthead header p.header-clock{margin-top:14px;font-size:14px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.1px}.header-clock time{display:block;min-height:22px}@media(max-width:900px){.masthead header p.header-clock{margin-top:10px;font-size:13px}}
