:root{--bg:#0a0c12;--surface:#121622d9;--surface-solid:#12141f;--border:#ffffff12;--border-active:#ffffff26;--accent:#4a8ef8;--accent-btn:#2668d4;--accent-glow:#4a8ef840;--gold:#f5a623;--text:#f0f0f2;--text-2:#a0a4bc;--text-3:#7b7f9a;--danger:#ef4444;--success:#22c55e;--bar-h:72px;--safe-bottom:env(safe-area-inset-bottom,0px);--route-bar-h:52px;--ui-bottom-offset:calc(var(--bar-h) + var(--safe-bottom));--glass:saturate(180%) blur(20px);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--text-xs:10px;--text-sm:12px;--text-base:14px;--text-md:16px;--text-lg:20px;--text-xl:24px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s cubic-bezier(.34, 1.56, .64, 1);--shadow-sm:#0003;--shadow-md:#0000004d;--shadow-lg:#00000080;--surface-subtle:#ffffff0d;--surface-hover:#ffffff14;--border-subtle:#ffffff0a;--canvas-bg:#0003;--canvas-text:#fff9;--canvas-stroke:#fff3;--toast-bg:#000000b3;--toast-text:var(--gold);--overlay-bg:#00000080;--scrollbar-thumb:#ffffff2e;--scrollbar-hover:#ffffff52;--on-accent:#fff;--on-gold:#000}[data-theme=light]{--bg:#f5f5f0;--surface:#fffc;--surface-solid:#fff;--border:#00000014;--border-active:#0000002e;--accent:#2563eb;--accent-btn:#1d4ed8;--accent-glow:#2563eb2e;--gold:#b45309;--text:#1a1a1a;--text-2:#4b5563;--text-3:#6b7280;--danger:#dc2626;--success:#16a34a;--glass:saturate(120%) blur(20px);--shadow-sm:#0000000f;--shadow-md:#0000001a;--shadow-lg:#0000002e;--surface-subtle:#00000008;--surface-hover:#0000000d;--border-subtle:#0000000a;--canvas-bg:#0000000d;--canvas-text:#00000080;--canvas-stroke:#00000026;--toast-bg:#ffffffeb;--toast-text:#92400e;--overlay-bg:#0000004d;--scrollbar-thumb:#0000001f;--scrollbar-hover:#00000040;--on-accent:#fff;--on-gold:#fff}body.high-quality-ui{--surface-solid:#121622f2;--overlay-bg:#0003}[data-theme=light] body.high-quality-ui{--surface-solid:#fffffff2}body.high-quality-ui .bottom-sheet,body.high-quality-ui .gps-disc-card,body.high-quality-ui .route-settings-panel,body.high-quality-ui #elevation-profile{-webkit-backdrop-filter:saturate(180%)blur(20px)!important;background-color:var(--surface-solid)!important;border:1px solid #ffffff14!important}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{background:var(--bg);width:100%;height:100%;color:var(--text);margin:0;padding:0;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;overflow:hidden}#canvas-container{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}#canvas-container>canvas{display:block;width:100%!important;height:100%!important}#tile-loading-bar{z-index:10;pointer-events:none;opacity:0;background:var(--accent,#4a8ef8);width:100%;height:3px;transition:opacity .25s;position:fixed;top:0;left:0;overflow:hidden}#tile-loading-bar:after{content:"";background:linear-gradient(90deg,#0000 0%,#fff9 50%,#0000 100%);animation:1.4s ease-in-out infinite tile-loading-shimmer;position:absolute;inset:0;transform:translate(-100%)}#tile-loading-bar.visible{opacity:1}@keyframes tile-loading-shimmer{to{transform:translate(300%)}}#top-status-bar{top:env(safe-area-inset-top,0px);height:52px;padding:0 var(--space-4);z-index:2000;pointer-events:none;justify-content:space-between;align-items:center;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s;display:flex;position:fixed;left:0;right:0}.top-status-bar-content{pointer-events:auto;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.top-left-widgets,.top-right-widgets{gap:8px;display:flex}.status-widget,.top-widget{background:var(--surface);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);padding:6px var(--space-3);min-height:48px;font-size:var(--text-base);cursor:pointer;transition:border-color var(--transition-fast), transform .3s ease, opacity .3s ease;pointer-events:auto;border-radius:20px;align-items:center;gap:6px;font-weight:500;display:flex}@media (hover:hover){.status-widget:hover,.top-widget:hover{border-color:var(--border-active)}}.lod-badge{font-family:DM Mono,monospace;font-size:var(--text-xs);color:var(--accent);letter-spacing:.5px;font-weight:500}.icon-btn-sm{background:var(--surface);width:48px;height:48px;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;pointer-events:auto;transition:border-color var(--transition-fast), background var(--transition-fast), transform .3s ease, opacity .3s ease;justify-content:center;align-items:center;font-size:15px;display:flex}@media (hover:hover){.icon-btn-sm:hover{border-color:var(--border-active);background:var(--surface-hover)}}.icon-btn-sm.danger{color:var(--danger);border-color:#ef44444d}.rec-indicator{border-color:var(--danger);color:var(--danger)}.rec-dot-css{background:var(--danger);border-radius:50%;flex-shrink:0;width:9px;height:9px;animation:1.2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%{opacity:1}50%{opacity:.3}to{opacity:1}}#nav-bar{height:calc(var(--bar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--surface);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border-top:1px solid var(--border);z-index:2000;box-shadow:0 -5px 25px var(--shadow-sm);transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-bar-content{width:100%;display:flex}.nav-tab{cursor:pointer;color:var(--text-2);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:10px 0 6px;transition:opacity .15s;display:flex;position:relative}.nav-tab:active{opacity:.6}.nav-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius-sm)}.nav-icon{border-radius:12px;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:background .2s,transform .2s;display:flex}.nav-tab.active{color:var(--accent)}.nav-tab.active .nav-icon{background:#3b7ef826;transform:translateY(-1px)}.nav-tab.active .nav-icon svg path,.nav-tab.active .nav-icon svg circle,.nav-tab.active .nav-icon svg line,.nav-tab.active .nav-icon svg rect{stroke:var(--accent)}.nav-label{font-size:var(--text-xs);letter-spacing:.2px;transition:color var(--transition-fast);font-weight:500}.nav-dot{background:var(--danger);border:1.5px solid var(--bg);border-radius:50%;width:6px;height:6px;display:none;position:absolute;top:6px;right:calc(50% - 18px)}.nav-tab.has-notif .nav-dot{display:block}.mode-icon-3d{display:none}.mode-icon-2d,body.mode-2d .mode-icon-3d{display:inline}body.mode-2d .mode-icon-2d{display:none}.mode-icon-3d,.mode-icon-2d{transition:opacity .3s}#nav-2d-toggle:disabled{opacity:.35;cursor:not-allowed}#nav-2d-toggle:disabled:active{opacity:.35}#sheet-overlay{background:var(--overlay-bg);z-index:1500;opacity:0;pointer-events:none;transition:opacity .3s;position:fixed;inset:0}#sheet-overlay.is-open{opacity:1;pointer-events:auto}.bottom-sheet{background:var(--surface-solid);border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-top:1px solid var(--border);padding-bottom:calc(var(--ui-bottom-offset) + var(--space-5));z-index:1600;max-height:85dvh;padding-left:var(--space-5);padding-right:var(--space-5);transition:transform .35s cubic-bezier(.16,1,.3,1);position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.bottom-sheet.is-open{transform:translateY(0)}.bottom-sheet::-webkit-scrollbar{width:3px;height:3px}.exp-hourly-scroll::-webkit-scrollbar{width:3px;height:3px}#geo-results::-webkit-scrollbar{width:3px;height:3px}.bottom-sheet::-webkit-scrollbar-track{background:0 0}.exp-hourly-scroll::-webkit-scrollbar-track{background:0 0}#geo-results::-webkit-scrollbar-track{background:0 0}.bottom-sheet::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:2px}.exp-hourly-scroll::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:2px}#geo-results::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:2px}.bottom-sheet::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}.exp-hourly-scroll::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}#geo-results::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}.bottom-sheet,.exp-hourly-scroll,#geo-results{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}.sheet-handle{background:var(--border-active);border-radius:3px;width:36px;height:6px;margin:12px auto 0}.sheet-header{justify-content:space-between;align-items:center;padding:16px 0 8px;display:flex}.sheet-title{font-size:var(--text-md);color:var(--gold);font-weight:700}.sheet-close{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;min-width:44px;min-height:44px;font-size:var(--text-md);color:var(--text-2);justify-content:center;align-items:center;display:flex}.search-input-wrap{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition-fast);align-items:center;gap:10px;margin-bottom:15px;padding:0 14px;display:flex}.search-input-wrap:focus-within{border-color:var(--accent)}.search-input-wrap input{font-family:inherit;font-size:var(--text-md);color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:13px 0}.search-input-wrap input::placeholder{color:var(--text-3)}.search-icon{color:var(--text-3);font-size:16px}#geo-results{background:var(--canvas-bg);z-index:100;border-radius:16px;max-height:300px;position:relative;overflow-y:auto}.section-label{font-size:var(--text-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:1px;padding:var(--space-3) 0;font-weight:700}.control-group{margin-bottom:25px}.preset-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.preset-btn{background:var(--surface-subtle);border:1px solid var(--border);color:var(--text-2);padding:var(--space-2) 5px;border-radius:var(--radius-md);text-transform:uppercase;cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;min-height:44px;font-size:11px;font-weight:700;display:flex}.preset-btn.active{border-color:var(--accent);color:var(--accent);background:#3b7ef826}input[type=checkbox]{appearance:none;background:var(--text-3);cursor:pointer;border-radius:14px;flex-shrink:0;width:48px;height:28px;margin:0;transition:background .2s;position:relative}input[type=checkbox]:checked{background:var(--accent)}input[type=checkbox]:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px}input[type=checkbox]:checked:after{transform:translate(20px)}input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=range]{appearance:none;background:var(--border);border-radius:3px;outline:none;width:100%;height:6px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border:2px solid #fff;border-radius:50%;width:22px;height:22px}input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}.layer-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px;display:grid}.layer-item{cursor:pointer;text-align:center;transition:transform var(--transition-normal), opacity var(--transition-normal)}.layer-thumb{border-radius:var(--radius-md);width:100%;height:64px;box-shadow:0 4px 12px var(--shadow-sm);transition:transform var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);background-position:50%;background-size:cover;border:2px solid #0000;margin-bottom:6px;position:relative}.layer-pro-badge{background:var(--gold,#f5a623);color:#000;letter-spacing:.5px;border-radius:var(--radius-sm);pointer-events:none;padding:2px 5px;font-size:11px;font-weight:800;line-height:1.4;position:absolute;top:4px;right:4px}.layer-pro-badge.hidden{display:none}.layer-item.active .layer-thumb{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 6px 15px #3b7ef84d}.layer-name{font-size:var(--text-xs);color:var(--text-2);text-transform:uppercase;letter-spacing:.8px;font-weight:700}.layer-item.active .layer-name{color:var(--accent)}.settings-section{flex-direction:column;display:flex}.setting-row{padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.setting-row:last-child{border-bottom:none}.setting-label{font-size:var(--text-base);color:var(--text);font-weight:500}.setting-sub{color:var(--text-3);margin-top:2px;font-size:11px}.setting-label-group{align-items:center;gap:6px;display:flex}.sub-expand-btn{color:var(--text-3);cursor:pointer;transition:transform var(--transition-fast);background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:8px;line-height:1}.sub-expand-btn[aria-expanded=true]{transform:rotate(90deg)}.sub-options{border-left:2px solid var(--surface-subtle);margin-bottom:4px;padding:8px 4px 12px 20px;display:none}.sub-options.open{display:block}.info-icon{background:var(--surface-subtle);border:1px solid var(--border);width:20px;height:20px;color:var(--text-3);cursor:help;border-radius:50%;justify-content:center;align-items:center;font-size:11px;transition:all .2s;display:flex}@media (hover:hover){.info-icon:hover{background:var(--surface-hover);color:var(--text);border-color:var(--text-3)}}.setting-row input[type=checkbox]:disabled{background:var(--surface-hover);cursor:not-allowed;opacity:.5}.setting-row input[type=checkbox]:disabled:after{background:var(--text-3)}.track-stats{grid-template-columns:1fr 1fr;gap:10px;padding:8px 0;display:grid}.stat-card{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.stat-card-label{font-size:var(--text-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:1px}.stat-card-value{font-size:var(--text-xl);margin-top:2px;font-weight:700}.stat-card-value.green{color:var(--success)}.stat-card-value.red{color:var(--danger)}.track-actions{gap:10px;padding:15px 0;display:flex}.gpx-layers-list{margin-top:var(--space-3)}.gpx-layers-header{font-size:var(--text-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:1px;padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);font-weight:700}.gpx-layer-item{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background-color var(--transition-fast);display:flex}.gpx-layer-item:hover{background-color:var(--surface-subtle)}.gpx-layer-item.active{background-color:#4a8ef81a}.gpx-layer-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.gpx-layer-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.gpx-layer-name{font-size:var(--text-base);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.gpx-layer-stats{font-size:var(--text-xs);color:var(--text-3)}.gpx-layer-profile,.gpx-layer-toggle,.gpx-layer-remove{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-subtle);width:32px;height:32px;color:var(--text-2);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:flex}.gpx-layer-profile:hover{border-color:var(--accent);color:var(--accent);background:#4a8ef833}.gpx-layer-toggle:hover{background:var(--surface-hover);color:var(--text)}.gpx-layer-remove:hover{border-color:var(--danger);color:var(--danger);background:#ef444433}.track-btn{padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);font-family:inherit;font-size:var(--text-base);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2);transition:transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);background:var(--surface-subtle);color:var(--text);flex:1;font-weight:700;display:flex}.track-btn.primary{background:var(--accent-btn);border-color:var(--accent-btn);color:var(--on-accent)}.track-btn.rec{color:var(--danger);background:#ef44441a;border-color:#ef444433}.track-btn.rec.active{background:var(--danger);border-color:var(--danger);color:#fff;position:relative;box-shadow:0 0 20px #ef444466}.track-btn.rec.active:before{content:"";border-radius:inherit;pointer-events:none;background:#ef44444d;animation:1.2s ease-in-out infinite pulse-rec;position:absolute;inset:0}@keyframes pulse-rec{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.btn-go{background:var(--accent-btn);width:100%;color:var(--on-accent);font-weight:700;font-size:var(--text-md);cursor:pointer;box-shadow:0 10px 25px var(--accent-glow);border:none;border-radius:18px;margin-top:32px;padding:18px}#bottom-bar{bottom:calc(var(--ui-bottom-offset) + 16px);background:var(--surface);width:calc(100% - 40px);max-width:450px;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);padding:0 var(--space-4) var(--space-3);z-index:1000;box-shadow:0 10px 30px var(--shadow-md);opacity:0;pointer-events:none;border-radius:24px;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s;position:fixed;left:50%;overflow:hidden;transform:translate(-50%,200px)}.timeline-drag-handle{width:calc(100% + 2 * var(--space-4));touch-action:none;cursor:grab;margin:0 calc(-1 * var(--space-4));justify-content:center;padding:6px 0 4px;display:flex}.timeline-drag-handle:active{cursor:grabbing}.timeline-drag-handle .sheet-drag-indicator{transition:background var(--transition-fast)}@media (hover:hover){.timeline-drag-handle:hover .sheet-drag-indicator{background:var(--text-3)}}#bottom-bar.is-open{opacity:1;pointer-events:auto;transform:translate(-50%)}.panel-custom-pos{bottom:auto!important;transform:none!important}.fab-stack{bottom:calc(var(--ui-bottom-offset) + 16px);z-index:1900;flex-direction:column;gap:12px;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s;display:flex;position:fixed;right:16px}body.sheet-open .fab-stack{opacity:0;pointer-events:none;transform:translateY(20px)scale(.9)}@media (width<=600px){body.timeline-open .fab-stack{opacity:0;pointer-events:none;transform:translateY(20px)scale(.9)}}body.timeline-custom-pos .fab-stack{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}body.timeline-custom-pos .fab-stack.widget-overlap-hidden{opacity:0;pointer-events:none;transform:translateY(20px)scale(.9)}.date-input-wrapper{display:inline-flex;position:relative}.date-input-trap{z-index:1;cursor:pointer;display:none;position:absolute;inset:0}.date-input-trap.active{display:block}#date-input.date-input-locked,.solar-route-date-input.date-input-locked{opacity:.5;filter:grayscale()}.date-input-lock{pointer-events:none;color:var(--gold);z-index:2;align-items:center;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.date-input-lock svg{width:14px;height:14px}.gpx-layer-locked{border-color:var(--gold)!important;background:#ffd70008!important}.pro-feature-locked{filter:grayscale();cursor:pointer}.pro-feature-locked input[type=checkbox]{background:var(--text-3)!important}.pro-feature-locked .setting-label{color:var(--text-3)}.widget-overlap-hidden.fab-stack{opacity:0;pointer-events:none;transform:translateY(20px)scale(.9)}#top-pill-main.widget-overlap-hidden,#rec-status-widget.widget-overlap-hidden,#net-status-icon.widget-overlap-hidden,#sos-main-btn.widget-overlap-hidden,#timeline-toggle-btn.widget-overlap-hidden{opacity:0;pointer-events:none;transform:translateY(-12px)scale(.9)}#layers-sheet{max-height:38vh;box-shadow:0 -10px 40px var(--shadow-md)}#layers-sheet .sheet-header{padding:8px 16px 4px}#layers-sheet .sheet-title{font-size:var(--text-base)}body.sheet-layers-sheet-open #sheet-overlay{opacity:0;pointer-events:none}.fab-btn{background:var(--surface);width:52px;height:52px;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);cursor:pointer;box-shadow:0 8px 30px var(--shadow-md);color:var(--text);border-radius:16px;justify-content:center;align-items:center;font-size:22px;transition:transform .3s cubic-bezier(.16,1,.3,1),background-color .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1),color .3s cubic-bezier(.16,1,.3,1);display:flex}.fab-btn:active{transition-duration:80ms;transform:scale(.92)}.fab-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fab-btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--border)}.fab-btn.active{background:var(--accent);color:var(--on-accent);box-shadow:0 4px 20px var(--accent-glow)}.fab-btn.success{background:var(--success);color:var(--on-accent)}#compass-fab{width:52px;height:52px;margin-bottom:4px;padding:6px}#compass-fab svg{transition:transform .3s}.conn-status-online{color:var(--success)}.conn-status-offline{color:var(--danger)}.conn-unit{font-size:var(--text-sm);color:var(--text-3)}.trk-rec-icon{margin-right:6px}.trk-stat-unit{font-size:var(--text-sm);color:var(--text-2)}.trk-stat-unit-plain{font-size:var(--text-sm)}#gps-main-btn{width:52px;height:52px;box-shadow:none;position:static}.nav-mode-toggle{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:52px;height:52px;padding:2px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex}.nav-mode-toggle:active{transform:scale(.92)}.nav-mode-toggle .mode-icon-3d,.nav-mode-toggle .mode-icon-2d{flex-shrink:0;width:18px;height:18px;transition:all .3s}.nav-mode-label{color:var(--text);margin-top:1px;font-size:11px;font-weight:600;line-height:1;transition:color .3s}.setting-row input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.setting-row input[type=checkbox]:disabled+.setting-label{opacity:.6}.setting-row:has(input[type=checkbox]:disabled) .setting-label{opacity:.6}#elevation-profile{bottom:calc(var(--ui-bottom-offset) + 8px);background:var(--surface-solid);border:1px solid var(--border);z-index:1500;width:calc(100% - 40px);max-width:800px;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:0 20px 50px var(--shadow-lg);opacity:0;pointer-events:none;border-radius:24px;padding:0 20px 20px;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s;position:fixed;left:50%;transform:translate(-50%,calc(100% + 40px))}#elevation-profile.is-open{opacity:1;pointer-events:auto;transform:translate(-50%)}body.timeline-open #elevation-profile:not(.panel-custom-pos){bottom:calc(var(--ui-bottom-offset) + 150px);transition:bottom .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1),opacity .4s}.profile-drag-handle{width:100%;padding:var(--space-2) 0 var(--space-2);align-items:center;gap:var(--space-2);touch-action:none;cursor:grab;flex-direction:column;justify-content:center;display:flex}.profile-header-content{justify-content:space-between;align-items:center;gap:8px;width:100%;padding:0 4px;display:flex}.profile-title-row{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.profile-title{color:var(--gold);text-transform:uppercase;letter-spacing:2px;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;overflow:hidden}.profile-controls{align-items:center;gap:10px;min-width:0;display:flex}.profile-info-text{color:var(--text-2);white-space:nowrap;font-family:monospace;font-size:11px}.profile-solar-btn{color:#f5a623;cursor:pointer;white-space:nowrap;background:#f5a62326;border:1px solid #f5a62366;border-radius:10px;padding:2px 8px;font-size:11px}.profile-close-btn{border:1px solid var(--border);color:#fff;cursor:pointer;background:#ffffff0d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}#profile-chart-container{cursor:crosshair;touch-action:none;background:#ffffff05;border:1px solid #ffffff0d;border-radius:12px;width:100%;height:100px;position:relative;overflow:hidden}@media (width<=600px){.profile-header-content{flex-direction:column;align-items:flex-start;gap:6px}.profile-title-row{justify-content:space-between;width:100%}.profile-title{letter-spacing:1px;font-size:11px}.profile-controls{border-top:1px solid var(--border-subtle);justify-content:space-between;width:100%;padding-top:4px}.profile-info-text{text-align:left;flex:1;font-size:10px}}#coords-pill{bottom:calc(var(--ui-bottom-offset) + 80px);background:var(--surface);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);z-index:1000;pointer-events:auto;cursor:grab;touch-action:none;box-shadow:0 10px 30px var(--shadow-sm);border-radius:14px;padding:10px 14px;transition:opacity .3s,transform .3s;position:fixed;left:16px}#coords-pill:active{cursor:grabbing}#coords-pill.hidden{opacity:0;pointer-events:none;transform:translate(-10px)}.coords-lat{color:var(--text-2);font-family:DM Mono,monospace;font-size:11px}.coords-alt{font-size:var(--text-lg);color:var(--gold);letter-spacing:-.5px;font-weight:700}.coords-poi{font-size:var(--text-sm);color:var(--gold);margin-top:2px;font-weight:600}.coords-actions{margin-top:var(--space-2);gap:6px;display:flex}.coords-btn{border-radius:var(--radius-sm);min-height:48px;font-family:inherit;font-size:var(--text-xs);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;border:none;flex:1;padding:7px 0;font-weight:700}.coords-btn.solar{color:var(--gold);background:#f5a62326}.coords-btn.sos{color:var(--danger);background:#ef444426}body.ui-hidden #top-status-bar{opacity:0;transform:translateY(-100px)}body.ui-hidden #nav-bar{opacity:0;transform:translateY(150px)}body.ui-hidden #bottom-bar{opacity:0;transform:translate(-50%,200px)}body.ui-hidden #gps-main-btn,body.ui-hidden #coords-pill,body.ui-hidden .fab-stack{opacity:0;transform:translate(100px)}body.mode-2d #timeline-toggle-btn{opacity:.35;cursor:not-allowed;pointer-events:auto}body.mode-2d #bottom-bar{display:none!important}body.mode-2d #click-alt{display:none}body.preset-eco #nav-2d-toggle,body.preset-eco #timeline-toggle-btn{display:none!important}#toast-container{bottom:calc(var(--ui-bottom-offset) + 20px);z-index:5000;pointer-events:none;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--toast-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--toast-text);padding:var(--space-2) var(--space-5);border-radius:var(--radius-xl);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-2);border:1px solid #f59e0b33;font-size:11px;font-weight:700}#zoom-indicator{bottom:calc(var(--ui-bottom-offset) + 20px);background:var(--surface);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);color:var(--accent);z-index:500;border:1px solid var(--border);border-radius:24px;padding:6px 18px;font-family:monospace;font-size:11px;position:fixed;left:50%;transform:translate(-50%)}#compass-canvas{bottom:calc(var(--ui-bottom-offset) + 80px);z-index:500;width:80px;height:80px;transition:transform .3s;position:fixed;right:20px}.lyr-row-unavailable{opacity:.5}.srch-no-result{padding:var(--space-5);color:var(--text-2);font-size:var(--text-base);text-align:center}.search-filter-chips{gap:var(--space-2);padding:var(--space-2) var(--space-3);-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.search-chip{border-radius:var(--radius-xl);border:1px solid var(--border);color:var(--text-2);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast);background:0 0;flex-shrink:0;align-items:center;min-height:36px;padding:6px 16px;font-weight:500;display:flex}.search-chip-active{background:var(--gold);color:var(--on-gold);border-color:var(--gold)}.srch-geo-item{padding:var(--space-3);cursor:pointer;color:var(--text);border-bottom:1px solid var(--surface-subtle);justify-content:space-between;align-items:center;display:flex}.srch-left-side{align-items:center;gap:var(--space-3);display:flex}.srch-icon{width:var(--space-4);height:var(--space-4);opacity:.6}.srch-geo-label{font-size:var(--text-base)}.srch-geo-label-peak{font-weight:500}.srch-peak-sub{font-size:var(--text-sm);color:var(--text-2);margin-top:1px}.srch-alt-badge{color:var(--gold);font-family:DM Mono,monospace;font-size:var(--text-sm);font-weight:500}.weather-location-name{font-size:var(--text-sm);color:var(--text-1);text-align:center;margin-bottom:var(--space-3);font-weight:600}.exp-stat-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.exp-stat-grid-mb{margin-bottom:var(--space-4)}.exp-stat-card{background:var(--surface-subtle);padding:var(--space-3);border-radius:var(--radius-sm)}.exp-stat-label{font-size:var(--text-sm);color:var(--text-2)}.exp-stat-value{font-size:var(--text-md);margin-top:var(--space-1);font-weight:700}.exp-hourly-scroll{gap:var(--space-3);padding-bottom:var(--space-3);display:flex;overflow-x:auto}.exp-hourly-item{text-align:center;min-width:50px}.exp-hourly-time{color:var(--text-2);font-size:11px}.exp-hourly-icon{font-size:var(--text-base);margin:var(--space-1) 0}.exp-hourly-temp{font-size:var(--text-sm);font-weight:700}.exp-chart{height:60px;margin-top:var(--space-5);align-items:flex-end;gap:2px;display:flex}.exp-chart-bar{background:var(--accent);border-radius:var(--space-1) var(--space-1) 0 0;flex:1;position:relative}.exp-chart-label{text-align:center;width:100%;font-size:8px;position:absolute;top:-15px}.exp-probe-status{margin-bottom:var(--space-4);color:var(--text-2);font-size:13px}.exp-probe-grid-mb{margin-bottom:var(--space-5)}.exp-probe-card{background:var(--surface-subtle);padding:var(--space-4);border-radius:var(--radius-md)}.exp-probe-label{font-size:var(--text-sm);color:var(--text-2);text-transform:uppercase;letter-spacing:1px}.exp-probe-value{font-size:var(--text-lg);margin-top:var(--space-1);color:var(--gold);font-weight:700}.exp-timeline-title{font-size:var(--text-sm);color:var(--text-2);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-3)}.exp-timeline{border-radius:var(--radius-sm);height:30px;margin-bottom:var(--space-5);display:flex;overflow:hidden}.exp-timeline-bar{flex:1;height:100%}.exp-probe-section-title{font-size:var(--text-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:1.5px;margin:var(--space-4) 0 var(--space-3)}.exp-stat-grid-3{grid-template-columns:repeat(3,1fr)}.solar-realtime-block{gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:column;display:flex}.solar-realtime-row{align-items:center;gap:var(--space-3);display:flex}.solar-rt-value{font-size:var(--text-base);min-width:52px}.solar-compass-svg{flex-shrink:0}.solar-elev-bar-wrap{background:var(--surface-hover);border-radius:var(--radius-sm);flex:1;height:6px;overflow:hidden}.solar-elev-bar{background:var(--gold);border-radius:var(--radius-sm);width:0%;height:100%;transition:width .2s}.solar-elevation-chart{border-radius:var(--radius-sm);width:100%;height:auto;margin-bottom:var(--space-4);display:block;overflow:hidden}.solar-route-section{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);background:var(--surface-subtle);border-radius:var(--radius-md);border:1px solid var(--border)}.solar-route-title-row{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.solar-route-title{text-transform:uppercase;letter-spacing:.05em}.solar-route-grid{margin-bottom:var(--space-3)}.solar-route-time-badge{color:#f5a623;font-variant-numeric:tabular-nums;cursor:help;background:#f5a6231f;border:1px solid #f5a62359;border-radius:10px;padding:1px 7px;font-size:11px}.solar-route-time-control{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff0a;display:flex}.solar-route-time-slider{accent-color:#f5a623;cursor:pointer;flex:1;min-width:0;height:4px}.solar-route-time-disp{font-variant-numeric:tabular-nums;color:#f5a623;white-space:nowrap;text-align:center;min-width:38px;font-size:13px;font-weight:600}.solar-route-date-input{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;max-width:110px;padding:2px 4px;font-size:11px}@media (width<=600px){.solar-route-time-control{padding:var(--space-3);flex-wrap:wrap;gap:12px}.solar-route-time-slider{flex:0 0 100%;order:1;height:6px}.solar-route-time-disp{order:2;font-size:15px}.solar-route-date-input{text-align:right;flex:1;order:3;max-width:none;padding:4px 8px;font-size:13px}}.solar-route-mode-btn{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);font-size:var(--text-xs);padding:2px var(--space-2);cursor:pointer}.solar-route-recs{gap:var(--space-2);flex-direction:column;display:flex}.solar-route-rec-item{font-size:var(--text-sm);color:var(--text-2);padding:var(--space-1) 0;border-bottom:1px solid var(--border)}.solar-route-rec-item:last-child{border-bottom:none}.solar-route-rec-shade{color:#6b9ecf}.solar-route-rec-forest{color:#4caf72}.solar-route-rec-pro{color:var(--gold)}.solar-route-rec-alert{color:#f97316;font-weight:600}.solar-route-rec-computing{color:var(--text-3);font-style:italic}.solar-route-speed-row{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;flex-wrap:wrap;display:flex}.solar-route-speed-btn{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);font-size:var(--text-xs);padding:2px var(--space-2);cursor:pointer;transition:background .15s}.solar-route-speed-btn:hover{background:var(--surface-active,#ffffff1f);color:var(--text)}.solar-route-speed-btn.active{color:#f5a623;background:#f5a6232e;border-color:#f5a62380}.solar-route-pro-teaser{justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-3);padding-top:var(--space-2);display:flex}.solar-upsell-banner{justify-content:space-between;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--text-2);margin-top:var(--space-4);background:#ffd70012;border:1px solid #ffd7002e;display:flex}.solar-upsell-btn{width:auto;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);flex-shrink:0;margin-top:0}.solar-realtime-instrument{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3);gap:var(--space-4);margin-bottom:var(--space-4);align-items:center;display:flex}.solar-instrument-compass{flex:0 0 100px;height:100px;position:relative}.solar-compass-large{width:100%;height:100%}.solar-instrument-stats{gap:var(--space-2);flex-direction:column;flex:1;display:flex}.solar-rt-stat-item{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:baseline;padding-bottom:2px;display:flex}.solar-rt-stat-item:last-child{border-bottom:none}.solar-elevation-chart-v2{filter:drop-shadow(0 4px 6px #0000001a)}.weather-instrument-panel{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.weather-instrument-main{flex-direction:column;flex:1;align-items:center;display:flex}.weather-instrument-wind{border-left:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);padding:0 var(--space-2);flex-direction:column;flex:1;align-items:center;display:flex}.weather-instrument-stats{gap:var(--space-1);flex-direction:column;flex:1.2;display:flex}.weather-rt-row{font-size:var(--text-xs);border-bottom:1px solid var(--border-subtle);justify-content:space-between;padding-bottom:2px;display:flex}.weather-rt-row:last-child{border-bottom:none}.weather-location-name{color:var(--gold);text-shadow:0 2px 4px #0000004d}.weather-unavailable-message{background:var(--surface-subtle);border:1px dashed var(--border);border-radius:var(--radius-lg);margin:var(--space-4)}.sheet-drag-handle{width:100%;padding:var(--space-3) 0 var(--space-2);touch-action:none;cursor:grab;flex-shrink:0;justify-content:center;display:flex}.sheet-drag-handle:active{cursor:grabbing}.sheet-drag-indicator{border-radius:var(--radius-sm);background:var(--border-active);width:36px;height:4px;transition:background var(--transition-fast)}@media (hover:hover){.sheet-drag-handle:hover .sheet-drag-indicator{background:var(--text-3)}}.spinner{border:2px solid var(--border-active);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}#map-loading-overlay{z-index:50;background:var(--bg);justify-content:center;align-items:center;gap:var(--space-3);opacity:1;transition:opacity var(--transition-normal);flex-direction:column;display:none;position:fixed;inset:0}#map-loading-overlay.visible{display:flex}#map-loading-overlay.fade-out{opacity:0;pointer-events:none}.map-loading-spinner{border-width:3px;width:28px;height:28px}.map-loading-text{font-size:var(--text-sm);color:var(--text-2);letter-spacing:.5px}#map-loading-offline-msg{align-items:center;gap:var(--space-2);text-align:center;padding:0 var(--space-4);flex-direction:column;display:flex}#map-loading-offline-msg>span:first-child{font-size:var(--text-base);color:var(--text-1);font-weight:600}.map-loading-offline-sub{font-size:var(--text-sm);color:var(--text-3);max-width:280px}.stat-card-sub{color:var(--text-3);margin-top:2px;font-size:10px}.loading-inline{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);color:var(--text-3);font-size:var(--text-sm);display:flex}.btn-loading{opacity:.6;pointer-events:none;cursor:not-allowed}.api-key-form{gap:var(--space-2);flex-direction:column;display:flex}.api-key-input-row{gap:var(--space-2);display:flex}.api-key-input{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text);font-family:DM Mono,monospace;font-size:var(--text-sm);transition:border-color var(--transition-fast);outline:none;flex:1}.api-key-input:focus{border-color:var(--accent)}.api-key-submit-btn{padding:var(--space-2) var(--space-3);background:var(--accent);color:var(--on-accent);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-md);transition:opacity var(--transition-fast);border:none;font-weight:700}@media (hover:hover){.api-key-submit-btn:hover{opacity:.85}}.api-key-hint{font-size:var(--text-xs);color:var(--text-3);margin-top:var(--space-1)}.api-key-hint a{color:var(--accent);padding:5px 0;text-decoration:none;display:inline-block}.empty-state{padding:var(--space-6) var(--space-4);justify-content:center;align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;display:flex}.empty-state-icon{width:48px;height:48px;color:var(--text-3);opacity:.5}.empty-state-title{font-size:var(--text-md);color:var(--text-2);font-weight:600}.empty-state-subtitle{font-size:var(--text-sm);color:var(--text-3);line-height:1.5}.vram-panel{background:var(--canvas-bg);border:1px solid var(--surface-hover);border-radius:var(--radius-md,10px);margin-top:10px;padding:10px 14px;font-family:DM Mono,monospace;font-size:11px}.vram-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;padding:3px 0;display:flex}.vram-row:last-child{border-bottom:none}.vram-label{color:var(--text-2)}.vram-value{color:var(--gold,#f59e0b);font-weight:700}.vram-record-bar{align-items:center;gap:var(--space-2,6px);margin-top:var(--space-2,6px);padding-top:var(--space-2,6px);border-top:1px solid var(--surface-hover);flex-wrap:wrap;display:flex}.vram-record-btn{background:var(--surface-hover);color:var(--text);border:1px solid var(--border-active);border-radius:var(--radius-sm,6px);cursor:pointer;transition:background var(--transition-fast,.15s);white-space:nowrap;padding:4px 8px;font-family:DM Mono,monospace;font-size:10px}@media (hover:hover){.vram-record-btn:hover{background:var(--border-active)}}.vram-record-btn--active{color:#fca5a5;background:#ef444440;border-color:#ef444480}.vram-record-status{color:var(--text-3);flex:1;font-family:DM Mono,monospace;font-size:11px}.gps-disc-card{background:var(--surface-solid);border:1px solid var(--border-active);border-radius:var(--radius-xl);padding:var(--space-6);width:100%;max-width:360px;box-shadow:0 24px 64px var(--shadow-lg)}.gps-disc-icon{text-align:center;margin-bottom:var(--space-3);font-size:40px}.gps-disc-title{font-size:var(--text-lg);text-align:center;margin:0 0 var(--space-4);color:var(--text);font-weight:700}.gps-disc-body p{font-size:var(--text-sm);color:var(--text-2);margin:0 0 var(--space-3);line-height:1.6}.gps-disc-body p:last-child{margin-bottom:0}.gps-disc-actions{gap:var(--space-2);margin-top:var(--space-5);flex-direction:column;display:flex}.gps-disc-btn{padding:14px var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-base);cursor:pointer;transition:opacity var(--transition-fast);border:none;min-height:48px;font-weight:600}.gps-disc-btn:active{opacity:.8}.gps-disc-allow{background:var(--accent);color:var(--on-accent)}.gps-disc-decline{border:1px solid var(--border-active);color:var(--text-2);background:0 0}.weather-upsell-banner{justify-content:space-between;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--text-2);margin-top:var(--space-4);background:#60a5fa12;border:1px solid #60a5fa2e;display:flex}.weather-upsell-btn{width:auto;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);flex-shrink:0;margin-top:0}.weather-daily-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 0;font-size:12px;display:flex}.weather-daily-icon{flex-shrink:0;font-size:20px}.weather-daily-date{color:var(--text-2);flex:1}.weather-daily-temps{font-size:13px;font-weight:700}.weather-daily-sub{color:var(--text-3);font-size:10px}.weather-mountain-alert{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-top:var(--space-3)}.weather-comfort-score{color:var(--accent);font-size:16px;font-weight:800}.weather-svg-chart{border-radius:var(--radius-sm);width:100%;margin:var(--space-2) 0;overflow:visible}body,.bottom-sheet,#nav-bar,.fab-btn,.status-widget,.top-widget,#coords-pill,#bottom-bar,.icon-btn-sm,.nav-mode-toggle,.preset-btn,.toast,#map-loading-overlay{transition:background-color .2s,color .2s,border-color .2s}.theme-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.theme-btn{background:var(--surface-subtle);border:1px solid var(--border);color:var(--text-2);padding:var(--space-2) 5px;border-radius:var(--radius-md);text-transform:uppercase;cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;min-height:44px;font-size:11px;font-weight:700;display:flex}.theme-btn.active{border-color:var(--accent);color:var(--accent);background:#3b7ef826}.theme-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[data-theme=light] .theme-btn.active{background:#2563eb1f}#date-input{color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#ffffff26;border:1px solid #ffffff4d}[data-theme=light] #date-input{background:var(--surface);border-color:var(--border-active);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-100%;left:var(--space-4);z-index:10000;padding:var(--space-2) var(--space-4);background:var(--accent);color:#fff;border-radius:var(--radius-md);font-weight:500;text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-2)}:root{--route-bar-h:52px}#route-bar{bottom:calc(var(--bar-h) + var(--safe-bottom));height:var(--route-bar-h);background:var(--surface-solid,var(--surface));border-top:1px solid var(--border);padding:0 var(--space-4);align-items:center;gap:var(--space-3);z-index:1950;pointer-events:none;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;left:0;right:0;transform:translateY(100%)}body.route-planner-active{--ui-bottom-offset:calc(var(--bar-h) + var(--safe-bottom) + var(--route-bar-h))}body.route-planner-active #route-bar{pointer-events:auto;transform:translateY(0)}body.sheet-open #route-bar{pointer-events:none;transform:translateY(100%)}body.ui-hidden #route-bar{opacity:0;transform:translateY(200%)}body.profile-interacting #top-status-bar,body.profile-interacting #nav-bar,body.profile-interacting #coords-pill,body.profile-interacting #route-bar,body.profile-interacting #route-settings,body.profile-interacting .fab-stack,body.profile-interacting #bottom-bar{opacity:0!important;pointer-events:none!important;transition:opacity .15s,transform .15s!important;transform:scale(.92)!important}.rb-dots{flex-shrink:0;align-items:center;gap:4px;display:flex}.rb-dot{background:var(--accent);opacity:.35;border-radius:50%;width:8px;height:8px;transition:opacity .2s}.rb-dot.active{opacity:1}.rb-info{min-width:0;font-size:var(--text-sm);color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;flex:1;overflow:hidden}.rb-btn{padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-active);background:var(--surface-hover);color:var(--text);font-size:var(--text-sm);cursor:pointer;height:36px;transition:opacity var(--transition-fast), background var(--transition-fast);white-space:nowrap;flex-shrink:0;align-items:center;font-family:inherit;font-weight:600;display:flex}.rb-btn:active{opacity:.7}.rb-btn:disabled{opacity:.35;cursor:default}.rb-btn-danger{color:var(--danger,#ef4444);background:#ef44440f;border-color:#ef444433}.rb-btn-danger:hover{border-color:var(--danger,#ef4444);background:#ef44441f}@keyframes rb-flash{0%{background:color-mix(in srgb, var(--accent) 25%, transparent)}to{background:0 0}}#route-bar.rb-flash{animation:.45s ease-out rb-flash}#lp-indicator{pointer-events:none;z-index:9999;opacity:0;width:44px;height:44px;transition:opacity .15s;display:none;position:fixed;transform:translate(-50%,-50%)}#lp-indicator.active{opacity:1;display:block}#lp-indicator svg{width:100%;height:100%}#lp-indicator circle{transition:stroke-dashoffset .5s linear}#lp-indicator.filling circle{stroke-dashoffset:0}#lp-indicator.done circle{stroke:var(--success,#22c55e)}.route-settings-panel{bottom:calc(var(--ui-bottom-offset) + 8px);left:var(--space-4,16px);right:var(--space-4,16px);background:var(--surface-solid,var(--surface));border:1px solid var(--border);border-radius:var(--radius-lg,12px);padding:var(--space-3,12px) var(--space-4,16px);z-index:1960;box-shadow:0 -4px 24px var(--shadow-sm,#0000001f);gap:var(--space-2,8px);flex-direction:column;transition:opacity .2s;display:flex;position:fixed}.route-settings-panel.hidden{display:none}.rs-row{align-items:center;gap:var(--space-2,8px);font-size:var(--text-sm,13px);display:flex}.rs-profile-select{min-width:0;padding:0 var(--space-2,8px);background:var(--surface-subtle,var(--surface));border:1px solid var(--border);border-radius:var(--radius-md,8px);height:36px;color:var(--text);font-family:inherit;font-size:var(--text-sm,13px);cursor:pointer;transition:border-color var(--transition-fast);outline:none;flex:1}.rs-profile-select:focus{border-color:var(--accent)}.rs-hidden-check{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.rs-loop-btn{border:1px solid var(--border);border-radius:var(--radius-md,8px);cursor:pointer;height:36px;color:var(--text-2);background:var(--surface-subtle,var(--surface));-webkit-user-select:none;user-select:none;white-space:nowrap;transition:border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast);flex-shrink:0;align-items:center;gap:4px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}#rs-loop:checked+.rs-loop-btn{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.rs-key-row input[type=password]{min-width:0;padding:0 var(--space-2,8px);background:var(--surface-subtle,var(--surface));border:1px solid var(--border);border-radius:var(--radius-md,8px);height:36px;color:var(--text);font-family:inherit;font-size:var(--text-sm,13px);transition:border-color var(--transition-fast);outline:none;flex:1}.rs-key-row input[type=password]:focus{border-color:var(--accent)}.rs-key-row span:first-child{flex-shrink:0}#rs-save-key{border-radius:var(--radius-md,8px);background:var(--accent);width:36px;height:36px;color:var(--on-accent,#fff);cursor:pointer;transition:opacity var(--transition-fast);border:none;flex-shrink:0;font-size:16px;font-weight:700}#rs-save-key:hover{opacity:.85}.rs-key-hint{text-align:center;padding:4px 12px 0;font-size:11px}.rs-key-hint a{color:var(--accent);opacity:.8;text-decoration:none}.rs-key-hint a:hover{opacity:1;text-decoration:underline}.rs-waypoints-list{margin-top:var(--space-1,4px);flex-direction:column;gap:2px;max-height:180px;display:flex;overflow-y:auto}.rs-wp-item{align-items:center;gap:var(--space-2,8px);padding:4px var(--space-2,8px);border-radius:var(--radius-sm,6px);background:var(--surface-subtle,var(--surface));font-size:var(--text-xs,11px);display:flex}.rs-wp-num{background:var(--accent,#f97316);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:flex}.rs-wp-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-2);flex:1;overflow:hidden}.rs-wp-up,.rs-wp-dn,.rs-wp-del{border-radius:var(--radius-sm,6px);width:22px;height:22px;color:var(--text-3);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:flex}.rs-wp-up:hover,.rs-wp-dn:hover{background:var(--surface-hover);color:var(--text)}.rs-wp-up:disabled,.rs-wp-dn:disabled{opacity:.25;cursor:default}.rs-wp-del:hover{color:var(--danger,#ef4444);background:#ef44441f}
