: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{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%;min-width:0;border:0;outline:0;color:var(--ink);background:transparent}.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}.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-canvas{width:100%;min-height:0;flex:1}.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}.app-version-label{margin:-2px 0 0;color:var(--muted);font-size:12px;font-weight:750;text-align:center}.me-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.me-actions .action-button{width:100%}.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}.ad-preference{position:relative;display:inline-flex;align-items:center;gap:6px;color:var(--teal-strong);cursor:pointer;font-weight:800}.ad-preference input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.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-preference input:checked+.switch-track{border-color:var(--teal);background:var(--teal)}.ad-preference input:checked+.switch-track>span{transform:translate(14px)}.ad-preference input:focus-visible+.switch-track{outline:3px solid rgba(11,118,111,.22);outline-offset:2px}.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}.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;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: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-row>button:first-child{display:flex;align-items:center;min-width:0;gap:10px;border:0;color:inherit;text-align:left;background:transparent}.favourite-copy{min-width:0}.service-badge{display:grid;width:54px;height:48px;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-user-icon,.map-bus-icon{background:transparent;border:0}.map-stop-icon span{display:block;width:100%;height:100%;border:3px solid #fff;border-radius:50%;background:var(--teal);box-shadow:0 4px 14px #00000047}.map-stop-icon.is-selected span{background:var(--coral)}.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,.map-direction-button.is-active{border-color:var(--teal);color:#fff;background:var(--teal)}.map-control-button:disabled{cursor:not-allowed}.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:1120px){.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:static;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}.arrival-pill{grid-template-rows:auto auto;align-content:center;min-height:52px;padding:5px;border-radius:7px;overflow:hidden}.arrival-pill.has-type-badge{padding-right:8px}.arrival-time-row{align-items:baseline;gap:3px;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-actions,.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;border:0;border-radius:6px;color:var(--muted);background:transparent;font-size:12px;font-weight:850}.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 .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}}
