:root{--signal: #e2531b;--go: #2c7a4b;--go-deep: #1f5f3a;--stop: #c8372d;--caution: #a8650a;--paper: #f6f5f1;--card: #ffffff;--sunk: #efeee9;--sunk-2: #e6e4dd;--line: #dddbd3;--line-strong: #c9c6bc;--ink: #17191c;--ink-2: #3b3f45;--muted: #6c7078;--btn: #22262b;--btn-text: #f6f5f1;--btn-hover: #33383f;--r: 6px;--r-lg: 8px;--shadow: 0 1px 2px rgba(20, 20, 20, .06), 0 6px 20px rgba(20, 20, 20, .08);--shadow-map: 0 1px 3px rgba(20, 20, 20, .18);--rk-evag: #2c7a4b;--rk-riksvag: #2f5d9e;--rk-lansvag: #c98a1a;--rk-gata: #a3a6ab;--font: "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--font-num: "Barlow Semi Condensed", "Barlow", system-ui, sans-serif;color-scheme:light}[data-theme=dark]{--paper: #16181b;--card: #1d2024;--sunk: #24282d;--sunk-2: #2c3036;--line: #2e3238;--line-strong: #3d424a;--ink: #ecebe6;--ink-2: #c8c7c1;--muted: #8d9198;--btn: #ecebe6;--btn-text: #16181b;--btn-hover: #ffffff;--go: #3f9d65;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .35);--shadow-map: 0 1px 3px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body,button,a,input,label,select,textarea,[role=button],.panel,.nav,.dialog{touch-action:manipulation}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button,label,.tool-btn,.vehicle,.route-tab,.step,.nav,.dialog,.brand{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.panel{overscroll-behavior:contain}html,body{margin:0;height:100%;overflow:hidden;font-family:var(--font);font-size:14px;color:var(--ink);background:#dcdad3;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}svg{display:block}:focus-visible{outline:2px solid var(--signal);outline-offset:2px}#map{position:fixed;inset:0}.panel{position:fixed;top:12px;left:12px;bottom:12px;width:400px;display:flex;flex-direction:column;gap:14px;padding:0 16px 14px;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);z-index:10;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .25s}.panel>*,.results>*{flex-shrink:0}.sheet-bar{display:none}.brand{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;margin:0 -16px;padding:14px 16px 13px;background:var(--paper);border-bottom:1px solid var(--line)}.logo{width:30px;height:30px;flex:none}.logo svg{width:30px;height:30px}.brand-text{flex:1;min-width:0}.brand h1{margin:0;font-size:19px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1}.brand p{margin:4px 0 0;font-size:12.5px;color:var(--muted);line-height:1.2}.flags{display:block;margin:3px 0 0;font-family:var(--font-num);font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--ink-2)}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--r);background:var(--card);transition:border-color .15s}.icon-btn:hover{border-color:var(--line-strong)}.lang-sel{position:relative;display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 6px 0 8px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);color:var(--ink-2);cursor:pointer}.lang-sel:hover{border-color:var(--line-strong)}.lang-sel svg{width:16px;height:16px;flex:none}.lang-sel span{font-size:13px;font-weight:700;padding:0 2px}.lang-sel select{position:absolute;inset:0;width:100%;height:100%;opacity:0;appearance:none;-webkit-appearance:none;border:0;margin:0;padding:0;font-size:16px;cursor:pointer}.lang-sel:focus-within{outline:2px solid var(--signal);outline-offset:2px}.icon-btn svg{width:17px;height:17px}.i-sun{display:none!important}[data-theme=dark] .i-sun{display:block!important}[data-theme=dark] .i-moon{display:none!important}.section-label{display:flex;align-items:center;gap:10px;margin:2px 0 -6px;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.section-label:after{content:"";flex:1;height:1px;background:var(--line)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px}.planner{padding:12px}.stops{position:relative;display:flex;flex-direction:column;gap:6px}.stop{position:relative;display:flex;align-items:center;gap:10px}.stop:not(:last-child):after{content:"";position:absolute;left:8px;top:28px;height:20px;border-left:2px solid var(--line-strong)}.stop-dot{flex:none;width:18px;height:18px;display:grid;place-items:center;font-family:var(--font-num);font-size:11px;font-weight:700}.stop-start .stop-dot{border:4px solid var(--ink);border-radius:50%;background:var(--card)}.stop-via .stop-dot{border:2px solid var(--ink-2);border-radius:3px;color:var(--ink);background:var(--card)}.stop-end .stop-dot{background:var(--signal);clip-path:polygon(50% 6%,100% 94%,0 94%)}.stop-field{position:relative;flex:1;min-width:0}.stop-field input{width:100%;height:40px;padding:0 34px 0 12px;font:inherit;font-size:15px;font-weight:500;color:var(--ink);background:var(--sunk);border:1px solid transparent;border-radius:var(--r);outline:none;transition:border-color .15s,background .15s}.stop-field input::placeholder{color:var(--muted);font-weight:400}.stop-field input:focus{background:var(--card);border-color:var(--ink)}.clear-btn{position:absolute;right:6px;top:50%;width:24px;height:24px;transform:translateY(-50%);border-radius:4px;font-size:18px;line-height:1;color:var(--muted);opacity:0;pointer-events:none}.stop.filled .clear-btn{opacity:1;pointer-events:auto}.clear-btn:hover{background:var(--sunk-2);color:var(--ink)}.stop-remove{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r);color:var(--muted)}.stop-remove:hover{background:var(--sunk);color:var(--stop)}.stop-remove svg{width:15px;height:15px}.suggest{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;padding:4px;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r);box-shadow:var(--shadow)}.sg{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:4px;cursor:pointer}.sg:hover,.sg.sel{background:var(--sunk)}.sg-ico{flex:none;width:28px;height:28px;display:grid;place-items:center;color:var(--ink-2)}.sg-ico svg{width:19px;height:19px}.sg-text{min-width:0;display:flex;flex-direction:column}.sg-text b{font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sg-text small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-actions{display:flex;justify-content:space-between;margin:10px -12px -12px;padding:4px 6px;border-top:1px solid var(--line)}.ghost-btn,.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 11px;font-size:13.5px;font-weight:600;border-radius:var(--r);white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.ghost-btn{color:var(--ink-2)}.ghost-btn:hover{background:var(--sunk);color:var(--ink)}.ghost-btn svg,.primary-btn svg{width:16px;height:16px;flex:none}.ghost-btn.solid{background:var(--card);border:1px solid var(--line-strong);color:var(--ink)}.ghost-btn.solid:hover{border-color:var(--ink-2)}.primary-btn{color:var(--btn-text);background:var(--btn)}.primary-btn:hover{background:var(--btn-hover)}.primary-btn:disabled{opacity:.6;cursor:wait}.vehicles{display:grid;grid-template-columns:repeat(3,1fr);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.vehicle{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:11px 12px 10px;text-align:left;border-right:1px solid var(--line);transition:background .15s}.vehicle:last-child{border-right:0}.vehicle:hover{background:var(--sunk)}.vehicle.active{background:var(--ink);color:var(--paper)}.v-ico{width:40px;height:30px;color:var(--ink-2)}.vehicle.active .v-ico{color:var(--paper)}.v-ico svg{width:40px;height:30px}.v-text{display:flex;flex-direction:column}.v-text b{font-size:14px;font-weight:700}.v-text small{font-family:var(--font-num);font-size:12px;color:var(--muted);margin-top:1px}.vehicle.active .v-text small{color:var(--paper);opacity:.7}.prefs{padding:0}.prefs summary{display:flex;align-items:center;gap:10px;padding:11px 14px;font-size:14px;font-weight:600;list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none}.prefs summary::-webkit-details-marker{display:none}.prefs summary svg{width:17px;height:17px;color:var(--muted)}.prefs summary .chev{margin-left:auto;transition:transform .2s}.prefs[open] summary{border-bottom:1px solid var(--line)}.prefs[open] summary .chev{transform:rotate(180deg)}.prefs[open]{padding-bottom:6px}.pref{padding:12px 14px 10px}.pref-head{display:flex;justify-content:space-between;font-size:13.5px;font-weight:600;margin-bottom:10px}.pref-head span{color:var(--muted);font-weight:500}.pref-scale{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:6px}input[type=range]{--fill: 50%;width:100%;height:4px;appearance:none;-webkit-appearance:none;background:linear-gradient(90deg,var(--ink) var(--fill),var(--sunk-2) var(--fill));border-radius:2px;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--card);border:2px solid var(--ink);cursor:grab}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--card);border:2px solid var(--ink)}.toggle{display:flex;align-items:center;gap:12px;padding:8px 14px;font-size:14px;cursor:pointer}.toggle input{display:none}.toggle .track{position:relative;flex:none;width:34px;height:20px;background:var(--sunk-2);border-radius:10px;transition:background .2s}.toggle .track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--card);border-radius:50%;box-shadow:0 1px 2px #00000040;transition:transform .2s}.toggle input:checked+.track{background:var(--ink)}.toggle input:checked+.track:after{transform:translate(14px)}.results{display:flex;flex-direction:column;gap:12px}.empty{padding:18px 16px 16px}.empty h2{margin:0 0 4px;font-size:18px;font-weight:700}.empty p{margin:0;font-size:14px;color:var(--muted);line-height:1.45}.rules{list-style:none;padding:0;margin:16px 0 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);font-size:13.5px;font-weight:500}.rules li{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}.rules svg{width:15px;height:15px;flex:none}.rules .no svg{color:var(--stop)}.rules .yes svg{color:var(--go)}.loading{padding:18px 16px}.loading p{margin:0 0 12px;font-size:14px;color:var(--ink-2);font-weight:500;display:flex;align-items:center;gap:10px}.loader{display:none}.loading p:before{content:"";width:14px;height:14px;flex:none;border:2px solid var(--line-strong);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite}.progress{height:3px;background:var(--sunk-2);overflow:hidden;margin-bottom:14px}.progress i{display:block;height:100%;background:var(--ink);transition:width .4s ease}.skeleton{height:10px;margin:8px 0;border-radius:2px;background:var(--sunk);animation:breathe 1.4s ease-in-out infinite}.skeleton.short{width:60%}.error{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;border-left:3px solid var(--stop)}.error>div:nth-child(2){flex:1;min-width:0}.err-ico{display:none}.error h3{margin:0 0 3px;font-size:15px}.error p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.45}.error .ghost-btn{margin-left:auto;border:1px solid var(--line-strong)}.route-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.route-tab{display:flex;flex-direction:column;align-items:flex-start;padding:9px 12px;text-align:left;border-right:1px solid var(--line);border-bottom:3px solid transparent}.route-tab:last-child{border-right:0}.route-tab b{font-family:var(--font-num);font-size:16px;font-weight:600}.route-tab small{font-size:12px;color:var(--muted)}.route-tab.active{border-bottom-color:var(--ink);background:var(--sunk)}.summary{padding:16px}.sum-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.sum-time{font-family:var(--font-num);font-size:38px;font-weight:600;letter-spacing:-.01em;line-height:1}.sum-meta{margin-top:6px;font-size:14px;color:var(--muted)}.sum-meta b{color:var(--ink);font-weight:600}.sum-vehicle{flex:none;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 8px 5px;color:var(--ink-2);border:1px solid var(--line);border-radius:var(--r)}.sum-vehicle svg{width:38px;height:28px}.sum-vehicle small{font-family:var(--font-num);font-size:11.5px;font-weight:600}.badges{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.badge{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:500}.badge svg{width:16px;height:16px;flex:none}.badge.ok svg{color:var(--go)}.badge.warn{color:var(--caution)}.badge.info svg{color:var(--ink-2)}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stats div{padding:9px 0 9px 12px;border-left:1px solid var(--line)}.stats div:first-child{padding-left:0;border-left:0}.stats small{display:block;font-size:12px;color:var(--muted)}.stats b{font-family:var(--font-num);font-size:17px;font-weight:600}.roadtypes{margin-top:14px}.rt-head{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}.roadbar{display:flex;height:6px;gap:2px}.roadbar .rk{height:100%}.rk-evag{background:var(--rk-evag)}.rk-riksvag{background:var(--rk-riksvag)}.rk-lansvag{background:var(--rk-lansvag)}.rk-gata{background:var(--rk-gata)}.legend{display:grid;grid-template-columns:1fr 1fr;gap:5px 14px;margin-top:10px;font-size:13px}.legend span{display:flex;align-items:center;gap:7px}.legend i{width:9px;height:9px;flex:none}.legend b{margin-left:auto;font-family:var(--font-num);font-weight:600;color:var(--muted);white-space:nowrap}.actions{display:flex;gap:6px;margin-top:16px}.actions .primary-btn{flex:1 1 0;min-width:0;height:42px;font-size:15.5px;letter-spacing:.02em}.actions .primary-btn span{overflow:hidden;text-overflow:ellipsis}.actions .ghost-btn{flex:none}.actions .ghost-btn{height:42px;border:1px solid var(--line-strong);color:var(--ink)}.actions .ghost-btn:hover{border-color:var(--ink-2);background:transparent}.start-btn svg{width:15px;height:15px;color:var(--signal)}.directions{padding:0}.dir-head{display:flex;align-items:baseline;gap:10px;width:100%;padding:12px 14px;text-align:left}.dir-head h3{margin:0;font-size:15px;font-weight:700}.dir-head small{color:var(--muted);font-size:13px;font-family:var(--font-num)}.dir-chev{margin-left:auto;align-self:center;color:var(--muted);transition:transform .2s;transform:rotate(-90deg)}.dir-chev svg{width:18px;height:18px}.directions.open .dir-chev{transform:rotate(0)}.dir-head:hover .dir-chev{color:var(--ink)}.steps{list-style:none;margin:0;padding:0 6px 6px;display:none;border-top:1px solid var(--line)}.directions.open .steps{display:block}.step{display:flex;align-items:center;gap:12px;padding:9px 8px;border-radius:4px;cursor:pointer}.step+.step{border-top:1px solid var(--line)}.step:hover,.step.active{background:var(--sunk)}.step-ico{flex:none;width:28px;height:28px;display:grid;place-items:center;color:var(--ink)}.step-ico svg{width:20px;height:20px}.step-ico.dest,.step-ico.via{color:var(--signal)}.step-text{flex:1;min-width:0;font-size:14px;line-height:1.35}.step-text small{display:block;color:var(--muted);font-size:12.5px}.step-dist{flex:none;font-family:var(--font-num);font-size:13.5px;font-weight:600;color:var(--muted)}.foot{margin-top:auto;padding:4px 2px 0;font-size:12px;line-height:1.5;color:var(--muted)}.foot a{color:inherit}.map-tools{position:fixed;top:12px;right:12px;z-index:5;display:flex;gap:8px}.tool-btn{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;font-size:13.5px;font-weight:600;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-map);color:var(--muted)}.tool-btn.active{color:var(--ink)}.swatch{width:18px;height:4px;background:repeating-linear-gradient(90deg,#e5383b 0 5px,transparent 5px 8px);opacity:.35}.tool-btn.active .swatch{opacity:1}.mk{cursor:grab}.mk-start{width:20px;height:20px;border-radius:50%;background:#fff;border:5px solid #17191c;box-shadow:0 2px 6px #00000059}.mk-via{width:22px;height:22px;display:grid;place-items:center;border-radius:4px;background:#fff;border:2px solid #17191c;color:#17191c;font:700 12px var(--font-num);box-shadow:0 2px 6px #0000004d}.mk-end{width:34px;height:44px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.35))}.mk-end svg{width:100%;height:100%}.pulse{width:16px;height:16px;border-radius:50%;background:var(--signal);border:3px solid #fff;box-shadow:0 0 #e2531b99;animation:pulse 1.6s infinite;pointer-events:none}.ctx{position:fixed;z-index:40;min-width:200px;padding:4px;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r);box-shadow:var(--shadow)}.ctx button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:14px;text-align:left;border-radius:4px}.ctx button:hover{background:var(--sunk)}.ctx hr{border:0;border-top:1px solid var(--line);margin:4px 0}.dot{width:12px;height:12px;flex:none}.dot.start{border:3.5px solid var(--ink);border-radius:50%}.dot.end{background:var(--signal);clip-path:polygon(50% 0,100% 95%,0 95%)}.dot.via{border:2px solid var(--ink-2);border-radius:2px}.dot.plain{background:var(--sunk-2);border-radius:2px}.toast{position:fixed;left:50%;bottom:24px;z-index:70;width:max-content;max-width:min(460px,calc(100% - 24px));line-height:1.4;padding:10px 16px;font-size:14px;font-weight:600;color:var(--btn-text);background:var(--btn);border-radius:var(--r);box-shadow:var(--shadow);transform:translate(-50%,12px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%);pointer-events:auto}.toast{display:flex;align-items:flex-start;gap:12px;padding-right:8px}.toast-close{flex:none;width:24px;height:24px;margin:-2px 0;display:grid;place-items:center;border-radius:4px;color:inherit;opacity:.7}.toast-close:hover{opacity:1;background:#7f7f7f40}.toast-close svg{width:14px;height:14px}.nav-on .toast{bottom:calc(96px + env(safe-area-inset-bottom))}.maplibregl-ctrl-group{border-radius:var(--r)!important;overflow:hidden;box-shadow:var(--shadow-map)!important;background:var(--card)!important;border:1px solid var(--line)}.maplibregl-ctrl-group button{width:34px!important;height:34px!important}.maplibregl-ctrl-group button+button{border-top-color:var(--line)!important}[data-theme=dark] .maplibregl-ctrl-icon{filter:invert(1) hue-rotate(180deg)}.maplibregl-ctrl-bottom-left{left:424px}.maplibregl-ctrl-scale{background:var(--card)!important;color:var(--ink)!important;border-color:var(--ink-2)!important;font-family:var(--font-num)}[data-theme=dark] .maplibregl-ctrl-attrib{background:#16181bbf;color:#aaa}[data-theme=dark] .maplibregl-ctrl-attrib a{color:#ccc}.dialog-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px;background:#0f101273;animation:fade .15s}.dialog-backdrop[hidden]{display:none}.dialog{width:min(380px,100%);padding:20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}.dialog-ico{width:22px;height:22px;margin-bottom:12px;color:var(--ink)}.dialog-ico svg{width:22px;height:22px}.dialog h3{margin:0 0 6px;font-size:18px}.dialog p{margin:0 0 18px;font-size:14px;color:var(--muted);line-height:1.5}.dialog-actions{display:flex;flex-direction:column;gap:6px}.dialog-actions button{height:42px;width:100%}.nav-on .panel{transform:translate(calc(-100% - 30px));opacity:0;pointer-events:none}.nav-on .map-tools,.nav-on .maplibregl-ctrl-bottom-right,.nav-on .maplibregl-ctrl-bottom-left{opacity:0;pointer-events:none}.nav{position:fixed;inset:0;z-index:20;pointer-events:none}.nav[hidden]{display:none}.nav>*{pointer-events:auto}.nav-top{position:absolute;top:12px;left:12px;width:min(430px,calc(100% - 24px));display:flex;flex-direction:column;gap:6px;animation:drop .4s cubic-bezier(.2,.8,.2,1)}.nav-banner{display:flex;align-items:center;gap:14px;padding:14px 16px;color:#fff;background:var(--go-deep);border-radius:var(--r-lg);box-shadow:0 8px 24px #0000004d;transition:background .3s}.nav-banner.soon{background:var(--go)}.nav-banner.rerouting{background:#4b5058}.nb-ico{flex:none;width:52px;height:52px;display:grid;place-items:center}.nb-ico svg{width:50px;height:50px;stroke-width:2.4}.nb-main{min-width:0;flex:1}.nb-dist{font-family:var(--font-num);font-size:32px;font-weight:600;line-height:1}.nb-text{margin-top:4px}.nb-text b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:19px;font-weight:600;line-height:1.2}.nb-text small{display:block;margin-top:3px;font-size:13.5px;opacity:.8;line-height:1.3}.nav-then{align-self:flex-start;display:flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;color:#fff;background:#173f28;border-radius:var(--r);font-size:14px;max-width:100%}.nav-then[hidden]{display:none}.nav-then span{opacity:.7}.nav-then i{width:18px;height:18px;flex:none}.nav-then i svg{width:18px;height:18px}.nav-then b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-side{position:absolute;right:12px;bottom:104px;display:flex;flex-direction:column;align-items:center;gap:8px}.nav-speed{width:62px;height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--line);border-radius:50%;box-shadow:var(--shadow-map);line-height:1}.nav-speed b{font-family:var(--font-num);font-size:24px;font-weight:600}.nav-speed small{font-size:10.5px;color:var(--muted);font-weight:600;margin-top:1px}.nav-speed.over{background:var(--stop);color:#fff;border-color:transparent}.nav-speed.over small{color:#fff}.nav-fab{width:46px;height:46px;display:grid;place-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-map)}.nav-fab svg{width:20px;height:20px}.nav-fab .v-off,.nav-fab.off .v-on{display:none}.nav-fab.off .v-off{display:block;color:var(--stop)}.nav-recenter{position:absolute;left:50%;bottom:100px;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;font-size:14.5px;font-weight:600;color:var(--btn-text);background:var(--btn);border-radius:var(--r);box-shadow:var(--shadow-map)}.nav-recenter[hidden]{display:none}.nav-recenter svg{width:14px;height:14px}.nav-bottom{position:absolute;left:12px;right:12px;bottom:12px;margin:0 auto;max-width:520px;display:flex;align-items:center;gap:14px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);animation:rise .4s cubic-bezier(.2,.8,.2,1)}.nav-exit{flex:none;width:46px;height:46px;display:grid;place-items:center;color:#fff;background:var(--stop);border-radius:var(--r)}.nav-exit svg{width:20px;height:20px}.nav-eta{flex:1;min-width:0;text-align:center}.nav-eta b{display:block;font-family:var(--font-num);font-size:26px;font-weight:600;line-height:1.1;color:var(--go)}.nav-eta span{font-family:var(--font-num);font-size:15px;color:var(--muted);font-weight:500}.nav-brand{flex:none;width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--r)}.nav-brand svg{width:24px;height:24px}.nav-arrived{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(320px,calc(100% - 40px));padding:22px 20px 18px;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--go);border-radius:var(--r-lg);box-shadow:var(--shadow)}.nav-arrived[hidden]{display:none}.arr-ico{width:26px;height:26px;margin-bottom:10px;color:var(--go)}.arr-ico svg{width:26px;height:26px}.nav-arrived h2{margin:0 0 4px;font-size:22px}.nav-arrived p{margin:0 0 16px;color:var(--muted);font-size:14px}.nav-arrived .primary-btn{width:100%;height:44px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes breathe{50%{opacity:.5}}@keyframes fade{0%{opacity:0}}@keyframes drop{0%{opacity:0;transform:translateY(-12px)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes blink{50%{opacity:.3}}@keyframes pulse{70%{box-shadow:0 0 0 14px #e2531b00}to{box-shadow:0 0 #e2531b00}}@media(max-width:760px){html,body{overscroll-behavior:none}.panel{inset:auto 0 0;width:auto;height:50dvh;gap:12px;padding:0 12px calc(16px + env(safe-area-inset-bottom));border-radius:12px 12px 0 0;border-bottom:0;box-shadow:0 -4px 24px #00000024;transition:height .28s cubic-bezier(.2,.8,.2,1),transform .4s,opacity .25s}.panel[data-sheet=peek]{overflow:hidden}.sheet-bar{display:flex;justify-content:center;flex:none;position:sticky;top:0;z-index:6;margin:0 -12px -6px;padding:8px 12px 6px;background:var(--paper)}.sheet-toggle{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px 0 16px;font-size:14px;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line-strong);border-radius:17px}.sheet-toggle svg{width:16px;height:16px;transition:transform .25s}.panel[data-sheet=peek] .sheet-toggle svg{transform:rotate(180deg)}.brand{position:static;margin:0 -12px;padding:4px 12px 10px}.brand p{display:none}.logo,.logo svg{width:24px;height:24px}.brand h1{font-size:16px}.stop-field input{height:44px;font-size:16px}.sg{padding:10px 8px}.ghost-btn{height:38px}.vehicles .v-text small{display:none}.vehicle{flex-direction:row;align-items:center;gap:6px;padding:10px 8px;min-width:0}.v-ico,.v-ico svg{width:30px;height:22px;flex:none}.v-text b{font-size:13px;white-space:nowrap}.summary{padding:14px}.sum-time{font-size:34px}.actions .primary-btn,.actions .ghost-btn{height:46px}.actions{gap:6px}.actions .ghost-btn{padding:0 10px}.step{padding:11px 6px}.maplibregl-ctrl-bottom-left{display:none}.maplibregl-ctrl-bottom-right{bottom:var(--sheet-h, 50dvh);transition:bottom .28s cubic-bezier(.2,.8,.2,1)}.maplibregl-ctrl-bottom-right .maplibregl-ctrl-group:has(.maplibregl-ctrl-zoom-in){display:none}.map-tools{top:calc(10px + env(safe-area-inset-top));right:10px}.tool-btn{height:36px}.toast{bottom:calc(var(--sheet-h, 50dvh) + 12px)}.ctx button{padding:12px;font-size:15px}.nav-on .panel{transform:translateY(110%)}.nav-top{top:calc(8px + env(safe-area-inset-top));left:8px;width:calc(100% - 16px)}.nav-banner{padding:12px;gap:12px}.nb-ico,.nb-ico svg{width:44px;height:44px}.nb-dist{font-size:28px}.nb-text b{font-size:17px}.nb-text small{font-size:13px}.nav-bottom{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));gap:10px;padding:8px}.nav-eta b{font-size:24px}.nav-side{right:8px;bottom:calc(86px + env(safe-area-inset-bottom))}.nav-speed{width:56px;height:56px}.nav-fab{width:44px;height:44px}.nav-recenter{bottom:calc(86px + env(safe-area-inset-bottom))}}.loc-consent .dialog-actions .ghost-btn{color:var(--muted)}.panel-links{display:flex;flex-wrap:wrap;gap:4px 14px;padding:18px 4px 6px;margin-top:8px;border-top:1px solid var(--line)}.panel-links a{color:var(--muted);font-size:13.5px;font-weight:600;text-decoration:none}.panel-links a:hover{color:var(--ink);text-decoration:underline}a.icon-btn{color:inherit;text-decoration:none}.home-tool{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none}.home-tool svg{width:15px;height:15px}
