:root{color-scheme:light;--bg:#f2efe6;--panel:rgba(248,245,236,0.95);--panel-border:rgba(16,33,47,0.12);--text:#132129;--muted:#53636b;--accent:#1f7a8c;--accent-strong:#144d5f;--shadow:0 18px 40px rgba(17,31,41,0.12);--font-sans:"Avenir Next","Segoe UI",sans-serif}*{box-sizing:border-box}body,html{margin:0;height:100%;background:radial-gradient(circle at top left,rgba(31,122,140,.14),transparent 34%),radial-gradient(circle at bottom right,rgba(191,67,66,.12),transparent 28%),var(--bg);color:var(--text);font-family:var(--font-sans)}body{min-height:100vh;overflow:hidden}button,input{font:inherit}.shell{--bg:#f2efe6;--panel:rgba(248,245,236,0.95);--panel-border:rgba(16,33,47,0.12);--text:#132129;--muted:#53636b;--accent:#1f7a8c;--accent-strong:#144d5f;--shadow:0 18px 40px rgba(17,31,41,0.12);position:relative;height:100vh;padding:0;overflow:hidden;background:radial-gradient(circle at top left,rgba(31,122,140,.14),transparent 34%),radial-gradient(circle at bottom right,rgba(191,67,66,.12),transparent 28%),var(--bg);color:var(--text)}.shell[data-theme=dark]{color-scheme:dark;--bg:#10161d;--panel:rgba(18,27,35,0.92);--panel-border:rgba(182,201,214,0.14);--text:#eef4f7;--muted:#a4b4bf;--accent:#5bb7ca;--accent-strong:#8fd5e1;--shadow:0 18px 40px rgba(0,0,0,0.34);background:radial-gradient(circle at top left,rgba(91,183,202,.16),transparent 34%),radial-gradient(circle at bottom right,rgba(47,90,119,.18),transparent 30%),var(--bg)}.mapPanel,.sidebar{border:1px solid var(--panel-border);border-radius:1.5rem;background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);min-height:0}.sidebar{position:absolute;top:1rem;left:1rem;z-index:700;width:min(380px,calc(100vw - 2.5rem));max-height:calc(100vh - 2rem);display:grid;grid-template-rows:auto auto auto auto auto auto;grid-gap:1rem;gap:1rem;padding:1.25rem;overflow:visible;box-shadow:0 0 0 1px rgba(255,255,255,.24),0 0 0 6px rgba(255,255,255,.08),var(--shadow);transition:transform .24s cubic-bezier(.22,1,.36,1),opacity .2s ease,filter .24s ease;transform-origin:top left;will-change:transform,opacity}.sidebarSection{display:grid;grid-gap:.85rem;gap:.85rem;padding:.9rem;border:1px solid rgba(16,33,47,.08);border-radius:1.1rem;background:rgba(255,255,255,.38);min-height:0}.shedSection{grid-template-rows:auto auto auto auto minmax(0,1fr);max-height:min(56vh,calc(100vh - 18rem));overflow:hidden}.shell[data-theme=dark] .sidebarSection{border-color:rgba(182,201,214,.08);background:rgba(255,255,255,.03)}.sectionHeader{display:grid;grid-gap:.18rem;gap:.18rem}.sectionHeader h2{margin:0;font-size:1rem;line-height:1.15}.sectionEyebrow{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong)}.shell[data-theme=dark] .sidebar{box-shadow:0 0 0 1px rgba(143,213,225,.1),0 0 0 6px rgba(91,183,202,.06),var(--shadow)}.shell[data-sidebar=closed] .sidebar{transform:translateX(calc(-100% - 1rem));opacity:0;filter:blur(4px);pointer-events:none}.drawerHandle{position:absolute;top:1.75rem;left:calc(1rem + min(380px, calc(100vw - 2.5rem)) - 1rem);z-index:800;display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border:2px solid rgba(16,33,47,.16);border-radius:999px;background:rgba(248,245,236,.99);color:var(--text);box-shadow:0 0 0 4px rgba(255,255,255,.16),0 12px 28px rgba(16,33,47,.16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;transform:none;transition:left .24s cubic-bezier(.22,1,.36,1),top .24s cubic-bezier(.22,1,.36,1),bottom .24s cubic-bezier(.22,1,.36,1),transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease}.drawerHandle:hover{transform:translateY(-1px)}.drawerHandle:active{transform:translateY(0)}.drawerArrowTab{position:relative;display:inline-flex;align-items:center;justify-content:center;width:.9rem;height:.9rem}.drawerArrowShaft{display:block;width:.5rem;height:2px;border-radius:999px;background:currentColor}.drawerArrowHead,.drawerArrowShaft{transition:transform .22s cubic-bezier(.22,1,.36,1)}.drawerArrowHead{position:absolute;right:.02rem;width:.38rem;height:.38rem;border-top:2px solid;border-right:2px solid}.drawerArrowTab.open .drawerArrowShaft{transform:translateX(.08rem)}.drawerArrowTab.open .drawerArrowHead{left:.02rem;right:auto;transform:rotate(-135deg)}.drawerArrowTab.closed .drawerArrowShaft{transform:translateX(.08rem)}.drawerArrowTab.closed .drawerArrowHead{left:auto;right:.02rem;transform:rotate(45deg)}@media (max-width:980px){.drawerHandle:active,.drawerHandle:hover{transform:translateX(-50%)}.drawerArrowShaft{display:none}.drawerArrowHead{position:static;width:.55rem;height:.55rem;border-top:2px solid;border-right:2px solid}.drawerArrowTab.open .drawerArrowHead{transform:rotate(135deg)}.drawerArrowTab.closed .drawerArrowHead{transform:rotate(-45deg)}}.shell[data-theme=dark] .drawerHandle{border-color:rgba(143,213,225,.22);background:rgba(18,27,35,.98);box-shadow:0 0 0 4px rgba(91,183,202,.12),0 12px 28px rgba(0,0,0,.32)}.shell[data-sidebar=closed] .drawerHandle{left:1rem}.hero h1{margin:.2rem 0 .55rem;font-size:clamp(2rem,4vw,2.65rem);line-height:.98;letter-spacing:-.04em}.eyebrow{margin:0;color:var(--accent-strong);font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lede,.note{margin:0;color:var(--muted);line-height:1.45}.controls,.search{display:grid;grid-gap:.45rem;gap:.45rem}.search{position:relative}.controls span,.search span{font-size:.9rem;font-weight:700}.search input{width:100%;border:1px solid rgba(19,33,41,.14);border-radius:.85rem;padding:.8rem .95rem;background:rgba(255,255,255,.8);color:var(--text)}.shell[data-theme=dark] .search input{border-color:rgba(182,201,214,.14);background:rgba(8,13,18,.34)}.toggleRow{display:flex;gap:.6rem;flex-wrap:wrap}.toggle{border:1px solid rgba(19,33,41,.16);border-radius:999px;padding:.65rem .9rem;background:rgba(255,255,255,.7);cursor:pointer;text-transform:capitalize;color:var(--text);transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease}.toggle.active{border-color:transparent;background:var(--accent);color:white;transform:translateY(-1px)}.shell[data-theme=dark] .toggle{border-color:rgba(182,201,214,.14);background:rgba(255,255,255,.04);color:rgba(238,244,247,.72)}.shell[data-theme=dark] .toggle:not(.active){border-color:rgba(182,201,214,.1);background:rgba(255,255,255,.03);color:rgba(238,244,247,.62)}.shell[data-theme=dark] .toggle.active{border:1px solid rgba(143,213,225,.34);background:rgba(91,183,202,.24);color:#f5fbfd;box-shadow:0 0 0 3px rgba(91,183,202,.12),inset 0 1px 0 rgba(255,255,255,.06)}.customToggleRow{margin-top:-.1rem}.customTimeRow{display:flex;gap:.6rem;align-items:center}.customTimeRow input{width:8.5rem;min-width:0;flex:0 0 auto;border:1px solid rgba(19,33,41,.14);border-radius:999px;padding:.65rem .9rem;background:rgba(255,255,255,.8);color:var(--text)}.shell[data-theme=dark] .customTimeRow input{border-color:rgba(182,201,214,.14);background:rgba(255,255,255,.04)}.addressLookup .customTimeRow input{width:auto;flex:1 1}.controlNote{margin:0;color:var(--muted);font-size:.76rem;line-height:1.35}.errorText{color:#bf4342}.shell[data-theme=dark] .errorText{color:#f29b98}.nearestStationCard{display:grid;grid-gap:.2rem;gap:.2rem;padding:.75rem .85rem;border:1px solid rgba(19,33,41,.08);border-radius:1rem;background:rgba(255,255,255,.55);color:var(--text)}.shell[data-theme=dark] .nearestStationCard{border-color:rgba(182,201,214,.08);background:rgba(255,255,255,.04)}.nearestStationEyebrow{margin:0;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.searchResults{position:absolute;top:calc(100% + .35rem);left:0;right:0;z-index:900;display:grid;grid-gap:.35rem;gap:.35rem;max-height:min(18rem,42vh);padding:.4rem;overflow:auto;border:1px solid var(--panel-border);border-radius:1rem;background:var(--panel);box-shadow:0 14px 28px rgba(16,33,47,.14);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.shell[data-theme=dark] .searchResults{box-shadow:0 14px 28px rgba(0,0,0,.28)}.searchResult{display:grid;grid-gap:.15rem;gap:.15rem;width:100%;padding:.75rem .8rem;border:1px solid rgba(19,33,41,.08);border-radius:.9rem;background:rgba(255,255,255,.72);text-align:left;cursor:pointer;color:var(--text)}.searchResult.selected{border-color:rgba(31,122,140,.42);background:rgba(31,122,140,.12)}.shell[data-theme=dark] .searchResult{border-color:rgba(182,201,214,.08);background:rgba(255,255,255,.03)}.shell[data-theme=dark] .searchResult.selected{border-color:rgba(91,183,202,.42);background:rgba(91,183,202,.12)}.searchEmpty{margin:0;padding:.75rem .8rem;color:var(--muted);font-size:.85rem}.selectedStationStack{display:grid;grid-template-rows:auto minmax(0,1fr);grid-gap:.45rem;gap:.45rem;min-height:0;width:100%;max-width:100%;height:100%}.selectedStationViewport{min-height:0;width:100%;max-width:100%;padding:.1rem .1rem .7rem;border-radius:1rem;overflow:hidden}.selectedStationLabel{font-size:.82rem;font-weight:700;color:var(--muted)}.selectedStationList{display:grid;grid-gap:.35rem;gap:.35rem;min-height:0;width:100%;max-width:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;padding:.1rem .2rem .1rem .1rem;border-radius:.9rem}.selectedStationList .searchResult{max-width:100%}.selectedStationItem{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.4rem .45rem .4rem .8rem}.selectedStationButton{display:grid;grid-gap:.15rem;gap:.15rem;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.selectedStationRemove{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;padding:0;border:1px solid rgba(19,33,41,.1);border-radius:999px;background:rgba(255,255,255,.5);color:var(--muted);cursor:pointer;font-size:.9rem;line-height:1}.shell[data-theme=dark] .selectedStationRemove{border-color:rgba(182,201,214,.12);background:rgba(255,255,255,.05);color:var(--text)}.selectionMeta{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.95rem}.selectionMeta button{border:0;background:transparent;color:var(--accent-strong);cursor:pointer;font-weight:700}.selectionMeta button:disabled{opacity:.4;cursor:default}.stationList{display:grid;grid-gap:.45rem;gap:.45rem;min-height:0;overflow:auto;padding-right:.2rem}.stationRow{display:grid;grid-gap:.15rem;gap:.15rem;width:100%;padding:.8rem .9rem;border:1px solid rgba(19,33,41,.08);border-radius:1rem;background:rgba(255,255,255,.72);text-align:left;cursor:pointer;color:var(--text)}.stationRow.selected{border-color:rgba(31,122,140,.42);background:rgba(31,122,140,.12)}.shell[data-theme=dark] .stationRow{border-color:rgba(182,201,214,.08);background:rgba(255,255,255,.03)}.shell[data-theme=dark] .stationRow.selected{border-color:rgba(91,183,202,.42);background:rgba(91,183,202,.12)}.stationName{font-weight:700}.stationLines{color:var(--muted);font-size:.88rem}.mapPanel{position:relative;height:100%;overflow:hidden;min-height:0;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.mapCanvas{height:100%;width:100%}.mapThemeToggle{position:absolute;top:1rem;right:1rem;z-index:600;display:flex;gap:.45rem;padding:.45rem;border:1px solid var(--panel-border);border-radius:999px;background:rgba(248,245,236,.9);box-shadow:0 10px 24px rgba(16,33,47,.12);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mapThemeToggle .toggle{padding:.5rem .8rem}.mapThemeToggle .toggle:hover{transform:translateY(-1px)}.mapThemeToggle .toggle:active{transform:translateY(0)}.shell[data-theme=dark] .mapThemeToggle{border-color:rgba(182,201,214,.14);background:rgba(18,27,35,.9);box-shadow:0 10px 24px rgba(0,0,0,.28)}.leaflet-container{font-family:var(--font-sans)}.shell[data-theme=dark] .leaflet-tooltip{border:1px solid rgba(182,201,214,.14);border-radius:.85rem;background:rgba(18,27,35,.96);color:#eef4f7;box-shadow:0 10px 24px rgba(0,0,0,.28)}.shell[data-theme=dark] .leaflet-tooltip-top:before{border-top-color:rgba(18,27,35,.96)}.shell[data-theme=dark] .leaflet-tooltip-bottom:before{border-bottom-color:rgba(18,27,35,.96)}.shell[data-theme=dark] .leaflet-tooltip-left:before{border-left-color:rgba(18,27,35,.96)}.shell[data-theme=dark] .leaflet-tooltip-right:before{border-right-color:rgba(18,27,35,.96)}.shell[data-theme=dark] .leaflet-control-attribution{border:1px solid rgba(182,201,214,.12);border-radius:.75rem 0 0 0;background:rgba(18,27,35,.9);color:rgba(238,244,247,.82);box-shadow:0 8px 18px rgba(0,0,0,.24)}.shell[data-theme=dark] .leaflet-control-attribution a{color:#8fd5e1}.nearestStationOverlayIcon{background:transparent;border:0}.nearestStationOverlayBubble{position:relative;display:grid;grid-gap:.24rem;gap:.24rem;min-width:15rem;padding:.9rem 1rem;border:1px solid rgba(16,33,47,.14);border-radius:1rem;background:rgba(248,245,236,.97);color:var(--text);box-shadow:0 0 0 4px rgba(255,255,255,.18),0 12px 28px rgba(16,33,47,.16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:translate(-50%,-100%)}.nearestStationOverlayBubble.compact{min-width:9.5rem;padding:.5rem .6rem;gap:.12rem}.nearestStationOverlayClose{position:absolute;top:.45rem;right:.55rem;color:var(--muted);font-size:.78rem;font-weight:700;line-height:1}.nearestStationOverlayBubble.compact .nearestStationOverlayClose{top:.24rem;right:.3rem;font-size:.68rem}.nearestStationOverlayTitle{font-weight:700;font-size:.95rem;padding-right:1rem}.nearestStationOverlayBubble.compact .nearestStationOverlayTitle{font-size:.76rem;padding-right:.8rem}.nearestStationOverlayMeta{color:var(--muted);font-size:.84rem;line-height:1.3}.nearestStationOverlayBubble.compact .nearestStationOverlayMeta{font-size:.66rem;line-height:1.2}.nearestStationOverlayBubble.minimal{min-width:8.25rem;padding:.42rem .5rem;gap:.08rem}.nearestStationOverlayBubble.minimal .nearestStationOverlayClose{top:.18rem;right:.24rem;font-size:.6rem}.nearestStationOverlayBubble.minimal .nearestStationOverlayTitle{font-size:.7rem;padding-right:.65rem}.nearestStationOverlayBubble.minimal .nearestStationOverlayMeta{font-size:.6rem;line-height:1.15}.shell[data-theme=dark] .nearestStationOverlayBubble{border-color:rgba(182,201,214,.14);background:rgba(18,27,35,.97);box-shadow:0 0 0 4px rgba(91,183,202,.14),0 12px 28px rgba(0,0,0,.3)}.stationLabelIcon,.stationStopIcon{background:transparent;border:0}.stationStop{display:inline-flex;align-items:center;justify-content:center;min-height:18px;padding:2px 4px;border:2px solid rgba(16,33,47,.78);border-radius:999px;background:rgba(248,245,236,.96);box-shadow:0 3px 10px rgba(16,33,47,.2)}.stationStop.selected{border-color:var(--accent-strong);box-shadow:0 0 0 4px rgba(31,122,140,.18),0 6px 16px rgba(20,77,95,.3);transform:scale(1.06)}.shell[data-theme=dark] .stationStop{border-color:rgba(222,235,242,.62);background:rgba(18,27,35,.96);box-shadow:0 3px 10px rgba(0,0,0,.32)}.shell[data-theme=dark] .stationStop.selected{border-color:rgba(143,213,225,.75);box-shadow:0 0 0 4px rgba(91,183,202,.2),0 6px 18px rgba(0,0,0,.42)}.stationStopDots{display:inline-flex;gap:2px}.stationStopDot{display:block;width:6px;height:6px;border-radius:999px;border:1px solid rgba(16,33,47,.18)}.stationMapLabel{display:inline-block;padding:.18rem .45rem;border:2px solid rgba(16,33,47,.14);border-radius:999px;background:rgba(248,245,236,.95);color:rgba(19,33,41,.76);font-size:.67rem;font-weight:700;letter-spacing:.01em;box-shadow:0 3px 10px rgba(16,33,47,.12);white-space:nowrap;transform:translateX(-50%)}.stationMapLabel.selected{border-color:rgba(31,122,140,.4);background:rgba(255,255,255,.95);color:var(--text);box-shadow:0 0 0 4px rgba(31,122,140,.14),0 6px 16px rgba(20,77,95,.18)}.shell[data-theme=dark] .stationMapLabel{border-color:rgba(182,201,214,.18);background:rgba(18,27,35,.96);color:rgba(238,244,247,.82);box-shadow:0 3px 10px rgba(0,0,0,.28)}.shell[data-theme=dark] .stationMapLabel.selected{border-color:rgba(143,213,225,.44);background:rgba(18,27,35,.96);color:#f5fbfd;box-shadow:0 0 0 4px rgba(91,183,202,.18),0 6px 18px rgba(0,0,0,.34)}@media (max-width:980px){.shell,body{overflow:hidden}.shell{height:100vh;min-height:100vh}.sidebar{top:auto;left:.75rem;right:.75rem;bottom:.75rem;width:auto;height:min(44vh,24rem);max-height:none;gap:.75rem;padding:.95rem;border-radius:1.25rem;overflow:visible}.sidebarSection{gap:.7rem;padding:.75rem}.desktopOnly{display:none}.shedSection{grid-template-rows:none;max-height:none;overflow:visible}.searchResults{top:auto;bottom:calc(100% + .35rem);max-height:min(14rem,30vh)}.shell[data-sidebar=closed] .sidebar{display:grid;transform:translateY(calc(100% + 1.25rem));opacity:0;pointer-events:none}.drawerHandle{top:auto;left:50%;bottom:calc(.75rem + min(44vh, 24rem) - 1rem);width:3.5rem;height:2rem;transform:translateX(-50%)}.shell[data-sidebar=closed] .drawerHandle{left:50%;top:auto;bottom:.75rem;transform:translateX(-50%)}.hero h1{font-size:clamp(1.5rem,8vw,2.15rem)}.mapThemeToggle .toggle,.toggle{padding:.5rem .75rem;font-size:.9rem}.mapCanvas,.mapPanel{min-height:100vh}.leaflet-control-attribution{display:none}.mapThemeToggle{top:.8rem;right:.8rem;gap:.35rem;padding:.35rem}.mapThemeToggle .toggle{padding:.45rem .7rem}.customTimeRow input,.search input{padding:.75rem .9rem}.stationRow{padding:.75rem .85rem}}