:root{--panel: rgba(255, 255, 255, .92);--panel-solid: #ffffff;--text: #1a1a1a;--muted: #777b82;--faint: #9aa0a6;--border: #d8dadf;--border-soft: #e6e8ec;--field: #f4f5f7;--field-hover: #e9eaee;--accent: #2b6cff;--accent-press: #1741b8;--accent-soft: rgba(43, 108, 255, .16);--on-accent: #ffffff;--danger: #c0271a;--danger-border: #e3b4ad;--danger-bg: #fdecea;--track: #cfcfcf;--radius: 10px;--radius-sm: 6px;--shadow: 0 2px 16px rgba(0, 0, 0, .18);--shadow-sm: 0 1px 6px rgba(0, 0, 0, .22);--blur: saturate(1.1) blur(10px);--fab-scale: 1}body.dark{--panel: rgba(28, 30, 34, .9);--panel-solid: #1c1e22;--text: #e8eaed;--muted: #9aa0a6;--faint: #80868b;--border: #3a3d42;--border-soft: #2c2f34;--field: #2a2d31;--field-hover: #34383d;--accent: #4c8dff;--accent-press: #1741b8;--accent-soft: rgba(76, 141, 255, .22);--on-accent: #ffffff;--danger: #ff6b5e;--danger-border: #6e3a36;--danger-bg: #3a201d;--track: #4a4d52;--shadow: 0 2px 18px rgba(0, 0, 0, .55);--shadow-sm: 0 1px 8px rgba(0, 0, 0, .5)}html{background:#fff;color-scheme:light}@media (prefers-color-scheme: dark){html{background:#1c1e22;color-scheme:dark}}html,body{margin:0;font-family:system-ui,-apple-system,sans-serif;height:100%;height:100dvh;overscroll-behavior:none}body{position:relative;overscroll-behavior:none;overflow:hidden}#map{position:absolute;top:0;right:0;bottom:0;left:0}#toast{position:absolute;top:54px;left:50%;transform:translate(-50%);z-index:6;max-width:calc(100vw - 32px);background:#141414eb;color:#fff;font-size:12.5px;font-weight:500;line-height:1.3;text-align:center;padding:8px 14px;border-radius:999px;box-shadow:var(--shadow);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);pointer-events:none;animation:toast-in .2s ease}#toast[hidden]{display:none}#toast.sticky{pointer-events:auto;cursor:pointer}#toast .toast-action{display:inline-block;vertical-align:middle;margin-left:10px;padding:5px 12px;border:0;border-radius:999px;background:var(--accent);color:#fff;font:inherit;font-weight:600;font-size:12px;line-height:1;cursor:pointer;pointer-events:auto}@keyframes fab-attention{0%,to{box-shadow:0 0 #e8430f00}50%{box-shadow:0 0 0 6px #e8430f80}}.fab.fab-attention{animation:fab-attention 1s ease-in-out 3}#map-hint{position:absolute;left:50%;transform:translate(-50%);top:calc(env(safe-area-inset-top,0px) + 12px);z-index:4;max-width:calc(100vw - 24px);padding:7px 14px;border-radius:14px;background:var(--panel);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-sm);font-size:12px;font-weight:500;line-height:1.25;text-align:center;pointer-events:none;animation:el-in .2s ease}#map-hint[hidden]{display:none}#map-hint .hint-title{display:block;font-weight:700;font-size:12.5px}#region-banner .region-row{display:flex;align-items:center;gap:10px}.rb-text{flex:1;min-width:0;font-size:13px;font-weight:500;line-height:1.25}.rb-download{flex:none;cursor:pointer;white-space:nowrap;font-size:13px;font-weight:600;padding:6px 14px;border-radius:999px;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent)}.rb-download:hover{background:var(--accent-press);border-color:var(--accent-press)}.rb-download:disabled{opacity:.6;cursor:default}#track-tune.track-card{position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);left:50%;transform:translate(-50%);z-index:6;width:max-content;max-width:calc(100vw - 24px);display:flex;flex-direction:column;gap:8px;padding:6px 8px;border-radius:999px;background:var(--panel);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);animation:el-in .2s ease}#track-tune.track-card.tuning{width:min(440px,calc(100vw - 24px));padding:10px 12px;border-radius:16px}#track-tune.track-card[hidden]{display:none}.tc-convert{flex:none;cursor:pointer;white-space:nowrap;font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent)}.tc-convert:hover{background:var(--accent-press);border-color:var(--accent-press)}.tc-row{display:flex;align-items:center;gap:10px}.tc-title{flex:none;font-size:13px;font-weight:600}.tc-row input[type=range]{flex:1;min-width:0;accent-color:var(--accent);cursor:pointer}.tc-count{flex:none;min-width:28px;text-align:right;font-size:13px;font-weight:600}.tc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.tc-dev{font-size:12px;color:var(--faint);line-height:1.25}.tc-done{flex:none;cursor:pointer;white-space:nowrap;font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--field);color:var(--text)}.tc-done:hover{background:var(--field-hover)}.tc-download{cursor:pointer;width:100%;white-space:nowrap;font-size:13px;font-weight:600;padding:9px 14px;border-radius:12px;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent)}.tc-download:hover{background:var(--accent-press);border-color:var(--accent-press)}.tc-download:disabled{opacity:.6;cursor:default}.tc-download[hidden]{display:none}.tc-head{display:flex;align-items:center;gap:6px}.tc-head[hidden]{display:none}.tc-head .tc-dev{flex:none;white-space:nowrap}.tc-refname{flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tc-icon{flex:none;cursor:pointer;width:26px;height:26px;border-radius:999px;border:1px solid var(--border);background:var(--field);color:var(--text);font-size:13px;line-height:1}.tc-icon:hover{background:var(--field-hover)}.import-chooser{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;padding:16px;display:flex;align-items:center;justify-content:center;background:#00000059}.import-chooser[hidden]{display:none}.ic-card{width:min(360px,100%);display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:16px;background:var(--panel);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow)}.ic-title{font-weight:700;font-size:15px;margin-bottom:4px}.ic-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;cursor:pointer;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--field);color:var(--text)}.ic-opt b{font-size:13px;font-weight:600}.ic-opt span{font-size:12px;color:var(--faint)}.ic-opt:hover{background:var(--field-hover);border-color:var(--accent)}.ic-cancel{cursor:pointer;align-self:center;margin-top:4px;padding:6px 14px;border-radius:999px;border:none;background:transparent;color:var(--faint);font-weight:600}.ic-cancel:hover{color:var(--text)}.ic-danger{align-items:center}.ic-danger b{color:#c026d3}#confirm-dialog .ic-opt{align-items:center;text-align:center}#confirm-dialog .ic-opt[hidden]{display:none}.cr-msg{margin:0 0 4px;font-size:13px;line-height:1.4;color:var(--faint)}#nav-guide{position:absolute;top:0;left:0;right:0;z-index:7;display:flex;flex-direction:column;border-radius:0 0 18px 18px;overflow:hidden;background:#14161af0;color:#fff;box-shadow:var(--shadow);animation:ms-in .2s ease;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform .18s ease}#nav-guide[hidden]{display:none}#nav-guide.dragging{transition:none}#nav-guide.collapsed{flex-direction:row;align-items:center}#nav-guide.collapsed:after{content:"⌄";flex:0 0 auto;padding:0 12px 2px 4px;font-size:16px;opacity:.7}#nav-guide.collapsed .nav-guide-main{flex:1;min-width:0;gap:8px;padding:calc(env(safe-area-inset-top,0px) + 5px) 4px 5px 10px}#nav-guide.collapsed .nav-guide-icon{min-width:28px}#nav-guide.collapsed .nav-guide-icon svg{width:28px;height:28px}#nav-guide.collapsed .nav-guide-text{flex-direction:row;align-items:baseline;gap:8px;white-space:nowrap;overflow:hidden}#nav-guide.collapsed .nav-guide-dist{font-size:19px;flex:0 0 auto}#nav-guide.collapsed .nav-guide-instr{font-size:14px;margin-top:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#nav-guide.collapsed .nav-guide-instr .gi-lead{display:none}#nav-guide.collapsed .nav-guide-instr .gi-road{display:inline;font-size:16px}#nav-guide.collapsed .nav-guide-trip{flex:0 0 auto;padding:0 10px;border-top:0;border-left:1px solid rgba(255,255,255,.12);background:none;font-size:12px;white-space:nowrap}.nav-guide-main{display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 10px 12px}.nav-guide-trip{padding:9px 20px 11px;text-align:center;border-top:1px solid rgba(255,255,255,.12);background:#ffffff0d;font-size:16px;font-weight:700;letter-spacing:.2px;font-variant-numeric:tabular-nums}.nav-guide-trip[hidden]{display:none}.nav-guide-trip.off-route{color:#ff9a7a}.nav-guide-icon{flex:0 0 auto;min-width:150px;display:flex;align-items:center;justify-content:center}.nav-guide-icon svg{width:150px;height:150px;display:block}@keyframes gi-spin{to{transform:rotate(1turn)}}.nav-guide-icon.gi-spin{animation:gi-spin 1.1s linear infinite}.nav-guide-text{display:flex;flex-direction:column;flex:1;min-width:0}.nav-guide-dist{font-size:57px;font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums}.nav-guide-instr{font-size:19px;line-height:1.3;margin-top:4px;overflow-wrap:anywhere}.nav-guide-instr .gi-lead{opacity:.8}.nav-guide-instr .gi-road{display:block;font-size:26px;font-weight:800}body.mode-nav .maplibregl-ctrl-top-left{margin-top:var(--nav-top, 48px)}body.mode-nav #track-tune.track-card{top:calc(var(--nav-top, 48px) + 10px)}body.mode-nav #fab-rail{top:auto;bottom:calc(var(--nav-bottom, 76px) + 10px)}body.mode-nav .maplibregl-ctrl-bottom-left{display:none}.nav-puck{width:0;height:0}.nav-puck-dot{position:absolute;left:0;top:0;width:16px;height:16px;transform:translate(-50%,-50%);border-radius:50%;background:#2b6cff;border:3px solid #fff;box-shadow:0 0 0 1px #00000040,0 2px 6px #00000073;cursor:grab}.nav-puck-heading{position:absolute;left:0;top:0;width:0;height:0;transform:translate(-50%,-50%) rotate(0)}.nav-puck-arrow{position:absolute;left:-7px;top:-20px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:11px solid #2b6cff;filter:drop-shadow(0 1px 1px rgba(0,0,0,.4))}#nav-bar{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;align-items:center;gap:10px;padding:10px 16px calc(env(safe-area-inset-bottom,0px) + 12px);border-radius:18px 18px 0 0;background:#14161af0;color:#fff;box-shadow:var(--shadow);font-size:12px;animation:el-in .2s ease}#nav-bar[hidden]{display:none}.nav-bar-sim{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-left:auto}#nav-bar button{flex:none;cursor:pointer;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:#ffffff1a;color:#fff;font-size:15px;line-height:1}#nav-bar button:hover{background:#ffffff2e}#nav-bar button.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}#nav-bar .nav-exit-btn{background:#ffffff1a;border-color:#ffffff80;color:#fff;font-size:16px;font-weight:700}#nav-bar .nav-exit-btn:hover{background:#fff3}.nav-cam{font-size:15px;font-weight:700}#nav-speedzoom.active{font-size:12px;font-variant-numeric:tabular-nums}#nav-speedzoom.sz-turn{color:#f59e0b}#nav-speedzoom.sz-hold{color:#94a3b8;font-style:italic}.nav-compass-btn svg{width:calc(22px * var(--fab-scale));height:calc(22px * var(--fab-scale))}body.dark .nav-compass-btn svg{filter:invert(.9)}.nav-speed-wrap{display:flex;align-items:center;gap:6px}.nav-speed-wrap[hidden]{display:none}.nav-speed-wrap input[type=range]{width:88px;accent-color:var(--accent)}#nav-bar #nav-speed-val{white-space:nowrap;color:#ffffffb3;min-width:52px}#nav-bar .nav-readout{white-space:pre-line;color:#ffffffd1;font-variant-numeric:tabular-nums}.nav-readout.off-route{color:#ff7a55;font-weight:600}#panel .nav-start{width:100%;margin-top:8px;padding:9px 12px;font-size:14px;font-weight:700;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:var(--on-accent)}#panel .nav-start:hover{background:var(--accent-press);border-color:var(--accent-press)}#panel .nav-start:disabled{opacity:.5;cursor:default;background:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-6px)}}.maplibregl-map .maplibregl-ctrl-bottom-left{display:flex;flex-direction:row-reverse;align-items:center;gap:8px;padding:0 0 0 10px;bottom:calc(env(safe-area-inset-bottom,0px) + 34px + (20px * var(--fab-scale, 1)));transform:translateY(50%)}.maplibregl-map .maplibregl-ctrl-bottom-left .maplibregl-ctrl{margin:0;float:none}.maplibregl-ctrl.zoom-level{background:var(--panel);color:var(--text);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);font-size:11px;font-weight:600;line-height:1;padding:3px 7px;border-radius:6px;box-shadow:var(--shadow-sm);pointer-events:none;-webkit-user-select:none;user-select:none}.maplibregl-ctrl-top-left{margin-top:var(--top-inset, calc(env(safe-area-inset-top, 0px) + 8px) )}.maplibregl-ctrl-top-left .maplibregl-ctrl-group,#corner-stack .maplibregl-ctrl-group{background:var(--panel);border:1px solid var(--border);border-radius:50%;box-shadow:var(--shadow-sm);overflow:hidden;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.maplibregl-ctrl-top-left .maplibregl-ctrl-group{margin:0 0 8px 10px}#corner-stack .maplibregl-ctrl-group{margin:0}.maplibregl-ctrl-top-left .maplibregl-ctrl-group button,#corner-stack .maplibregl-ctrl-group button{width:calc(40px * var(--fab-scale));height:calc(40px * var(--fab-scale));background:transparent;border:none}.maplibregl-ctrl-top-left .maplibregl-ctrl-icon,#corner-stack .maplibregl-ctrl-icon{transform:scale(var(--fab-scale))}.maplibregl-ctrl-top-left .maplibregl-ctrl-group button:hover,#corner-stack .maplibregl-ctrl-group button:hover{background:var(--field-hover)}.maplibregl-ctrl-top-left .maplibregl-ctrl-group button+button{border-top:1px solid var(--border-soft)}body.dark .maplibregl-ctrl-top-left .maplibregl-ctrl-icon,body.dark #corner-stack .maplibregl-ctrl-icon{filter:invert(.9)}.sheet,.fab,button,.switch input[type=checkbox],.wp-field{transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}.sheet{position:absolute;left:10px;bottom:10px;z-index:8;width:360px;max-width:calc(100vw - 20px);overflow-y:auto;max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none;background:var(--panel);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);color:var(--text);padding:0 14px 12px;border-radius:var(--radius);box-shadow:var(--shadow);box-sizing:border-box}.sheet::-webkit-scrollbar{width:0;height:0;display:none}.sheet[hidden]{display:none}.sheet-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;margin:0 -14px 6px;padding:12px 14px 8px;background:var(--panel-solid);border-bottom:1px solid var(--border-soft);border-radius:var(--radius) var(--radius) 0 0;touch-action:none}.sheet-head *{touch-action:none}.sheet-head h1,.sheet-head h2{font-size:14px;margin:0;flex:1}.sheet-close{border:none;background:none;color:var(--muted);cursor:pointer;font-size:20px;line-height:1;padding:0 2px}.sheet-close:hover{color:var(--text)}.sheet-section{margin-top:10px;padding-top:8px;border-top:1px solid var(--border-soft)}.section-title{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--muted)}.section-title.sub{margin-top:12px;color:var(--faint)}.section-title.sub-tight{margin-top:2px}.sub-divider{height:1px;background:var(--border-soft);margin:10px 0}.help .help-intro{margin:2px 0 0;line-height:1.45}.help .help-lead{margin:0 0 5px;color:var(--muted);line-height:1.4}.help ul{margin:0;padding-left:18px}.help li{margin:4px 0;line-height:1.4}.help i{font-style:normal;color:var(--accent)}.overlay-line{display:flex;align-items:center;justify-content:space-between;gap:10px}#terrain-exag{flex:1;min-width:0;accent-color:var(--accent);cursor:pointer}#terrain-exag:disabled{opacity:.45;cursor:default}.overlay-refresh{font-size:12px;padding:4px 8px;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--field);color:var(--text)}.overlay-refresh:hover{background:var(--field-hover)}.overlay-refresh[hidden]{display:none}.hue-row{display:flex;align-items:center;gap:8px;margin-top:8px}.hue-swatch{width:16px;height:16px;border-radius:50%;flex:0 0 auto;border:1px solid var(--border);background:var(--accent)}#hue-slider{flex:1;height:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:999px;background:linear-gradient(90deg,#ee2f2f,#eeee2f,#2fee2f,#2feeee,#2f2fee,#ee2fee,#ee2f2f);cursor:pointer}#hue-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 3px #0006;cursor:pointer}#hue-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 3px #0006;cursor:pointer}.hue-mini{border:1px solid var(--border)!important;background:var(--field)!important;color:var(--text)!important;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;padding:3px 6px!important;line-height:1}.hue-mini:hover{background:var(--field-hover)!important}.grip{display:none}#route-pane{margin-top:2px}#route-pane>#euc-speed-row,#route-pane>#avoid-row,#route-pane>.directions,#route-pane>#route-info:not(:empty){margin-top:10px;padding-top:10px;border-top:1px solid var(--border-soft)}#route-pane>#euc-speed-row{font-size:12px;color:var(--text)}#euc-speed-row[hidden]{display:none}.rc-modes{display:flex;flex-direction:column;gap:2px;margin-top:4px}.rc-modes label{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:13.5px}.rc-modes label:hover{background:var(--accent-soft)}.rc-modes input{accent-color:var(--accent);margin:0}#colors-panel>#route-color-legend:not([hidden]),#colors-panel>#surface-info:not(:empty),#colors-panel>.rc-stopdist{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-soft)}#rc-split-row{padding:0 8px 4px 30px}#rc-split-row[hidden]{display:none}.rc-split-val{min-width:3.5em;text-align:right;font-variant-numeric:tabular-nums}.rc-stopdist-hint{font-size:11px;margin-top:4px}.saved-routes-list{display:flex;flex-direction:column;gap:4px;position:relative}#saved-routes-empty{margin:2px 0 4px}#saved-routes-empty[hidden]{display:none}#panel button,#panel select{font-size:13px;padding:5px 8px}#panel button{cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--field);color:var(--text)}#panel button:hover{background:var(--field-hover)}#panel button.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}#panel button:disabled{opacity:.5;cursor:default}#fab-rail{position:absolute;right:10px;z-index:4;bottom:calc(env(safe-area-inset-bottom,0px) + 34px + var(--corner-h, 0px) + 8px);display:flex;flex-direction:column;align-items:flex-end;gap:8px}#fab-rail,.fab-group,.fab-row{pointer-events:none}body.arc-nav #fab-rail,body.arc-nav #corner-stack,body.arc-nav #pick-actions,body.arc-nav #edit-done{display:none}#fab-rail .fab{pointer-events:auto}.fab[hidden]{display:none}.fab{width:calc(40px * var(--fab-scale));height:calc(40px * var(--fab-scale));border-radius:50%;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--panel);color:var(--text);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);cursor:pointer;font-size:calc(18px * var(--fab-scale));line-height:1;box-shadow:var(--shadow-sm)}.fab>svg{width:calc(20px * var(--fab-scale));height:calc(20px * var(--fab-scale));flex:0 0 auto}.fab-group{display:none;flex-direction:column;align-items:flex-end;gap:8px}body:not(.mode-nav):not(.mode-edit) .fab-group[data-mode=browse]{display:flex}body.mode-nav .fab-group[data-mode=nav],body.mode-edit .fab-group[data-mode=edit]{display:flex}.fab-row{display:flex;flex-direction:row;align-items:center;gap:8px}body.mode-nav .fab-persist,body.mode-edit .fab-persist{display:none}#corner-stack{position:absolute;right:10px;z-index:4;bottom:calc(env(safe-area-inset-bottom,0px) + 34px);display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}#corner-stack>*{pointer-events:auto}body.mode-nav #corner-stack,body.mode-edit #corner-stack{display:none}#build-badge{position:absolute;right:12px;z-index:3;bottom:calc(env(safe-area-inset-bottom,0px) + 8px);font-size:10px;line-height:1;color:var(--faint);opacity:.6;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none}body.mode-nav #build-badge{display:none}body.mode-edit .marker-badge{pointer-events:none}#nav-fab{color:var(--text);overflow:hidden}#nav-fab:enabled{width:calc(120px * var(--fab-scale) + 16px);justify-content:space-between;border-radius:999px;padding:0 calc(3px * var(--fab-scale)) 0 calc(14px * var(--fab-scale))}#nav-fab .nav-fab-label{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;color:var(--text);font-size:calc(13px * var(--fab-scale));font-weight:600;line-height:normal;transition:max-width .18s ease,opacity .18s ease,margin-right .18s ease}#nav-fab:enabled .nav-fab-label{max-width:140px;opacity:1;margin-right:calc(8px * var(--fab-scale))}#nav-fab svg{width:calc(34px * var(--fab-scale));height:calc(34px * var(--fab-scale));flex:0 0 auto}.fab.fab-sub{width:calc(30px * var(--fab-scale));height:calc(30px * var(--fab-scale));font-size:calc(14px * var(--fab-scale))}.nav-exit-fab{font-size:calc(20px * var(--fab-scale))}.edit-back{position:absolute;z-index:4;top:calc(env(safe-area-inset-top,0px) + 10px);left:calc(env(safe-area-inset-left,0px) + 10px)}body:not(.mode-edit) .edit-back{display:none}.fab.fab-wide{width:auto;padding:0 calc(14px * var(--fab-scale));gap:calc(6px * var(--fab-scale));border-radius:20px}.fab-wide .fab-ico{font-size:calc(17px * var(--fab-scale));line-height:1}.fab-wide .fab-lbl{font-size:calc(13px * var(--fab-scale));font-weight:600;white-space:nowrap}.fab:disabled{opacity:.4;cursor:default}.fab:disabled:hover{background:var(--panel)}.fab:hover{background:var(--field-hover)}.fab.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}@keyframes fab-flash{0%{transform:scale(1);background:var(--accent);border-color:var(--accent)}55%{transform:scale(1.14)}to{transform:scale(1);background:var(--panel)}}.fab.fab-flash{animation:fab-flash .3s ease-out}.speed-sign,.speed-sign:hover,.speed-sign.active{background:#fff;border:calc(5px * var(--fab-scale)) solid #d32f2f;color:#111;font-size:calc(18px * var(--fab-scale));font-weight:800;letter-spacing:-1px}.speed-sign:not(.active){filter:grayscale(1);opacity:.5}#avoid-fab{font-size:calc(15px * var(--fab-scale))}#settings-panel button{font-size:13px;padding:5px 8px;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--field);color:var(--text)}#settings-panel button:hover{background:var(--field-hover)}#settings-panel button.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}#settings-panel button:disabled{opacity:.5;cursor:default}.storage-row{display:flex;align-items:center;gap:10px}.storage-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.storage-title{font-size:13px;font-weight:600}#storage-stat.protected{color:#1a8a1a}#storage-persist{flex:none;white-space:nowrap;border-color:var(--accent)!important;color:var(--accent);font-weight:600}#storage-persist:hover{background:var(--accent-soft)!important}.dev-btn{width:100%;padding:8px 12px;text-align:left;font-size:12.5px;font-weight:600}.dev-btn:hover{border-color:var(--accent);color:var(--accent)}#select-btn,#pick-btn{flex:1}#pick-btn.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.toggle-row{display:flex;gap:18px;align-items:center;margin:8px 0}.selection{margin:8px 0;padding:8px 10px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--field)}.selection[hidden]{display:none}.sel-actions{display:flex;gap:6px;margin-top:6px}.sel-actions[hidden]{display:none}#settings-panel .sel-actions button{flex:1}.del-confirm{margin-top:6px;font-size:12px;line-height:1.4}.del-confirm[hidden]{display:none}#settings-panel button.danger{color:var(--danger);border-color:var(--danger-border)}#settings-panel button.danger:hover{background:var(--danger-bg)}#settings-panel button.danger:disabled{color:var(--danger-border);border-color:var(--border-soft)}#settings-panel .linkish,#panel .linkish{border:none;background:none;color:var(--accent);cursor:pointer;font-size:12px;padding:4px 0 0}#settings-panel .linkish:hover{text-decoration:underline}#settings-panel .hint{font-size:11px;margin:2px 0 0}.tile-actions{font-size:12px;line-height:1.5;color:var(--text)}.tile-action-row{display:flex;gap:6px;margin-top:6px}.tile-act{flex:1;padding:5px 8px;font-size:12px;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field);color:var(--text)}.tile-act:hover{background:var(--field-hover)}.tile-act.danger{color:var(--danger);border-color:var(--danger-border)}.tile-act.danger:hover{background:var(--danger-bg)}.bm-row{display:flex;flex-direction:column;gap:4px}.bm-group-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);margin:8px 0 2px}.bm-group-label:first-child{margin-top:0}.bm-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:5px;font-size:13px;cursor:pointer;border:1px solid var(--border);border-radius:8px;background:var(--field);color:var(--text)}.bm-item:hover{background:var(--field-hover)}.bm-item.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.bm-preview{flex:0 0 auto;width:44px;height:44px;border-radius:6px;overflow:hidden;border:1px solid var(--border-soft);background:var(--field) center / cover no-repeat}.bm-preview img{width:100%;height:100%;object-fit:cover;display:block}.bm-text{display:flex;flex-direction:column;gap:1px;min-width:0}.bm-label{font-weight:600}.bm-host{font-size:10px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bm-hint{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.3}.modes{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}#mode .mode-btn{flex:1;border:none;border-right:1px solid var(--border-soft);border-radius:0;background:var(--field);color:var(--text);padding:7px 10px;font-size:16px;line-height:1;cursor:pointer}#mode .mode-btn:last-child{border-right:none}#mode .mode-btn.active{background:var(--accent);box-shadow:inset 0 0 0 2px var(--accent-press)}#mode .mode-btn:disabled{opacity:.5;cursor:default}.euc-row{display:flex;align-items:center;gap:10px}.euc-row input[type=range]{flex:1;min-width:0;accent-color:var(--accent);cursor:pointer}.euc-val{min-width:62px;text-align:right;font-variant-numeric:tabular-nums;color:var(--faint)}.row{margin:8px 0;display:flex;gap:6px;align-items:center}.avoid-row{margin:0 0 10px;font-size:12px;color:var(--text)}.avoid-row[hidden]{display:none}.toggle-line{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.avoid-toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.strength{display:flex;flex-direction:column;gap:6px;margin:8px 0 0;font-size:10.5px;color:var(--muted)}.strength[hidden]{display:none}.strength-row{display:flex;align-items:center;gap:8px}.strength-row input[type=range]{flex:1;min-width:0;cursor:pointer;accent-color:var(--accent)}.strength-cap{flex:0 0 auto;min-width:46px}.strength-end{flex:0 0 auto;min-width:58px;text-align:right}.strength-val{white-space:nowrap;color:var(--text);font-weight:600}.pill-anchor{position:absolute;top:0;left:0;width:0;height:0}.route-pill{--pill-bg: var(--panel-solid);position:absolute;top:0;left:0;width:max-content;background:var(--pill-bg);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:4px 10px;white-space:nowrap;box-shadow:var(--shadow-sm);cursor:pointer;text-align:center;transition:background .15s ease,border-color .15s ease,color .15s ease}.route-pill.arrow-down{transform:translate(-50%,calc(-100% - 7px))}.route-pill.arrow-up{transform:translate(-50%,7px)}.route-pill.arrow-left{transform:translate(7px,-50%)}.route-pill.arrow-right{transform:translate(calc(-100% - 7px),-50%)}.route-pill:hover{background:var(--field-hover)}.route-pill.active{--pill-bg: var(--accent);background:var(--pill-bg);color:var(--on-accent);border-color:var(--accent)}.route-pill .pill-time{display:block;font-size:13px;font-weight:700;line-height:1.15}.route-pill .pill-name{display:block;font-size:10px;font-weight:500;opacity:.85;line-height:1.15}.route-pill .pill-sign{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;margin-top:2px;border-radius:50%;background:#fff;border:2.5px solid #d32f2f;color:#111;font-size:9px;font-weight:800;letter-spacing:-.5px;line-height:1}.route-pill:after{content:"";position:absolute;width:0;height:0;border:7px solid transparent}.route-pill.arrow-down:after{top:100%;left:50%;transform:translate(-50%);border-top-color:var(--pill-bg);border-bottom:0}.route-pill.arrow-up:after{bottom:100%;left:50%;transform:translate(-50%);border-bottom-color:var(--pill-bg);border-top:0}.route-pill.arrow-left:after{right:100%;top:50%;transform:translateY(-50%);border-right-color:var(--pill-bg);border-left:0}.route-pill.arrow-right:after{left:100%;top:50%;transform:translateY(-50%);border-left-color:var(--pill-bg);border-right:0}.speed-toggle,.switch{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;color:var(--text)}.avoid-toggle input[type=checkbox],.speed-toggle input[type=checkbox],.switch input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:0;flex:0 0 auto;position:relative;width:36px;height:20px;border-radius:10px;background:var(--track);cursor:pointer}.avoid-toggle input[type=checkbox]:before,.speed-toggle input[type=checkbox]:before,.switch input[type=checkbox]:before{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000059;transition:transform .15s ease}.avoid-toggle input[type=checkbox]:checked,.speed-toggle input[type=checkbox]:checked,.switch input[type=checkbox]:checked{background:var(--accent)}.avoid-toggle input[type=checkbox]:checked:before,.speed-toggle input[type=checkbox]:checked:before,.switch input[type=checkbox]:checked:before{transform:translate(16px)}.avoid-toggle input[type=checkbox]:focus-visible,.speed-toggle input[type=checkbox]:focus-visible,.switch input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.speed-legend{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:4px 0 0}.speed-legend[hidden]{display:none}.speed-legend .chip{display:inline-block;width:14px;height:8px;border-radius:2px;margin-left:4px}.spinner{display:inline-block;width:13px;height:13px;border:2px solid var(--border);border-top-color:#f0a020;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stats{font-size:12px;color:var(--text);line-height:1.5;margin:6px 0}.stats .big{font-size:15px;font-weight:600;color:var(--text)}.stats .muted,.muted{color:var(--muted)}.surf-charts{display:flex;flex-direction:column;gap:12px;margin:10px 0 2px}.surf-charts:empty{display:none}.sc-cap{font-size:14px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.sc-mode{display:inline;margin-left:8px;font-size:11px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted)}.sc-mode:before{content:"· "}.sc-clickable{cursor:pointer}.sc-mode.sc-clickable:hover{color:var(--text);text-decoration:underline}.sc-scale{position:relative;display:flex;justify-content:space-between;margin-bottom:8px}.sc-end{font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.sc-mid{position:absolute;top:0;transform:translate(-50%);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.sc-grid{position:absolute;top:0;bottom:0;width:1px;background:var(--panel-solid);opacity:.55}.sc-profile .sc-grid{background:var(--border);opacity:1}.sc-bar{position:relative;display:flex;gap:3px;height:24px}.sc-run{flex-basis:0;min-width:2px;border-radius:4px}.sc-tick{position:absolute;top:0;transform:translate(-50%,-50%);width:15px;height:15px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:9px;font-weight:700;line-height:15px;text-align:center;box-shadow:0 0 0 2px var(--panel-solid)}.sc-tick-emoji{position:absolute;transform:translate(-50%,-150%);font-size:14px;line-height:1;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.sc-bar .sc-tick-emoji{top:0}.surf-chart.sc-emojied .sc-scale{margin-bottom:26px}.sc-legend{margin-top:5px;font-size:12px;color:var(--text);display:flex;flex-direction:column;gap:2px}.sc-cat{display:flex;align-items:center;gap:6px;cursor:pointer;font-weight:600;padding:1px 0}.sc-cat:hover .sc-name{text-decoration:underline}.sc-tw{flex:none;width:9px;font-size:9px;color:var(--muted);transition:transform .12s}.sc-cat-group.open .sc-tw{transform:rotate(90deg)}.sc-cat-vals{display:none;padding:1px 0 3px 15px;flex-direction:column;gap:2px}.sc-cat-group.open .sc-cat-vals{display:flex}.sc-item{display:flex;align-items:center;gap:6px}.sc-swatch{width:10px;height:10px;border-radius:3px;flex:none}.sc-dist{margin-left:auto;min-width:4.5em;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.sc-pct{min-width:2.8em;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.sc-unknown{background:#000}.sc-swatch.sc-unknown{box-shadow:inset 0 0 0 1px var(--border)}.sc-updown{margin-bottom:6px;font-size:12px;color:var(--text);font-variant-numeric:tabular-nums}.sc-profile{position:relative;height:112px;background:var(--field);border-radius:6px}.sc-profile svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.sc-area{fill:var(--accent-soft)}.sc-line{fill:none;stroke:var(--accent);stroke-width:1.8;vector-effect:non-scaling-stroke}.sc-ylab{position:absolute;left:5px;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.sc-ymax{top:2px}.sc-ymin{bottom:2px}#tile-legend.legend{position:absolute;left:10px;top:50%;transform:translateY(-50%);z-index:6;margin:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 7px;font-size:9.5px;line-height:1;color:var(--muted);background:var(--panel);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}#tile-legend[hidden]{display:none}.legend-title{font-weight:700;color:var(--text);margin-bottom:2px}.legend-bar{width:9px;height:110px;border-radius:5px;margin:0;background:linear-gradient(to top,#edf8e9,#bae4b3,#74c476,#238b45)}.legend-src{display:flex;flex-direction:column;gap:3px;margin-top:6px;padding-top:6px;border-top:1px solid var(--border-soft)}.legend-src[hidden]{display:none}.legend-src-row{display:flex;align-items:center;gap:4px;color:var(--text)}.legend-sw{width:9px;height:9px;border-radius:2px;flex:none}.legend-sw-region{background:#238b45}.legend-sw-user{background:#6d28d9}.maplibregl-popup-content{font-size:12px;padding:6px 9px;background:var(--panel-solid);color:var(--text);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.maplibregl-popup-anchor-top .maplibregl-popup-tip{border-bottom-color:var(--panel-solid)}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:var(--panel-solid)}.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--panel-solid)}.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--panel-solid)}.maplibregl-popup-close-button{color:var(--muted)}#mode{margin-bottom:10px}.directions{display:flex;align-items:flex-start;gap:6px}.wp-list{list-style:none;margin:6px 0;padding:0 0 0 48px;position:relative;flex:1}.wp-list:before{content:"";position:absolute;left:31px;top:16px;bottom:16px;border-left:2px dotted var(--border)}.wp-item{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px;margin-bottom:8px}.wp-item:before{content:"";position:absolute;left:-16px;top:50%;transform:translate(-50%,-50%);box-sizing:border-box;width:15px;height:15px;border-radius:50%;background:var(--dot, #888);box-shadow:0 0 0 2px var(--panel-solid)}.wp-item.start:before,.wp-item.end:before{background:var(--panel-solid);border:4px solid var(--dot)}.wp-item.via:before{content:attr(data-num);display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:700;line-height:1}#panel .wp-field{width:100%;display:block;text-align:left;cursor:pointer;background:var(--panel-solid);border:1px solid var(--border);border-radius:8px;padding:6px 9px}#panel .wp-field:hover{border-color:var(--accent)}#panel .wp-field.active{background:var(--panel-solid);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.wp-field .wp-name{display:block;font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wp-field .wp-coord{display:block;font-size:10px;color:var(--faint)}.wp-ph{font-size:12.5px;color:var(--faint)}.wp-grip{position:absolute;left:-40px;top:50%;transform:translate(-50%,-50%);width:22px;height:30px;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;color:var(--faint);font-size:18px;line-height:1}.wp-grip:hover{color:var(--muted)}.wp-grip:active,.wp-list.reordering{cursor:grabbing}.wp-list.reordering .wp-field{transition:none}.wp-list.reordering .wp-item:not(.wp-drag-clone){transition:transform .18s ease}.wp-drop-slot{position:absolute;z-index:1;margin:0;list-style:none;box-sizing:border-box;border:2px dashed var(--accent);border-radius:8px;background:var(--accent-soft);pointer-events:none}.wp-item.wp-drag-clone{position:absolute;z-index:10;margin:0;pointer-events:none;list-style:none;transition:none}.wp-item.wp-drag-clone .wp-field{border-color:var(--accent);background:var(--panel-solid);box-shadow:0 12px 28px #00000052}.wp-actions{display:flex;align-items:center}#panel .wp-btn{border:none;background:none;cursor:pointer;font-size:20px;font-weight:800;color:var(--muted);min-width:34px;height:34px;padding:0;line-height:1;display:inline-flex;align-items:center;justify-content:center;border-radius:8px}#panel .wp-btn:hover{color:var(--text);background:var(--field-hover)}#panel .wp-btn:disabled{opacity:.25;cursor:default;background:none}#panel .wp-remove{font-size:24px;color:var(--faint)}#panel .wp-remove:hover{color:#e8430f;background:var(--field-hover)}.wp-leg{display:block;font-size:11px;color:var(--muted);margin:-4px 0 6px 4px;background:none;border:none;padding:0;text-align:left;font-family:inherit;cursor:pointer}.wp-leg:hover{color:var(--text)}.wp-leg.bridged{color:#f5a623;font-weight:600}.wp-leg.bridged:hover{filter:brightness(1.1)}.wp-leg.agg{cursor:default}.wp-leg.agg:hover{color:var(--muted)}#panel .wp-add{position:relative;display:block;width:100%;text-align:left;padding:2px 0 2px 48px;margin:2px 0 8px;border:none;border-radius:0;background:none;cursor:pointer;font-size:12.5px;color:var(--muted)}.wp-add:before{content:"⊕";position:absolute;left:31px;top:50%;transform:translate(-50%,-50%);font-size:18px;line-height:1;color:var(--text)}#panel .wp-add:hover{background:none;color:var(--text)}#panel .wp-add:hover:before{color:var(--accent)}#panel .swap-btn{border:1px solid var(--border);background:var(--field);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;font-size:16px;font-weight:700;padding:7px 9px;flex:0 0 auto;margin-top:6px}#panel .swap-btn:hover{background:var(--field-hover)}.route-divider{border:none;border-top:1px solid var(--border-soft);margin:10px 0 8px}.route-link-tools{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px}.route-link-tools input{flex:1 1 120px;min-width:0;box-sizing:border-box;font-size:12px;padding:8px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field);color:var(--text)}.route-link-btns{display:flex;gap:6px;flex:0 0 auto}.route-link-btns button{flex:0 0 auto;width:34px;cursor:pointer;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field);color:var(--muted)}.route-link-btns button:hover:not(:disabled){background:var(--field-hover);color:var(--text)}.route-link-btns button:disabled{opacity:.5;cursor:default}.route-link-meta{flex:1 0 100%;font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}.route-link-meta.len-long{color:#c9a227}.route-link-meta.len-risk{color:#d9534f}.route-link-meta.len-over{color:#d9534f;font-weight:600}.route-export{width:100%;margin-top:6px;font-size:13px;padding:8px 10px;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--field);color:var(--text)}.route-export:hover:not(:disabled){background:var(--field-hover)}.route-export:disabled{opacity:.5;cursor:default}.sheet-section.first{margin-top:0;padding-top:0;border-top:none}.route-save{width:100%;cursor:pointer;font-size:14px;font-weight:600;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:var(--on-accent)}.route-save:hover:not(:disabled){background:var(--accent-press);border-color:var(--accent-press)}.route-save:disabled{opacity:.5;cursor:default}.save-clear-btns{display:flex;gap:6px}.save-clear-btns .route-save{flex:1.6;width:auto}.save-clear-btns .route-export{flex:1;width:auto;margin-top:0}.route-clear:not(:disabled){color:var(--danger);border-color:var(--danger-border)}.startup-route{display:flex;align-items:center;gap:8px;margin:0 0 6px}.startup-route .startup-label{flex:0 0 auto;font-size:12px;color:var(--muted);white-space:nowrap}.startup-route select{flex:1;min-width:0;cursor:pointer;font-size:13px;padding:5px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--field);color:var(--text)}.startup-route select:hover{background:var(--field-hover)}.device-route{display:flex;align-items:stretch;gap:4px}.dr-load{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;cursor:pointer;text-align:left;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--field);color:var(--text)}.dr-load:hover{background:var(--field-hover)}.dr-auto .dr-load{border-color:var(--accent)}.sr-auto{color:var(--accent);font-weight:600}.dr-load .sr-name{max-width:100%;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dr-load .sr-note{font-size:11px;color:var(--muted)}.dr-load .sr-schema{font-size:10.5px;color:var(--faint)}.dr-load .sr-schema-old{color:#f0a020}.dr-act{flex:0 0 auto;width:34px;cursor:pointer;font-size:13px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--field);color:var(--muted)}.dr-act:hover{background:var(--field-hover);color:var(--text)}.dr-del:hover{color:#c026d3}.dr-grip{flex:0 0 auto;width:18px;align-self:stretch;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;color:var(--faint);font-size:15px;line-height:1}.dr-grip:hover{color:var(--muted)}.dr-grip:active,.saved-routes-list.reordering{cursor:grabbing}.saved-routes-list.reordering .device-route:not(.wp-drag-clone){transition:transform .18s ease}.device-route.wp-drag-clone{position:absolute;z-index:10;margin:0;pointer-events:none;transition:none}.device-route.wp-drag-clone .dr-load{border-color:var(--accent);background:var(--panel-solid);box-shadow:0 12px 28px #00000052}.gpx-btns{display:flex;gap:6px}.gpx-btns .route-export{flex:1;width:auto;margin-top:0}.hint.warn{color:#d97706;border-left:2px solid #d97706;padding-left:8px}.fav-backup-btns{display:flex;gap:6px;margin-top:6px}.fav-backup-btns .route-export{flex:1;width:auto;margin-top:0}.wp-list .route-clear{margin-top:2px}#panel .linkish{font-size:13px;padding:2px 0}#panel .linkish:hover{text-decoration:underline}#panel .linkish:disabled{color:var(--faint);cursor:default;text-decoration:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal[hidden]{display:none}.modal-card{width:320px;max-width:100%;box-sizing:border-box;background:var(--panel-solid);color:var(--text);padding:14px 16px;border-radius:var(--radius);box-shadow:var(--shadow)}.modal-card .hint{margin:0 0 10px;line-height:1.4}.share-qr{display:flex;align-items:center;justify-content:center;width:200px;height:200px;margin:0 auto;padding:10px;box-sizing:border-box;background:#fff;border-radius:var(--radius-sm)}.share-qr svg{width:100%;height:100%;display:block}.ctxmenu{position:fixed;z-index:5;background:var(--panel-solid);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden}.ctxmenu[hidden]{display:none}.ctxmenu button{display:block;width:100%;text-align:left;border:none;background:none;color:var(--text);padding:7px 12px;font-size:13px;cursor:pointer}.ctxmenu button:hover{background:var(--accent-soft)}.ctxmenu button[hidden]{display:none}.ctxmenu button.ctx-danger{color:var(--danger)}.ctxmenu button.ctx-danger:hover{background:var(--danger-bg)}.ctxmenu .ctx-title{padding:7px 12px 3px;font-size:12px;font-weight:600;color:var(--muted)}.ctxmenu .ctx-sep{height:1px;margin:4px 10px;background:var(--border)}.ctxmenu button[data-act=from]:before,.ctxmenu button[data-act=add]:before,.ctxmenu button[data-act=to]:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;box-shadow:inset 0 0 0 1px #00000040}.ctxmenu button[data-act=from]:before{background:#1a8a1a}.ctxmenu button[data-act=add]:before{background:#2b6cff}.ctxmenu button[data-act=to]:before{background:#e53935}.radial{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8}.radial-back{position:absolute;top:0;right:0;bottom:0;left:0}.radial-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.radial-dot{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--panel-solid),0 1px 6px #00000059;animation:radial-in .16s ease-out both}.radial-wedge{cursor:pointer;animation:radial-in .18s ease-out both}.radial-seg{fill:var(--panel-solid);stroke:var(--border);stroke-width:1;filter:drop-shadow(0 2px 8px rgb(0 0 0 / .28));transition:fill .12s}.radial-ico{color:var(--text);fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.radial-emoji{font-size:17px;pointer-events:none;fill:currentColor;color:var(--text)}.radial-wedge.hot .radial-seg{fill:var(--accent)}.radial-wedge.hot .radial-ico,.radial-wedge.hot .radial-emoji{color:var(--on-accent)}.radial-wedge.danger .radial-ico,.radial-wedge.danger .radial-emoji{color:var(--danger)}.radial-wedge.danger.hot .radial-seg{fill:var(--danger)}.radial-wedge.danger.hot .radial-ico,.radial-wedge.danger.hot .radial-emoji{color:#fff}.radial-label{position:absolute;max-width:96px;padding:4px 8px;background:var(--panel-solid);color:var(--text);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow);font-size:11px;line-height:1.25;cursor:pointer;user-select:none;-webkit-user-select:none;animation:radial-in .18s ease-out both}.radial-label.danger{color:var(--danger)}.radial-label.hot{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.radial-label.danger.hot{background:var(--danger);border-color:var(--danger);color:#fff}@keyframes radial-in{0%{opacity:0;transform-origin:center;scale:.82}}#loaded-route-name{position:absolute;z-index:2;top:var(--top-inset, calc(env(safe-area-inset-top, 0px) + 10px) );left:10px;max-width:min(60vw,320px);padding:6px 11px;border-radius:999px;background:color-mix(in srgb,var(--panel) 30%,transparent);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);box-shadow:none;font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}#loaded-route-name[hidden],body.mode-nav #loaded-route-name,body.mode-edit #loaded-route-name{display:none}#searchbar{position:fixed;z-index:7;top:calc(env(safe-area-inset-top,0px) + 10px);left:10px;right:66px;max-width:560px;display:flex;flex-direction:column;gap:6px}#searchbar[hidden]{display:none}.sb-field{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--panel-solid);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow)}#search-input{flex:1;min-width:0;border:none;background:none;color:var(--text);font-size:15px;outline:none;padding:2px 0}#search-input::placeholder{color:var(--muted)}#search-input::-webkit-search-decoration,#search-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.sb-clear{border:none;background:var(--accent-soft);color:var(--text);cursor:pointer;width:22px;height:22px;border-radius:50%;font-size:15px;line-height:1;flex:none;display:flex;align-items:center;justify-content:center}.sb-clear:hover{background:var(--border)}.sb-filters{display:flex;gap:6px;flex-wrap:wrap;padding:0 2px}.sb-chip{border:1px solid var(--border);background:var(--panel-solid);color:var(--muted);cursor:pointer;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;line-height:1;box-shadow:var(--shadow)}.sb-chip:hover{color:var(--text)}.sb-chip.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.sb-results{background:var(--panel-solid);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);max-height:min(50vh,360px);overflow-y:auto;overscroll-behavior:contain}.sb-results[hidden]{display:none}.sr-row{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:none;background:none;color:var(--text);cursor:pointer;padding:9px 12px;font-size:14px}.sr-row:hover{background:var(--accent-soft)}.sr-icon{flex:none;font-size:14px;width:18px;text-align:center}.sr-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-ref{color:var(--muted);font-size:12px;font-weight:600}.sr-empty{padding:12px;font-size:13px;color:var(--muted);text-align:center}.sr-group{display:flex;justify-content:space-between;align-items:baseline;padding:9px 12px 4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.sb-results>.sr-group:not(:first-child){border-top:1px solid var(--border);margin-top:2px}.sr-count{font-weight:600;font-size:11px}.sr-more{border:none;background:none;color:var(--accent);cursor:pointer;width:100%;text-align:left;padding:4px 12px 9px 39px;font-size:12px;font-weight:600}.sr-more:hover{text-decoration:underline}.sr-row strong{font-weight:700;color:var(--accent)}.search-pin{width:26px;height:37px;pointer-events:none;filter:drop-shadow(0 1px 2px rgb(0 0 0 / .45))}.search-pin svg{width:100%;height:100%;display:block}.search-pin svg path{fill:var(--accent);stroke:#fff;stroke-width:1.5}.search-pin svg circle{fill:#fff}.marker-anchor{position:absolute;top:0;left:0;width:0;height:0}.marker-anchor.anchor-pin{z-index:2}.marker-anchor:hover{z-index:3}.police-marker{position:absolute;top:0;left:0;transform:translate(-50%,-50%);font-size:22px;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55));transition:transform .12s ease}.police-marker:hover{transform:translate(-50%,-50%) scale(1.25)}.place-marker{position:absolute;top:0;left:0;transform:translate(-50%,-50%);cursor:pointer;-webkit-user-select:none;user-select:none}.place-marker .pm-icon{display:block;font-size:22px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55));transition:transform .12s ease}.place-marker:hover .pm-icon{transform:scale(1.25)}.place-marker.pm-hidden{display:none}.place-marker.pm-moving{cursor:grab}.place-marker.pm-moving .pm-icon{animation:pm-pulse 1s ease-in-out infinite}@keyframes pm-pulse{50%{transform:scale(1.35)}}.place-marker.pm-target .pm-icon{animation:pm-pulse .6s ease-in-out infinite}.place-marker.pm-target .pm-name{border-color:var(--accent);color:var(--accent)}.place-marker .pm-name{position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%);padding:1px 6px;border-radius:999px;font-size:10px;font-weight:600;line-height:1.4;background:var(--panel-solid);color:var(--text);border:1px solid var(--border);white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.place-marker.pm-temp .pm-icon{opacity:.75;animation:pm-pulse 1.8s ease-in-out infinite}.place-marker.pm-temp .pm-name{border-style:dashed;opacity:.85}.marker-badge{position:absolute;left:0;bottom:0;transform:translate(-50%);transform-origin:bottom center;padding:3px 8px;border-radius:11px;color:#fff;line-height:1.1;font-size:11px;font-weight:600;white-space:nowrap;cursor:grab;box-shadow:0 1px 3px #0006;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.marker-badge .badge-dist{font-weight:500;opacity:.82}.marker-badge .badge-time{display:block;line-height:1;font-weight:500;font-size:9.5px;opacity:.82;letter-spacing:.1px}.marker-badge .badge-time:empty{display:none}.marker-badge.locked{filter:saturate(.7) brightness(.9)}.marker-badge.badge-pin{background:none;box-shadow:none;padding:0;border-radius:0;bottom:-4px}.marker-badge.badge-pin .pin-icon{display:block;width:34px;height:34px;color:#e53935}.marker-badge.badge-pin.pin-start .pin-icon{color:#1a8a1a}.marker-badge.badge-pin.pin-via .pin-icon{color:#2b6cff}.marker-badge.badge-pin.pin-via .pin-icon circle{display:none}.marker-badge.badge-pin .pin-num{position:absolute;left:50%;top:37.5%;transform:translate(-50%,-50%);color:#fff;font-size:11px;font-weight:700;line-height:1;letter-spacing:-.2px;pointer-events:none}.marker-badge.badge-pin .pin-icon svg{display:block;width:100%;height:100%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.marker-badge.badge-pin .pin-icon path{fill:currentColor}.marker-badge.badge-pin .pin-icon circle{stroke:#fff}.marker-badge.badge-pin .pin-chip{position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%);padding:2px 8px;border-radius:9px;text-align:center;background:var(--panel-solid);color:var(--text);border:1px solid var(--border);box-shadow:0 1px 3px #0000004d}.marker-badge.badge-pin .pin-chip[hidden]{display:none}.marker-badge.badge-pin:is(:hover,:active){box-shadow:none}.marker-badge.badge-pin.fail{box-shadow:none}.marker-badge.badge-pin.fail .pin-icon svg{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 5px #e53935)}.marker-badge.badge-pin.badge-chip .pin-chip{display:none}.marker-badge.badge-pin.badge-chip:is(:hover,:active) .pin-chip:not([hidden]){display:block}.marker-badge:hover{transform:translate(-50%) scale(1.4);filter:brightness(1.08);box-shadow:0 0 0 2px #fff,0 2px 8px #00000073}.marker-badge:active{cursor:grabbing;transform:translate(-50%) scale(1.3)}.marker-badge.badge-chip .badge-dist,.marker-badge.badge-chip .badge-time{display:none}.marker-badge.badge-chip:is(:hover,:active) .badge-dist{display:inline}.marker-badge.badge-chip:is(:hover,:active) .badge-time:not(:empty){display:block}.marker-badge.badge-dot{width:6px;height:6px;padding:0;border-radius:50%;transform:translate(-50%,50%);box-shadow:0 0 0 1px #fff,0 1px 2px #00000059}.marker-badge.badge-dot>span{display:none}.marker-badge.badge-dot:after{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border-radius:50%}.marker-badge.badge-dot:is(:hover,:active){width:auto;height:auto;padding:3px 8px;border-radius:11px;transform:translate(-50%) scale(1.4)}.marker-badge.badge-dot:is(:hover,:active) .badge-label,.marker-badge.badge-dot:is(:hover,:active) .badge-dist{display:inline}.marker-badge.badge-dot:is(:hover,:active) .badge-time:not(:empty){display:block}.marker-badge.badge-dot.shaping{width:14px;height:14px;box-shadow:0 0 0 2px #fff,0 1px 3px #0006}.marker-badge.badge-dot.shaping:is(:hover,:active){width:18px;height:18px;padding:0;border-radius:50%;transform:translate(-50%,50%);box-shadow:0 0 0 2px #fff,0 2px 8px #00000073}.marker-badge.badge-dot.shaping:is(:hover,:active)>span{display:none}.marker-badge.badge-dot.shaping:after{top:-17px;right:-17px;bottom:-17px;left:-17px}.marker-badge.fail{box-shadow:0 0 0 2px #fff,0 0 0 4px #e53935,0 1px 4px #00000080;z-index:5}.marker-badge.fail:not(.badge-pin){animation:fail-ring-pulse 1.1s ease-in-out infinite}@keyframes fail-ring-pulse{0%,to{box-shadow:0 0 0 2px #fff,0 0 0 4px #e53935,0 1px 4px #00000080}50%{box-shadow:0 0 0 2px #fff,0 0 0 7px #e53935,0 1px 4px #00000080}}.marker-badge.badge-pin.fail .pin-icon svg{animation:fail-glow-pulse 1.1s ease-in-out infinite}@keyframes fail-glow-pulse{0%,to{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 5px #e53935)}50%{filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 10px #e53935)}}.marker-badge .fail-tag{position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%);padding:1px 6px;border-radius:999px;font-size:10px;font-weight:700;line-height:1.4;background:#e53935;color:#fff;white-space:nowrap;box-shadow:0 1px 3px #0006;pointer-events:none}.marker-badge.badge-dot>.fail-tag{display:block}#engine-loading{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--panel);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);animation:el-in .25s ease}#engine-loading[hidden]{display:none}@keyframes el-in{0%{opacity:0}}#engine-loading.el-out{animation:el-out .35s ease forwards;pointer-events:none}@keyframes el-out{to{opacity:0}}#engine-loading.el-light{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;align-items:flex-end;padding-bottom:96px;pointer-events:none;animation:none}.el-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:13px;width:min(86vw,340px);padding:30px 32px;background:var(--panel-solid);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.el-spinner{width:34px;height:34px;border-width:3px;border-top-color:var(--accent)}#el-title{font-size:16px;font-weight:700;line-height:1.3}.el-sub{font-size:13px;color:var(--muted);min-height:1.2em;font-variant-numeric:tabular-nums}.el-bar{width:100%;height:8px;border-radius:999px;overflow:hidden;background:var(--track)}.el-bar span{display:block;height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .2s ease}.el-bar.indet span{width:40%;animation:el-indet 1.1s ease-in-out infinite;transition:none}@keyframes el-indet{0%{margin-left:-40%}to{margin-left:100%}}.el-note{font-size:11.5px;color:var(--muted);line-height:1.45;margin-top:2px}.el-note:empty{display:none}#map-stats{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:flex-start;justify-content:center;padding:7px 44px 18px;box-sizing:border-box;background:linear-gradient(180deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.22) 55%,transparent 100%);color:#fff;pointer-events:none;animation:ms-in .25s ease}#map-stats[hidden],body.mode-nav #map-stats{display:none}@keyframes ms-in{0%{opacity:0;transform:translateY(-6px)}}.ms-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;font-size:12px;line-height:1.3;text-shadow:0 1px 3px rgba(0,0,0,.6)}.ms-item{white-space:nowrap;opacity:.92}.ms-item b{font-size:14px;font-weight:700}.ms-sep{opacity:.45}.ms-build{opacity:.6;font-variant-numeric:tabular-nums}.ms-break{flex-basis:100%;height:0}.ms-grp-label{display:inline-block;font-weight:700;font-size:11px;color:#fff;padding:0 7px;border-radius:999px;margin-right:2px}.ms-grp-region{background:#228b45eb}.ms-grp-user{background:#7c3aedeb}.ms-grid{display:grid;grid-template-columns:auto repeat(5,auto);gap:2px 14px;align-items:baseline;margin-top:1px}.ms-cell{white-space:nowrap}.ms-h{font-size:10px;opacity:.65;text-align:right}.ms-v{font-size:13px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.ms-mode{font-weight:700;opacity:1;background:#ffffff2e;padding:1px 8px;border-radius:999px}.ms-offline{background:#dc2626eb}.ms-offline-hint{opacity:.92;font-size:11.5px}.ms-offline-hint code{font-size:11px;padding:0 4px;border-radius:4px;background:#ffffff29}#pick-bar{position:absolute;top:calc(env(safe-area-inset-top,0px) + 12px);left:50%;transform:translate(-50%);z-index:6;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px;max-width:calc(100vw - 20px);padding:8px 14px;border-radius:18px;background:var(--panel);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow)}#pick-bar[hidden]{display:none}#pick-count{font-size:12.5px;font-weight:600;white-space:nowrap}#pick-confirm{display:flex;flex-wrap:wrap;gap:6px;align-items:center}#pick-confirm[hidden]{display:none}#pick-actions{position:absolute;right:10px;z-index:6;top:calc(env(safe-area-inset-top,0px) + 58px);display:flex;flex-direction:column;align-items:stretch;gap:6px;width:calc(80px * var(--fab-scale))}#pick-actions[hidden]{display:none}#pick-actions .tile-act{flex:0 0 auto;min-height:calc(26px * var(--fab-scale));padding:3px 6px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.15;white-space:normal;background:var(--panel);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow-sm)}#pick-actions .pick-mode{display:flex}#pick-actions .pick-mode .tile-act{flex:1 1 0;padding:0;color:var(--muted)}#pick-actions .pick-mode .tile-act:first-child{border-radius:999px 0 0 999px}#pick-actions .pick-mode .tile-act:last-child{border-radius:0 999px 999px 0;border-left:none}#pick-actions .tile-act.active,.tile-act.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}body.mode-edit #track-tune.track-card{display:none}#pick-confirm-msg{font-size:12.5px}#pick-bar .tile-act{flex:0 0 auto}#pick-bar .tile-act:disabled,#pick-actions .tile-act:disabled{color:var(--faint);border-color:var(--border-soft);cursor:default}@media (max-width: 640px){.sheet{left:0;right:0;bottom:0;width:100%;max-width:none;border-radius:16px 16px 0 0;max-height:100vh;max-height:100dvh;box-shadow:0 -2px 18px #00000047}.sheet .sheet-head{padding-top:16px}.grip{display:block;position:absolute;top:7px;left:50%;transform:translate(-50%);width:40px;height:4px;border-radius:999px;background:var(--border)}}
