@font-face{font-family:NavGeorgian;src:url('./georgian.woff2') format('woff2');font-display:swap;font-weight:100 900}
/* Route Console. Overlay bounds remain owned by the existing map runtime. */
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}
body{position:relative;font:15px/1.5 NavGeorgian,system-ui,-apple-system,sans-serif;color:#182431;color:var(--text);background:var(--page);--page:#f3f6fa;--surface:#fff;--soft:#edf2f8;--text:#152334;--muted:#596a7c;--border:#d9e2ed;--accent:#176de5;--on-accent:#fff;--guide:#163c61;--guide-muted:#c9deef;--alert:#fff1d5;--alert-text:#634911;--danger:#b12c3b;--gap:20px;--credit:28px;--shadow:0 6px 24px rgba(21,35,52,.15)}
body.night{color-scheme:dark;--page:#101720;--surface:#1c2734;--soft:#263547;--text:#f3f7fc;--muted:#b2c0d0;--border:#3a4a5f;--accent:#8ab8ff;--on-accent:#101e32;--guide:#223f5c;--guide-muted:#d1e2f2;--alert:#493c23;--alert-text:#ffe4ab;--danger:#ff9aa9;--shadow:0 6px 24px rgba(0,0,0,.28)}
button,input,select,textarea{font:inherit;color:inherit;font-variant-numeric:tabular-nums}button,input,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{cursor:pointer;border:0;background:none;line-height:1.4;white-space:normal;transition:background-color 160ms ease-out,color 160ms ease-out}button:disabled{cursor:default;opacity:.55}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
a{color:inherit;text-decoration:none;text-underline-offset:3px}a:hover{text-decoration:underline}button:hover:not(:disabled){background-color:#eef5f2;background-color:var(--soft)}input,textarea{caret-color:#167b61;caret-color:var(--accent)}input::placeholder{color:#627080;color:var(--muted);opacity:1}
::selection{background:#c7ddff;color:#152334}.night ::selection{background:#355a88;color:#fff}*{scrollbar-width:thin;scrollbar-color:#627080;scrollbar-color:var(--muted) var(--soft)}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:#627080;background:var(--muted);border-radius:8px}*::-webkit-scrollbar-track{background:#eef5f2;background:var(--soft)}
[hidden]{display:none!important}h1,h2,h3,p{margin:0}svg.ui-icon{display:block;flex:none;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#navigation,#map,#map-loading,#scrim{position:absolute;top:0;right:0;bottom:0;left:0}#map{z-index:0;background:#e5ebe8}.surface{background:#ffffff;background:var(--surface);color:#182431;color:var(--text);border:0;border-radius:16px;box-shadow:0 8px 32px #14223518;box-shadow:var(--shadow)}
#map-loading{z-index:2;display:flex;flex-direction:column;gap:16px;align-items:center;justify-content:center;background:var(--page);color:#182431;color:var(--text)}#map-loading>strong{font-size:20px}#map-loading>span:last-child{font:700 12px system-ui,sans-serif;letter-spacing:2px;color:#627080;color:var(--muted)}#map-loading>button{min-height:48px;border:1px solid var(--border);border-radius:12px;padding:8px 20px}
.loading-ring{width:32px;height:32px;border:3px solid var(--border);border-top-color:#167b61;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
#search-panel{position:absolute;top:var(--gap);left:var(--gap);z-index:7;width:400px;padding:16px}.brand{display:inline-flex;align-items:center;gap:10px;font:750 16px/1.2 system-ui,sans-serif;letter-spacing:1px;min-height:36px}.brand-symbol{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#167b61;background:var(--accent);color:var(--on-accent);border-radius:10px}.brand-symbol .ui-icon{width:25px;height:25px}.brand-ge{font-weight:500;color:#627080;color:var(--muted)}.brand small{display:block;margin-top:3px;font:12px/1.3 NavGeorgian,system-ui,sans-serif;letter-spacing:0;color:#627080;color:var(--muted)}
#search-form{display:flex;align-items:center;min-width:0;height:52px;margin:14px 0 12px;border:1px solid var(--border);border-radius:12px;background:#eef5f2;background:var(--soft)}#search-form:focus-within{border-color:#167b61;border-color:var(--accent)}.search-symbol{display:flex;align-items:center;justify-content:center;width:40px;flex:0 0 40px;color:#627080;color:var(--muted)}.search-symbol .ui-icon{width:21px;height:21px}
#search{width:100%;min-width:0;flex:1;height:100%;padding:0;border:0;outline:0;background:transparent;font-size:16px;color:#182431;color:var(--text)}#search:focus-visible{outline:0}
.search-submit,.icon-button,.close-button{display:flex;align-items:center;justify-content:center;width:48px;min-width:48px;height:48px;min-height:48px;padding:0;border-radius:12px;color:#627080;color:var(--muted);flex-shrink:0}.search-submit{background:#167b61;background:var(--accent);color:var(--on-accent);margin:1px;min-width:46px;width:46px;height:46px}.search-submit:hover:not(:disabled){background:var(--guide);color:#fff}.mobile-settings{position:absolute;right:12px;top:10px;display:flex}
.chips{display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips button{min-height:44px;flex-shrink:0;padding:8px 11px;border:1px solid var(--border);border-radius:10px;font-size:12px;font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:5px}.chips .ui-icon{width:17px;height:17px}#quick-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}#quick-filters button{min-width:0;padding:7px 4px;white-space:normal}#quick-filters .ui-icon{display:none}.chips button[aria-pressed=true]{background:#182431;background:var(--text);color:#ffffff;color:var(--surface);border-color:#182431;border-color:var(--text)}.saved-quick{margin-bottom:8px}.saved-quick button{max-width:230px;overflow:hidden;text-overflow:ellipsis;display:block}
.results{position:absolute;left:0;right:0;top:120px;z-index:10;padding:6px;max-height:52vh;max-height:min(52vh,460px);overflow-y:auto;overscroll-behavior:contain;background:#ffffff;background:var(--surface);border-radius:0 0 16px 16px;box-shadow:0 8px 32px #14223518;box-shadow:var(--shadow)}.result{display:flex;align-items:center;gap:12px;width:100%;min-height:72px;padding:12px 10px;border-bottom:1px solid var(--border);text-align:left}.result:last-child{border-bottom:0}.result-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex:0 0 36px;background:#eef5f2;background:var(--soft);border-radius:10px;font:21px system-ui,sans-serif;color:#167b61;color:var(--accent)}.result-copy{min-width:0;flex:1;overflow-wrap:break-word}.result strong{display:block;font-size:15px;line-height:1.5}.result small{display:block;margin-top:4px;font-size:12px;line-height:1.5;color:#627080;color:var(--muted)}.result:focus-visible{outline-offset:-3px}.results-heading{padding:10px 10px 6px;font-size:12px;font-weight:700;color:#627080;color:var(--muted)}.results-note{padding:12px;font-size:13px;line-height:1.6;color:#627080;color:var(--muted)}
#guidance-stack{position:absolute;z-index:6;top:224px;left:var(--gap);width:400px;display:flex;flex-direction:column;gap:8px;pointer-events:none}#guidance-stack>*{pointer-events:auto;flex-shrink:0}.status-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%;min-height:52px;padding:8px 12px;background:#ffffff;background:var(--surface);color:#182431;color:var(--text);border-radius:12px;box-shadow:0 8px 32px #14223518;box-shadow:var(--shadow);font-size:13px;line-height:1.5}.status-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#aa7615}.status-strip.good .status-dot{background:#178253}.status-strip.bad .status-dot{background:var(--danger)}#gps-label{min-width:0;flex:1 1 110px}
#gps-retry,#gps-phone-use{min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;color:#167b61;color:var(--accent);font-size:13px;font-weight:650}#gps-phone-use{background:#167b61;background:var(--accent);color:var(--on-accent);border-color:transparent}#gps-phone-reason{flex:0 0 100%;font-size:12px;line-height:1.5;font-weight:600}
#map-tile-status{padding:12px;font-size:13px;line-height:1.5;border-radius:12px;order:4}.route-status{padding:12px;border-radius:12px;background:var(--alert);color:var(--alert-text);font-size:13px;line-height:1.5}#route-retry{min-height:48px;padding:10px 14px;border:1px solid var(--accent);border-radius:12px;background:#ffffff;background:var(--surface);color:#167b61;color:var(--accent);font-weight:650;line-height:1.5}.armed-start{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:14px;border-radius:12px}.armed-start strong{flex:1 1 170px;font-size:16px;line-height:1.5}.armed-start button{min-height:44px;padding:8px 12px;border-radius:10px;background:#eef5f2;background:var(--soft)}
.maneuver{display:flex;flex-wrap:wrap;align-items:center;gap:0;padding:18px;background:var(--guide);color:#fff;border-radius:16px}#turn-symbol{display:flex;align-items:center;justify-content:center;flex:0 0 60px;width:60px;height:76px;font:700 54px/1 system-ui,sans-serif;color:#fff}.maneuver-copy{min-width:0;flex:1;margin-left:16px}.maneuver-label{display:none}#turn-distance{display:block;font-size:36px;line-height:1.15;font-weight:750;letter-spacing:-.02em}#turn-instruction{margin-top:6px;font-size:16px;line-height:1.4;overflow-wrap:break-word}#turn-road{display:block;margin-top:4px;font-size:13px;line-height:1.45;color:var(--guide-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#turn-road:empty{display:none}#turn-direction-hint{display:inline-block;margin-top:6px;padding:3px 7px;border-radius:6px;background:rgba(255,255,255,.13);color:#fff;font-size:12px;line-height:1.4}#then-turn{flex:0 0 100%;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.25);font-size:13px;line-height:1.5;color:var(--guide-muted);overflow-wrap:break-word}
#road-advisory{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:2px 8px;flex:0 0 100%;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.25);color:#fff;line-height:1.4}#road-advisory-icon{grid-row:1/3;font:22px system-ui;color:#ffdc8f;text-align:center}#road-advisory-label{min-width:0;font-size:12px;font-weight:700;overflow-wrap:break-word}#road-advisory-distance{font-size:13px;white-space:nowrap}#road-advisory small{grid-column:2/4;font-size:11px;color:var(--guide-muted)}
#turn-distance,#trip-time,#trip-distance,#trip-arrival,#speed-value,#preview-time{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
#map-controls{position:absolute;right:var(--gap);top:var(--gap);z-index:5;display:flex;flex-direction:column;gap:8px;max-height:calc(100% - 48px);overflow-y:auto;scrollbar-width:none}#map-controls::-webkit-scrollbar{display:none}.control{display:flex;align-items:center;justify-content:center;flex-direction:column;width:56px;min-width:56px;height:56px;min-height:56px;padding:5px;border-radius:12px;flex-shrink:0;font:600 23px/1 system-ui,sans-serif}.control span{font:11px/1.3 NavGeorgian,system-ui,sans-serif;margin-top:3px}.control .ui-icon{width:23px;height:23px}.control.active{background:#167b61;background:var(--accent);color:var(--on-accent)}.zoom-group{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;flex-shrink:0}.zoom-group button{width:56px;height:48px;min-height:48px;font:25px system-ui,sans-serif}.zoom-group button+button{border-top:1px solid var(--border)}#route-chargers{color:#167b61;color:var(--accent)}#recenter.active{background:#eef5f2;background:var(--soft);color:#167b61;color:var(--accent)}
.destination{position:absolute;left:var(--gap);bottom:var(--credit);z-index:6;width:400px;max-height:52vh;display:flex;flex-direction:column;overflow:hidden}.close-button{position:absolute;right:8px;top:8px}.destination-heading{flex:0 0 auto;padding:18px 56px 10px 18px}.destination-heading>span{display:block;font-size:12px;color:#627080;color:var(--muted);margin:0}.destination h1{font-size:21px;line-height:1.35;margin:4px 0;max-height:2.7em;overflow:hidden;overflow-wrap:break-word}.destination-heading p{font-size:13px;line-height:1.45;max-height:2.9em;overflow:auto;color:#627080;color:var(--muted)}.destination-scroll{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:0 18px}.destination-actions{flex:0 0 auto;padding:12px 18px 16px;background:#ffffff;background:var(--surface);border-top:1px solid var(--border)}
.primary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 16px;border-radius:12px;background:#167b61;background:var(--accent);color:var(--on-accent);font-size:15px;font-weight:700;line-height:1.4;text-align:center}.primary:hover:not(:disabled){background:var(--guide);color:#fff}.primary span{font:22px system-ui,sans-serif}.wide{width:100%;margin-top:8px}.text-button{min-height:44px;padding:9px 12px;color:#167b61;color:var(--accent);font-size:13px;line-height:1.5;border-radius:10px;text-align:center}.destination-actions .primary{min-height:52px;font-size:16px}.destination-actions .text-button{width:100%;min-height:44px;font-size:13px}#start-button:disabled{background:#eef5f2;background:var(--soft);color:#627080;color:var(--muted);opacity:1}#destination-gps,.fullscreen-button{border:1px solid var(--border);background:#eef5f2;background:var(--soft)}
#route-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin-bottom:10px}#preview-time{font-size:26px;line-height:1.3;font-weight:750;color:#167b61;color:var(--accent)}#preview-distance{font-size:15px;color:#182431;color:var(--text)}#route-gap{width:100%;font-size:12px;line-height:1.45;color:#627080;color:var(--muted);max-height:2.9em;overflow:auto}.notice{padding:10px 12px;border-radius:10px;background:var(--alert);color:var(--alert-text);font-size:12px;line-height:1.5}.error{color:var(--danger);font-size:13px;line-height:1.5}.destination-actions .notice,.destination-actions .error{margin-bottom:8px;max-height:5em;overflow-y:auto}.muted{color:#627080;color:var(--muted);font-size:12px;line-height:1.6}
.details{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.details span{padding:5px 8px;border-radius:6px;background:#eef5f2;background:var(--soft);font-size:12px}.detail-description{width:100%;max-height:100px;overflow:auto;color:#627080;color:var(--muted);font-size:13px}.detail-link{font-size:13px;color:#167b61;color:var(--accent);min-height:44px;padding:10px 2px}.menu-disclosure{margin-top:12px;border-top:1px solid var(--border)}.menu-disclosure>summary{cursor:pointer;min-height:48px;padding:12px 0;font-size:14px;font-weight:600;line-height:1.6;touch-action:manipulation}.destination-scroll .menu-disclosure{margin:0;border:0}.destination-scroll .menu-disclosure>summary{font-size:13px;min-height:44px;padding:10px 0}
#route-options{display:flex;gap:6px;margin:12px 0}.route-choice{flex:1;min-width:0;min-height:64px;padding:8px;border:1px solid var(--border);border-radius:10px;text-align:left;background:#eef5f2;background:var(--soft)}.route-choice strong,.route-choice small{display:block;line-height:1.5;overflow-wrap:break-word}.route-choice strong{font-size:14px}.route-choice small{font-size:12px;color:#627080;color:var(--muted)}.route-choice[aria-pressed=true]{border:2px solid var(--accent);padding:7px}.corridor-link{border:1px solid var(--border);margin:8px 0}
.trip{position:absolute;left:116px;bottom:var(--credit);z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:0;width:476px;max-width:calc(100% - 216px);padding:14px 10px 14px 18px}.trip-metric{flex:1;min-width:0;padding:0 12px 0 0}.trip-metric+.trip-metric{padding-left:12px;border-left:1px solid var(--border)}.trip strong{display:block;font-size:23px;line-height:1.3;white-space:nowrap;letter-spacing:-.02em}.trip-metric:first-child strong{color:#167b61;color:var(--accent)}.trip-metric>span{display:block;color:#627080;color:var(--muted);font-size:11px;line-height:1.4;margin-top:4px}#stop-button{display:flex;align-items:center;justify-content:center;flex-direction:column;flex:0 0 64px;min-width:48px;min-height:52px;margin-left:8px;padding:0 0 0 8px;border-left:1px solid var(--border)}.stop-icon{display:flex;align-items:center;justify-content:center;color:#182431;color:var(--text)}.stop-icon .ui-icon{width:25px;height:25px}.stop-label{font-size:11px;color:#627080;color:var(--muted);margin-top:4px}.trip-next-stop{flex:0 0 100%;order:5;color:#627080;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere;padding-top:8px}
.speed{position:absolute;left:var(--gap);bottom:var(--credit);z-index:5;width:80px;height:84px;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:16px}.speed strong{font:750 34px/1.2 NavGeorgian,system-ui,sans-serif;letter-spacing:-.03em}.speed span{font-size:12px;color:#627080;color:var(--muted)}
.catalog-status{position:absolute;left:var(--gap);bottom:26px;z-index:4;max-width:65%;padding:5px 9px;border-radius:6px;background:#ffffff;background:var(--surface);color:#627080;color:var(--muted);font-size:11px;line-height:1.5}.destination-open .catalog-status,.navigating .catalog-status{display:none}.offline{position:absolute;top:0;left:0;right:0;z-index:35;padding:8px 12px;background:var(--alert);color:var(--alert-text);text-align:center;font-size:12px;line-height:1.5}.toast{position:absolute;left:50%;bottom:132px;transform:translateX(-50%);z-index:35;width:max-content;max-width:calc(100% - 32px);padding:14px 18px;font-size:13px;line-height:1.6;overflow-wrap:break-word}
.navigating #search-panel,.navigating .destination{display:none!important}.navigating #guidance-stack{top:var(--gap);left:var(--gap);width:400px}.navigating #gps-strip.good:not(.has-recovery){display:none}.navigating #guidance-stack>#toast{position:static;left:auto;bottom:auto;width:100%;max-width:none;transform:none;order:5;pointer-events:none;padding:12px}
#scrim{z-index:30;background:rgba(8,20,36,.35)}.panel{position:absolute;right:var(--gap);top:var(--gap);bottom:var(--credit);z-index:31;width:420px;max-width:calc(100% - 24px);padding:22px;overflow-y:auto;overscroll-behavior:contain}.panel>header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin:-4px 0 18px;padding-right:42px}.panel>header .close-button{top:0;right:-8px}.panel h2{font-size:22px;font-weight:750;line-height:1.4}.panel h3{font-size:14px;font-weight:650;margin:22px 0 10px}.panel p{font-size:14px;line-height:1.65;margin:10px 0}.panel .muted{font-size:12px}
.option{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;padding:12px;border:1px solid var(--border);border-radius:12px;margin-bottom:8px;text-align:left}.option>span:first-child{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px}.option>span:last-child{min-width:0;flex:1}.option .ui-icon{width:25px;height:25px}.option strong{display:block;font-size:15px;line-height:1.5}.option small{display:block;font-size:12px;line-height:1.5;color:#627080;color:var(--muted);margin-top:3px}.option.selected{border-color:#167b61;border-color:var(--accent);color:#167b61;color:var(--accent);background:#eef5f2;background:var(--soft)}
.segmented{display:flex;gap:4px;padding:4px;background:#eef5f2;background:var(--soft);border-radius:12px}.segmented button{flex:1;min-width:0;min-height:48px;padding:8px 5px;border-radius:9px;font-size:12px;font-weight:600}.segmented button[aria-pressed=true]{background:#ffffff;background:var(--surface);color:#167b61;color:var(--accent)}.version{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:22px;padding-top:14px;border-top:1px solid var(--border);font-size:12px}.version strong{font:12px system-ui,sans-serif}.version button{margin-left:auto}
#filters{display:flex;flex-direction:column;overflow:hidden}#filters>header{flex-shrink:0}.filter-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.panel-actions{display:flex;align-items:center;gap:12px;flex-shrink:0;margin-top:10px;padding-top:12px;border-top:1px solid var(--border)}.panel-actions .primary{flex:1}.panel-actions button{min-height:48px}.charger-filter-options label{display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 0;line-height:1.5;font-size:14px}.charger-filter-options input,#category-options input,.vehicle-connectors input{width:22px;height:22px;flex:0 0 22px;accent-color:#167b61;accent-color:var(--accent)}.power-filter{justify-content:space-between}.power-filter span{min-width:0}.charger-filter-options select{min-width:0;max-width:47%;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:10px;background:#ffffff;background:var(--surface);color:#182431;color:var(--text);font-size:14px}.vehicle-connectors{margin:12px 0;padding:12px;border:1px solid var(--border);border-radius:12px;min-width:0}.vehicle-connectors legend{padding:0 4px;font-size:13px}.vehicle-connectors label,#category-options label{display:flex;align-items:center;gap:12px;min-height:48px;font-size:14px}.vehicle-connectors label{font-family:system-ui,sans-serif}#category-options label{border-bottom:1px solid var(--border);padding:8px 0}#charger-filter-status{padding-top:6px}
.corridor-card{padding:14px 0;margin:12px 0;border-bottom:1px solid var(--border)}.corridor-card h3{font-size:16px;line-height:1.5;margin:0 0 8px;overflow-wrap:break-word}.corridor-card p{font-size:13px;color:#627080;color:var(--muted);margin:6px 0}.corridor-card button{margin-top:6px}.trip-recovery{position:absolute;z-index:12;left:var(--gap);bottom:var(--credit);width:380px;max-width:calc(100% - 24px);display:flex;flex-wrap:wrap;gap:12px;padding:18px}.trip-recovery strong,.trip-recovery span{width:100%}.trip-recovery strong{font-size:18px}
.energy-form label{display:block;margin:14px 0;font-size:14px}.energy-form input{display:block;width:100%;min-height:48px;margin-top:6px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#ffffff;background:var(--surface);color:#182431;color:var(--text);font-size:16px}.history-toggle{display:flex;align-items:center;gap:12px;min-height:56px;font-size:13px;line-height:1.6}.history-toggle input{min-width:22px;min-height:22px;accent-color:#167b61;accent-color:var(--accent)}
.planned-stops>div{margin:6px 0}.planned-stops button{min-width:48px;min-height:48px;padding:8px 12px;border-radius:10px;background:#eef5f2;background:var(--soft)}.planned-stops .itinerary-row{padding:10px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.itinerary-estimate{display:block;color:#627080;color:var(--muted);font-size:13px;line-height:1.6}.itinerary-actions{display:flex;gap:6px;margin-top:6px}.itinerary-actions button:disabled{opacity:.45}
.phone-qr{width:200px;max-width:75%;margin:18px auto;background:#fff}.phone-qr svg{display:block;width:100%;height:auto}.pairing-code-help{display:block;text-align:center;color:#627080;color:var(--muted);font-size:12px;line-height:1.6}.pairing-code{display:block;margin:8px 0 18px;text-align:center;letter-spacing:6px;font:750 32px/1.5 system-ui,sans-serif;color:#167b61;color:var(--accent)}#phone-url{display:block}#phone-status{margin:14px 0}#phone-send-link{display:none}
.ecosystem-summary{margin:0 0 18px}.ecosystem-summary>div{padding:12px 0;border-bottom:1px solid var(--border)}.ecosystem-summary dt{font-size:12px;line-height:1.6;color:#627080;color:var(--muted);margin-bottom:4px}.ecosystem-summary dd{font-size:15px;margin:0;overflow-wrap:break-word}.ecosystem-account-link>span:first-child{flex:1;min-width:0;width:auto;display:block}.ecosystem-panel .primary{margin:18px 0 12px}#ecosystem-button svg{flex:0 0 26px}
.connection-health{margin:14px 0;padding:12px;border:1px solid var(--border);border-radius:12px;background:#eef5f2;background:var(--soft);font-size:13px}.connection-health ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.connection-health li{overflow-wrap:anywhere}.connection-health li:before{content:'';display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#627080;background:var(--muted)}.connection-health li[data-state=ready]:before{background:#178253}.connection-health li[data-state=waiting]:before{background:#aa7615}.connection-health li[data-state=error]:before{background:var(--danger)}
.diagnostic-raw{margin-top:20px;padding-top:14px;border-top:1px solid var(--border)}.diagnostic-raw h3{font-size:14px}.diagnostic-raw dl,#diagnostic-values{font-size:13px}.diagnostic-raw dt,#diagnostic-values dt{color:#627080;color:var(--muted);margin-top:12px}.diagnostic-raw dd,#diagnostic-values dd{margin:5px 0 0;overflow-wrap:anywhere;font-family:system-ui,sans-serif}#diagnostic-last-block{overflow-wrap:anywhere}#diagnostic-export-text{width:100%;min-height:160px;max-height:35vh;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#eef5f2;background:var(--soft);color:#182431;color:var(--text);font:13px/1.5 system-ui,sans-serif;resize:vertical}
.incoming-destination{position:absolute;right:100px;bottom:126px;z-index:12;width:350px;max-width:calc(100% - 24px);padding:18px;overflow-wrap:anywhere}.incoming-destination small{display:block;color:#627080;color:var(--muted);font-size:12px}.incoming-destination strong{display:block;margin-top:6px;font-size:19px;line-height:1.4}.incoming-destination p{font-size:13px;line-height:1.5;color:#627080;color:var(--muted);margin-top:6px}.incoming-destination-actions{display:flex;gap:8px;margin-top:12px}.incoming-destination-actions button{flex:1;min-height:48px;padding:9px 10px;border-radius:10px;background:#eef5f2;background:var(--soft);font-size:13px;font-weight:650}.incoming-destination-actions #incoming-destination-open{background:#167b61;background:var(--accent);color:var(--on-accent)}
.no-script{position:absolute;inset:10%;padding:30px;background:#fff;color:#152334;z-index:99}
.maplibregl-ctrl-attrib,.leaflet-control-attribution{font:10px/20px system-ui,sans-serif!important}.maplibregl-ctrl-bottom-right{z-index:4}.leaflet-bottom.leaflet-right{z-index:800}.maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib{margin:0 4px 0 0;max-width:calc(100vw - 8px)}
.nav-v4-poi{width:36px;height:36px;background:#fff;border:2px solid #fff;border-radius:12px;box-shadow:0 3px 9px #0003;position:relative;overflow:hidden}.nav-v4-poi__dot{display:flex;width:100%;height:100%;border-radius:9px;align-items:center;justify-content:center;color:#fff;font:700 22px system-ui}.nav-v4-poi__logo{position:absolute;top:3px;right:3px;bottom:3px;left:3px;width:26px;height:26px;object-fit:contain;background:#fff;border-radius:7px}
.nav-v4-endpoint{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:2px solid white;border-radius:50%;font:700 13px system-ui;box-shadow:0 2px 8px #0003}.nav-v4-endpoint--origin{background:#fac96c;color:#664400;border-style:dashed}.nav-v4-endpoint--destination{background:#d83444;color:white}
.nav-v4-cluster{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:3px solid #fff;border-radius:50%;background:#173f68;color:#fff;box-shadow:0 2px 7px #0004;font:700 13px system-ui,sans-serif;text-align:center;cursor:pointer}.nav-v4-cluster:focus{outline:3px solid #1681ef;outline-offset:3px}
@media(min-width:1600px){body{--gap:24px}#search-panel,.destination,.navigating #guidance-stack{width:440px}.trip{left:120px;width:500px}.control{width:60px;height:60px}.zoom-group button{width:60px;height:52px}#turn-distance{font-size:40px}#turn-instruction{font-size:18px}#turn-road,#then-turn{font-size:14px}.panel{width:460px}}
@media(min-width:701px) and (max-width:1100px){#search-panel,.destination,.navigating #guidance-stack{width:360px}.maneuver{padding:16px}#turn-distance{font-size:32px}.trip{width:430px;left:108px}.speed{width:72px;height:80px}}
@media(max-width:700px){body{--gap:12px}#search-panel{width:auto;left:12px;right:12px;padding:12px}.brand{font-size:14px;min-height:36px}.brand-symbol{width:32px;height:32px}.brand small{font-size:11px}.mobile-settings{right:8px;top:6px}#search-form{height:50px;margin:12px 0 10px}.chips{gap:5px}.chips button{font-size:12px;padding:7px 9px}.results{top:110px;max-height:48vh}
#guidance-stack{width:calc(100% - 96px);left:12px}.status-strip{font-size:12px;padding:8px 10px;gap:6px}#gps-label{flex-basis:100px}#gps-retry,#gps-phone-use{font-size:12px;padding:7px 8px}
#map-controls{right:12px;top:250px;gap:6px;max-height:calc(100% - 280px)}.control{width:48px;min-width:48px;height:48px;min-height:48px;font-size:21px}.control span{font-size:10px}.zoom-group button{width:48px;height:44px;min-height:44px}
.destination{left:12px;right:12px;width:auto;max-height:52vh}.destination-heading{padding:14px 56px 8px 14px}.destination h1{font-size:19px}.destination-scroll{padding:0 14px}.destination-actions{padding:10px 14px 12px}.destination-actions .primary{font-size:16px;min-height:52px}.destination-heading p{max-height:1.45em}
.destination-open #search-panel .brand,.destination-open #quick-filters,.destination-open #saved-quick{display:none}.destination-open #search-panel{padding:10px}.destination-open #search-form{margin:0 50px 0 0}.destination-open #search-panel .mobile-settings{top:10px;right:6px}.destination-open .results{top:64px}.destination-open #map-controls{top:96px;max-height:calc(48% - 100px)}.destination-open #recenter{order:-2}.destination-open #desktop-settings{order:-1}
.navigating #guidance-stack{left:12px;right:12px;top:12px;width:auto}.maneuver{padding:12px 14px}#turn-symbol{flex-basis:48px;width:48px;height:64px;font-size:46px}.maneuver-copy{margin-left:12px}#turn-distance{font-size:30px}#turn-instruction{font-size:15px;line-height:1.4;margin-top:4px}#turn-road{font-size:12px;margin-top:3px}#then-turn{font-size:12px;margin-top:9px;padding-top:8px}#road-advisory small{font-size:10px}
.navigating #map-controls{top:auto;bottom:124px;right:12px;display:grid;grid-template-columns:48px 48px;gap:6px;max-height:calc(100% - 280px);width:102px;padding:0;overflow-y:auto}.navigating #recenter{order:-2}.navigating #desktop-settings{order:-1}.navigating .zoom-group{grid-column:1/3;flex-direction:row;width:102px}.navigating .zoom-group button{width:51px}.navigating .zoom-group button+button{border-top:0;border-left:1px solid var(--border)}
.trip{left:12px;right:12px;width:auto;max-width:none;padding:12px 8px 12px 12px}.trip-metric{padding-right:8px}.trip-metric+.trip-metric{padding-left:8px}.trip strong{font-size:20px}.trip-metric>span{font-size:11px;line-height:1.35;margin-top:3px}.trip #stop-button{flex-basis:48px;padding-left:6px;margin-left:4px;min-height:48px}.stop-label{display:none}.trip-next-stop{font-size:12px}.speed{left:12px;bottom:124px;width:70px;height:76px}.speed strong{font-size:30px}.speed span{font-size:11px}
.panel{top:8px;bottom:24px;left:8px;right:8px;width:auto;max-width:none;padding:18px}.panel h2{font-size:21px}.catalog-status{font-size:10px;bottom:25px;left:12px;max-width:60%}.incoming-destination{left:12px;right:12px;bottom:132px;width:auto}.toast{bottom:124px}.trip-recovery{left:12px;right:12px;width:auto}#phone-send-link{display:flex}}
@media(max-width:360px){.chips button{font-size:11px;padding:7px 8px}.brand{font-size:13px}.trip strong{font-size:17px}.trip-metric{padding-right:5px}.trip-metric+.trip-metric{padding-left:5px}.trip-metric>span{font-size:10px}.trip #stop-button{margin-left:0;flex-basis:44px;min-width:44px}.destination h1{font-size:18px}.panel{padding:16px}}
/* Short displays switch to a left guidance column and a low horizontal dock. */
@media(max-height:520px) and (orientation:landscape){body{--gap:12px}#search-panel{left:12px;top:12px;width:300px;padding:10px}#search-panel .brand{display:none}#search-panel .mobile-settings{display:none}#search-form{margin:0 0 8px}#quick-filters{gap:4px}.chips button{font-size:11px;padding:7px 8px}.results{top:62px;max-height:calc(100vh - 90px)}
#guidance-stack{width:300px}.destination{left:auto;right:80px;width:310px;max-height:calc(100% - 48px)}.destination-heading{padding:12px 56px 6px 14px}.destination-heading p{max-height:1.45em}.destination h1{font-size:18px}.destination-scroll{padding:0 14px}.destination-actions{padding:8px 14px 12px}.destination-actions .primary{min-height:48px;font-size:15px}
#map-controls,.navigating #map-controls{top:12px;bottom:24px;right:12px;width:48px;display:flex;flex-direction:column;gap:6px;max-height:calc(100% - 36px)}.control{width:48px;min-width:48px;height:48px;min-height:48px}.control span{font-size:10px}.zoom-group,.navigating .zoom-group{width:48px;display:flex;flex-direction:column}.zoom-group button,.navigating .zoom-group button{width:48px;height:44px;min-height:44px}.navigating .zoom-group button+button{border-left:0;border-top:1px solid var(--border)}#recenter{order:-2}#desktop-settings{order:-1}
.navigating #guidance-stack{left:12px;top:12px;width:300px;right:auto}.maneuver{padding:12px}#turn-symbol{width:46px;flex-basis:46px;height:60px;font-size:44px}.maneuver-copy{margin-left:10px}#turn-distance{font-size:28px}#turn-instruction{font-size:14px;line-height:1.4}#turn-road,#then-turn{font-size:12px}#then-turn{margin-top:8px;padding-top:7px}
.navigating #gps-strip:not(.good),.navigating #gps-strip.good.has-recovery{position:absolute;left:calc(100% + 12px);top:0;width:calc(100vw - 404px);max-width:350px}
.trip{left:12px;right:auto;bottom:28px;width:420px;max-width:calc(100% - 180px);padding:10px 8px 10px 12px}.trip strong{font-size:20px}.trip-metric>span{font-size:11px}.trip #stop-button{flex-basis:48px;min-height:48px}.stop-label{display:none}.speed{left:444px;right:auto;bottom:28px;width:70px;height:78px}.speed strong{font-size:30px}
.panel{top:8px;bottom:24px;left:auto;right:8px;width:400px;max-width:calc(100% - 16px)}.incoming-destination{left:auto;right:80px;bottom:24px;width:310px;max-height:calc(100% - 48px);overflow:auto}.catalog-status{max-width:40%}.toast{bottom:112px}}
@media(max-width:620px) and (max-height:520px) and (orientation:landscape){#search-panel,.navigating #guidance-stack{width:270px}.destination{right:72px;width:280px}.trip{width:calc(100% - 160px);max-width:none}.trip strong{font-size:16px}.trip-metric>span{font-size:10px}.speed{left:auto;right:72px;width:66px;height:74px}.navigating #gps-strip:not(.good),.navigating #gps-strip.good.has-recovery{position:static;width:100%;max-width:none}}
@media(max-height:360px) and (orientation:landscape){#turn-distance{font-size:26px}.maneuver{padding:10px}#turn-symbol{height:54px}.trip{padding-top:8px;padding-bottom:8px}.trip strong{font-size:17px}.destination-heading p{display:none}}
@supports(height:100dvh){html,body{height:100dvh}}
@supports(padding:env(safe-area-inset-top)){#search-panel,#map-controls,#guidance-stack,.panel{margin-top:env(safe-area-inset-top)}#search-panel,#guidance-stack,.destination,.trip,.speed{margin-left:env(safe-area-inset-left)}#map-controls,.panel{margin-right:env(safe-area-inset-right)}.destination,.trip,.speed,.panel,.trip-recovery,.maplibregl-ctrl-bottom-right,.leaflet-bottom.leaflet-right{margin-bottom:env(safe-area-inset-bottom)}.navigating #map-controls{margin-bottom:env(safe-area-inset-bottom)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Shared passive location marker. Explicit geometry works without clip-path,
   CSS filters, animations, or map-plane pitch; screen size stays legible. */
.nav-v4-position{position:relative;width:56px;height:56px;z-index:4;pointer-events:none}
.nav-v4-position .nav-v4-position__halo{position:absolute;top:3px;left:3px;width:50px;height:50px;box-sizing:border-box;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(15,122,242,.12);box-shadow:0 2px 8px rgba(8,28,48,.18)}
.nav-v4-position .nav-v4-position__dot{position:absolute;top:14px;left:14px;width:28px;height:28px;box-sizing:border-box;border:4px solid #fff;border-radius:50%;background:#087dff;box-shadow:0 0 0 2px #10283b,0 2px 6px rgba(8,28,48,.3)}
.nav-v4-position .nav-v4-position__arrow{position:absolute;top:0;left:0;width:56px;height:56px;display:none;box-sizing:border-box;background:none;border:0;clip-path:none;-webkit-clip-path:none;filter:none;-webkit-filter:none;transform-origin:50% 50%;-webkit-transform-origin:50% 50%}
.nav-v4-position__arrow svg{display:block;width:56px;height:56px;overflow:visible}
.nav-v4-position.is-heading-known .nav-v4-position__arrow{display:block}
.nav-v4-position.is-heading-known .nav-v4-position__dot{display:none}
.night .nav-v4-position .nav-v4-position__halo{background:rgba(40,153,255,.18);border-color:rgba(255,255,255,.35)}
[data-gps-state="stale"] .nav-v4-position__shape,[data-gps-state="lost"] .nav-v4-position__shape,[data-gps-state="imprecise"] .nav-v4-position__shape,[data-gps-state="unverified-time"] .nav-v4-position__shape{fill:#607e96}
[data-gps-state="stale"] .nav-v4-position__shade,[data-gps-state="lost"] .nav-v4-position__shade,[data-gps-state="imprecise"] .nav-v4-position__shade,[data-gps-state="unverified-time"] .nav-v4-position__shade{fill:#435f75}
[data-gps-state="stale"] .nav-v4-position .nav-v4-position__dot,[data-gps-state="lost"] .nav-v4-position .nav-v4-position__dot,[data-gps-state="imprecise"] .nav-v4-position .nav-v4-position__dot,[data-gps-state="unverified-time"] .nav-v4-position .nav-v4-position__dot{background:#607e96}
[data-gps-state="stale"] .nav-v4-position .nav-v4-position__halo,[data-gps-state="lost"] .nav-v4-position .nav-v4-position__halo,[data-gps-state="imprecise"] .nav-v4-position .nav-v4-position__halo,[data-gps-state="unverified-time"] .nav-v4-position .nav-v4-position__halo{background:rgba(96,126,150,.12)}

body[data-gps-state="stale"] .nav-v4-position,body[data-gps-state="lost"] .nav-v4-position,body[data-gps-state="imprecise"] .nav-v4-position{opacity:.65}


/* Put the pairing QR beside its explanation in a shallow browser window. */
@media(max-height:520px) and (orientation:landscape){
 #phone{display:grid;grid-template-columns:minmax(0,1fr) 144px;gap:8px 14px;align-content:start;padding:18px}
 #phone>*{grid-column:1/3}#phone>header{margin:0;padding-right:36px}
 #phone>p:first-of-type{grid-column:1;grid-row:2;margin:0;font-size:13px;line-height:1.5}
 #phone-qr{grid-column:2;grid-row:2/5;width:144px;max-width:100%;margin:0;align-self:start}
 #phone-code-help{grid-column:1;grid-row:3;text-align:left}
 #phone-code{grid-column:1;grid-row:4;margin:0;text-align:left;font-size:26px;letter-spacing:4px}
}
/* Search categories share one authored location icon, with no extra JS work. */
.result-icon{font-size:0}.result-icon::before{content:'';display:block;width:24px;height:24px;background:center/24px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23176de5' stroke-width='1.8'%3E%3Cpath d='M19 10c0 5-7 11-7 11S5 15 5 10a7 7 0 1 1 14 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E")}
.night .result-icon::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238ab8ff' stroke-width='1.8'%3E%3Cpath d='M19 10c0 5-7 11-7 11S5 15 5 10a7 7 0 1 1 14 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E")}

/* Compact legal credits keep their existing reachable lane on narrow screens. */
@media(max-width:700px){.maplibregl-ctrl-attrib,.leaflet-control-attribution{font-size:9px!important}}
@media(max-width:360px){.maplibregl-ctrl-attrib,.leaflet-control-attribution{font-size:8px!important}}
/* Traffic controls live in the existing menu, keeping the map corridor clear. */
.traffic-option{display:flex;align-items:center;gap:12px;min-height:56px;margin-top:16px;padding:10px 0;cursor:pointer}
.traffic-option input{width:24px;height:24px;flex:0 0 24px;accent-color:#176de5}
.traffic-option span{min-width:0}.traffic-option strong,.traffic-option small{display:block}
.traffic-option small{margin-top:3px;color:#596a7c;font-size:13px;line-height:1.5}
.traffic-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin:8px 0 14px;font-size:12px;line-height:1.5}
.traffic-legend[hidden]{display:none}.traffic-legend span{display:inline-flex;align-items:center;gap:6px}
.traffic-legend i{display:inline-block;width:16px;height:5px;border-radius:3px}
.traffic-low{background:#2e9c61}.traffic-moderate{background:#e8ad35}.traffic-heavy{background:#ee7536}.traffic-severe{background:#cf3f49}
.night .traffic-option small{color:#b2c0d0}.night .traffic-option input{accent-color:#8ab8ff}
