.state-picker{z-index:60;background:var(--paper);color:var(--ink);font-family:var(--font-body);flex-direction:column;display:flex;position:fixed;inset:0}.state-picker__header{padding:calc(env(safe-area-inset-top,0px) + 8px) 12px 8px;border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;display:flex}.state-picker__header h2{margin:0;font-size:1.05rem}.state-picker__back{min-height:44px;color:var(--pine);font:inherit;background:0 0;border:0;padding:0 8px;font-weight:600}.state-picker__header-gap{min-width:88px}.state-picker__body{flex:1;min-height:0;padding:12px 16px;overflow-y:auto}.state-picker__empty{color:var(--ink-soft);text-align:center;padding:24px 0}.state-picker__sub{color:var(--ink-soft);font-size:.8rem;display:block}.state-picker__suggest{border:1px solid var(--pine);background:var(--panel);border-radius:10px;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex}.state-picker__suggest p{flex:1;margin:0;font-size:.9rem}.state-picker__suggest button{background:var(--pine);min-width:76px;min-height:44px;color:var(--on-pine);font:inherit;border:0;border-radius:8px;font-weight:600}.state-picker__suggest button:disabled{background:var(--field-muted);color:var(--field-muted-ink)}.state-picker__switch{border:1px solid var(--line);border-radius:8px;margin-bottom:12px;display:inline-flex;overflow:hidden}.state-picker__switch button{background:var(--panel);min-width:72px;min-height:44px;color:var(--ink);font:inherit;border:0;padding:0 14px}.state-picker__switch button[aria-pressed=true]{background:var(--pine);color:var(--on-pine);font-weight:600}.state-picker__tools{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.state-picker__tools .state-picker__switch{margin-bottom:12px}.state-picker__search{border:1px solid var(--line);background:var(--field);min-width:160px;min-height:44px;color:var(--ink);font-size:var(--text-input-min,16px);border-radius:8px;flex:1;margin-bottom:12px;padding:0 12px}.state-picker__list{margin:0;padding:0;list-style:none}.state-picker__row{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;min-height:54px;display:flex}.state-picker__row input{width:22px;height:22px;accent-color:var(--pine)}.state-picker__row-text{flex:1}.state-picker__row--installed{opacity:.6}.state-picker__size{font-variant-numeric:tabular-nums;color:var(--ink-soft)}.state-picker__map{margin:0}.state-picker__map svg{width:100%;height:auto;display:block}.state-picker__st{stroke:var(--paper);stroke-width:1px;cursor:pointer;outline:none}.state-picker__st--s0{fill:color-mix(in srgb, var(--pine) 18%, var(--panel))}.state-picker__st--s1{fill:color-mix(in srgb, var(--pine) 36%, var(--panel))}.state-picker__st--s2{fill:color-mix(in srgb, var(--pine) 56%, var(--panel))}.state-picker__st--s3{fill:color-mix(in srgb, var(--pine) 76%, var(--panel))}.state-picker__st--na,.state-picker__st--have{fill:var(--field-muted);cursor:default}.state-picker__st--on{fill:var(--amber)}.state-picker__st:focus-visible{stroke:var(--ink);stroke-width:3px}.state-picker__legend{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:.8rem;display:flex}.state-picker__legend small{flex-basis:100%}.state-picker__sw{border-radius:2px;width:18px;height:12px;display:inline-block}.state-picker__errors{color:var(--error-ink);background:var(--panel);border-top:1px solid var(--line);margin:0;padding:8px 16px;font-size:.85rem;list-style:none}.state-picker__tray{padding:10px 16px calc(env(safe-area-inset-bottom,0px) + 10px);border-top:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;gap:12px;display:flex}.state-picker__tray-text{flex:1;min-width:0}.state-picker__download{background:var(--pine);min-height:48px;color:var(--on-pine);font:inherit;border:0;border-radius:10px;padding:0 18px;font-weight:700}.state-picker__download:disabled{background:var(--field-muted);color:var(--field-muted-ink)}:root,.theme-light{--ink:#1a1f1c;--ink-soft:#4f5850;--paper:#e7ebe9;--panel:#f9fbfa;--line:#c2d0ca;--pine:#0e6b42;--pine-deep:#0a4a2e;--amber:#c1440e;--on-pine:#fff;--on-danger:#fff;--on-amber:var(--ink);--on-seg:#fff;--field:#fff;--field-muted:#e4e9e6;--field-muted-border:#d3dad6;--field-muted-ink:#8a938d;--line-soft:#dde5e1;--scrim:#1a1f1c66;--scrim-strong:#1a1f1c73;--panel-glass:#f9fbfad9;--map-fallback:#eef0ea;--warn-ink:#7a5200;--error-ink:#b91c1c;--day-route:#0e6b42;--curve-1:#8fae9f;--curve-2:#c7b03a;--curve-3:#e5891f;--curve-4:#cf4a2a;--curve-5:#8a1d5e;--lean-0:#3987e5;--lean-1:#256abf;--lean-2:#184f95;--lean-3:#0d366b;--map-good-road:#c1440e;--map-ring:#4f5850;--map-connector:#8a8f87;--map-casing:#f9fbfa;--map-tether:#2f5d50;--jam-day:#c4220f;--jam-closed-day:#6a1b9a;--jam-casing-day:#f9fbfa;--jam-night:#ff7a66;--jam-closed-night:#e29bff;--jam-casing-night:#0f1311;--camera-day:#b45309;--camera-halo-day:#f9fbfa;--camera-night:#ffd24d;--camera-halo-night:#0f1311;--danger:#a4190a;--danger-border:#e8b3a0;--temp-cold:#1f6fd6;--temp-cool:#4fa6dd;--temp-mild:#4f9d2e;--temp-warm:#d9a90a;--temp-hot:#e0311a;--route-ridden:#9aa8a0;--night-route:#4fe294;--night-route-ridden:#86958d;--focus-ring:var(--amber);--focus-ring-width:2px;--focus-ring-offset:2px;--seg-0:#0e6b42;--seg-1:#1f6fd6;--seg-2:#c0264a;--seg-3:#8b3fd1;--seg-4:#6fae1f;--seg-5:#d6a51a;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"Space Mono", ui-monospace, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.75rem;--text-input-min:16px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--radius:6px;--shadow:0 1px 2px #1a1f1c14, 0 6px 20px #1a1f1c0f;--shadow-rgb:26 31 28;--header-h:56px;--sidebar-w:340px}:root[data-theme=dark],.theme-dark{--ink:#e6ebe8;--ink-soft:#a3aea7;--paper:#0f1311;--panel:#161b18;--line:#333d37;--pine:#3fcf86;--pine-deep:#6fe0a5;--amber:#ff8a4d;--on-pine:#06251a;--on-danger:#2a0803;--on-amber:#24170a;--on-seg:#10140f;--field:#1d2420;--field-muted:#202823;--field-muted-border:#2b332e;--field-muted-ink:#8f9a93;--line-soft:#262e29;--scrim:#0009;--scrim-strong:#000000a6;--panel-glass:#161b18d9;--map-fallback:#0f1311;--warn-ink:#f2c46b;--error-ink:#ff8f7e;--danger:#ff8f7e;--danger-border:#6e2a20;--temp-cold:#6aa8f5;--temp-cool:#6cc0ec;--temp-mild:#7bc957;--temp-warm:#e8bb3c;--temp-hot:#ff6f58;--route-ridden:#6f7c75;--seg-0:#4fe294;--seg-1:#82b8ff;--seg-2:#ff8fa8;--seg-3:#c7aaf7;--seg-4:#a5dc5a;--seg-5:#f0c73f;--curve-1:#9fc4b0;--curve-2:#dcc44a;--curve-3:#f39a33;--curve-4:#ee6a48;--curve-5:#d873b0;--lean-0:#2f6fbf;--lean-1:#4d8fe0;--lean-2:#7ab0f0;--lean-3:#b5d5ff;--map-good-road:#ff8a4d;--map-ring:#a3aea7;--map-connector:#a3aea7;--map-casing:#0f1311;--map-tether:#7fd6b1;--shadow:0 1px 2px #00000080, 0 6px 20px #0006;--shadow-rgb:0 0 0}.theme-light,.theme-dark{color:var(--ink)}*,:before,:after{box-sizing:border-box}html{background:var(--paper)}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app__body{grid-template-columns:var(--sidebar-w) 1fr;flex:1;min-height:0;display:grid;position:relative}.app__map{min-height:0;position:relative}.header__lead{align-items:center;gap:var(--space-3);min-width:0;display:flex}.header__menu{align-items:center;gap:var(--space-1);font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2) var(--space-2);cursor:pointer;margin:2px 0;font-weight:600;display:none}.header__menu:hover{border-color:var(--pine)}.header__menu-icon,.header__menu-icon:before,.header__menu-icon:after{background:var(--ink);border-radius:2px;width:14px;height:2px;display:block}.header__menu-icon{position:relative}.header__menu-icon:before,.header__menu-icon:after{content:"";position:absolute;left:0}.header__menu-icon:before{top:-4px}.header__menu-icon:after{top:4px}.sidebar__close{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;align-self:flex-end;padding:6px 11px;line-height:1;display:none}.sidebar-backdrop{display:none}@media (width<=768px){.app__body{display:block}.app__map{height:100%}.header__menu{display:inline-flex}.header{position:relative}.header__brand{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sidebar{z-index:900;width:min(88%,360px);box-shadow:var(--shadow);transition:transform .25s;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.is-open{transform:none}.sidebar__close{display:block}.sidebar-backdrop{z-index:890;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity .25s,pointer-events 0s .25s;display:block;position:absolute;inset:0}.sidebar-backdrop.is-open{opacity:1;pointer-events:auto;transition:opacity .25s,pointer-events 0s .25s}}.bare-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.bare-shell>.nav-gate,.bare-shell>.nav-screen{flex:1;height:auto;min-height:0}.boot-splash{flex:1;place-items:center;min-height:0;display:grid}.boot-splash__spinner{border:2px solid var(--line);border-top-color:var(--pine);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite account-spin}@media (prefers-reduced-motion:reduce){.boot-splash__spinner{animation:none}}.header{align-items:center;gap:var(--space-4);padding:0 var(--space-4);background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0;display:flex}.header__brand{align-items:baseline;gap:var(--space-2);font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:-.01em;color:var(--ink);text-decoration:none;display:flex}.header__mark{flex:none;align-self:center;width:24px;height:24px}.header__sub{font-family:var(--font-body);font-weight:500;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft)}.error-fallback{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;padding:24px;display:flex}.error-fallback__title{font-size:var(--text-lg);color:var(--ink);margin:0;font-weight:600}.error-fallback__body{max-width:32ch;color:var(--ink-soft);margin:0}.nav-gate{justify-content:center;align-items:center;gap:var(--space-3);min-height:100dvh;padding:var(--space-4);text-align:center;background:var(--paper);flex-direction:column;display:flex}.nav-gate__title{font-family:var(--font-display);font-size:var(--text-xl);margin:0}.nav-gate__body{max-width:34ch;font-size:var(--text-sm);color:var(--ink-soft);margin:0;line-height:1.5}.nav-gate .btn--wide{max-width:22rem}.mode-chooser__hint{margin-top:var(--space-1);font-family:var(--font-body);font-weight:400;font-size:var(--text-xs);opacity:.85;display:block}.map-view__load-error{padding:var(--space-4);text-align:center;font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink-soft);background:var(--paper);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.camera-chip{top:calc(var(--space-3) + 44px);left:var(--space-3);z-index:2;align-items:center;gap:var(--space-2);max-width:calc(100% - 140px);padding:var(--space-1) var(--space-3);background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;margin:0;font-size:.9rem;font-weight:600;line-height:1.3;display:flex;position:absolute}.camera-chip__info{width:22px;height:22px;margin:0 calc(var(--space-2) * -1) 0 0;border:1px solid var(--line);color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border-radius:50%;flex:none;padding:0;font-size:.75rem;font-weight:700;line-height:1}.camera-chip__info:before{content:"i"}.camera-info{top:calc(var(--space-3) + 44px + 40px);left:var(--space-3);z-index:2;max-width:calc(100% - 140px);padding:var(--space-2) var(--space-3);background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;font-size:.8rem;line-height:1.35;position:absolute}.camera-info__credit{color:var(--ink-soft);margin:0}.camera-info__report{margin-top:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:12px;font-weight:600}.camera-chip__glyph{background:var(--camera-day);border-radius:50%;flex:none;width:12px;height:12px}.camera-chip--red_light .camera-chip__glyph,.camera-chip--average_speed .camera-chip__glyph,.camera-chip--mixed .camera-chip__glyph{border:3px solid var(--camera-day);background:0 0}.nav-screen--night .camera-chip__glyph{background:var(--camera-night)}.nav-screen--night .camera-chip--red_light .camera-chip__glyph,.nav-screen--night .camera-chip--average_speed .camera-chip__glyph,.nav-screen--night .camera-chip--mixed .camera-chip__glyph{border-color:var(--camera-night);background:0 0}:root[data-theme=dark] .gps .camera-chip__glyph{background:var(--camera-night)}:root[data-theme=dark] .gps .camera-chip--red_light .camera-chip__glyph,:root[data-theme=dark] .gps .camera-chip--average_speed .camera-chip__glyph,:root[data-theme=dark] .gps .camera-chip--mixed .camera-chip__glyph{border-color:var(--camera-night);background:0 0}.traffic-chip{top:var(--space-3);left:var(--space-3);z-index:2;max-width:calc(100% - 140px);padding:var(--space-1) var(--space-3);background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;margin:0;font-size:.9rem;font-weight:600;line-height:1.3;position:absolute}.traffic-chip p{margin:0}.traffic-chip--quiet{color:var(--ink-soft);font-weight:500}.traffic-chip__line{align-items:center;gap:var(--space-2);display:flex}.traffic-chip__swatch{border-top:4px dashed var(--jam-day);flex:none;width:22px;height:0}.traffic-chip__line--closed .traffic-chip__swatch{border-top:4px dotted var(--jam-closed-day)}.nav-screen--night .traffic-chip__swatch{border-top-color:var(--jam-night)}.nav-screen--night .traffic-chip__line--closed .traffic-chip__swatch{border-top-color:var(--jam-closed-night)}:root[data-theme=dark] .gps .traffic-chip__swatch{border-top-color:var(--jam-night)}:root[data-theme=dark] .gps .traffic-chip__line--closed .traffic-chip__swatch{border-top-color:var(--jam-closed-night)}.traffic-chip__note{color:var(--ink-soft);font-size:.8rem;font-weight:500}.header__trail{align-items:center;margin-left:auto;display:flex}.account-signin{align-items:center;gap:var(--space-1);background:var(--panel);border:1px solid var(--line);color:var(--ink);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-2);border-radius:var(--radius);cursor:pointer;margin:2px 0;font-weight:600;display:flex}.account-signin:hover{border-color:var(--pine)}.account-signin .gicon{width:15px;height:15px;color:var(--ink-soft);flex:none}.account-loading{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-soft);padding:var(--space-2) var(--space-3);display:flex}.account-loading .spinner{border:2px solid var(--line);border-top-color:var(--pine);border-radius:50%;width:13px;height:13px;animation:.8s linear infinite account-spin}@media (prefers-reduced-motion:reduce){.account-loading .spinner{animation:none}}@keyframes account-spin{to{transform:rotate(360deg)}}.account-menu{position:relative}.account-chip{align-items:center;gap:var(--space-2);background:var(--panel);border:1px solid var(--line);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink);border-radius:999px;margin:1px 0;display:flex}.account-chip:hover{border-color:var(--pine)}.avatar{background:linear-gradient(135deg, var(--pine), var(--pine-deep));width:22px;height:22px;color:var(--on-pine);font-family:var(--font-display);font-size:var(--text-xs);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.synced-dot,.error-dot{border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.synced-dot{background:var(--pine)}.error-dot{background:var(--danger)}.tt-wrap{display:inline-flex;position:relative}.tt-wrap .tooltip{top:calc(100% + var(--space-2));background:var(--ink);width:220px;color:var(--paper);font-size:var(--text-xs);border-radius:var(--radius);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow);opacity:0;pointer-events:none;z-index:20;line-height:1.45;transition:opacity .12s;position:absolute;right:-6px}.tt-wrap .tooltip:after{content:"";border:5px solid #0000;border-bottom-color:var(--ink);position:absolute;bottom:100%;right:10px}.tt-wrap:hover .tooltip,.tt-wrap:focus-within .tooltip{opacity:1}.dropdown{top:calc(100% + var(--space-2));background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:200px;box-shadow:var(--shadow);font-size:var(--text-sm);z-index:950;position:absolute;right:0;overflow:hidden}.dropdown__header{align-items:center;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--line);display:flex}.dropdown__header .avatar{width:30px;height:30px;font-size:var(--text-sm);flex:none}.dropdown__identity{flex:1;min-width:0}.dropdown__email{font-weight:600;font-size:var(--text-xs);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dropdown__status{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--ink-soft);margin-top:2px;display:flex}.dropdown__status--err{color:var(--danger)}.dropdown__status-sep{opacity:.5}.dropdown__plan-badge{font-weight:700}.dropdown__plan-badge--free{color:var(--ink-soft)}.dropdown__plan-badge--paid,.dropdown__plan-badge--friend{color:var(--pine)}.dropdown__plan-badge--unlimited{color:var(--amber)}.dropdown__section{border-top:1px solid var(--line)}.dropdown__cta-wrap{padding:var(--space-3)}.dropdown__cta{background:var(--pine);width:100%;color:var(--on-pine);border-radius:var(--radius);font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);cursor:pointer;text-align:center;border:none}.dropdown__cta:hover{background:var(--pine-deep)}.dropdown__cta:disabled{cursor:default;opacity:.7}.dropdown__cta-caption{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--ink-soft);text-align:center;line-height:1.4}.dropdown__and-more{color:var(--pine);font-weight:600;text-decoration:none}.dropdown__and-more:hover{text-decoration:underline}.dropdown__nav-row{width:100%;color:var(--ink);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-3);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;font-weight:600;display:flex}.dropdown__nav-row:hover{background:color-mix(in srgb, var(--ink) 6%, transparent)}.dropdown__nav-row:disabled{cursor:default;opacity:.6}.dropdown__nav-icon{color:color-mix(in srgb, var(--ink) 55%, transparent);display:inline-flex}.dropdown__nav-row--danger{color:var(--danger);justify-content:flex-start}.dropdown__nav-row--danger:hover{background:color-mix(in srgb, var(--danger) 8%, transparent)}.dropdown__friend-msg,.dropdown__billing-msg{margin:0 var(--space-3) var(--space-3);padding:var(--space-2);border-radius:var(--radius);background:color-mix(in srgb, var(--pine) 8%, transparent);font-size:var(--text-xs);color:var(--ink-soft)}.dropdown__delete{text-align:left;width:100%;color:var(--ink-soft);font-family:var(--font-body);font-size:var(--text-xs);padding:var(--space-2) var(--space-3) var(--space-3);cursor:pointer;background:0 0;border:none}.dropdown__delete:hover,.dropdown__delete:focus-visible{color:var(--danger)}.dropdown__telemetry-toggle{padding:var(--space-3)}.dropdown__units{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);display:flex}.dropdown__units .unit-toggle{flex:none}.dropdown__units--stacked{flex-direction:column;align-items:stretch}.dropdown__units--stacked .unit-toggle{align-self:flex-start}.map-canvas-root{width:100%;height:100%;position:absolute;inset:0}.map-canvas{background:var(--paper);width:100%;height:100%;position:absolute;inset:0}.snap-sheet-popup{gap:var(--space-2);flex-direction:column;display:flex}.snap-sheet__row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.snap-sheet__row--delta .snap-sheet__value{color:var(--ink-soft);font-variant-numeric:tabular-nums}.snap-sheet__label{min-width:3.25rem;color:var(--ink-soft);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.snap-sheet__value{min-width:0;font-size:var(--text-sm);flex:1}.snap-sheet__toggle{gap:var(--space-2);display:flex}.snap-sheet__actions{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.planner-map__reportbug{right:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));z-index:5;width:24px;height:24px;color:var(--pine);filter:drop-shadow(0 1px 2px #00000059);cursor:pointer;background:0 0;border:none;place-items:center;padding:0;display:grid;position:absolute}.planner-map__reportbug:hover{color:var(--pine-deep)}.undo-control,.nav-start-control{white-space:nowrap;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);box-shadow:0 4px 14px rgb(var(--shadow-rgb) / .18);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;border-radius:999px;flex-shrink:0;font-weight:600;display:inline-flex}.undo-control{left:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));z-index:5;background:var(--paper);border:1px solid var(--line);color:var(--ink);position:absolute}.undo-control:hover{border-color:var(--ink-soft)}.undo-control__icon{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;transform:rotate(-45deg)}.nav-start-control{left:50%;bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));z-index:5;background:var(--pine);border:1px solid var(--pine);color:var(--on-pine);position:absolute;transform:translate(-50%)}.nav-start-control:hover{background:var(--pine-deep)}.maplibregl-map{font-family:var(--font-body)}.maplibregl-ctrl-group button{color:var(--ink)}.maplibregl-ctrl-group{border:1px solid var(--line)}:root[data-theme=dark] .maplibregl-ctrl-group{background:var(--panel)}:root[data-theme=dark] .maplibregl-ctrl-group button+button{border-top-color:var(--line)}:root[data-theme=dark] .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert()}:root[data-theme=dark] .maplibregl-ctrl-group button:not(:disabled):hover{background-color:var(--paper)}.maplibregl-ctrl-attrib{background:var(--panel-glass);color:var(--ink-soft);font-size:11px}.maplibregl-ctrl-attrib a{color:var(--ink-soft)}.maplibregl-popup-content{background:var(--paper);color:var(--ink);border-radius:var(--radius);box-shadow:0 2px 10px rgb(var(--shadow-rgb) / .25);padding:var(--space-3)}.maplibregl-popup-anchor-top .maplibregl-popup-tip{border-bottom-color:var(--paper)}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:var(--paper)}.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--paper)}.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--paper)}@media (width<=560px){.header__sub{display:none}}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.touch-diag-pill{left:var(--space-2);top:calc(env(safe-area-inset-top,0px) + 52px);z-index:960;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--ink);color:var(--paper);border-radius:999px;display:flex;position:fixed;box-shadow:0 2px 8px #00000059}.touch-diag-pill__grip{cursor:grab;touch-action:none;flex:none;justify-content:center;align-items:center;width:32px;height:40px;display:inline-flex}.touch-diag-pill__dot{background:var(--amber);border-radius:50%;flex:none;width:10px;height:10px}.touch-diag-pill__btn{min-height:40px;padding:0 var(--space-3);font-family:var(--font-body);font-size:var(--text-sm);color:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;font-weight:700}.touch-diag-pill__btn:hover{background:color-mix(in srgb, var(--paper) 15%, transparent)}.touch-diag{gap:var(--space-3);padding:0 var(--space-1) var(--space-2);flex-direction:column;display:flex}.touch-diag__intro{margin:0;line-height:1.45}.touch-diag__steps{padding-left:var(--space-4);font-size:var(--text-sm);color:var(--ink);margin:0;line-height:1.5}.touch-diag__status{align-items:center;gap:var(--space-2);font-size:var(--text-sm);margin:0;font-weight:600;display:flex}.touch-diag__dot{background:var(--line);border-radius:50%;flex:none;width:10px;height:10px}.touch-diag__dot--on{background:var(--amber)}.touch-diag__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.touch-diag__log{max-height:40vh;padding:var(--space-2);font-family:var(--font-mono);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);white-space:pre;-webkit-user-select:text;user-select:text;margin:0;font-size:11px;line-height:1.4;overflow:auto}.curve-tint-toggle{left:var(--space-3);top:var(--space-3);z-index:5;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-3);background:var(--panel);border:1px solid var(--line);box-shadow:0 4px 14px rgb(var(--shadow-rgb) / .18);font-size:var(--text-sm);color:var(--ink);cursor:pointer;border-radius:999px;font-weight:600;display:inline-flex;position:absolute}.curve-tint-toggle--second{top:calc(var(--space-3) + 44px)}.curve-legend{left:var(--space-3);right:var(--space-3);bottom:calc(var(--space-3) + 52px + env(safe-area-inset-bottom,0px));z-index:4;gap:var(--space-2);max-width:420px;padding:var(--space-2) var(--space-3) var(--space-3);background:var(--panel);border:1px solid var(--line);box-shadow:0 6px 20px rgb(var(--shadow-rgb) / .12);border-radius:10px;display:grid;position:absolute}.curve-legend__title{font-family:var(--font-display);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);justify-content:space-between;font-weight:600;display:flex}.curve-legend__title span{text-transform:none;letter-spacing:0;font-family:var(--font-body);font-weight:500}.curve-legend__ramp{grid-template-columns:repeat(5,1fr);gap:3px 8px;margin:0;padding:0;list-style:none;display:grid}.curve-legend__ramp li{gap:2px;display:grid}.curve-legend__ramp i{border-radius:2px;height:8px}.curve-legend__ramp span{color:var(--ink-soft);font-size:11px;line-height:1.2}.curve-legend__trip{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-soft);display:flex}.curve-legend__trip b{color:var(--ink)}.dropdown__nav-label{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.dropdown__nav-sub{font-size:var(--text-xs);color:var(--ink-soft);font-weight:400}.offline-maps{gap:var(--space-3);flex-direction:column;display:flex}.offline-maps__placeholder{color:var(--ink-soft);margin:0}.offline-maps__meter{background:var(--field-muted);border-radius:5px;height:10px;display:flex;overflow:hidden}.offline-maps__meter-states{background:var(--pine)}.offline-maps__meter-routes{background:var(--amber)}.offline-maps__summary{margin:var(--space-2) 0 0;font-weight:600}.offline-maps__legend,.offline-maps__footnote{font-size:var(--text-xs);color:var(--ink-soft);margin:0}.offline-maps__notice{padding:var(--space-2);border-radius:var(--radius);background:color-mix(in srgb, var(--amber) 12%, transparent);color:var(--warn-ink);margin:0}.offline-maps__empty{color:var(--ink-soft);margin:0}.offline-maps__list{margin:0;padding:0;list-style:none}.offline-maps__row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--line-soft);display:flex}.offline-maps__row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.offline-maps__name{font-weight:600}.offline-maps__status{font-size:var(--text-sm);color:var(--ink-soft)}.offline-maps__progress{width:100%;height:6px}.offline-maps__error{font-size:var(--text-xs);color:var(--error-ink)}.offline-maps__row-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.offline-banner,.reroute-toast{z-index:5;max-width:calc(100% - var(--space-6));padding:var(--space-2) var(--space-4);border-radius:var(--radius-md,8px);text-align:center;font-size:var(--text-sm,.9rem);margin:0;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000040}.offline-banner{top:var(--space-3);background:var(--ink,#1c1c1c);color:#fff;flex-direction:column;display:flex}.offline-banner small{font-size:var(--text-xs);opacity:.8}.reroute-toast{bottom:var(--space-4);background:var(--amber);color:#24170a;font-weight:600}.sidebar{touch-action:pan-y;overscroll-behavior-x:none;min-height:0;padding:var(--space-4);gap:var(--space-4);background:var(--panel);border-right:1px solid var(--line);flex-direction:column;display:flex;overflow:hidden auto}.tripbar{gap:var(--space-2);align-items:center;display:flex}.tripbar__name{min-width:0;font-family:var(--font-display);font-weight:600;font-size:var(--text-md);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2) var(--space-3);flex:1}.tripbar__actions{gap:0;display:flex}.btn{font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2) var(--space-3);cursor:pointer;font-weight:600}.btn:hover{border-color:var(--ink-soft)}.btn:disabled{opacity:.55;cursor:default}.btn--primary{background:var(--pine);border-color:var(--pine);color:var(--on-pine)}.btn--primary:hover{background:var(--pine-deep)}.btn--danger{color:var(--danger);border-color:var(--danger-border)}.tripbar__icon-btn{padding:var(--space-2) var(--space-1);border-radius:var(--radius);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.tripbar__icon-btn:hover{color:var(--ink);background:var(--line)}.tripbar__icon-btn:disabled{opacity:.5;cursor:default}.tripbar__icon-btn--dirty{color:var(--pine)}.tripbar__icon-btn--dirty:hover{color:var(--pine-deep);background:color-mix(in srgb, var(--pine) 12%, transparent)}.btn--danger:hover{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.icon-btn{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:2px 7px;line-height:1}.icon-btn:hover{border-color:var(--ink-soft);color:var(--ink)}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn--danger:hover{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.search{position:relative}.search__field{align-items:center;display:flex;position:relative}.search__icon{left:var(--space-2);color:var(--ink-soft);pointer-events:none;position:absolute}.search__input{width:100%;font-family:var(--font-body);font-size:var(--text-input-min);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2) var(--space-3)}.search__field .search__input{padding-left:calc(var(--space-2) * 2 + 16px);padding-right:calc(var(--space-2) * 2 + 16px)}.search__field .search__input::-webkit-search-cancel-button{appearance:none;display:none}.search__clear{right:var(--space-2);color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:2px;display:flex;position:absolute}.search__clear:hover{color:var(--ink)}.search__spinner{right:calc(var(--space-2) + 24px);color:var(--ink-soft);pointer-events:none;position:absolute}@media (prefers-reduced-motion:no-preference){.search__spinner{animation:1.1s linear infinite nav-spin}}.search__note{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--danger)}.search__results{margin:var(--space-2) 0 0;padding:var(--space-1);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);list-style:none}.search__result{text-align:left;width:100%;font-size:var(--text-sm);color:var(--ink);padding:var(--space-2);cursor:pointer;background:0 0;border:0;border-radius:4px;display:block}.search__result:hover{background:var(--panel)}.search__result-sub{font-size:var(--text-xs,.75rem);color:var(--ink-muted,var(--ink));opacity:.7;display:block}.stats{gap:var(--space-3);flex-direction:column;display:flex}.stats__figures{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;display:flex}.stat{flex-direction:column;gap:2px;display:flex}.stat__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.stat__value{font-family:var(--font-mono);font-size:var(--text-lg);color:var(--ink)}.stats--stale .stats__figures,.stats--stale .curviness{opacity:.55}.stat__note{font-size:var(--text-xs);color:var(--ink-soft)}.unit-toggle{border:1px solid var(--line);border-radius:var(--radius);display:inline-flex;overflow:hidden}.unit-toggle button{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);background:var(--paper);padding:var(--space-1) var(--space-3);cursor:pointer;border:0}.unit-toggle button.is-active{background:var(--pine);color:var(--on-pine)}.panel{gap:var(--space-2);flex-direction:column;display:flex}.panel__title{font-family:var(--font-display);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:0;font-weight:600}.panel__title--with-info{align-items:center;gap:var(--space-2);display:flex}.panel__info{color:var(--ink-soft);opacity:.7;display:inline-flex}.info-tip{cursor:help;align-self:center;display:inline-flex;position:relative}.info-tip__bubble{z-index:20;width:max-content;max-width:200px;padding:var(--space-2) var(--space-3);background:var(--ink);color:var(--paper);font-size:var(--text-xs);text-transform:none;letter-spacing:normal;border-radius:var(--radius);box-shadow:var(--shadow);opacity:0;visibility:hidden;pointer-events:none;font-weight:400;line-height:1.4;transition:opacity 50ms;position:absolute;top:calc(100% + 6px);left:0}.info-tip--right .info-tip__bubble{left:auto;right:0}.info-tip--center .info-tip__bubble{left:50%;right:auto;transform:translate(-50%)}.info-tip--up .info-tip__bubble{top:auto;bottom:calc(100% + 6px)}.info-tip:hover .info-tip__bubble,.info-tip:focus-visible .info-tip__bubble{opacity:.85;visibility:visible}.panel__title--collapsible{margin:0}.panel__toggle{justify-content:space-between;align-items:center;gap:var(--space-1);width:100%;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;background:0 0;border:none;margin:0;padding:0;display:flex}.panel__gear{color:var(--ink-soft);flex:none}.panel__gear-btn{padding:var(--space-1);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.panel__gear-btn:hover .panel__gear{color:var(--ink)}.empty,.note{font-size:var(--text-sm);color:var(--ink-soft);margin:0;line-height:1.4}.note{margin-top:var(--space-2);color:var(--amber)}.stops__header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.stops__header .panel__title--collapsible{flex:auto;min-width:0}.stops__hide-passthrough-toggle{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--ink-soft);cursor:pointer;white-space:nowrap;flex:none;display:flex}.stops{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.stop{align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius);border:1px solid #0000;display:flex}.stop:hover{border-color:var(--line);background:var(--paper)}.stop__num{width:22px;height:22px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--on-pine);background:var(--pine);border-radius:50%;flex:none;place-items:center;display:grid}.stop__label{min-width:0;font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.stop__actions{gap:4px;display:flex}.legs{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.leg{align-items:center;column-gap:var(--space-2);text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);width:100%;padding:var(--space-2);cursor:pointer;grid-template-columns:12px minmax(0,1fr) auto;row-gap:3px;display:grid}.leg:hover{border-color:var(--ink-soft)}.leg--active{border-color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber)}.leg__swatch{border-radius:3px;flex:none;width:12px;height:12px}.leg__route{min-width:0;font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;grid-column:2/4;overflow:hidden}.leg__stats{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);grid-column:2}.leg__curve{grid-column:3;display:flex}.route-choices{margin:var(--space-2) 0 0;gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.route-choice{align-items:center;column-gap:var(--space-2);text-align:left;width:100%;min-height:44px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2);cursor:pointer;grid-template-columns:minmax(0,1fr) auto;row-gap:3px;display:grid}.route-choice:hover{border-color:var(--ink-soft)}.route-choice--on{border-color:var(--pine);box-shadow:inset 0 0 0 1px var(--pine)}.route-choice__name{align-items:center;gap:var(--space-2);min-width:0;font-family:var(--font-display);font-size:var(--text-sm);display:flex}.route-choice__badge{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--pine);border:1px solid var(--pine);border-radius:999px;padding:0 6px}.route-choice__stats{gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);display:flex}.route-choice__stats b{color:var(--ink);font-weight:600}.route-choice__curve{grid-column:1/3}.route-choice__curve--none{font-size:var(--text-xs);color:var(--ink-soft)}.route-choices__entry{align-items:center;gap:var(--space-2);margin-top:var(--space-2);display:flex}.route-choices__note{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--ink-soft)}.curve-pips{vertical-align:middle;flex:none;gap:2px;display:inline-flex}.curve-pips svg{display:block}.curve-pips__on{color:var(--pine)}.curve-pips__off{color:var(--line)}.curve-line{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--ink-soft);display:inline-flex}.curviness{gap:var(--space-1);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2) var(--space-3);display:grid}.curviness__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.curviness__row{align-items:center;gap:var(--space-2);display:flex}.curviness__word{font-family:var(--font-display);font-size:var(--text-md);color:var(--ink)}.curviness__num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);margin-left:auto}.curviness__short{font-size:var(--text-sm);color:var(--ink-soft);margin:0}.curviness__how{font-size:var(--text-xs);justify-self:start}.curve-help{gap:var(--space-3);font-size:var(--text-sm);display:grid}.curve-help p{margin:0}.curve-help__steps{gap:var(--space-1);margin:0;padding-left:1.25rem;display:grid}.curve-help__diagrams{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.curve-help__diagrams figure{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:var(--space-1);margin:0}.curve-help__diagrams svg{width:100%;height:auto;display:block}.curve-help__diagrams figcaption{text-align:center;color:var(--ink-soft);font-size:11px;line-height:1.3}.curve-help__scale,.curve-help__notes{gap:4px;margin:0;padding:0;list-style:none;display:grid}.curve-help__scale li{align-items:center;gap:var(--space-2);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.curve-help__range{white-space:nowrap;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft)}.curve-help__notes li{color:var(--ink-soft);padding-left:1.25rem;position:relative}.curve-help__notes li:before{content:"✓";color:var(--pine);position:absolute;left:0}.curve-help__notes li.curve-help__note--warn:before{content:"!";color:var(--amber);font-weight:700;left:.3rem}.ride-stats{margin-bottom:var(--space-2)}.ride-stats__grid{gap:var(--space-2);grid-template-columns:1fr 1fr;margin:0;display:grid}.ride-stats__item{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:var(--space-2)}.ride-stats__item--wide{grid-column:1/-1}.ride-stats__item dt{font-size:var(--text-xs);color:var(--ink-soft);margin:0 0 2px}.ride-stats__item dd{font-family:var(--font-mono);margin:0;font-weight:600}.library__header{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.library__sort{margin:var(--space-2) 0;justify-content:flex-end;display:flex}.library__sort button{padding:2px var(--space-2);font-size:var(--text-xs);background:var(--panel);color:var(--ink-soft);border:1px solid var(--line);cursor:pointer;font-weight:600}.library__sort button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.library__sort button:last-child{border-radius:0 var(--radius) var(--radius) 0;border-left:none}.library__sort button[aria-pressed=true]{background:var(--pine);border-color:var(--pine);color:var(--on-pine)}.saved__curve{margin-top:2px}.library{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.library-window{overflow:auto}.library.library--windowed-inner{display:block;position:relative}.saved{align-items:center;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:var(--space-2);cursor:pointer;display:flex}.saved:hover{border-color:var(--ink-soft)}.saved--current{border-color:var(--pine)}.saved--dragging{opacity:.5}.saved--drop-target{border-top:2px solid var(--pine)}.saved__grip{color:var(--ink-soft);opacity:.6;cursor:grab;flex:none;align-items:center;display:flex}.saved__grip--off{visibility:hidden}.saved__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.saved__title-row{align-items:center;gap:5px;display:flex}.saved__edit{width:20px;height:20px;font-size:var(--text-sm);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;display:inline-flex}.saved__edit:hover{color:var(--ink);background:var(--line)}.saved__name{min-width:0;font-size:var(--text-sm);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.saved__meta{font-size:var(--text-xs);color:var(--ink-soft)}.saved__rename-input{min-width:0;font-size:var(--text-input-min);color:var(--ink);background:var(--paper);border:1px solid var(--pine);border-radius:var(--radius);padding:2px var(--space-1);flex:1;font-weight:600}.saved__download--ready{color:var(--pine);border-color:var(--pine);background:color-mix(in srgb, var(--pine) 10%, var(--paper))}.saved__download--downloading{color:var(--pine);border-color:var(--pine)}@media (prefers-reduced-motion:no-preference){.saved__download--downloading svg{animation:1.1s linear infinite nav-spin}}.wp-pin{width:28px;height:28px;font-family:var(--font-mono);color:var(--on-seg);box-shadow:0 1px 4px rgb(var(--shadow-rgb) / .4);background:var(--pin-color,var(--seg-1));border:2px solid #fff;border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.wp-pin--start{--pin-color:var(--pine)}.wp-pin--end{--pin-color:var(--amber)}.wp-pin--passthrough{background:var(--paper);color:var(--pin-color,var(--seg-1));border-color:var(--pin-color,var(--seg-1))}.wp-pin--icon-fuel:before,.wp-pin--icon-home:before,.wp-pin--icon-poi:before,.wp-pin--icon-address:before,.wp-pin--icon-generic:before,.wp-pin--icon-through:before{content:"";background-color:currentColor;width:15px;height:15px;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.wp-pin--icon-fuel:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V4a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v17M2 21h12M14 8h2.5a1.5 1.5 0 0 1 1.5 1.5V17a1.5 1.5 0 0 0 3 0V9.5L18 6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V4a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v17M2 21h12M14 8h2.5a1.5 1.5 0 0 1 1.5 1.5V17a1.5 1.5 0 0 0 3 0V9.5L18 6'/%3E%3C/svg%3E")}.wp-pin--icon-home:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 11 12 4l8 7v9a1 1 0 0 1-1 1h-4v-6H9v6H5a1 1 0 0 1-1-1z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 11 12 4l8 7v9a1 1 0 0 1-1 1h-4v-6H9v6H5a1 1 0 0 1-1-1z'/%3E%3C/svg%3E")}.wp-pin--icon-poi:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.26L22 9.27l-5 4.87L18.18 21 12 17.27 5.82 21 7 14.14 2 9.27l7.1-1.01z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.26L22 9.27l-5 4.87L18.18 21 12 17.27 5.82 21 7 14.14 2 9.27l7.1-1.01z'/%3E%3C/svg%3E")}.wp-pin--icon-address:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E")}.wp-pin--icon-generic:before{border-radius:50%;width:9px;height:9px;-webkit-mask-image:none;mask-image:none}.wp-pin--icon-through:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 12h6M16 12h6' stroke='black' stroke-width='2.25' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='12' r='4' fill='black'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 12h6M16 12h6' stroke='black' stroke-width='2.25' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='12' r='4' fill='black'/%3E%3C/svg%3E")}.current-location-puck{background:var(--pine);border:2.5px solid var(--panel);width:16px;height:16px;box-shadow:0 0 6px 1px color-mix(in srgb, var(--pine) 50%, transparent), 0 1px 3px #00000059;border-radius:50%;display:block;position:relative}.current-location-puck:before,.current-location-puck:after{content:"";background:var(--pine);opacity:.5;border-radius:50%;animation:2.6s cubic-bezier(0,0,.2,1) infinite current-location-ping;position:absolute;inset:0}.current-location-puck:after{animation-delay:1.3s}@keyframes current-location-ping{0%{opacity:.5;transform:scale(1)}75%,to{opacity:0;transform:scale(3.6)}}@media (prefers-reduced-motion:reduce){.current-location-puck:before,.current-location-puck:after{opacity:.22;animation:none;transform:scale(3)}.current-location-puck:after{display:none}}.leg-drag-handle{background:var(--amber);width:16px;height:16px;box-shadow:0 1px 4px rgb(var(--shadow-rgb) / .4);border:2px solid #fff;border-radius:50%;display:block}.wp-popup{gap:var(--space-2);font-family:var(--font-body);flex-direction:column;display:flex}.wp-popup__label{color:var(--ink-soft);font-size:var(--text-sm)}.wp-popup__note{font-size:var(--text-xs);color:var(--pine);font-style:italic}.fuel-pin{width:22px;height:22px;box-shadow:0 1px 4px rgb(var(--shadow-rgb) / .4);background:var(--amber);border:2px solid #fff;border-radius:4px;display:block;transform:rotate(45deg)}.fuel-popup{gap:var(--space-2);font-family:var(--font-body);flex-direction:column;display:flex}.fuel-popup__brand{color:var(--ink-soft);font-size:var(--text-sm)}.fuel-popup__hint{font-size:var(--text-xs);color:var(--ink-soft);line-height:1.35}.gas-near-stop{gap:var(--space-2);flex-direction:column;display:flex}.gas-near-stop__sub{font-size:var(--text-xs);color:var(--ink-soft);margin:0}.gas-near-stop__error{font-size:var(--text-xs);color:var(--danger);margin:0}.gas-near-stop__picker{gap:var(--space-2);flex-direction:column;display:flex}.gas-near-stop__select{border:1px solid var(--line);border-radius:var(--radius);background:var(--field);width:100%;font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink);padding:6px 8px}.gas-near-stop__actions{gap:var(--space-2);display:flex}.gas-near-stop__actions .btn{font-size:var(--text-xs);flex:1}.maplibregl-popup.leg-map-popup-wrap .maplibregl-popup-content{padding:var(--space-2)}.leg-map-popup{width:min(168px,60vw);font-family:var(--font-body);flex-direction:column;gap:4px;display:flex}.leg-map-popup__header{text-align:center;font-size:var(--text-sm);flex-direction:column;align-items:center;gap:1px;margin-bottom:2px;display:flex}.leg-map-popup__stats{color:var(--ink-soft);font-size:11px;font-family:var(--font-mono)}.leg-map-popup .prefs__list{gap:0}.leg-map-popup .pref__label{gap:var(--space-2);padding:3px 2px}.leg-map-popup .pref__text{font-size:var(--text-xs)}.leg-map-popup .pref__switch{width:28px;height:16px}.leg-map-popup .pref__switch:after{width:12px;height:12px}.leg-map-popup .pref__switch:checked:after{transform:translate(12px)}.maplibregl-popup.good-road-popup-wrap .maplibregl-popup-content{padding:var(--space-2)}.good-road-popup{width:min(180px,60vw);font-family:var(--font-body);flex-direction:column;gap:6px;display:flex}.good-road-popup__header{text-align:center;font-size:var(--text-sm);flex-direction:column;align-items:center;gap:1px;margin-bottom:2px;display:flex}.good-road-popup__stats{color:var(--ink-soft);font-size:11px;font-family:var(--font-mono)}.prefs{gap:var(--space-3);flex-direction:column;display:flex}.prefs__list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pref__label{align-items:flex-start;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius);cursor:pointer;display:flex}.pref__label:hover{background:var(--paper)}.pref__switch{appearance:none;background:var(--line);border:1px solid var(--line);cursor:pointer;border-radius:999px;flex:none;width:38px;height:22px;margin-top:1px;transition:background .15s;position:relative}.pref__switch:after{content:"";width:16px;height:16px;box-shadow:0 1px 2px rgb(var(--shadow-rgb) / .35);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.pref__switch:checked{background:var(--pine);border-color:var(--pine)}.pref__switch:checked:after{transform:translate(16px)}.pref__switch:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}.pref__text{font-size:var(--text-sm);color:var(--ink);flex-direction:column;gap:2px;display:flex}.pref__hint{font-size:var(--text-xs);color:var(--ink-soft);line-height:1.35}.pref__label--sub{padding-left:calc(var(--space-2) + 38px + var(--space-3));cursor:default;justify-content:space-between;align-items:center}.pref__label--sub:hover{background:0 0}.pref__number{width:5em;padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius);font-size:var(--text-sm);color:var(--ink);background:var(--field)}.pref__number:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}.pref__error{padding:0 var(--space-2);color:var(--danger);font-size:var(--text-xs);margin:0}.fuel-range{padding:var(--space-2);position:relative}.fuel-range__top{margin-bottom:var(--space-2);justify-content:space-between;align-items:baseline;display:flex}.fuel-range__label-group{align-items:center;gap:var(--space-1);display:flex}.fuel-range__label{font-size:var(--text-sm);color:var(--ink);font-weight:600}.fuel-range__info.tt-wrap{position:static}.fuel-range__info-btn{width:16px;height:16px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.fuel-range__info-btn:hover,.fuel-range__info-btn:focus-visible{color:var(--pine)}.fuel-range__info-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}.fuel-range__info-btn svg{width:14px;height:14px}.fuel-range .tooltip.fuel-range__info-tooltip{top:28px;left:var(--space-2);right:var(--space-2);width:auto}.fuel-range .tooltip.fuel-range__info-tooltip:after{left:12px;right:auto}.fuel-range__readout{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--pine);font-variant-numeric:tabular-nums;font-weight:700}.fuel-range__slider{appearance:none;background:var(--line);cursor:pointer;border-radius:999px;width:100%;height:6px;margin:0;display:block}.fuel-range__slider::-webkit-slider-runnable-track{-webkit-appearance:none;border-radius:999px;height:6px}.fuel-range__slider::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--pine);width:18px;height:18px;box-shadow:0 1px 3px rgb(var(--shadow-rgb) / .3);cursor:pointer;background:#fff;border-radius:50%;margin-top:-6px}.fuel-range__slider::-moz-range-track{background:0 0;border-radius:999px;height:6px}.fuel-range__slider::-moz-range-thumb{border:2px solid var(--pine);width:18px;height:18px;box-shadow:0 1px 3px rgb(var(--shadow-rgb) / .3);cursor:pointer;background:#fff;border-radius:50%}.fuel-range__slider:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}.fuel-range__slider:disabled{opacity:.6;cursor:default}.fuel-range__ticks{margin-top:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);justify-content:space-between;display:flex}.sidebar__footer{margin:var(--space-2) 0 0;padding-top:var(--space-2);border-top:1px solid var(--line);flex-direction:column;display:flex}.sidebar__version{justify-content:center;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:color-mix(in srgb, var(--ink-soft) 70%, transparent);text-align:center;display:flex}.sidebar__privacy-link{color:inherit;text-decoration:none}.sidebar__privacy-link:hover,.sidebar__privacy-link:focus-visible{text-decoration:underline}.sidebar__attribution{font-size:var(--text-xs);color:color-mix(in srgb, var(--ink-soft) 70%, transparent);text-align:center;margin:0;line-height:1.6}.sidebar__attribution a{color:inherit;text-decoration:none}.sidebar__attribution a:hover,.sidebar__attribution a:focus-visible{text-decoration:underline}.good-roads__header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.good-roads__on-map-toggle{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--ink-soft);cursor:pointer;flex:none;display:flex}.good-roads__sub{font-size:var(--text-xs);color:var(--ink-soft);margin:-4px 0 0}.good-roads__status{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-soft);display:flex}.good-roads__spinner{border:2px solid var(--line);border-top-color:var(--pine);border-radius:50%;flex:none;width:13px;height:13px;animation:.8s linear infinite account-spin}@media (prefers-reduced-motion:reduce){.good-roads__spinner{animation:none}}.good-roads__empty{padding:var(--space-3);text-align:center;font-size:var(--text-sm);color:var(--ink-soft);margin:0;line-height:1.5}.good-roads__error{font-size:var(--text-sm);color:var(--danger);margin:0}.good-roads__threshold{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--ink-soft);display:flex}.good-roads__threshold input[type=range]{accent-color:var(--pine);flex:1}.good-roads__threshold-value{font-family:var(--font-mono);color:var(--ink);text-align:right;width:2.4em;font-weight:700}.good-roads__list-wrap{margin-top:2px;position:relative}.good-roads__list{flex-direction:column;gap:2px;max-height:276px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.good-roads__list-fade{background:linear-gradient(to bottom, transparent, var(--panel));pointer-events:none;height:28px;position:absolute;bottom:26px;left:0;right:0}.good-roads__list-count{z-index:1;color:var(--ink-soft);border-top:1px solid var(--line);background:var(--panel);justify-content:center;align-items:center;gap:5px;margin:0;padding:5px 0 1px;font-size:11px;font-weight:600;display:flex;position:relative}.good-roads__list-count svg{flex:none;width:11px;height:11px}.good-roads__row{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;display:flex}.good-roads__row:hover{border-color:var(--line);background:var(--paper)}.good-roads__row--selected{border-color:var(--amber);background:var(--paper)}.good-roads__swatch{background:var(--amber);opacity:.55;border-radius:2px;flex:none;width:14px;height:3px}.good-roads__row--selected .good-roads__swatch{opacity:1;height:4px}.good-roads__row-body{flex-direction:column;flex:1;min-width:0;display:flex}.good-roads__name{font-size:var(--text-sm);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.good-roads__meta{font-size:var(--text-xs);color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.good-roads__rating{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:4px;flex:none;padding:1px 6px;font-weight:700}.good-roads__columns{justify-content:flex-end;gap:var(--space-3);padding:0 var(--space-2);color:var(--ink-soft);font-size:11px;font-weight:600;display:flex}.good-roads__columns span{flex-direction:column;align-items:center;line-height:1.2;display:flex}.good-roads__columns span:last-child{width:64px}.good-roads__columns small{font-size:10px;font-weight:400}.good-roads__curve{width:64px;font-family:var(--font-mono);color:var(--ink-soft);flex-direction:column;flex:none;align-items:center;gap:1px;font-size:10px;display:flex}.good-roads__group{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-size:11px;font-weight:600}.good-roads__curve-detail{gap:2px;display:grid}.good-roads__curve-line{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-soft);flex-wrap:wrap;display:flex}.good-roads__curve-line b{color:var(--ink)}.good-roads__credit{margin:var(--space-2) 0 0;color:var(--ink-soft);font-size:11px;line-height:1.4}.good-roads__detail{gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-3);flex-direction:column;display:flex}.good-roads__scores{gap:var(--space-3);font-size:var(--text-xs);color:var(--ink-soft);flex-wrap:wrap;display:flex}.good-roads__scores b{font-family:var(--font-mono);color:var(--ink)}.good-roads__notes{font-size:var(--text-sm);color:var(--ink-soft);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0;line-height:1.45;display:-webkit-box;overflow:hidden}.camera-avoid-note{margin:var(--space-2) 0 0;padding-left:var(--space-2);border-left:2px solid var(--ink-soft);font-size:var(--text-sm);color:var(--ink);line-height:1.4}.after-dark{align-items:flex-start;gap:var(--space-2);margin:var(--space-2) 0 0;padding-left:var(--space-2);border-left:2px solid var(--amber);font-size:var(--text-sm);color:var(--ink);line-height:1.4;display:flex}.after-dark__icon{color:var(--amber);flex:none;margin-top:1px}.journal{gap:var(--space-3);flex-direction:column;display:flex}.btn--wide{width:100%}.jentry-editor{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);flex-direction:column;display:flex}.jentry-editor__title{font-family:var(--font-display);font-weight:600;font-size:var(--text-md);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2) var(--space-3)}.jentry-editor__row{gap:var(--space-2);display:flex}.field{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.field__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.field input,.field select,.field textarea{font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2)}@media (width<=768px){.field input,.field select,.field textarea{font-size:16px}}.contact-form{gap:var(--space-3);padding:0 var(--space-1) var(--space-2);flex-direction:column;display:flex}.contact-form__message{resize:vertical;min-height:8rem;line-height:1.45}.contact-form__count{float:right;letter-spacing:0;text-transform:none;color:var(--ink-soft);font-weight:400}.contact-form__turnstile{justify-content:center;min-height:65px;display:flex}.contact-form__error{color:var(--danger);font-size:var(--text-sm);margin:0}.contact-form__success{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--ink);line-height:1.5}.contact-form--sent{padding:var(--space-2) var(--space-1) var(--space-3)}.contact-form__attachments{margin:0 0 var(--space-2);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.contact-form__attachment{align-items:center;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:var(--space-2);display:flex}.contact-form__attachment-thumb{object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);width:2.5rem;height:2.5rem}.contact-form__attachment-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);color:var(--ink);flex:1;overflow:hidden}.contact-form__attachment-remove{color:var(--ink-soft);font-size:var(--text-base);cursor:pointer;padding:var(--space-1);background:0 0;border:none;line-height:1}.contact-form__attachment-remove:hover{color:var(--danger)}.contact-form__diagnostics{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:var(--space-2)}.contact-form__diagnostics-summary{cursor:pointer;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.contact-form__diagnostics-body{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--ink);line-height:1.6}.contact-form__diagnostics-body dt{color:var(--ink-soft);float:left;clear:left;margin-right:var(--space-2)}.contact-form__diagnostics-body dd{margin:0}.contact-form__diagnostics-stops{max-height:6rem;margin:0;padding-left:1.2em;overflow-y:auto}.jentry-editor__body{font-family:var(--font-body);font-size:var(--text-input-min);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2) var(--space-3);resize:vertical;line-height:1.5}.jentry-editor__actions{justify-content:flex-end;gap:var(--space-2);display:flex}.timeline{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tl-entry{padding:var(--space-3);border:1px solid var(--line);border-left:3px solid var(--pine);border-radius:var(--radius);background:var(--paper);position:relative}.tl-entry__head{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.tl-entry__title{font-family:var(--font-display);font-size:var(--text-md);color:var(--ink);margin:0;font-weight:600}.tl-entry__date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft)}.tl-entry__actions{flex:none;gap:4px;display:flex}.tl-entry__pin{margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--pine);background:color-mix(in srgb, var(--pine) 12%, transparent);border-radius:999px;padding:2px 8px;display:inline-block}.tl-entry__body{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--ink)}.md{line-height:1.5}.md p{margin:0 0 var(--space-2)}.md p:last-child{margin-bottom:0}.md h4,.md h5,.md h6{margin:var(--space-2) 0 var(--space-1);font-family:var(--font-display);color:var(--ink)}.md ul{margin:0 0 var(--space-2);padding-left:1.1rem}.md a{color:var(--pine);text-decoration:underline}.md code{font-family:var(--font-mono);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:.9em}.wp-pin--focused{box-shadow:0 0 0 3px var(--amber), 0 1px 4px rgb(var(--shadow-rgb) / .4);animation:1.4s ease-in-out infinite wp-pulse}@keyframes wp-pulse{0%,to{box-shadow:0 0 0 3px var(--amber), 0 1px 4px rgb(var(--shadow-rgb) / .4)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--amber) 45%, transparent), 0 1px 4px rgb(var(--shadow-rgb) / .4)}}.contact-form__capture{align-items:center;gap:.5rem;font-size:.875rem;display:flex}.tl-entry__ride{margin-top:var(--space-2);margin-left:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--pine);border:1px solid color-mix(in srgb, var(--pine) 40%, transparent);cursor:pointer;background:0 0;border-radius:999px;padding:2px 8px;display:inline-block}.tl-entry__ride:hover{background:color-mix(in srgb, var(--pine) 12%, transparent)}.weather{gap:var(--space-2);flex-direction:column;display:flex}.weather__freshness{color:var(--ink-soft);align-self:center;display:inline-flex}.weather__samples{flex-wrap:wrap;gap:4px;display:flex}.wsample{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);border-left-width:3px;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.wsample__icon{color:var(--ink-soft);flex-shrink:0}.wsample--cold{border-left-color:var(--temp-cold)}.wsample--cool{border-left-color:var(--temp-cool)}.wsample--mild{border-left-color:var(--temp-mild)}.wsample--warm{border-left-color:var(--temp-warm)}.wsample--hot{border-left-color:var(--temp-hot)}.wsample--unknown{border-left-color:var(--line);color:var(--ink-soft)}.weather__daylight{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft)}.depart{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-size:var(--text-xs);color:var(--ink-soft);flex-wrap:wrap;display:flex}.depart__label{white-space:nowrap}.depart__chip{font-family:var(--font-body);font-size:var(--text-xs);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:2px var(--space-2);cursor:pointer;align-items:center;gap:2px;font-weight:600;display:inline-flex}.depart__chip:hover{border-color:var(--ink-soft)}.depart__input{font-family:var(--font-body);font-size:var(--text-xs);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:2px var(--space-2);min-width:0}@media (width<=768px){.depart__input{font-size:16px}}.modal{z-index:1000;padding:var(--space-4);place-items:center;display:grid;position:fixed;inset:0}.modal__backdrop{background:var(--scrim-strong);position:absolute;inset:0}.modal__panel{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg,12px);width:min(520px,100%);max-height:85dvh;box-shadow:var(--shadow);padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex;position:relative;overflow-y:auto}.modal__panel--footer{overflow:hidden}.modal__body{gap:var(--space-4);flex-direction:column;flex:auto;min-height:0;margin:-4px;padding:4px;display:flex;overflow-y:auto}.modal__footer{gap:var(--space-4);flex-direction:column;flex:none;display:flex}.modal__head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.modal__title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--ink);margin:0;font-weight:700}.modal__panel--danger .modal__title{color:var(--danger)}.delete-account__error{color:var(--danger);font-size:var(--text-sm);margin:0}.welcome-modal-scrim{z-index:1000;padding:var(--space-4);background:var(--scrim-strong);place-items:center;display:grid;position:fixed;inset:0}.welcome-modal{background:var(--panel);border-radius:var(--radius-lg,12px);width:min(420px,100%);max-height:92vh;box-shadow:var(--shadow);padding:var(--space-6) var(--space-6) var(--space-4);text-align:center;overflow-y:auto}.welcome-modal__badge{width:64px;height:64px;margin:0 auto var(--space-3);display:block}.welcome-modal__title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--ink);margin:0 0 var(--space-1);font-weight:700}.welcome-modal__tagline{font-size:var(--text-sm);color:var(--ink-soft);margin:0 0 var(--space-4);line-height:1.5}.welcome-modal__body{font-size:var(--text-sm);text-align:left;margin:0 0 var(--space-4);color:var(--ink);line-height:1.55}.welcome-modal__safety{text-align:left;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-4)}.welcome-modal__safety h2{font-family:var(--font-display);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:var(--space-2);color:var(--ink);margin:0 0 var(--space-2);display:flex}.welcome-modal__safety ul{font-size:var(--text-sm);color:var(--ink-soft);margin:0;padding-left:1.1rem;line-height:1.6}.welcome-modal__safety li{margin-bottom:var(--space-1)}.welcome-modal__safety li:last-child{margin-bottom:0}.welcome-modal__legal{margin:var(--space-3) 0 0;font-size:var(--text-xs);color:var(--ink-soft)}.welcome-modal__legal a,.muted{color:var(--ink-soft)}.summary__heading{font-family:var(--font-display);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:0}.shared-banner{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:color-mix(in srgb, var(--amber) 16%, var(--paper));border-bottom:1px solid var(--line);flex:none;display:flex}.shared-banner--error{background:color-mix(in srgb, var(--danger) 12%, var(--paper))}.shared-banner__text{font-size:var(--text-sm);color:var(--ink)}.shared-banner__actions{gap:var(--space-2);flex:none;display:flex}.modal__panel--sm{width:min(440px,100%)}.confirm-dialog__actions{justify-content:flex-end;gap:var(--space-2);display:flex}.linklike{font-family:var(--font-body);font-size:var(--text-xs);color:var(--pine);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.linklike:hover{color:var(--pine-deep)}.stop__tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;flex:none;padding:2px 7px;font-size:10px}.stop__tag--start{color:var(--on-pine);background:var(--pine)}.stop__tag--end{color:var(--ink);background:color-mix(in srgb, var(--amber) 35%, var(--paper))}.stop__tag--passthrough{color:var(--ink-soft);border:1px dashed var(--line);background:0 0}.icon-btn--active{color:var(--pine);border-color:var(--pine);background:color-mix(in srgb, var(--pine) 10%, var(--paper))}.icon-btn--active:hover{color:var(--pine-deep);border-color:var(--pine-deep)}.start-panel__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.home-panel__label{min-width:0;font-size:var(--text-sm);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.home-editor{gap:var(--space-2);margin-top:var(--space-1);flex-direction:column;display:flex}.home-editor__actions{gap:var(--space-2);display:flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,.linklike:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);border-radius:var(--radius)}.app__map:focus-visible{outline:none}.skip-link{top:var(--space-2);left:var(--space-2);z-index:1000;padding:var(--space-2) var(--space-3);background:var(--pine);color:var(--on-pine);font-family:var(--font-body);font-size:var(--text-sm);border-radius:var(--radius);font-weight:600;text-decoration:none;transition:transform .12s;position:absolute;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.backup{gap:var(--space-2);flex-direction:column;display:flex}.backup__actions{gap:var(--space-2);display:flex}.backup__ok{font-size:var(--text-sm);color:var(--pine);margin:0}@media (pointer:coarse){.icon-btn{padding:7px 11px}.search__result{padding:var(--space-3)}.stop__handle{width:32px;height:32px;font-size:var(--text-lg)}}.stop__handle{width:22px;height:22px;font-size:var(--text-md);color:var(--ink-soft);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;flex:none;justify-content:center;align-items:center;line-height:1;display:flex}.stop__handle:hover{color:var(--ink)}.stop--dragging{opacity:.6;background:var(--paper);border-color:var(--line);cursor:grabbing}.leg-row{align-items:center;gap:var(--space-1);display:flex;position:relative}.leg-row .leg{flex:1;min-width:0}.leg__custom-dot{width:6px;height:6px;margin-left:var(--space-1);background:var(--amber);vertical-align:middle;border-radius:50%;display:inline-block}.leg__edit{width:28px;height:28px;font-size:var(--text-md);color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;flex:none;justify-content:center;align-items:center;display:flex}.leg__edit:hover{color:var(--ink);border-color:var(--ink-soft)}.leg__edit--active{color:var(--amber);border-color:var(--amber)}.leg-popover{z-index:20;margin-top:var(--space-1);gap:var(--space-2);width:min(260px,80vw);padding:var(--space-3);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;display:flex;position:absolute;top:100%;right:0}.leg-popover__header{font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);color:var(--ink);justify-content:space-between;align-items:center;display:flex}.weather__samples{flex-direction:column;gap:4px;display:flex}.weather__samples-row{flex-wrap:wrap;gap:8px;display:flex}.wsample-col{flex-direction:column;align-items:center;gap:2px;display:flex}.wsample-col__pos{font-family:var(--font-mono);color:var(--ink-soft);white-space:nowrap;font-size:10px}.directions{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.directions__leg-head{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;display:flex}.directions__leg-head--toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius);background:0 0;border:none}.directions__leg-head--toggle:hover{background:var(--panel)}.panel__chevron{color:var(--ink-soft);flex:none;transition:transform .12s}.panel__chevron--open{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.panel__chevron{transition:none}}.directions__leg-route{min-width:0;font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.directions__leg-stats{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);flex:none}.directions__steps{padding:0 0 0 var(--space-3);margin:0;list-style:none;position:relative}.directions__steps:before{content:"";left:calc(var(--space-3) + 9px);background:var(--leg-color,var(--line));opacity:.35;border-radius:1px;width:2px;position:absolute;top:6px;bottom:6px}.directions__steps--virtualized{padding-left:var(--space-3)}.directions__steps--virtualized:before{display:none}.directions__step{align-items:flex-start;gap:var(--space-2);padding:var(--space-1) 0;display:flex;position:relative}.directions__icon{width:20px;height:20px;color:var(--leg-color,var(--ink));background:var(--panel);z-index:1;flex:none;place-items:center;display:grid;position:relative}.directions__text{flex-direction:column;gap:2px;min-width:0;display:flex}.directions__instruction{font-size:var(--text-sm);line-height:1.35}.directions__distance{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft)}.directions__none{padding-left:var(--space-3);font-size:var(--text-sm);color:var(--ink-soft);margin:0}.nav-start{gap:var(--space-1);flex-direction:column;display:flex}.nav-start__hint{font-size:var(--text-xs);color:var(--ink-soft);margin:0}.btn--unavailable,.btn--unavailable:disabled{background:var(--field-muted);border-color:var(--field-muted-border);color:var(--field-muted-ink);cursor:not-allowed;opacity:1}.btn--done,.btn--done:disabled{justify-content:center;align-items:center;gap:var(--space-1);background:color-mix(in srgb, var(--pine) 12%, var(--paper));border-color:color-mix(in srgb, var(--pine) 35%, transparent);color:var(--pine-deep);cursor:not-allowed;opacity:1;display:flex}.offline-download{gap:var(--space-1);flex-direction:column;display:flex}.offline-download .btn svg{vertical-align:-3px;margin-right:2px}.offline-download__bar{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.offline-download__bar-fill{background:var(--pine);height:100%;transition:width .15s}.offline-download__row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.offline-download__status{font-size:var(--text-xs);color:var(--ink-soft)}.offline-download__ready{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--pine);margin:0;font-weight:600;display:flex}.offline-download__error{font-size:var(--text-xs);color:var(--danger);margin:0}.twist{gap:7px;margin:0;display:grid}.twist__head{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.twist__title{font-family:var(--font-display);font-size:15px;font-weight:700}.twist__new{background:var(--amber);color:var(--on-pine);font-family:var(--font-mono);letter-spacing:.06em;vertical-align:2px;border-radius:3px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700}.twist__lock{border:1px solid var(--ink-soft);color:var(--ink-soft);font-family:var(--font-mono);border-radius:999px;padding:0 7px;font-size:10.5px;font-weight:700}.twist__seg{border:1px solid var(--line);background:var(--paper);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;display:grid}.twist__seg button{min-height:44px;color:var(--ink-soft);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;font-size:14px;font-weight:600;line-height:1.15;display:grid}.twist__seg button small{font-family:var(--font-mono);opacity:.85;font-size:11px;font-weight:400;display:block}.twist__seg button[aria-checked=true]{background:var(--pine);color:var(--on-pine)}.twist__note{min-height:18px;color:var(--ink-soft);margin:0;font-size:12.5px}.twist__note b{color:var(--ink)}.twist.is-loading .twist__note{color:var(--pine)}.twist.is-loading .twist__seg{opacity:.6;pointer-events:none}.twist.is-locked .twist__seg{opacity:.45;pointer-events:none}.twist__mixed{border:1px solid var(--ink-soft);color:var(--ink-soft);font-family:var(--font-mono);border-radius:999px;padding:0 7px;font-size:10.5px;font-weight:700}.twist__links{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;margin:0;font-size:12.5px;display:flex}.twist__seg button:disabled{cursor:not-allowed}.twist__seg button:disabled:not([aria-checked=true]){opacity:.5}.leg-row{flex-wrap:wrap}.leg-row__twisty{margin:var(--space-1) 0 var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex:0 0 100%}.panel>.twist,.stats+.twist{margin-top:var(--space-3)}
