:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#122b40;background:#f3f6fa;--bg:#f3f6fa;--panel:#fff;--ink:#122b40;--muted:#627487;--line:#dce5ee;--blue:#0865d6;--soft:#eaf3ff;--accent:#c5f35b;--shadow:0 8px 30px #1435540a}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{opacity:.5;cursor:wait}a{color:var(--blue)}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:3px}header{max-width:1200px;margin:auto;padding:20px 30px;display:flex;justify-content:space-between;align-items:center;gap:14px;height:82px}.brand{display:flex;align-items:center;gap:8px;font-size:28px;letter-spacing:-1px;font-weight:850;text-decoration:none;color:var(--ink)}.brandmark{display:inline-flex;width:36px;height:36px;background:var(--accent);color:#122b40;align-items:center;justify-content:center;border-radius:10px;font-size:31px}.city{font-size:11px;letter-spacing:2px;margin-left:8px;color:var(--muted)}.headtools{display:flex;align-items:center;gap:12px}#feedstatus{font-size:12px;color:var(--muted);max-width:200px;text-align:right}.iconbtn{width:38px;height:38px;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:22px;flex:none}main{max-width:1120px;margin:auto;padding:8px 30px 120px}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 20px}.eyebrow{font-size:11px;font-weight:800;color:var(--blue);letter-spacing:1.7px}h1{font-size:32px;line-height:1.2;letter-spacing:-1px;margin:6px 0 0}h2{font-size:22px;line-height:1.3;margin:0}h3{font-size:17px;line-height:1.4;margin:0}.primary,.secondary,.textbtn,.searchbutton{min-height:44px;border-radius:11px;padding:12px 17px;font-size:14px;font-weight:750;line-height:1.3}.primary{background:var(--blue);color:#fff}.secondary{background:var(--panel);color:var(--ink);border:1px solid var(--line);white-space:nowrap}.textbtn{background:transparent;color:var(--blue);padding:10px}.searchbutton{background:var(--ink);color:var(--panel);padding:10px 15px;flex:none}.mapframe{position:relative;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#e5ebee;box-shadow:var(--shadow)}.map{width:100%;height:470px}.mainmap{height:clamp(330px,52dvh,560px)}.destmap{height:360px}.mapcaption{position:absolute;left:14px;bottom:35px;max-width:calc(100% - 70px);padding:9px 13px;background:#fffef3f5;color:#203a50;border:1px solid #dbe3e9;border-radius:10px;font-size:12px;line-height:1.4;pointer-events:none;box-shadow:0 2px 12px #122b4010}.originconfirm{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0 22px}.originconfirm strong{font-size:16px}.originconfirm p{font-size:13px;color:var(--muted);line-height:1.5;margin:5px 0 0}.originconfirm .primary{flex:none}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 12px}.sectionhead p{font-size:13px;color:var(--muted);margin:5px 0}.empty{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;line-height:1.6;color:var(--muted);font-size:14px}.stopgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stopcard,.panel,.journeycard{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:20px;box-shadow:var(--shadow)}.stopcard{cursor:pointer;text-align:left;color:var(--ink);display:block;width:100%;position:relative}.stopcard:hover{border-color:var(--blue)}.stopcard .distance{font-size:12px;color:var(--muted);display:block;margin:7px 0 11px}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;justify-content:center;min-width:35px;min-height:32px;background:var(--soft);color:var(--blue);border:1px solid transparent;border-radius:8px;padding:5px 9px;font-size:14px;font-weight:800}.chip.selected{background:var(--blue);color:white}.back{background:transparent;color:var(--blue);padding:10px 0;margin:10px 0;font-size:14px;font-weight:750}.stop-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.star{background:transparent;font-size:27px;color:var(--muted);padding:0 4px;flex:none}.star.on{color:#cf9700}.metadata{font-size:13px;color:var(--muted);line-height:1.6;margin:8px 0 16px}.filterlabel{font-size:12px;color:var(--muted);margin-bottom:8px}.arrival{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.arrival:last-child{border-bottom:0}.arrivalline{font-size:17px;font-weight:800;color:var(--blue);background:var(--soft);border-radius:9px;padding:9px 4px;text-align:center;cursor:pointer}.destination{font-size:14px;font-weight:650;line-height:1.45;overflow-wrap:anywhere}.arrival-time{font-size:23px;font-weight:800;text-align:right;white-space:nowrap}.arrival-time small{font-size:11px;display:block;color:var(--muted);font-weight:500;margin-top:3px}.live{color:#007b66}.splitpanel{display:grid;grid-template-columns:1fr 1fr;gap:16px}.live-map{height:340px}.live-heading{font-size:14px;margin-bottom:12px;font-weight:750}.notice{font-size:13px;color:var(--muted);line-height:1.6;padding:12px 0}.searchbar{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px 8px 15px;background:var(--panel);border:1px solid var(--line);border-radius:13px;margin-bottom:16px;box-shadow:var(--shadow)}.searchbar>span{font-size:24px;color:var(--muted);flex:none}.searchbar input{flex:1;width:0;min-width:0;border:0;outline:0;background:none;color:var(--ink);font-size:16px;padding:9px 0}.linegrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.linecard{display:flex;flex-direction:column;align-items:flex-start;gap:9px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:17px;text-align:left;color:var(--ink)}.linecard:hover{border-color:var(--blue)}.linecard strong{font-size:25px;letter-spacing:-.6px}.linecard span{color:var(--muted);font-size:12px;line-height:1.5}.pill{font-size:13px;color:var(--muted);white-space:nowrap}.directions{display:flex;gap:7px;overflow:auto;padding:14px 0}.directions button{background:var(--soft);color:var(--blue);border-radius:8px;padding:10px 13px;font-size:13px;white-space:nowrap}.directions button.active{background:var(--blue);color:white}.stoplist{list-style:none;padding:0}.stoplist li{border-bottom:1px solid var(--line)}.stoplist button{display:flex;gap:14px;background:none;color:var(--ink);width:100%;text-align:left;padding:14px 4px;font-size:14px;line-height:1.4}.stopnumber{color:var(--muted);font-size:12px;min-width:22px}.fromrow{display:flex;align-items:center;gap:13px;padding:17px;background:var(--panel);border:1px solid var(--line);border-radius:13px;margin-bottom:16px}.fromrow>div{flex:1;min-width:0}.fromrow strong,.destheading strong{display:block;font-size:14px;line-height:1.5;margin-top:5px}.label{font-size:11px;letter-spacing:1px;color:var(--muted);font-weight:750}.fromdot{width:12px;height:12px;background:var(--blue);border:3px solid #bdd8ff;box-sizing:content-box;border-radius:50%;flex:none}.place{display:block;width:100%;text-align:left;padding:14px 16px;margin:7px 0;background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:12px;line-height:1.5}.place strong{font-size:14px;display:block}.place small{font-size:12px;color:var(--muted);display:block}.destheading{display:flex;justify-content:space-between;gap:14px;padding:18px 0 12px}.journey-action{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0}.journey-action p{font-size:13px;color:var(--muted);line-height:1.5;max-width:460px;margin:0}.journey-action button{flex:none}.journeycard{margin:14px 0}.journey-top{display:flex;justify-content:space-between;align-items:center}.bestlabel{font-size:11px;font-weight:850;letter-spacing:1px;color:var(--blue)}.duration{font-size:24px;font-weight:850}.journeycard h2{margin-top:10px}.timeline{list-style:none;padding:0;margin:20px 0 0}.timeline li{border-left:2px solid var(--line);padding:4px 0 18px 17px;margin-left:6px;font-size:14px;line-height:1.7}.timeline li:last-child{padding-bottom:0}.timeline .legheading{font-weight:750}.timeline small{font-size:12px;color:var(--muted)}.bottomnav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;background:var(--panel);border-top:1px solid var(--line);padding:8px 14px calc(8px + env(safe-area-inset-bottom));z-index:20;box-shadow:0 -5px 25px #122b4008}.bottomnav button{background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px;font-weight:650;min-height:52px;max-width:140px;flex:1;padding:5px 8px;border-radius:10px}.bottomnav button span{font-size:21px;line-height:1}.bottomnav button.active{background:var(--soft);color:var(--blue)}footer{font-size:11px;color:var(--muted);line-height:1.8;text-align:center;margin-top:35px}.pin-origin,.pin-dest{width:28px;height:28px;border:4px solid white;box-shadow:0 3px 12px #0b233855;background:var(--blue);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.pin-dest{background:#e94c52}.vehicle-marker{min-width:40px;padding:6px 9px;background:#092f52;color:white;font-size:13px;font-weight:850;border-radius:9px;border:2px solid #fff;box-shadow:0 2px 12px #122b4035;text-align:center;cursor:pointer}.bus-popup{font-size:14px;color:#122b40;line-height:1.6}.maplibregl-popup-content{border-radius:12px;padding:15px}.maplibregl-ctrl-attrib{font-size:10px!important}.maplibregl-ctrl-group button{width:34px;height:34px}body.dark{--bg:#0b1d2d;--panel:#142b3f;--ink:#ecf4fc;--muted:#a5b7c7;--line:#2b4357;--blue:#72afff;--soft:#1d3c59;background:var(--bg);color:var(--ink)}body.dark .primary{color:#102b42}body.dark .live{color:#6fe6c7}[hidden]{display:none!important}@media(max-width:700px){header{height:68px;padding:14px 18px}.brand{font-size:25px}.city{display:none}main{padding:0 16px 110px}.pagehead{margin:12px 0 15px;gap:10px}h1{font-size:25px;letter-spacing:-.6px}.eyebrow{font-size:10px;letter-spacing:1.2px}.pagehead .secondary{font-size:12px;padding:10px 12px}.mainmap{height:46dvh;min-height:300px;max-height:470px}.mapframe{border-radius:15px}.originconfirm{align-items:flex-start;gap:12px;padding:15px 0 19px}.originconfirm strong{font-size:14px}.originconfirm p{font-size:12px}.originconfirm .primary{max-width:135px;font-size:13px;padding:12px}.stopgrid{grid-template-columns:1fr}.stopcard,.panel,.journeycard{padding:17px}.splitpanel{grid-template-columns:1fr}.linegrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.linecard{padding:14px}.linecard strong{font-size:24px}.linecard span{font-size:11px}.searchbar{gap:8px;padding:7px 8px 7px 12px}.searchbar input{font-size:15px}.searchbutton{font-size:13px;padding:10px 12px}.destmap{height:320px}.journey-action{flex-direction:column;align-items:stretch;gap:12px}.journey-action button{width:100%}.arrival{gap:10px;grid-template-columns:44px minmax(0,1fr) auto}.destination{font-size:13px}.arrival-time{font-size:22px}.headtools{gap:8px}#feedstatus{font-size:11px;max-width:140px}.fromrow{padding:14px}.mapcaption{font-size:11px;left:10px;padding:8px 10px}.live-map{height:300px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Tuka: map-led transit workspace */
:root{--bg:#f5f7fa;--panel:#fff;--ink:#102737;--muted:#6a7c88;--line:#e3e9ed;--blue:#0758ca;--soft:#eef4ff;--accent:#c5f35b;--shadow:0 5px 25px #17365007;letter-spacing:-.15px}header{height:76px;padding:14px 30px}.wordmark{font-size:37px;font-weight:850;letter-spacing:-2.1px;line-height:1}.brand-dot{color:#0758ca}.brand .city{border-left:1px solid var(--line);padding-left:13px;margin-left:5px;font-size:10px;letter-spacing:2.4px}.brandmark{display:none}.headtools{gap:12px}#feedstatus{background:var(--panel);padding:8px 12px;border:1px solid var(--line);border-radius:30px;font-size:11px;font-weight:600}.iconbtn{border-radius:50%;border:0;background:var(--panel);width:36px;height:36px;font-size:20px}main{max-width:1200px;padding:0 30px 110px}.pagehead{margin:20px 0 24px}.eyebrow{letter-spacing:1.7px;font-size:10px;font-weight:750}h1{font-size:34px;font-weight:750;letter-spacing:-1.2px;margin-top:9px}h2{font-size:22px;font-weight:750;letter-spacing:-.6px}h3{font-weight:650}.mapstage{position:relative}.mapframe{border-radius:24px;border:0;box-shadow:0 0 0 1px var(--line);overflow:hidden}.mainmap{height:clamp(390px,57dvh,640px)}.map-top-label{position:absolute;top:23px;left:23px;background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:15px 20px;box-shadow:0 8px 32px #0b233812;pointer-events:none;max-width:calc(100% - 110px)}.map-kicker{display:block;font-size:9px;font-weight:800;letter-spacing:1.7px;color:var(--muted)}.map-top-label strong{display:block;font-size:23px;font-weight:750;letter-spacing:-.8px;margin-top:5px}.map-tools{position:absolute;right:18px;top:20px;display:flex;flex-direction:column;gap:8px}.map-tools button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;background:var(--panel);color:var(--ink);box-shadow:0 4px 18px #0b233817;border:1px solid var(--line)}.map-tools svg{width:21px;height:21px}.map-tools button:hover{color:var(--blue)}.mapcaption{left:18px;bottom:31px;background:#ffffffef;border:0;border-radius:20px;padding:8px 13px;font-size:11px;max-width:calc(100% - 85px);box-shadow:0 2px 16px #0b23380a}.location-strip{display:flex;align-items:center;gap:11px;padding:17px 5px 16px;border-bottom:1px solid var(--line);margin-bottom:5px}.location-orb{height:9px;width:9px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px var(--soft);margin:0 5px;flex:none}.location-strip>div{min-width:0;flex:1}.location-strip strong{display:block;font-size:13px;font-weight:650}.location-strip span:not(.location-orb){display:block;font-size:11px;color:var(--muted);margin-top:3px}.location-strip .textbtn{font-size:11px;min-height:38px;white-space:nowrap}.correction-panel{position:absolute;top:115px;left:22px;right:80px;z-index:3;background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:16px;box-shadow:0 8px 30px #0b233830}.correction-panel strong{font-size:15px}.correction-panel p{font-size:12px;line-height:1.6;color:var(--muted);margin:6px 0 13px}.correction-actions{display:flex;gap:8px}.correction-actions button{min-height:38px;font-size:12px;padding:10px 14px}.primary{background:var(--ink);color:var(--panel);border-radius:12px;box-shadow:0 4px 10px #0b233810}.primary:hover{background:#0758ca;color:white}.secondary{border-radius:12px}.sectionhead{margin:21px 0 14px}.sectionhead h2{font-size:20px}.sectionhead p{font-size:12px;max-width:400px;line-height:1.5}.stopgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.stopcard{border-radius:17px;padding:18px;border:1px solid var(--line);box-shadow:none;transition:border-color .15s,box-shadow .15s}.stopcard:hover{box-shadow:0 6px 25px #0b233809}.stopcard h3{font-size:14px;letter-spacing:-.2px;font-weight:750;text-transform:none}.stopcard .distance{margin:8px 0 13px;font-size:11px}.chip{border-radius:7px;min-height:30px;min-width:33px;font-size:13px;background:#f0f4f7;color:#314b60;padding:5px 9px;font-weight:750}.chip.selected{background:#102b3d;color:#fff}.chips{gap:6px}.panel{border:0;box-shadow:none;border-radius:20px;padding:22px;margin-top:0}.back{display:inline-flex;font-size:12px;color:var(--muted);margin:12px 0 4px;padding:8px 0}.stop-title h2{font-size:23px;letter-spacing:-.8px;max-width:650px}.metadata{font-size:12px;margin:7px 0 18px}.filterlabel{font-size:11px;color:var(--muted);margin:0 0 9px}.arrival{padding:17px 0;grid-template-columns:48px minmax(0,1fr) auto;border-bottom:1px solid #edf1f5}.arrivalline{border-radius:10px;min-height:44px;background:var(--soft);color:var(--blue);font-size:17px}.destination{font-size:15px;font-weight:650;color:var(--ink)}.arrival-time{font-size:28px;letter-spacing:-.7px}.arrival-time small{font-size:10px;letter-spacing:0;margin-top:4px}.notice{font-size:12px;line-height:1.6;color:var(--muted);padding:12px 0;margin:4px 0}.empty{border-style:dashed;background:transparent;font-size:13px}.searchbar{min-height:59px;border-radius:16px;box-shadow:none;border-color:var(--line);padding:8px 10px 8px 17px}.searchbar input{font-size:16px}.searchbutton{font-size:12px;border-radius:10px;min-height:39px}.linegrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.linecard{border-radius:17px;padding:19px;gap:12px;min-height:130px;background:linear-gradient(150deg,var(--panel),var(--bg));transition:border .15s}.linecard strong{font-size:30px;color:var(--ink);font-weight:800}.linecard span{font-size:11px;line-height:1.7;max-width:180px}.pill{border:1px solid var(--line);padding:7px 11px;border-radius:20px;font-size:11px}.fromrow{background:var(--panel);border:0;border-radius:16px;padding:20px}.fromrow strong{font-size:14px}.fromrow .textbtn{font-size:12px}.label{font-size:10px;letter-spacing:1.4px}.destheading{padding:20px 2px 14px}.destheading strong{font-size:13px}.destmap{height:400px}.journey-action{padding:20px 2px}.journey-action p{font-size:12px;line-height:1.7}.journey-action .primary{padding:15px 24px;font-size:13px}.journeycard{border-radius:20px;box-shadow:none;padding:24px;border-color:var(--line)}.journeycard:first-of-type{border-color:#99b9ea;background:linear-gradient(135deg,var(--panel),var(--soft))}.bestlabel{font-size:10px;letter-spacing:1.2px}.duration{font-size:30px;letter-spacing:-1px}.journeycard h2{font-size:23px;margin-top:6px}.timeline li{line-height:1.8;font-size:13px;padding-left:20px}.timeline .legheading{font-size:14px}.timeline small{font-size:11px}.bottomnav{left:50%;right:auto;bottom:14px;transform:translateX(-50%);width:min(550px,calc(100% - 28px));border:1px solid var(--line);border-radius:22px;background:var(--panel);padding:8px;box-shadow:0 8px 38px #0b233817;gap:4px}.bottomnav button{flex-direction:row;justify-content:center;gap:9px;min-height:48px;font-size:12px;border-radius:14px;font-weight:650;max-width:none}.bottomnav button span{display:flex;align-items:center;font-size:20px}.bottomnav button.active{background:var(--ink);color:var(--panel)}.bottomnav svg{width:19px;height:19px}.pin-origin{width:20px;height:20px;border-radius:50%;background:#0758ca;border:4px solid white;box-shadow:0 0 0 7px #0758ca22,0 3px 12px #0b233833;transform:none;pointer-events:none}.pin-origin.editing{pointer-events:auto;background:#f29330;box-shadow:0 0 0 7px #f2933022;cursor:grab}.pin-dest{width:23px;height:23px;border-radius:50%;background:#ea5555;border:4px solid white;box-shadow:0 0 0 5px #ea555520,0 3px 12px #0b233833;transform:none}.vehicle-marker{background:#112e42;border:3px solid #fff;border-radius:11px;min-width:43px;padding:7px 10px;box-shadow:0 5px 18px #0b233832;font-size:14px;position:relative;z-index:4}.maplibregl-ctrl-top-right{top:auto!important;bottom:36px;right:9px}.maplibregl-ctrl-group{border-radius:12px!important;box-shadow:0 3px 20px #0b233820!important;border:1px solid #e3e9ed!important;overflow:hidden}.maplibregl-ctrl-group button{width:34px;height:34px}.maplibregl-ctrl-attrib{background:#ffffffd9!important;color:#566978!important}.maplibregl-popup-content{border-radius:15px;padding:16px;box-shadow:0 8px 32px #0b233830}.bus-popup{font-size:13px;line-height:1.7}footer{font-size:10px;margin-top:30px;line-height:1.8}body.dark .primary{color:var(--panel)}body.dark .mapcaption{background:#142b3ff0;color:#dbe6ef}body.dark .brand-dot{color:var(--blue)}body.dark .arrival{border-bottom-color:var(--line)}body.dark .chip{background:#223d52;color:#cbdcea}body.dark .chip.selected{background:#72afff;color:#102737}body.dark .bottomnav button.active{background:var(--blue);color:#102737}body.dark .linecard{background:var(--panel)}
@media(max-width:700px){header{height:70px;padding:15px 19px}.wordmark{font-size:34px}.headtools{gap:7px}#feedstatus{font-size:10px;padding:7px 9px}.headtools .iconbtn{width:31px;height:31px}main{padding:0 14px 100px}.mainmap{height:52dvh;min-height:340px;max-height:560px}.mapframe{border-radius:22px}.map-top-label{left:14px;top:15px;padding:12px 15px;border-radius:13px;max-width:calc(100% - 86px)}.map-kicker{font-size:8px;letter-spacing:1.5px}.map-top-label strong{font-size:22px;margin-top:4px}.map-tools{right:12px;top:15px;gap:7px}.map-tools button{width:39px;height:39px;border-radius:12px}.map-tools svg{width:19px;height:19px}.mapcaption{left:12px;bottom:32px;font-size:10px;padding:7px 10px;max-width:calc(100% - 65px)}.location-strip{gap:9px;padding:13px 0 14px}.location-strip strong{font-size:12px}.location-strip span:not(.location-orb){font-size:10px}.location-strip .textbtn{font-size:10px;padding:8px 4px}.correction-panel{top:102px;left:12px;right:65px;padding:13px}.correction-panel strong{font-size:14px}.correction-panel p{font-size:11px}.stopgrid{display:flex;overflow-x:auto;gap:10px;padding:0 1px 10px;scroll-snap-type:x mandatory;scrollbar-width:thin}.stopcard{min-width:calc(85% - 14px);max-width:290px;flex:none;scroll-snap-align:start;padding:17px}.stopcard h3{font-size:14px}.stopcard .distance{font-size:10px}.sectionhead{margin:18px 0 12px}.sectionhead h2{font-size:19px}.sectionhead p{font-size:11px;margin-top:5px}.panel{padding:18px 16px;border-radius:20px}.stop-title h2{font-size:20px;line-height:1.4;letter-spacing:-.5px}.metadata{font-size:11px;margin:7px 0 15px}.filterlabel{font-size:10px}.arrival{padding:15px 0;gap:11px;grid-template-columns:45px minmax(0,1fr) auto}.destination{font-size:13px;font-weight:600;line-height:1.5}.arrival-time{font-size:26px}.arrivalline{font-size:16px}.notice{font-size:11px}.pagehead{margin:17px 2px 22px}.eyebrow{font-size:9px}h1{font-size:29px;letter-spacing:-.9px}.linegrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.linecard{padding:15px 13px;min-height:125px;gap:10px;border-radius:15px}.linecard strong{font-size:29px}.linecard span{font-size:10px;line-height:1.7}.pill{font-size:10px;padding:6px 8px}.searchbar{min-height:54px;border-radius:14px;padding-left:13px}.searchbar input{font-size:14px}.searchbutton{font-size:11px;min-height:36px}.fromrow{padding:17px}.fromrow strong{font-size:13px}.fromrow .textbtn{font-size:11px}.destheading strong{font-size:12px}.destmap{height:350px}.journey-action{padding:17px 2px;gap:13px}.journey-action p{font-size:11px}.journey-action .primary{padding:16px;width:100%;font-size:13px}.journeycard{padding:20px 17px;border-radius:19px}.bestlabel{font-size:9px;letter-spacing:.8px}.duration{font-size:29px}.journeycard h2{font-size:21px}.bottomnav{bottom:calc(10px + env(safe-area-inset-bottom));border-radius:20px;padding:6px;gap:2px;width:calc(100% - 28px)}.bottomnav button{flex-direction:column;gap:5px;min-height:52px;font-size:10px;border-radius:14px;padding:7px 4px}.bottomnav svg{width:19px;height:19px}.bottomnav button.active{background:#122d43;color:white}.live-map{height:320px}#saved .stopgrid{display:grid;grid-template-columns:1fr;overflow:visible}#saved .stopcard{min-width:0;max-width:none}}
/* Keep actionable text readable on small screens. */
.stopcard h3{font-size:16px}.directions button{font-size:14px}.stoplist button{font-size:16px}.correction-panel p{font-size:14px}.correction-actions button{font-size:14px}.filterlabel{font-size:13px}.timeline li{font-size:15px}.timeline .legheading{font-size:16px}.place strong{font-size:16px}.bottomnav button{font-size:13px}.location-strip .textbtn{font-size:13px}.location-strip strong{font-size:14px}.journey-action .primary{font-size:15px}.map-tools button:focus-visible{outline-offset:2px}@media(max-width:700px){.searchbar input{font-size:16px}.stopcard h3{font-size:16px}.destination{font-size:15px}.searchbutton{font-size:14px}.bottomnav button{font-size:12px}.location-strip .textbtn{font-size:12px}.location-strip strong{font-size:14px}.stop-title h2{font-size:21px}.correction-panel p{font-size:14px}.correction-actions button{font-size:14px}.timeline li{font-size:15px}.timeline .legheading{font-size:16px}.fromrow strong{font-size:15px}.destheading strong{font-size:14px}.sectionhead p{font-size:13px}.filterlabel{font-size:13px}.linecard span{font-size:12px}}
/* Map markers must be positioned overlays, never full-width layout blocks. */
.maplibregl-marker.vehicle-marker{position:absolute!important;display:inline-flex!important;align-items:center;justify-content:center;width:44px;min-width:44px;max-width:72px;height:38px;min-height:38px;max-height:38px;padding:0 8px;margin:0;box-sizing:border-box;flex:none;white-space:nowrap;font-size:14px;line-height:1;border:2px solid #fff;border-radius:11px;box-shadow:0 3px 12px #0b23383a;overflow:hidden}
.arrival-gps{display:block;font-size:11px;line-height:1.4;color:var(--muted);font-weight:450;margin-top:5px}.arrival-gps.has-gps{color:#007b66}.map-top-label{padding:11px 15px}.map-top-label strong{font-size:18px;letter-spacing:-.4px}.map-kicker{font-size:8px;letter-spacing:1.2px}@media(max-width:700px){.map-top-label{max-width:calc(100% - 105px);padding:10px 13px}.map-top-label strong{font-size:18px}.map-top-label .map-kicker{display:none}.arrival-gps{font-size:11px}body.dark .arrival-gps.has-gps{color:#6fe6c7}}

/* Map chrome stays above moving markers. */
.map-top-label{z-index:8;max-width:calc(100% - 105px)}.map-tools,.maplibregl-ctrl-top-right{z-index:10}.mapcaption{z-index:8}.maplibregl-popup{z-index:12}.maplibregl-marker.vehicle-marker{z-index:3;box-shadow:0 2px 8px #14365024;border-radius:10px;font-size:13px;background:#143650}.pin-origin{z-index:4}.map-top-label strong{font-size:19px}.mapcaption{font-size:12px;line-height:1.4;max-width:calc(100% - 85px)}

.network-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.network-actions button{font-size:13px;padding:10px 12px}.target-panel{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:15px;margin-top:16px}.target-panel strong{display:block;margin:6px 0;font-size:17px}.target-panel p{font-size:14px;line-height:1.6;margin:7px 0}.map-top-label strong{font-size:15px;line-height:1.35;max-width:200px}.mapcaption{font-size:12px;max-width:calc(100% - 95px)}

.tracked-list{padding:12px 0 20px}.tracked-list .chips{margin-top:10px;max-height:140px;overflow:auto}.tracked-list small{font-size:11px;font-weight:500;color:var(--muted)}.arrivals-heading{font-size:17px;margin:8px 0}.map-top-label{max-width:calc(100% - 110px)}
/* Stops is a map workspace; information lives in a floating sheet. */
body.map-mode{height:100dvh;overflow:hidden}body.map-mode main{padding:0;max-width:none}body.map-mode header{position:fixed;inset:12px 16px auto;z-index:20;height:58px;padding:8px 16px;max-width:none;background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:0 5px 24px #122b4015}body.map-mode header .wordmark{font-size:32px}body.map-mode footer{display:none}body.map-mode #home{position:fixed;inset:0}body.map-mode .mapstage,body.map-mode #home>.mapstage>.mapframe{position:absolute;inset:0;border:0;border-radius:0;margin:0}body.map-mode #home-map{height:100%;width:100%;min-height:0;max-height:none}body.map-mode .map-top-label{top:86px;left:16px;padding:10px 14px;max-width:calc(100% - 95px)}body.map-mode .map-kicker{display:none}body.map-mode .map-tools{top:86px;right:16px;gap:8px}body.map-mode .map-tools button{width:44px;height:44px}body.map-mode .map-tools svg{width:22px;height:22px}body.map-mode .maplibregl-ctrl-top-right{top:290px;right:16px}body.map-mode .mapcaption{left:16px;bottom:calc(31dvh + 100px);font-size:13px;max-width:calc(100% - 100px)}body.map-mode .maplibregl-ctrl-bottom-right{bottom:82px;right:8px}body.map-mode .correction-panel{position:fixed;z-index:30;top:155px;left:16px;right:76px}.change-stop{position:absolute;z-index:11;left:16px;top:142px;background:var(--panel);color:var(--blue);padding:11px 16px;border-radius:14px;box-shadow:var(--shadow);font-size:14px;font-weight:750}.stop-sheet{position:fixed;z-index:15;bottom:calc(82px + env(safe-area-inset-bottom));left:12px;right:12px;border:1px solid var(--line);border-radius:24px;background:var(--panel);box-shadow:0 6px 32px #102c4326;overflow:hidden;height:29dvh;display:flex;flex-direction:column;transition:height .2s ease}.stop-sheet.expanded{height:65dvh}.sheet-toggle{display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px;min-height:46px;width:100%;background:transparent;color:var(--muted);font-size:13px;font-weight:650;flex:none}.sheet-grip{width:36px;height:4px;border-radius:10px;background:var(--line)}.sheet-scroll{overflow-y:auto;overscroll-behavior:contain;padding:0 16px 16px;min-height:0}.stop-sheet .location-strip{padding:8px 0 12px}.stop-sheet .location-strip span:not(.location-orb){font-size:12px}.stop-sheet .panel{padding:12px 0;border:0;box-shadow:none}.stop-sheet .back{margin:0;padding:6px 0 12px}.stop-sheet .sectionhead{margin:8px 0 12px}.stop-sheet .sectionhead h2{font-size:18px}.stop-sheet .stop-title h2{font-size:19px}.stop-sheet .metadata{margin:4px 0 10px}.stop-sheet .notice{font-size:13px}.stop-sheet .stopcard{padding:14px}.stop-sheet .filterlabel{margin-top:8px}.stop-sheet .location-strip .textbtn{font-size:13px}.stop-sheet .stopgrid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:800px){.stop-sheet{left:20px;right:auto;width:390px;height:35dvh;bottom:100px}.stop-sheet.expanded{height:70dvh}body.map-mode .mapcaption{left:440px;bottom:110px}body.map-mode header{max-width:520px;right:auto;width:calc(100% - 120px)}}@media(prefers-reduced-motion:reduce){.stop-sheet{transition:none}}
.ride-banner{position:fixed;z-index:16;top:145px;left:16px;right:76px;max-width:480px;padding:12px 14px;background:var(--panel);border:1px solid var(--blue);border-radius:16px;box-shadow:var(--shadow)}.ride-banner[hidden]{display:none}.ride-banner strong{display:block;font-size:16px;line-height:1.4}.ride-banner .textbtn{padding:6px 0;font-size:14px}.ride-banner.exit-alert{background:#075f50;color:white;border-color:#075f50}.ride-banner.exit-alert .textbtn{color:white}.ride-stops{list-style:none;margin:16px 0;padding:0}.ride-stops button{width:100%;display:flex;align-items:center;gap:12px;padding:12px 8px;background:transparent;text-align:left;color:var(--ink);border-bottom:1px solid var(--line);font-size:15px}.ride-stops button span{display:grid;place-items:center;background:var(--soft);color:var(--blue);border-radius:9px;min-width:34px;height:34px;font-weight:800}.ride-stops button.selected{background:var(--soft);border-radius:12px}.ride-panel h2{font-size:21px;margin-top:6px}.ride-panel .network-actions button{font-size:14px}.ride-panel .primary{flex:1}.ride-panel .notice{font-size:14px;line-height:1.5}
.install-app{padding:9px 11px;border-radius:12px;background:var(--soft);color:var(--blue);font-size:13px;font-weight:750;min-height:38px}.install-app[hidden]{display:none}.install-dialog{position:fixed;max-width:440px;width:calc(100% - 32px);max-height:85dvh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:24px;background:var(--panel);color:var(--ink);box-shadow:0 16px 80px #102c4340}.install-dialog::backdrop{background:#102c4366}.install-dialog p{font-size:16px;line-height:1.65}.install-dialog p.notice{font-size:14px}.install-dialog .network-actions button{font-size:15px}@media(max-width:390px){body.map-mode header{inset:10px 10px auto;padding:8px 12px}.headtools{gap:6px}body.map-mode #feedstatus{font-size:11px;max-width:115px}.install-app{padding:8px;font-size:12px}body.map-mode header .wordmark{font-size:28px}}
:root{--app-height:100dvh;--viewport-top:0px;--nav-height:72px;--header-height:82px}body{height:var(--app-height);overflow:hidden}.bottomnav{top:calc(var(--viewport-top) + var(--app-height) - var(--nav-height) - 10px - env(safe-area-inset-bottom));bottom:auto;z-index:40;max-width:550px}body:not(.map-mode)>header{position:fixed;top:var(--viewport-top);left:0;right:0;width:100%;z-index:20;background:var(--bg)}body:not(.map-mode)>main{position:fixed;top:calc(var(--viewport-top) + var(--header-height));left:0;right:0;height:calc(var(--app-height) - var(--header-height) - var(--nav-height) - 30px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding-bottom:24px;width:100%}body.map-mode #home{top:var(--viewport-top);bottom:auto;height:var(--app-height)}.saved-arrivals{display:block;margin-top:15px;border-top:1px solid var(--line);padding-top:12px}.saved-arrivals-label{display:block;font-size:13px;font-weight:650;color:var(--muted);margin-bottom:8px}.saved-arrival{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.saved-arrival:last-child{border-bottom:0}.saved-arrival-destination{flex:1;min-width:0;font-size:14px;line-height:1.4}.saved-arrival-destination small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.saved-arrival>strong{font-size:20px;white-space:nowrap}.saved-arrival>strong small{font-size:12px;font-weight:500}.saved-no-arrivals{display:block;margin-top:14px}#saved .stopcard{width:100%;max-width:none}#saved .stopgrid{align-items:start}
.wordmark,.brand,.brand-dot{color:var(--blue)}
/* Keep the ride status inside the sheet instead of covering map controls. */
body.riding .ride-banner{position:fixed;left:24px;right:24px;top:auto;bottom:calc(82px + env(safe-area-inset-bottom) + 29dvh - 46px);z-index:17;padding:10px 12px;border:0;box-shadow:none;background:var(--panel);max-width:none;display:flex;align-items:center;gap:12px;border-radius:14px}body.riding .ride-banner strong{flex:1;font-size:14px;line-height:1.4}body.riding .ride-banner .textbtn{flex:none;font-size:13px;padding:8px}body.riding .ride-banner[hidden],body.riding.sheet-expanded .ride-banner{display:none}body.riding .sheet-toggle{min-height:62px;padding-top:10px}body.riding .sheet-toggle #sheet-label{visibility:hidden}body.riding.sheet-expanded .sheet-toggle #sheet-label{visibility:visible}body.riding .mapcaption{display:none}.journey-route-wrap{margin:20px 0;scroll-margin-top:12px}.journey-route-wrap h2{margin-bottom:14px}.journey-map{height:380px;max-height:50dvh}.journey-route-legend p{font-size:14px;line-height:1.55;margin:10px 0}.journey-stop-marker{width:24px;height:24px;border:3px solid white;border-radius:50%;color:white;box-shadow:0 2px 8px #122b4033;padding:0;font-size:16px}.journey-show{margin:12px 0}.ticket-call{display:inline-block;text-decoration:none;margin:8px 0}.headtools{gap:7px}@media(max-width:700px){body.map-mode header .wordmark{font-size:29px}body.map-mode #feedstatus{font-size:11px;max-width:105px}.headtools .install-app{padding:8px;font-size:12px}.stop-sheet .location-strip{padding-bottom:10px}.ride-panel h2{font-size:20px}.ride-panel .target-panel{padding:13px}.ride-panel .network-actions{gap:10px}.ride-panel .notice{line-height:1.65}}@media(min-width:800px){body.riding .ride-banner{left:32px;right:auto;width:366px;bottom:calc(100px + 35dvh - 46px)}}
.passenger-prompt{position:fixed;z-index:45;right:16px;bottom:calc(var(--nav-height) + 25px + env(safe-area-inset-bottom));width:min(340px,calc(100% - 32px));padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 6px 28px #122b4026}.passenger-prompt[hidden]{display:none}.passenger-prompt strong{display:block;font-size:15px;line-height:1.5;padding-right:20px}.passenger-prompt small{display:block;font-size:12px;color:var(--muted);margin:7px 0 12px}.passenger-prompt>div{display:flex;gap:8px}.passenger-prompt .secondary{font-size:13px;padding:10px}.prompt-dismiss{position:absolute;right:8px;top:6px;background:transparent;font-size:24px;color:var(--muted);width:32px;height:32px}.passenger-updates{font-size:13px;line-height:1.6;border-left:3px solid var(--blue);padding:10px 12px;margin:8px 0;background:var(--soft);border-radius:10px}

/* GPS tracking continues while the rider browses the map. */
.map-tools #locate.following{background:var(--blue);color:#fff;border-color:var(--blue)}.map-tools #locate.follow-paused{flex-direction:column;gap:0;color:var(--blue)}#locate.follow-paused span{line-height:20px;font-size:22px}#locate.follow-paused small{font-size:9px;font-weight:750;line-height:12px}
.star{font-size:24px;flex-shrink:0}.star[aria-label="Update saved filters"]{font-size:12px;max-width:85px;line-height:1.4;color:var(--blue);background:var(--soft);border-radius:10px;padding:10px}
body.dark .maplibregl-ctrl-group{background:var(--panel);border:1px solid var(--line)}body.dark .maplibregl-ctrl-group button+button{border-top-color:var(--line)}body.dark .maplibregl-ctrl-icon{filter:invert(1)}body.dark .maplibregl-ctrl-attrib{background:#142b3fe6;color:var(--muted)}body.dark .maplibregl-ctrl-attrib a{color:var(--muted)}body.dark .maplibregl-popup-content{background:var(--panel);color:var(--ink)}body.dark .maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:var(--panel)}body.dark .maplibregl-popup-anchor-top .maplibregl-popup-tip{border-bottom-color:var(--panel)}body.dark .maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--panel)}body.dark .maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--panel)}
@media(max-width:700px){.bottomnav button{font-size:10px;gap:5px}}
