:root{--bg: #f7f3ec;--surface: #fffdf8;--surface-strong: #ffffff;--ink: #17201b;--muted: #66736d;--subtle: #e4ded4;--line: #d9d2c5;--teal: #0b766f;--teal-strong: #075852;--mint: #dff3e8;--amber: #f4b740;--coral: #e96f4c;--red: #d94d3f;--shadow: 0 18px 46px rgba(35, 29, 19, .12);--radius: 8px;color:var(--ink);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{margin:0;min-height:100svh;background:linear-gradient(180deg,rgba(11,118,111,.08),transparent 280px),var(--bg)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}#root{min-height:100svh}.leaflet-container{font-family:inherit}body{overflow-x:hidden}:root{--app-safe-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--app-safe-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));--app-safe-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--app-safe-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--app-bottom-tab-safe: var(--app-safe-bottom);--app-keyboard-height: 0px;--native-ad-banner-height: 50px}.app-shell{width:min(1440px,100%);min-height:100svh;margin:0 auto;padding:16px}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto minmax(280px,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:#fffdf8ed;box-shadow:0 10px 30px #231d1314;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;flex:0 0 auto;min-width:0;gap:10px}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 18px #055b562e}.brand-mark svg{width:100%;height:100%}.brand-name,.panel-heading h2,.panel-heading p,.arrival-header h1,.arrival-header p,.arrival-summary,.stop-copy,.favourite-row span,.service-card-head span,.status-strip span,.ad-slot p,.ad-slot strong{overflow-wrap:anywhere}.brand-name{display:inline-flex;align-items:center;flex:0 0 auto;min-width:max-content;margin:0;color:var(--ink);font-size:18px;font-weight:800;line-height:1.05;white-space:nowrap}.searchbar{position:relative;z-index:30;display:flex;align-items:center;min-width:0;height:46px;gap:8px;padding:0 8px 0 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.searchbar svg{flex:0 0 auto;color:var(--teal)}.searchbar input{width:100%;height:100%;min-width:0;border:0;outline:0;color:var(--ink);background:transparent;font-size:16px}.search-dropdown{position:absolute;top:calc(100% + 6px);right:-1px;left:-1px;z-index:40;max-height:var(--search-dropdown-max-height, 320px);overflow-y:auto;overscroll-behavior:contain;scroll-padding:4px;padding:4px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);box-shadow:0 8px 24px #231d1329}.searchbar[data-suggestions-placement=above] .search-dropdown{top:auto;bottom:calc(100% + 6px)}.search-dropdown ul{margin:0;padding:0;list-style:none}.search-suggestion{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:9px 10px;border:0;border-radius:4px;color:var(--ink);background:transparent;text-align:left;cursor:pointer}.search-suggestion:hover,.search-suggestion[aria-selected=true]{background:var(--teal-soft)}.search-suggestion.is-query{border-top:1px solid var(--line);border-radius:0}.search-suggestion-copy{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}.search-suggestion-copy strong{font-size:14px;line-height:1.3}.search-suggestion-copy small{color:var(--muted);font-size:12px;line-height:1.35}.search-suggestions-status{display:flex;align-items:center;gap:8px;padding:8px 10px;color:var(--muted);font-size:13px}.searchbar:focus-within{border-color:#0b766f9e;box-shadow:0 0 0 3px #0b766f1f}.search-clear-button{display:inline-flex;flex:0 0 30px;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:999px;color:var(--muted);background:transparent;cursor:pointer}.search-clear-button:hover{color:var(--teal);background:var(--teal-soft)}.search-clear-button svg{color:currentColor}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.website-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 18px;padding:8px 4px;font-size:13px}.website-nav a{display:inline-flex;align-items:center;min-height:32px;color:var(--teal-strong);text-decoration:none}.website-nav a:hover{text-decoration:underline}.topbar-install-control,.app-install-menu{position:relative;display:inline-flex}.mobile-install-control{display:none}.app-install-direct{text-decoration:none}.app-install-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:50;display:grid;width:min(270px,calc(100vw - 32px));gap:4px;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);box-shadow:0 16px 40px #231d132e}.app-install-popover a{display:grid;min-height:42px;grid-template-columns:20px minmax(0,1fr) 14px;align-items:center;gap:8px;padding:7px 9px;border-radius:6px;color:var(--ink);font-size:13px;font-weight:750;text-decoration:none}.app-install-popover a:hover,.app-install-popover a:focus-visible{color:var(--teal-strong);background:var(--mint);outline:none}.app-install-popover a>svg:first-child{color:var(--teal)}.app-install-popover a>svg:last-child{color:var(--muted)}.app-install-popover span,.mobile-install-control .app-install-direct span,.mobile-install-control .app-install-menu>button span{min-width:0;overflow-wrap:anywhere}.app-install-external{margin-left:auto;opacity:.72}.topbar .icon-button,.topbar .action-button,.topbar .language-selector{position:relative;width:38px;height:38px;padding:0}.topbar .action-button span{display:none}.topbar .language-selector{justify-content:center}.topbar .language-selector select{position:absolute;top:0;right:0;bottom:0;left:0;width:38px;height:38px;opacity:0}.language-selector{display:inline-flex;align-items:center;height:40px;gap:6px;padding:0 8px;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);background:var(--surface-strong)}.language-selector svg{flex:0 0 auto;color:var(--teal)}.language-selector select{width:116px;min-width:0;border:0;outline:0;color:inherit;background:transparent;font:inherit;font-size:13px;font-weight:750;cursor:pointer}.auth-button{color:#fff;border-color:transparent;background:var(--teal)}.auth-button:hover{color:#fff;border-color:transparent;background:var(--teal-strong)}.account-chip{display:inline-flex;align-items:center;min-width:0;max-width:220px;height:40px;gap:7px;padding:0 4px 0 10px;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);background:var(--surface-strong)}.account-chip>svg{flex:0 0 auto;color:var(--teal)}.account-chip>span{min-width:0;overflow:hidden;font-size:13px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.account-icon-button{width:31px;height:31px;border-radius:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon-button,.action-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);background:var(--surface-strong);transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}.icon-button:hover,.action-button:hover{border-color:#0b766f7a;color:var(--teal-strong);transform:translateY(-1px)}.icon-button{width:38px;height:38px;flex:0 0 auto}.desktop-me-button.is-active{border-color:#0b766f6b;color:var(--teal-strong);background:var(--mint)}.action-button{height:40px;gap:7px;padding:0 13px;font-weight:750}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ad-slot{display:flex;align-items:center;min-height:74px;gap:12px;margin:12px 0;padding:12px 14px;border:1px solid #d8c9aa;border-radius:var(--radius);background:#f6f2e9}.ad-slot-live{display:block;min-height:90px;padding:0;overflow:hidden;border:0;background:transparent}.ad-slot-live .adsbygoogle{width:100%;min-width:0}.ad-slot-side{margin-bottom:0}.ad-art{display:grid;width:58px;height:48px;flex:0 0 auto;place-items:center;border-radius:6px;color:#5b3a04;background:#ffd984;font-size:16px;font-weight:900}.ad-slot div:not(.ad-art){min-width:0;flex:1}.ad-slot span{color:#766036;font-size:11px;font-weight:800;text-transform:uppercase}.ad-slot strong{display:block;margin-top:2px;line-height:1.1}.ad-slot p{margin:3px 0 0;color:var(--muted);font-size:12px}.status-strip{display:flex;align-items:center;gap:12px;min-height:30px;margin:8px 0 12px;color:var(--muted);font-size:13px}.status-strip div,.status-strip strong{display:inline-flex;align-items:center;gap:6px;min-width:0}.status-strip strong{color:#86560b;font-weight:700}.workspace{display:grid;grid-template-columns:minmax(280px,340px) minmax(430px,1fr) minmax(320px,410px);gap:12px;align-items:stretch}.panel,.map-panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:#fffdf8eb;box-shadow:var(--shadow)}.stops-panel,.arrivals-panel{min-height:calc(100svh - 190px)}.stops-panel{padding:12px}.arrivals-panel{padding:18px}#arrivals-panel,#map-panel,#me-panel{scroll-margin-top:10px;scroll-margin-bottom:calc(86px + var(--app-safe-bottom))}.map-column{min-width:0}.map-panel{position:relative;z-index:0;isolation:isolate;display:flex;flex-direction:column;overflow-anchor:none;overflow:hidden;height:min(620px,calc(100svh - 210px));min-height:410px}.map-surface{position:relative;min-height:0;flex:1}.service-route-button{padding:0;border:0;color:inherit;text-align:left;background:transparent}.service-route-button:hover strong,.service-route-button:focus-visible strong{text-decoration:underline;text-underline-offset:3px}.map-panel.is-route-view{height:auto;min-height:0}.map-panel.is-route-view .map-surface{flex:none;height:min(50svh,420px);min-height:300px}.bus-route-header{padding:12px;border-bottom:1px solid var(--line)}.bus-route-heading{display:flex;align-items:center;gap:8px}.bus-route-service{display:grid;place-items:center;flex:none;min-width:48px;min-height:42px;padding:6px;border-radius:6px;background:var(--teal);color:#fff;font-size:22px;font-weight:800}.bus-route-title{flex:1;min-width:0}.bus-route-title strong,.bus-route-title small{display:block}.bus-route-title strong{font-size:16px}.bus-route-title small{color:var(--muted);font-size:12px}.bus-route-title .bus-route-approximate{color:#855915;overflow-wrap:anywhere;font-size:11px}.bus-route-directions{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px;margin-top:10px}.bus-route-directions button{min-width:0;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);color:var(--ink);text-align:left}.bus-route-directions button[aria-selected=true]{border-color:var(--teal);background:var(--mint);color:var(--teal-strong)}.bus-route-directions small{display:block;margin-bottom:3px;font-size:11px}.bus-route-directions span{display:flex;align-items:flex-start;gap:4px}.bus-route-directions svg{flex:none;margin-top:2px}.bus-route-directions strong{min-width:0;overflow-wrap:anywhere;font-size:13px;line-height:1.35}.bus-route-status{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;margin-top:8px;color:var(--muted);font-size:13px}.bus-route-status>span{flex:1}.bus-route-stops{border-top:1px solid var(--line)}.bus-route-stops-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:10px 12px;border:0;background:var(--surface-strong);color:var(--ink);text-align:left;font-size:14px;font-weight:700}.bus-route-stops-toggle small{color:var(--muted);font-weight:500}.bus-route-stop-list{max-height:224px;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;list-style:none}.bus-route-stop-list button{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:8px 12px;border:0;border-top:1px solid var(--line);background:var(--surface-strong);color:var(--ink);text-align:left}.bus-route-stop-list button.is-current{background:var(--mint)}.bus-route-stop-index{display:grid;place-items:center;flex:none;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;color:var(--teal-strong);font-size:11px;font-weight:700}.bus-route-stop-copy{flex:1;min-width:0}.bus-route-stop-copy strong,.bus-route-stop-copy small{display:block}.bus-route-stop-copy strong{overflow-wrap:anywhere;font-size:13px}.bus-route-stop-copy small{margin-top:2px;color:var(--muted);font-size:11px}.bus-route-stop-list svg{flex:none}.bus-route-attribution{padding:5px 12px;color:var(--muted);font-size:10px}.bus-route-attribution a{color:inherit}.map-stop-icon.is-route-stop>span{width:10px;height:10px;border-width:2px}.map-stop-icon.is-route-stop.is-selected>span{width:18px;height:18px}.map-stop-icon.is-route-endpoint>span{display:grid;place-items:center;width:26px;height:26px;border-width:2px;color:#fff;font-size:13px;font-weight:800}.map-canvas{width:100%;height:100%}.map-canvas.leaflet-container.is-page-scroll-locked.leaflet-touch-drag,.map-canvas.leaflet-container.is-page-scroll-locked.leaflet-touch-drag.leaflet-touch-zoom{touch-action:pan-y pinch-zoom}.map-meta{flex:0 0 auto;padding:8px 12px;border-top:1px solid var(--line);color:var(--muted);background:#fffdf8f0;font-size:12px;font-weight:650}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:14px;padding:4px;border:1px solid var(--line);border-radius:var(--radius);background:#f1ebe0}.segmented button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;gap:7px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-weight:750}.segmented button.is-active{color:#fff;background:var(--teal)}.me-page{display:grid;min-height:calc(100svh - 240px);grid-template-columns:minmax(0,1fr);justify-items:center;gap:14px;padding:22px 0 6px}.me-panel{display:grid;width:min(520px,100%);gap:16px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:#fffdf8f5;box-shadow:var(--shadow)}.me-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}.me-hero h1{margin:3px 0 0;font-size:30px;line-height:1.08;overflow-wrap:anywhere}.me-hero p{margin:6px 0 0;color:var(--muted);line-height:1.45;overflow-wrap:anywhere}.me-avatar{display:grid;width:58px;height:58px;place-items:center;overflow:hidden;border-radius:var(--radius);color:#fff;background:var(--teal)}.me-avatar img{width:100%;height:100%;object-fit:cover}.me-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.me-stats div{display:flex;min-width:0;align-items:center;gap:8px;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--muted);font-size:13px;font-weight:750}.me-stats svg{flex:0 0 auto;color:var(--teal)}.me-stats span{min-width:0;overflow-wrap:anywhere}.me-info-grid{display:grid;width:min(860px,100%);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:12px}.me-info-panel{min-width:0;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:#fffdf8f0;box-shadow:var(--shadow)}.me-info-panel h2{margin:4px 0 0;font-size:22px;line-height:1.1}.me-info-panel p{margin:10px 0 0;color:var(--muted);line-height:1.5}.me-info-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0 0}.me-info-panel dl div{min-width:0;padding:11px;border-left:3px solid var(--teal);background:#f6f2e9}.me-info-panel dt{font-weight:850}.me-info-panel dd{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.35}.me-info-panel nav{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.me-info-panel a{color:var(--teal-strong);font-weight:800}.app-version-row{display:flex;align-items:center;gap:4px;margin-top:14px;color:var(--muted);font-size:12px;font-weight:750}.app-version-info{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-grid;width:32px;height:32px;flex:0 0 auto;place-items:center;padding:0;border:0;color:inherit;background:transparent;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;transition:none}.app-version-info:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.smart-catch-setting{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:8px;color:var(--teal-strong);background:var(--surface-strong);cursor:pointer}.smart-catch-entry{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:7px;min-width:0}.smart-catch-details-button,.smart-catch-back-button,.smart-catch-places li>button{display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--teal-strong);background:var(--surface-strong);cursor:pointer}.smart-catch-details-button{min-width:42px}.smart-catch-details-button:hover,.smart-catch-back-button:hover,.smart-catch-places li>button:hover{border-color:var(--teal)}.smart-catch-settings-header{display:flex;align-items:center;gap:12px}.smart-catch-settings-header h1{margin:0;font-size:22px;line-height:1.2}.smart-catch-back-button{width:38px;height:38px;flex:0 0 auto}.smart-catch-places p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.smart-catch-scope-setting:has(input:disabled){opacity:.55;cursor:default}.smart-catch-places{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:15px}.smart-catch-places h2{margin:0;font-size:16px}.smart-catch-places ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.smart-catch-places li{display:grid;grid-template-columns:18px minmax(0,1fr) 36px 36px;align-items:center;gap:9px;min-width:0;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);font-size:13px;font-weight:750}.smart-catch-places li>svg{color:var(--teal)}.smart-catch-places li>span{min-width:0;overflow-wrap:anywhere}.smart-catch-places li>button{width:36px;height:36px}.smart-catch-places li>button:last-of-type{color:#9a3c35}.smart-catch-place-name{display:grid;gap:2px}.smart-catch-place-name small{color:var(--muted);font-size:11px;font-weight:500}.smart-catch-place-form{display:grid;grid-column:1 / -1;gap:9px;width:100%;min-width:0;padding-top:10px;border-top:1px solid var(--line)}.smart-catch-place-form label{display:grid;gap:4px;min-width:0;color:var(--ink);font-size:12px}.smart-catch-place-form input{box-sizing:border-box;width:100%;min-width:0;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fff;font:inherit}.smart-catch-place-form input:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.smart-catch-current-address{color:var(--muted);font-weight:500;overflow-wrap:anywhere}.smart-catch-address-result{display:grid;gap:3px;padding:8px 10px;border-left:3px solid var(--teal);background:#e6f4ec;overflow-wrap:anywhere}.smart-catch-edit-error{color:#9a3c35!important}.smart-catch-place-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.smart-catch-place-actions button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:38px;padding:5px;border:1px solid var(--line);border-radius:6px;color:var(--teal-strong);background:#fff;font:inherit;font-size:12px;cursor:pointer}.smart-catch-place-actions button:first-child{grid-column:1 / -1}.smart-catch-place-actions button:last-child{color:#fff;border-color:var(--teal);background:var(--teal)}.smart-catch-place-actions button:disabled{opacity:.55;cursor:default}.smart-catch-setting-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:7px;color:#fff;background:var(--teal)}.smart-catch-setting-copy{display:grid;min-width:0;gap:3px}.smart-catch-setting-copy strong{color:var(--ink);font-size:14px}.smart-catch-setting-copy small{color:var(--muted);font-size:11px;font-weight:650;line-height:1.35}.smart-catch-setting-copy .smart-catch-place-count{color:var(--teal-strong);font-weight:800}.smart-catch-setting input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.smart-catch-setting input:checked+.switch-track{border-color:var(--teal);background:var(--teal)}.smart-catch-setting input:checked+.switch-track>span{transform:translate(14px)}.smart-catch-setting input:focus-visible+.switch-track{outline:3px solid rgba(11,118,111,.22);outline-offset:2px}.smart-catch-setting input:disabled+.switch-track{opacity:.55}.switch-track{display:inline-flex;width:34px;height:20px;align-items:center;padding:2px;border:1px solid #bcb7aa;border-radius:999px;background:#dedbd3;transition:background .14s ease,border-color .14s ease}.switch-track>span{width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #231d133d;transition:transform .14s ease}.ad-privacy-options-button{display:inline-flex;min-height:auto;align-items:center;gap:6px;padding:0;border:0;color:var(--teal-strong);background:transparent;font:inherit;font-weight:800}.ad-privacy-options-button:hover:not(:disabled){color:var(--teal);background:transparent}.ad-privacy-options-button:disabled{cursor:wait;opacity:.66}.ad-privacy-options-button:focus-visible{outline:3px solid rgba(11,118,111,.22);outline-offset:3px}.me-info-panel .ad-privacy-options-error{margin:10px 0 0;color:#9b4e12;font-size:12px;font-weight:750}.social-auth-button{width:100%;min-height:44px}.social-auth-google{color:#24221c;border-color:#d9d4c7;background:#fff}.social-auth-google:hover{color:#24221c;border-color:#c9c2b2;background:#f8f7f4}.google-mark{display:inline-grid;width:18px;height:18px;place-items:center}.google-mark svg,.apple-mark svg{display:block;width:18px;height:18px}.apple-mark{display:inline-grid;width:18px;height:18px;place-items:center}.social-auth-apple{color:#fff;border-color:#1d211e;background:#111411}.social-auth-apple:hover{color:#fff;border-color:#000;background:#000}.social-auth-facebook{color:#fff;border-color:transparent;background:#1877f2}.social-auth-facebook:hover{color:#fff;border-color:transparent;background:#0f63ce}.brand-letter{display:inline-grid;width:18px;height:18px;place-items:center;font-size:20px;font-weight:900;line-height:1}.auth-mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:4px;border:1px solid var(--line);border-radius:var(--radius);background:#f1ebe0}.auth-mode-toggle button{min-height:36px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-weight:800}.auth-mode-toggle button.is-active{color:#fff;background:var(--teal)}.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:850}.auth-input{display:flex;align-items:center;height:44px;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong)}.auth-input svg{flex:0 0 auto;color:var(--teal)}.auth-input input{width:100%;min-width:0;border:0;outline:0;color:var(--ink);background:transparent;font:inherit}.auth-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.auth-form-actions .action-button{min-width:150px}.auth-message{margin:0;padding:10px 12px;border:1px solid #e2c78f;border-radius:8px;color:#7a4a04;background:#fff4d9;font-size:13px;line-height:1.4}.text-button{min-height:38px;border:0;color:var(--teal-strong);background:transparent;font-weight:800}.text-button:disabled{color:#a5aca8}.auth-danger-button{width:max-content;color:#9b2f25;border-color:#9b2f253d}.auth-danger-button:hover{color:#fff;border-color:transparent;background:#9b2f25}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-heading h2{margin:0;font-size:18px;line-height:1.15}.panel-heading p{margin:4px 0 0;color:var(--muted);font-size:12px}.stop-list,.favourite-list,.service-list{display:flex;flex-direction:column;gap:8px}.stop-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;width:100%;min-height:78px;gap:9px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);color:inherit;text-align:left;background:var(--surface-strong)}.stop-row.is-selected,.favourite-row.is-selected{border-color:var(--teal);background:var(--mint)}.stop-pin{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;color:var(--teal);background:#e5f4ef}.stop-copy{min-width:0}.stop-copy strong,.stop-copy span,.stop-copy small{display:block}.stop-copy strong{font-size:15px;line-height:1.15}.stop-copy span{margin-top:4px;color:var(--muted);font-size:12px}.stop-copy small{margin-top:6px;color:#7b694d;font-size:12px;font-weight:750}.distance{align-self:start;color:var(--teal);font-size:12px;font-weight:850;white-space:nowrap}.arrival-board,.favourite-arrival-board{display:flex;min-height:100%;flex-direction:column}.favourite-arrival-header h1{font-size:36px}.favourite-arrival-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}.favourite-arrival-card{padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);transition:border-color .16s ease,box-shadow .16s ease}.favourite-arrival-card.is-focused{border-color:var(--teal);box-shadow:0 0 0 2px #0f725f1f}.favourite-arrival-card-head{display:grid;grid-template-columns:minmax(88px,112px) minmax(0,1fr) 38px;align-items:center;gap:12px}.favourite-service-identity,.favourite-stop-copy{min-width:0}.favourite-service-identity strong{display:block;max-width:100%;overflow-wrap:anywhere;color:var(--teal);font-size:42px;line-height:.95}.favourite-service-identity strong.is-compact{font-size:27px}.favourite-service-identity span{display:block;margin-top:6px;color:var(--muted);font-size:11px;font-weight:850}.favourite-stop-copy .eyebrow{margin-bottom:4px}.favourite-stop-copy h2{margin:0;overflow-wrap:anywhere;font-size:18px;line-height:1.15}.favourite-stop-copy p{margin:4px 0 0;color:var(--muted);font-size:12px}.favourite-arrival-summary{display:flex;justify-content:space-between;gap:10px;margin:11px 0 8px;padding-top:9px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:750}.favourite-arrival-error{display:flex;align-items:center;min-height:70px;gap:8px;color:var(--red);font-size:13px;font-weight:750}.arrival-header{display:grid;grid-template-areas:"title refresh" "next refresh";grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 12px;padding-bottom:16px;border-bottom:1px solid var(--line)}.arrival-title-block{grid-area:title;min-width:0}.arrival-header .action-button{grid-area:refresh;align-self:start}.eyebrow{display:inline-flex;margin-bottom:7px;color:var(--teal);font-size:12px;font-weight:850;text-transform:uppercase}.arrival-header h1{margin:0;font-size:42px;line-height:.98;letter-spacing:0}.arrival-header p{margin:9px 0 0;color:var(--muted)}.arrival-next-strip{grid-area:next;display:flex;align-items:start;gap:8px;min-width:0;color:var(--teal-strong)}.arrival-next-label{flex:0 0 auto;padding-top:4px;font-size:11px;font-weight:900;line-height:1.1;text-transform:uppercase}.arrival-next-list{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;gap:5px;min-width:0}.arrival-next-chip{display:inline-flex;align-items:baseline;max-width:100%;min-height:23px;gap:4px;padding:4px 7px;border:1px solid rgba(11,118,111,.16);border-radius:999px;background:#dff3e8c7;color:var(--ink);font-size:11px;font-weight:800;line-height:1}.arrival-next-chip strong{color:var(--teal-strong);font-size:12px;font-weight:950}.arrival-next-chip span{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arrival-summary{display:flex;justify-content:flex-end;gap:12px;margin:10px 0 12px;color:var(--muted);font-size:12px;font-weight:750}.service-card{display:grid;grid-template-columns:minmax(92px,128px) minmax(0,1fr) 38px;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.service-card-head{display:block;align-items:center;min-width:0}.service-card-head strong{display:block;max-width:100%;overflow-wrap:anywhere;color:var(--teal-strong);font-size:46px;line-height:.96;letter-spacing:0}.service-card-head strong.is-compact{font-size:30px;line-height:1}.service-card-head span{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:850}.favourite-button svg{fill:transparent}.favourite-button.is-saved{border-color:#f4b740cc;color:#8a5b05;background:#fff0c6}.favourite-button.is-saved svg{fill:currentColor}.arrival-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}.service-arrivals{min-width:0}.smart-catch-prediction{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:4px 7px;margin-top:7px;padding:5px 7px;border:1px solid rgba(15,114,95,.26);border-radius:6px;color:#075f56;background:#e6f4ec;font-size:11px;line-height:1.2}.smart-catch-prediction>svg{flex:0 0 auto}.smart-catch-prediction strong{min-width:0;font-weight:850}.smart-catch-prediction>span{color:var(--muted);font-weight:750}.smart-catch-prediction.is-tight,.smart-catch-prediction.is-later{border-color:#a76b004d;color:#795000;background:#fff4d6}.smart-catch-prediction.is-waiting{border-color:#0f725f42;color:#075f56;background:#e6f4ec}.smart-catch-prediction.is-unlikely{border-color:#b4433647;color:#953b31;background:#fff0ed}.smart-catch-learned{display:inline-flex;align-items:center;gap:3px}.arrival-pill{position:relative;display:grid;grid-template-rows:auto auto auto;align-content:center;min-width:0;min-height:106px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#f7f4ed}.arrival-pill.primary{background:var(--mint)}.arrival-pill.no-estimate{display:grid;grid-template-rows:auto auto;align-content:center;justify-content:center;gap:5px;padding-right:8px}.arrival-pill.no-estimate strong{overflow:hidden;color:var(--ink);font-size:29px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.arrival-pill.no-estimate span{overflow:hidden;max-width:100%;color:var(--ink);font-size:11px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.arrival-time-row{display:flex;align-items:flex-end;min-width:0;gap:6px}.arrival-time-value{min-width:0;overflow:hidden;color:var(--ink);font-size:50px;font-variant-numeric:tabular-nums;line-height:.9;letter-spacing:0;text-overflow:ellipsis}.arrival-pill.has-long-time .arrival-time-value{font-size:38px}.arrival-time-unit{color:var(--ink);font-size:13px;font-weight:800}.arrival-pill.is-arriving .arrival-time-unit{display:none}.arrival-load-label{justify-self:start;width:max-content;max-width:100%;margin-top:8px;padding:0;color:var(--teal-strong);background:transparent;font-size:11px;font-weight:850;line-height:1.1}.arrival-pill.load-sda .arrival-load-label{color:#8a5b05}.arrival-pill.load-lsd .arrival-load-label{color:#b44336}.arrival-pill.load-unknown .arrival-load-label{color:var(--muted)}.vehicle-type-badge{position:absolute;top:7px;right:7px;display:inline-flex;align-items:flex-start;gap:2px;padding:2px 4px;border-radius:999px;color:var(--teal-strong);background:#fffdf8e6;font-size:9px;font-weight:850}.vehicle-type-badge svg{flex:0 0 auto}.arrival-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;color:var(--muted);font-size:11px;font-weight:750}.empty-state{display:flex;align-items:center;justify-content:center;min-height:90px;gap:8px;padding:16px;color:var(--muted);text-align:center}.empty-state-large{min-height:260px;flex-direction:column}.empty-state strong{color:var(--ink)}.favourite-row{display:grid;grid-template-columns:54px minmax(0,1fr) 38px;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.favourite-copy{display:block;min-width:0;padding:0;border:0;color:inherit;text-align:left;background:transparent}.service-badge{display:grid;width:54px;height:48px;padding:0;border:0;flex:0 0 auto;place-items:center;border-radius:var(--radius);color:#fff;background:var(--teal);overflow-wrap:anywhere;font-size:20px;font-weight:900;line-height:1;text-align:center}.service-badge.is-compact{font-size:15px}.favourite-row strong,.favourite-row small{display:block}.favourite-row small{margin-top:3px;color:var(--muted)}.map-stop-icon,.map-search-point-icon,.map-user-icon,.map-bus-icon{background:transparent;border:0}.map-stop-icon{display:grid;place-items:center}.map-stop-icon span{display:block;width:28px;height:28px;border:3px solid #fff;border-radius:50%;background:var(--teal);box-shadow:0 4px 14px #00000047;transition:width .12s ease,height .12s ease,background .12s ease}.map-stop-icon.is-selected span{width:32px;height:32px;background:var(--coral)}.map-search-point-icon{display:grid;place-items:center;pointer-events:none}.map-search-point-icon span{position:relative;display:block;width:32px;height:32px;border:2px solid var(--coral);border-radius:50%;background:#ffffffb8;box-shadow:0 3px 12px #53261d38}.map-search-point-icon span:before,.map-search-point-icon span:after{position:absolute;top:50%;left:50%;background:var(--coral);content:"";transform:translate(-50%,-50%)}.map-search-point-icon span:before{width:42px;height:2px}.map-search-point-icon span:after{width:2px;height:42px}.map-user-icon{--user-heading: 0deg}.map-user-dot{position:absolute;top:9px;left:9px;display:block;width:26px;height:26px;border:4px solid #fff;border-radius:50%;background:#2f7df0;box-shadow:0 4px 14px #00000047}.map-user-direction{position:absolute;top:0;right:0;bottom:0;left:0;display:block;opacity:0;transform:rotate(var(--user-heading));transition:transform .16s linear,opacity .18s ease}.map-user-direction i{position:absolute;top:0;left:50%;width:0;height:0;border-right:7px solid transparent;border-bottom:20px solid rgba(47,125,240,.78);border-left:7px solid transparent;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2));transform:translate(-50%)}.map-user-icon.has-heading .map-user-direction{opacity:1}.map-control-stack{position:absolute;top:10px;right:10px;z-index:700;display:grid;gap:8px}.map-control-button{display:grid;width:40px;height:40px;place-items:center;border:2px solid rgba(0,0,0,.18);border-radius:8px;color:var(--ink);background:#fffffff5;box-shadow:0 2px 8px #0000002e}.map-location-button{color:var(--teal-strong)}.map-location-button.is-loading{border-color:var(--teal);color:#fff;background:var(--teal)}.map-control-button:disabled{cursor:not-allowed}.map-stop-chooser,.map-point-confirm{position:absolute;right:10px;bottom:10px;left:10px;z-index:1000;border:1px solid var(--line);border-radius:8px;background:#fffdf8fa;box-shadow:0 10px 28px #231d1333;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.map-stop-chooser{max-height:min(230px,calc(100% - 20px));padding:6px 10px 8px;overflow:hidden}.map-stop-chooser-handle{width:36px;height:4px;margin:0 auto 5px;border-radius:3px;background:#d2cbbf}.map-stop-chooser-header{display:flex;align-items:center;min-height:39px;gap:10px}.map-stop-chooser-header>div{min-width:0}.map-stop-chooser-header strong,.map-stop-chooser-header small{display:block}.map-stop-chooser-header strong{font-size:14px;line-height:1.2}.map-stop-chooser-header small{margin-top:2px;color:var(--muted);font-size:10px}.map-overlay-close{display:grid;width:34px;height:34px;flex:0 0 34px;margin-left:auto;padding:0;place-items:center;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:#ffffffeb}.map-stop-candidate-list{max-height:172px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.map-stop-candidate{display:grid;grid-template-columns:32px minmax(0,1fr) 18px;align-items:center;width:100%;min-height:52px;gap:8px;padding:6px 2px;border:0;border-top:1px solid var(--line);border-radius:0;color:var(--ink);background:transparent;text-align:left}.map-stop-candidate:hover,.map-stop-candidate:focus-visible{background:var(--teal-soft)}.map-stop-candidate-pin{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;color:var(--teal-strong);background:var(--teal-soft)}.map-stop-candidate-copy{min-width:0}.map-stop-candidate-copy strong,.map-stop-candidate-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-stop-candidate-copy strong{font-size:13px;line-height:1.2}.map-stop-candidate-copy small{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.15}.map-stop-candidate-copy .map-stop-candidate-services{color:#74592d;font-weight:750}.map-point-confirm{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:7px;padding:7px}.map-point-confirm-action{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:38px;gap:7px;padding:7px 12px;border:1px solid var(--teal);border-radius:7px;color:#fff;background:var(--teal);font-weight:800}.map-point-confirm-action span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-bus-icon span{display:grid;width:34px;height:24px;place-items:center;border:2px solid #fff;border-radius:6px;color:#fff;background:#1f2b24;box-shadow:0 4px 14px #00000040;font-size:11px;font-weight:900}.bottom-nav{display:none}html.native-app,html.native-app body,html.native-app #root{overscroll-behavior-y:none}html.native-android body:before{position:fixed;top:0;right:0;left:0;z-index:1200;height:max(36px,var(--app-safe-top));pointer-events:none;background:#eef2eb;content:""}html.native-app .app-shell{padding-right:max(16px,var(--app-safe-right));padding-left:max(16px,var(--app-safe-left))}.service-guide{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:32px;margin-top:12px;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.service-guide h2{margin:0;font-size:28px;line-height:1.05}.service-guide p{margin:12px 0 0;color:var(--muted);line-height:1.55}.service-guide dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.service-guide dl div{padding:14px;border-left:3px solid var(--teal);background:#f6f2e9}.service-guide dt{font-weight:850}.service-guide dd{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.4}@media(max-width:1460px){.workspace{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}.map-column{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px}.map-panel{height:360px;min-height:360px}.ad-slot-side{height:360px;margin:0;align-items:flex-start}}@media(max-width:820px){.app-shell{padding:10px 10px calc(76px + var(--app-safe-bottom))}html.native-app .app-shell{padding-top:max(10px,var(--app-safe-top));padding-right:max(8px,var(--app-safe-right));padding-bottom:calc(72px + var(--app-safe-bottom));padding-left:max(8px,var(--app-safe-left));overflow-x:hidden}html.native-ios{--app-bottom-tab-safe: clamp(6px, calc(var(--app-safe-bottom) - 22px), 12px)}html.native-ios .app-shell{padding-bottom:calc(66px + var(--app-bottom-tab-safe))}html.native-ad-visible.native-ios .app-shell{padding-bottom:calc(74px + var(--app-bottom-tab-safe) + var(--native-ad-banner-height))}html.native-android .app-shell{padding-top:max(10px,calc(var(--app-safe-top) + 8px))}.topbar{position:relative;grid-template-columns:1fr auto;padding:7px}.brand{min-height:40px}.searchbar{grid-column:1 / -1;grid-row:2}.topbar-actions{grid-column:2;grid-row:1}.topbar-install-control{display:none}.mobile-install-control{display:block;margin:8px 0 0}.mobile-install-control .app-install-menu{display:grid;width:100%}.mobile-install-control .app-install-direct,.mobile-install-control .app-install-menu>button{width:100%;height:auto;min-height:42px;padding:9px 12px;border-color:transparent;color:#fff;background:var(--teal)}.mobile-install-control .app-install-direct:hover,.mobile-install-control .app-install-menu>button:hover{border-color:transparent;color:#fff;background:var(--teal-strong)}.mobile-install-control .app-install-popover{position:static;width:100%;margin-top:6px}.desktop-me-button{display:none}.account-chip{max-width:150px}.language-selector select{width:92px}.status-strip{flex-direction:column;align-items:flex-start;gap:4px}.workspace{grid-template-columns:1fr}.arrivals-panel{order:1}.stops-panel{order:3}.map-column{order:2}.stops-panel,.arrivals-panel{min-height:auto}.arrivals-panel{padding:12px;overflow:visible}.arrival-board,.favourite-arrival-board{display:block;min-height:0}.arrival-header{position:relative;z-index:1;display:flex;flex-direction:column;gap:0;background:#fffdf8fa}.arrival-header .action-button{width:100%;margin-top:12px}.arrival-next-strip{display:flex;align-items:start;gap:6px;margin-top:10px;overflow:visible}.arrival-next-label{display:inline-flex;flex:0 0 auto;padding-top:5px;font-size:10px;line-height:1}.arrival-next-list{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;gap:5px;min-width:0;max-width:100%}.arrival-next-chip{flex:0 0 auto;max-width:100%;min-height:23px;padding:4px 6px;font-size:10px}.arrival-next-chip strong{font-size:11px}.arrival-summary{position:relative;z-index:0;background:transparent}.service-list{position:relative;z-index:1;gap:7px;overflow:visible;padding-top:4px;transform:translateZ(0)}html.native-android .arrival-summary{margin-top:12px}html.native-android .arrival-next-strip{display:flex;margin-top:10px;margin-bottom:1px;padding-right:1px}html.native-android .arrival-next-list{display:flex;flex-wrap:wrap;gap:5px}.arrival-header h1{font-size:34px}.favourite-arrival-header h1{font-size:30px}.service-card{grid-template-columns:minmax(46px,58px) minmax(0,1fr) 30px;align-items:center;gap:5px;min-height:70px;padding:7px 6px;contain:none;overflow:visible}.service-card-head{display:grid;align-content:center;align-self:stretch;min-height:56px;min-width:0;overflow:visible}.service-card-head strong{display:block;font-size:27px;line-height:1.08;overflow:visible}.service-card-head strong.is-compact{font-size:21px;line-height:1.08}.service-card-head span{display:block;margin-top:1px;font-size:10px;line-height:1.1;overflow:visible}.favourite-button{width:30px;height:30px;align-self:start;margin-top:5px}.arrival-grid{grid-template-columns:minmax(54px,1fr) repeat(2,minmax(50px,.95fr));grid-auto-rows:minmax(52px,auto);align-items:stretch;gap:4px}.smart-catch-prediction{gap:2px 4px;margin-top:4px;padding:3px 4px;font-size:8.5px;line-height:1.15}.smart-catch-prediction>svg{width:10px;height:10px}.smart-catch-learned svg{width:8px;height:8px}.arrival-pill{grid-template-rows:auto auto;align-content:center;min-height:52px;padding:5px 3px;border-radius:7px;overflow:hidden}.arrival-pill.has-type-badge{padding-right:3px}.arrival-time-row{align-items:baseline;gap:2px;min-width:0}.arrival-time-value{font-size:23px;line-height:.95}.arrival-pill.has-long-time .arrival-time-value{font-size:16px}.arrival-time-unit{flex:0 0 auto;padding-bottom:1px;font-size:7.8px;line-height:1;white-space:nowrap}.arrival-load-label{display:block;overflow:hidden;width:auto;min-width:0;max-width:100%;margin:1px 0 0;padding:0;font-size:7.6px;font-weight:900;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.arrival-pill.load-sea .arrival-load-label{color:var(--teal-strong);background:transparent}.arrival-pill.no-estimate{display:grid;align-content:center;justify-content:center;gap:1px;min-width:0;overflow:hidden;padding-right:5px}.arrival-pill.no-estimate strong{max-width:100%;font-size:19px;line-height:1;white-space:nowrap}.arrival-pill.no-estimate span{display:block;max-width:100%;font-size:8px;line-height:1.05;white-space:nowrap}.vehicle-type-badge{top:4px;right:4px;gap:1px;padding:0;background:transparent;font-size:7px;line-height:1}.vehicle-type-badge svg{display:none}html.native-android .arrival-header .action-button{width:calc(100% - 2px);min-width:0;margin:12px 1px 1px;overflow:hidden;border-radius:8px}html.native-android .service-card{min-height:72px;transform:translateZ(0)}html.native-android .service-card-head{min-height:58px}html.native-android .service-card-head strong{line-height:1.12}html.native-android .favourite-button{width:29px;height:29px;align-self:center;justify-self:center;margin-top:0}.arrival-pill.load-sda .arrival-load-label{color:#8a5b05;background:transparent}.arrival-pill.load-lsd .arrival-load-label{color:#b44336;background:transparent}.arrival-pill.load-unknown .arrival-load-label{color:var(--muted);background:transparent}.arrival-meta{display:none}.map-column{grid-template-columns:1fr}.service-guide{grid-template-columns:1fr;gap:20px;padding:20px}.me-page{min-height:auto;padding-top:4px}.me-panel{width:100%;padding:18px}.me-hero h1{font-size:26px}.me-stats,.me-info-grid,.me-info-panel dl{grid-template-columns:1fr}.auth-form-actions{align-items:stretch;flex-direction:column}.auth-form-actions .action-button,.auth-danger-button,.text-button{width:100%}.map-panel{order:1;height:300px;min-height:300px}.ad-slot-side{order:2;height:auto;min-height:74px}.bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:1000;isolation:isolate;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;box-sizing:border-box;height:calc(68px + var(--app-safe-bottom));min-height:calc(68px + var(--app-safe-bottom));max-height:calc(68px + var(--app-safe-bottom));padding:5px max(10px,var(--app-safe-right)) calc(5px + var(--app-safe-bottom)) max(10px,var(--app-safe-left));border:1px solid var(--line);border-right:0;border-bottom:0;border-left:0;border-radius:var(--radius) var(--radius) 0 0;background:#fffdf8f5;box-shadow:0 12px 36px #231d132e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);contain:layout paint style;overflow:hidden;transition:opacity .12s ease,transform .16s ease;transform:translateZ(0);will-change:transform}html.keyboard-open .bottom-nav{opacity:0;pointer-events:none;transform:translate3d(0,calc(var(--app-keyboard-height, 0px) + 96px),0)}html.native-app .bottom-nav{right:0;bottom:0;left:0;gap:0;height:calc(66px + var(--app-safe-bottom));min-height:calc(66px + var(--app-safe-bottom));padding:5px max(8px,var(--app-safe-right)) calc(5px + var(--app-safe-bottom)) max(8px,var(--app-safe-left));border-right:0;border-bottom:0;border-left:0;border-radius:0;background:#fffdf8fa;box-shadow:0 -10px 26px #231d1321}html.native-ios .bottom-nav{height:calc(58px + var(--app-bottom-tab-safe));min-height:calc(58px + var(--app-bottom-tab-safe));max-height:calc(58px + var(--app-bottom-tab-safe));padding:3px max(8px,var(--app-safe-right)) var(--app-bottom-tab-safe) max(8px,var(--app-safe-left))}.bottom-nav button{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;height:100%;gap:3px;flex:0 0 auto;min-width:0;border:0;border-radius:6px;color:var(--muted);background:transparent;font-size:12px;font-weight:850}.bottom-nav button span{max-width:100%;overflow-wrap:anywhere;line-height:1.05;text-align:center}.bottom-nav button.is-active{color:#fff;background:var(--teal)}html.native-app .bottom-nav button{min-height:0;height:100%;border-radius:0;color:#68716e;background:transparent;font-size:11px;font-weight:750}html.native-android .bottom-nav{--app-bottom-tab-safe: 18px;height:78px;min-height:78px;max-height:78px;padding:3px max(8px,var(--app-safe-right)) var(--app-bottom-tab-safe) max(8px,var(--app-safe-left));grid-auto-rows:1fr}html.native-android .app-shell{padding-bottom:86px}html.native-ad-visible.native-android .app-shell{padding-bottom:calc(94px + var(--native-ad-banner-height))}html.native-app.keyboard-open .app-shell{padding-bottom:calc(var(--app-keyboard-height) + 40px)}html.native-app .bottom-nav button.is-active{color:var(--teal-strong);background:transparent}html.native-app .bottom-nav button.is-active:before{position:absolute;top:0;width:32px;height:3px;border-radius:0 0 999px 999px;background:var(--teal);content:""}}@media(max-width:520px){.brand-name{font-size:15px}.ad-slot p{font-size:11px}.language-selector{width:40px;justify-content:center;padding:0}.language-selector select{position:absolute;width:40px;height:40px;opacity:0}.account-chip{width:78px;padding:0 4px 0 7px}.account-chip>span{display:none}.arrival-header .action-button{width:100%}.arrival-summary{flex-direction:column;gap:4px}.favourite-arrival-card-head{grid-template-columns:76px minmax(0,1fr) 38px;gap:8px}.favourite-service-identity strong{font-size:34px}.favourite-service-identity strong.is-compact{font-size:23px}.favourite-arrival-summary{flex-direction:column;gap:3px}.arrival-grid{grid-template-columns:minmax(56px,1fr) repeat(2,minmax(52px,.95fr));grid-auto-rows:minmax(58px,auto)}.arrival-pill:nth-child(3){grid-column:auto;min-height:58px}.arrival-pill:nth-child(3) strong{font-size:22px}.stop-row{grid-template-columns:28px minmax(0,1fr)}.distance{grid-column:2;justify-self:start}.ad-slot{align-items:flex-start}.service-guide dl{grid-template-columns:1fr}}@media(max-width:340px){.arrival-time-row{gap:1px}.arrival-time-value{font-size:20px}.arrival-pill.has-long-time .arrival-time-value{font-size:15px}.arrival-time-unit{font-size:7px}}input:not([type=checkbox]):not([type=radio]),select:not([multiple]),textarea{font-size:16px}.growth-action-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.growth-share{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px}.growth-share small{max-width:230px;font-size:12px;color:var(--muted, #706854)}.growth-onboarding{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;padding:16px 20px;margin:12px 0;border-radius:18px;background:#edf6f3;color:#155f58}.growth-onboarding p{margin:6px 0 0;line-height:1.5;font-size:14px}.growth-settings{margin-top:18px}.growth-analytics{display:flex;align-items:flex-start;gap:12px;margin:18px 0 10px}.growth-analytics input{margin-top:5px;accent-color:#0b766f}.growth-analytics span{display:grid;gap:5px}.growth-analytics small{line-height:1.5;color:#706854}html.native-duo{min-width:0;--app-safe-top: var(--duo-safe-top, 0px);--app-safe-right: var(--duo-safe-right, 0px);--app-safe-bottom: var(--duo-safe-bottom, 0px);--app-safe-left: var(--duo-safe-left, 0px);--radius: 12px;--duo-pane-columns: minmax(0, 1fr);--duo-pane-gap: 12px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:calc(16px * var(--duo-text-scale, 1))}html.native-duo body,html.native-duo #root{height:100dvh;min-height:0;overflow:hidden}html.native-duo .app-shell{display:flex;flex-direction:column;width:100%;height:100dvh;min-height:0;gap:12px;padding:max(12px,var(--app-safe-top)) max(12px,var(--app-safe-right)) max(12px,var(--app-safe-bottom)) max(12px,var(--app-safe-left));overflow:hidden}html.native-duo.native-ad-visible .app-shell{padding-bottom:max(12px,var(--app-safe-bottom))}html.native-duo.native-ad-visible[data-native-ad-pane=stops] .workspace>.stops-panel,html.native-duo.native-ad-visible[data-native-ad-pane=map] .workspace>.map-column,html.native-duo.native-ad-visible[data-native-ad-pane=arrivals] .workspace>.arrivals-panel{height:calc(100% - var(--native-ad-banner-height) - 12px)}html.native-duo .duo-banner-slot{display:none;position:fixed;pointer-events:none}html.native-duo.native-ad-visible .duo-banner-slot{display:block}html.native-duo.keyboard-open .app-shell{height:max(160px,calc(100dvh - var(--app-keyboard-height)));padding-bottom:12px}html.native-duo .topbar{position:relative;top:auto;flex:none;grid-template-columns:minmax(0,1fr);gap:0;padding:0;border:0;border-radius:12px;box-shadow:none;background:transparent}html.native-duo .topbar .brand,html.native-duo .topbar-actions,html.native-duo .bottom-nav{display:none}html.native-duo .searchbar{grid-column:1;grid-row:1;min-height:max(46px,2.875rem);height:auto}html.native-duo .search-clear-button{width:44px;height:44px;flex-basis:44px}html.native-duo .status-strip{flex:none;margin:0}html.native-duo .workspace{flex:1;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:stretch;gap:12px}html.native-duo .workspace>.panel,html.native-duo .workspace>.map-column{display:none;order:0;grid-column:auto;min-height:0;height:100%;overflow:auto;overscroll-behavior:contain;scroll-padding:12px;-webkit-overflow-scrolling:touch}html.native-duo .app-shell:is([data-navigation-tab=home],[data-navigation-tab=saved]) .arrivals-panel,html.native-duo .app-shell[data-navigation-tab=nearby] .stops-panel,html.native-duo .app-shell[data-navigation-tab=map] .map-column{display:block}html.native-duo[data-duo-size=regular]{--duo-pane-columns: minmax(0, .85fr) minmax(0, 1.15fr)}html.native-duo[data-duo-size=regular] .workspace{grid-template-columns:var(--duo-pane-columns)}html.native-duo[data-duo-size=regular] .workspace>.stops-panel{display:block;grid-column:1;grid-row:1}html.native-duo[data-duo-size=regular] .workspace>.arrivals-panel{display:block;grid-column:2;grid-row:1}html.native-duo[data-duo-size=regular] .app-shell[data-navigation-tab=map] .arrivals-panel{display:none}html.native-duo[data-duo-size=regular] .app-shell[data-navigation-tab=map] .map-column{grid-column:2;grid-row:1}html.native-duo[data-duo-fold=vertical][data-duo-size=regular]{--duo-pane-columns: minmax(0, calc(var(--duo-fold-x) - max(12px, var(--app-safe-left)) - 6px)) minmax(0, 1fr);--duo-pane-gap: calc(var(--duo-fold-width) + 12px)}html.native-duo[data-duo-fold=vertical][data-duo-size=regular] .workspace{grid-template-columns:var(--duo-pane-columns);column-gap:var(--duo-pane-gap)}html.native-duo[data-duo-fold=vertical] .topbar{margin-left:max(0px,calc(var(--duo-form-x) - max(12px,var(--app-safe-left))));width:max(0px,calc(var(--duo-form-width) - 24px))}html.native-duo[data-duo-fold=horizontal] .workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,max(0px,calc(var(--duo-fold-y) - var(--duo-content-top) - 6px))) calc(var(--duo-fold-height) + 12px) minmax(0,1fr);row-gap:0}html.native-duo[data-duo-fold=horizontal] .workspace>.map-column{display:block;grid-column:1;grid-row:1}html.native-duo[data-duo-fold=horizontal] .workspace>.arrivals-panel{display:block;grid-column:1;grid-row:3}html.native-duo[data-duo-fold=horizontal] .workspace>.stops-panel{display:none}html.native-duo[data-duo-fold=horizontal] .app-shell[data-navigation-tab=nearby] .stops-panel{display:block;grid-column:1;grid-row:3}html.native-duo[data-duo-fold=horizontal] .app-shell[data-navigation-tab=nearby] .arrivals-panel{display:none}html.native-duo[data-duo-fold=horizontal] .app-shell[data-navigation-tab=map] .map-column{grid-column:1;grid-row:1}html.native-duo[data-duo-fold=horizontal] .app-shell[data-navigation-tab=map] .arrivals-panel{display:block}html.native-duo .map-panel,html.native-duo .map-panel.is-route-view{height:100%;min-height:0;overflow:auto}html.native-duo .map-panel.is-route-view .map-surface{height:clamp(160px,40dvh,420px);min-height:160px}html.native-duo .me-page{flex:1;min-height:0;padding-top:0;overflow:auto;overscroll-behavior:contain;scroll-padding:12px}html.native-duo[data-duo-fold=vertical] .me-page{margin-left:max(0px,calc(var(--duo-form-x) - max(12px,var(--app-safe-left))));width:max(0px,calc(var(--duo-form-width) - 24px))}html.native-duo[data-duo-fold=horizontal] .me-page{margin-top:max(0px,calc(var(--duo-form-y) - var(--duo-content-top) + 6px))}html.native-duo .me-panel{width:100%;max-width:680px;margin-inline:auto}html.native-duo .me-info-grid{grid-template-columns:minmax(0,1fr)}html.native-duo .arrivals-panel{padding:12px}html.native-duo :is(.arrival-board,.favourite-arrival-board){display:block;min-height:0}html.native-duo .arrival-header{display:block;padding-bottom:12px}html.native-duo .arrival-header h1{font-size:1.75rem;line-height:1.12}html.native-duo .arrival-header p{font-size:.9375rem;line-height:1.35}html.native-duo :is(.arrival-next-strip,.arrival-header>.action-button){display:none}html.native-duo .arrival-summary{font-size:.75rem}html.native-duo .service-card{grid-template-columns:minmax(0,1fr) 44px;grid-template-areas:"identity favourite" "arrivals arrivals";align-items:center;gap:8px;padding:10px}html.native-duo .service-card-head{grid-area:identity;display:flex;align-items:baseline;gap:8px;min-height:44px}html.native-duo .service-card-head strong{font-size:1.75rem;line-height:1.15}html.native-duo .service-card-head strong.is-compact{font-size:1.375rem}html.native-duo .service-card-head span{font-size:.75rem}html.native-duo .service-card>.service-arrivals{grid-area:arrivals}html.native-duo .favourite-button{grid-area:favourite;width:44px;height:44px;margin:0;align-self:center}html.native-duo .arrival-grid{display:flex;flex-wrap:wrap;gap:6px}html.native-duo .arrival-pill{flex:1 0 calc((100% - 12px) / 3);min-width:min(100%,5rem);min-height:64px;grid-template-rows:auto auto;align-content:center;padding:8px}html.native-duo .arrival-pill.has-type-badge{padding-right:8px}html.native-duo .arrival-time-row{flex-wrap:wrap;gap:2px}html.native-duo .arrival-time-value{font-size:1.625rem;line-height:1.1}html.native-duo .arrival-pill.has-long-time .arrival-time-value{font-size:1.375rem}html.native-duo .arrival-time-unit{font-size:.6875rem}html.native-duo .arrival-load-label{display:block;width:auto;padding:0;font-size:.6875rem;line-height:1.3;background:transparent}html.native-duo .arrival-meta{display:none}html.native-duo .vehicle-type-badge{top:4px;right:4px;padding:0;font-size:.5625rem;background:transparent}html.native-duo .vehicle-type-badge svg{display:none}html.native-duo .arrival-pill.no-estimate{padding:8px}html.native-duo .arrival-pill.no-estimate strong{font-size:1rem;white-space:normal}html.native-duo .arrival-pill.no-estimate span{font-size:.6875rem;white-space:normal}html.native-duo .smart-catch-prediction{font-size:.75rem;line-height:1.35}html.native-duo .favourite-arrival-card-head{grid-template-columns:minmax(44px,64px) minmax(0,1fr) 44px}html.native-duo .favourite-service-identity strong{font-size:1.75rem}html.native-duo :is(.stop-row,.favourite-row){font-size:.875rem}html.native-duo .stop-copy strong{font-size:.9375rem}html.native-duo .stop-copy small{font-size:.75rem}html.native-duo .searchbar input{font-size:max(16px,1rem)}html.native-duo .segmented button{min-height:44px;font-size:.875rem}html.native-duo :is(.me-panel,.me-info-panel){font-size:1rem}html.native-duo .me-hero h1{font-size:1.625rem}html.native-duo .panel-heading h2{font-size:1.0625rem}html.native-duo .panel-heading p{font-size:.8125rem}html.native-duo .me-hero p{font-size:.9375rem}html.native-duo .me-stats span{font-size:.8125rem}html.native-duo .smart-catch-setting-copy strong{font-size:.875rem}html.native-duo .smart-catch-setting-copy small{font-size:.75rem}html.native-duo :is(.icon-button,.map-control-button,.map-overlay-close,.favourite-remove,.service-favourite-button){min-width:44px;min-height:44px}html.native-duo button:focus-visible{outline:3px solid var(--teal);outline-offset:2px}html.native-duo[data-duo-wide=true] .app-shell{padding-top:max(8px,var(--app-safe-top));padding-bottom:max(8px,var(--app-safe-bottom));gap:8px}html.native-duo[data-duo-wide=true] .searchbar{min-height:max(44px,2.75rem)}html.native-duo[data-duo-wide=true] .arrival-header{padding-bottom:8px}html.native-duo[data-duo-wide=true] .arrival-header h1{font-size:1.5rem}html.native-duo[data-duo-wide=true] .arrivals-panel{container:duo-arrivals / inline-size}html.native-duo[data-duo-wide=true][data-duo-size=regular]:not([data-duo-fold=horizontal]) .app-shell:has(.workspace){display:grid;grid-template-columns:var(--duo-pane-columns);grid-template-rows:auto auto minmax(0,1fr);gap:0 var(--duo-pane-gap)}html.native-duo[data-duo-wide=true][data-duo-size=regular]:not([data-duo-fold=horizontal]) .app-shell:has(.workspace)>.topbar{grid-column:1;grid-row:1;width:100%;margin:0 0 8px}html.native-duo[data-duo-wide=true][data-duo-size=regular]:not([data-duo-fold=horizontal]) .status-strip{grid-column:1;grid-row:2;margin-bottom:8px}html.native-duo[data-duo-wide=true][data-duo-size=regular]:not([data-duo-fold=horizontal]) .workspace{grid-column:1 / -1;grid-row:1 / span 3;grid-template-columns:subgrid;grid-template-rows:subgrid;gap:0 var(--duo-pane-gap)}html.native-duo[data-duo-wide=true][data-duo-size=regular]:not([data-duo-fold=horizontal]) .workspace>.stops-panel{grid-row:3}html.native-duo[data-duo-wide=true][data-duo-size=regular]:not([data-duo-fold=horizontal]) .workspace>:is(.arrivals-panel,.map-column){grid-row:1 / span 3}@container duo-arrivals (min-width: 27rem){html.native-duo[data-duo-wide=true] .service-card{grid-template-columns:minmax(64px,4.5rem) minmax(0,1fr) 44px;grid-template-areas:"identity arrivals favourite"}html.native-duo[data-duo-wide=true] .service-card-head{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px}}@media(prefers-reduced-motion:reduce){html.native-duo *,html.native-duo *:before,html.native-duo *:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media(prefers-reduced-transparency:reduce){html.native-duo :is(.panel,.search-dropdown){background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}}
