:root{--bg-app: #0b131c;--bg-panel: #101a25;--bg-panel-alt: #16212c;--bg-rail: #0c151f;--bg-elevated: #1c2a37;--bg-elevated-2: #24374a;--fg-panel: #edf2f8;--fg-panel-soft: #c4d1de;--fg-muted: #7f92a6;--fg-faint: #57697c;--accent: #3d7dff;--accent-hover: #5b91ff;--accent-active: #2f68df;--accent-soft: rgba(61, 125, 255, .14);--accent-soft-strong: rgba(61, 125, 255, .22);--border-panel: rgba(255, 255, 255, .08);--border-input: rgba(255, 255, 255, .14);--border-input-hover: rgba(255, 255, 255, .24);--input-bg: #17222d;--panel-bg: #ffffff;--panel-bg-soft: #f5f7fa;--border: #e2e8f0;--fg-light-strong: #16202c;--fg-light-muted: #64748b;--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .14);--danger-border: rgba(239, 68, 68, .38);--danger-fg: #ff9b9b;--success: #22c55e;--warning: #f2c94c;--warning-bg: rgba(242, 201, 76, .14);--shadow-sm: 0 1px 2px rgba(6, 10, 16, .32);--shadow-md: 0 6px 20px rgba(6, 10, 16, .3), 0 1px 3px rgba(6, 10, 16, .24);--shadow-lg: 0 18px 44px rgba(6, 10, 16, .4), 0 2px 8px rgba(6, 10, 16, .22);--shadow-float: 0 12px 32px rgba(12, 18, 28, .16), 0 2px 8px rgba(12, 18, 28, .08);--radius-sm: 7px;--radius-md: 10px;--radius-lg: 16px;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);font-family:Inter,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--fg-light-strong);background:var(--bg-app)}::selection{background:var(--accent-soft-strong);color:var(--fg-light-strong)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.sidebar-content,.inspector-body{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}.sidebar-content::-webkit-scrollbar,.inspector-body::-webkit-scrollbar{width:8px}.sidebar-content::-webkit-scrollbar-thumb,.inspector-body::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:8px;border:2px solid transparent;background-clip:padding-box}.sidebar-content::-webkit-scrollbar-thumb:hover,.inspector-body::-webkit-scrollbar-thumb:hover{background:#ffffff42}.app-shell{display:flex;flex-direction:column;height:100vh;background:var(--bg-app)}.app-header{background:linear-gradient(180deg,#121d29,#0d1620);color:var(--fg-panel);padding:0 22px;height:56px;display:flex;align-items:center;gap:14px;flex-shrink:0;border-bottom:1px solid var(--border-panel);box-shadow:0 1px #3d7dff29;position:relative;z-index:20}.app-header-mark{width:30px;height:30px;flex-shrink:0;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 0 0 1px #ffffff14,var(--shadow-sm);overflow:hidden}.app-header-mark img{width:100%;height:100%;object-fit:cover;display:block}.app-header-titles{display:flex;flex-direction:column;justify-content:center;gap:1px}.app-header h1{font-size:14.5px;margin:0;font-weight:650;letter-spacing:-.01em;line-height:1.2}.app-header .subtitle{font-size:11px;color:var(--fg-muted);line-height:1.2;letter-spacing:.01em}.mock-badge{margin-left:auto;background:var(--warning-bg);color:var(--warning);font-size:10px;font-weight:700;letter-spacing:.06em;padding:4px 9px;border-radius:20px;border:1px solid rgba(242,201,76,.3);display:inline-flex;align-items:center;gap:5px}.mock-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--warning);box-shadow:0 0 0 3px #f2c94c40}.app-body{flex:1;display:flex;min-height:0}.language-toggle-btn{margin-left:auto;background:#ffffff0f;color:var(--fg-panel);font-size:11px;font-weight:700;letter-spacing:.03em;padding:5px 11px;border-radius:20px;border:1px solid rgba(255,255,255,.14);cursor:pointer;transition:background .15s ease}.language-toggle-btn:hover{background:#ffffff24}.sidebar{width:300px;background:var(--bg-panel);display:flex;flex-shrink:0;border-right:1px solid var(--border-panel)}.sidebar-rail{width:54px;flex-shrink:0;background:var(--bg-rail);border-right:1px solid var(--border-panel);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:6px}.sidebar-rail-btn{position:relative;width:38px;height:38px;border-radius:var(--radius-sm);background:none;border:none;color:var(--fg-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .14s var(--ease),color .14s var(--ease)}.rail-mobile-only{display:none}.sidebar-rail-btn:hover{background:#ffffff0f;color:var(--fg-panel-soft)}.sidebar-rail-btn.active{background:var(--accent-soft);color:#fff}.sidebar-rail-btn.active:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--accent)}.rail-badge{position:absolute;top:2px;right:2px;font-size:9px;padding:0 4px;min-width:14px;height:14px;line-height:14px;text-align:center}.tab-badge{background:var(--accent);color:#fff;border-radius:20px;font-weight:700;font-variant-numeric:tabular-nums}.section-count-badge{position:static;font-size:10.5px;padding:1px 7px;min-width:18px;height:auto;line-height:1.5}.sidebar-panel{flex:1;min-width:0;display:flex;flex-direction:column;color:var(--fg-panel);background:var(--bg-panel)}.sidebar-panel-header{height:44px;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:0 16px;font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);border-bottom:1px solid var(--border-panel)}.sidebar-mobile-back{display:none;background:none;border:none;color:inherit;cursor:pointer;font-size:22px;line-height:1;padding:0 2px 2px;flex-shrink:0}.rail-label{display:none}.sidebar-content{flex:1;overflow-y:auto}.tab-panel{padding:16px 16px 20px}.tab-panel-summary{font-size:12px;color:var(--fg-muted);margin-bottom:12px;line-height:1.5}.layer-group{margin-bottom:4px;border-bottom:1px solid var(--border-panel);padding-bottom:10px}.layer-group:last-child{border-bottom:none}.layer-group-header{display:flex;align-items:center;justify-content:space-between;padding:7px 0}.group-toggle{background:none;border:none;color:var(--fg-panel-soft);cursor:pointer;font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:6px;padding:0;transition:color .15s var(--ease)}.group-toggle:hover{color:var(--fg-panel)}.chevron{display:inline-block;transition:transform .18s var(--ease-out);color:var(--fg-faint)}.chevron.open{transform:rotate(90deg)}.layer-group-body{padding:6px 0 4px;animation:fade-down .16s var(--ease-out)}@keyframes fade-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.layer-list{list-style:none;margin:0;padding:0}.layer-list li{display:flex;align-items:center;gap:8px;padding:7px;border-radius:var(--radius-sm);font-size:13px;cursor:default;transition:background .12s var(--ease)}.layer-list li:hover{background:var(--bg-elevated)}.layer-list li.selected{background:var(--accent-soft-strong);box-shadow:inset 0 0 0 1px #3d7dff59}.layer-list li span:not(.profile-dot){cursor:pointer;flex:1}.feature-count{color:var(--fg-muted);font-size:11px;font-variant-numeric:tabular-nums}.profile-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0;box-shadow:0 0 0 2px #ffffff0f}.profile-dot.dot-car{background:#3d7dff}.profile-dot.dot-truck{background:#ef8a3d}.profile-dot.dot-emergency{background:#ef4444}.profile-dot.dot-motorcycle{background:#a06bf0}.profile-dot.dot-foot{background:#2bc4a8}.profile-dot.dot-bike{background:#6cb62f}.profile-dot.dot-mtb{background:#d1a512}.empty-hint{color:var(--fg-muted);font-size:12px;line-height:1.55;margin:2px 0}.layer-list li.layer-list-row{display:block;cursor:default}.layer-row-top{display:flex;align-items:center;gap:8px}.layer-row-top span{cursor:pointer;flex:1}.layer-row-top .icon-only-btn{flex-shrink:0;cursor:pointer}.opacity-row{display:flex;align-items:center;gap:8px;margin:6px 0 2px 24px;padding-right:4px}.opacity-label{font-size:11px;color:var(--fg-muted);flex-shrink:0;width:44px}.opacity-row input[type=range]{flex:1;accent-color:var(--accent);height:4px}.basemap-selector{display:grid;grid-template-columns:1fr 1fr;gap:7px}.basemap-btn{background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel-soft);border-radius:var(--radius-sm);padding:8px 4px;font-size:11.5px;font-weight:500;cursor:pointer;transition:background .12s var(--ease),border-color .12s var(--ease),color .12s var(--ease),transform .12s var(--ease)}.basemap-btn:hover{background:var(--bg-elevated-2);border-color:var(--border-input-hover);color:var(--fg-panel)}.basemap-btn:active{transform:scale(.98)}.basemap-btn.active{border-color:var(--accent);background:var(--accent-soft);color:#fff;box-shadow:inset 0 0 0 1px #3d7dff66}.location-search{display:flex;flex-direction:column;gap:7px}.location-search-form{display:flex;gap:6px}.location-search-form input{flex:1;background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel);border-radius:var(--radius-sm);padding:7px 9px;font-size:12.5px;transition:border-color .12s var(--ease),background .12s var(--ease)}.location-search-form input:hover{border-color:var(--border-input-hover)}.location-search-form input:focus{border-color:var(--accent);background:var(--bg-elevated);outline:none}.location-result-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.location-result-list li{font-size:12px;padding:7px 8px;border-radius:var(--radius-sm);cursor:pointer;line-height:1.4;color:var(--fg-panel-soft);transition:background .12s var(--ease),color .12s var(--ease)}.location-result-list li:hover{background:var(--bg-elevated);color:var(--fg-panel)}.tools-panel{display:flex;flex-direction:column;gap:9px}.tools-btn-row{display:flex;gap:6px}.tool-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel-soft);border-radius:var(--radius-sm);padding:8px 4px;font-size:11.5px;font-weight:500;cursor:pointer;transition:background .12s var(--ease),border-color .12s var(--ease),color .12s var(--ease)}.tool-btn:hover{background:var(--bg-elevated-2);border-color:var(--border-input-hover);color:var(--fg-panel)}.tool-btn.active{border-color:var(--accent);background:var(--accent-soft);color:#fff;box-shadow:inset 0 0 0 1px #3d7dff66}.tool-icon{font-size:13px;line-height:1;display:inline-flex}.tools-hint{font-size:11.5px;color:var(--fg-muted);line-height:1.5;margin:0}.tools-result{font-size:13px;font-weight:650;background:var(--bg-elevated);border:1px solid var(--border-panel);border-radius:var(--radius-sm);padding:7px 10px;color:var(--fg-panel)}.route-card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.stats-card{background:var(--bg-panel-alt);border:1px solid var(--border-panel);border-radius:var(--radius-md);padding:10px 12px 11px;margin-bottom:14px}.stats-card-grid{display:flex;flex-wrap:wrap;gap:8px}.stats-chip{flex:1 1 auto;min-width:56px;display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--input-bg);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:6px 8px}.stats-chip-value{font-size:14px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;line-height:1.2}.stats-chip-label{font-size:10px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.03em}.stats-extent{font-size:11px;color:var(--fg-muted);margin:8px 0 0;line-height:1.5}.stats-extent-empty{font-style:italic}.poi-header-actions{display:flex;align-items:center;gap:8px}.poi-list{display:flex;flex-direction:column;gap:6px}.poi-row{display:flex;flex-direction:column;gap:5px}.poi-emoji{font-size:14px;line-height:1;flex-shrink:0}.poi-name-input{flex:1;min-width:0;background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel);border-radius:var(--radius-sm);padding:4px 7px;font-size:12px}.poi-name-input:hover{border-color:var(--border-input-hover)}.poi-name-input:focus{border-color:var(--accent);outline:none}.poi-type-select{margin-left:22px;background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel-soft);border-radius:var(--radius-sm);padding:3px 6px;font-size:11px;cursor:pointer}.poi-type-select:hover{border-color:var(--border-input-hover);color:var(--fg-panel)}.poi-marker-pin{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50% 50% 50% 4px;transform:rotate(45deg);box-shadow:0 1px 4px #00000073;border:2px solid rgba(255,255,255,.85);font-size:13px}.poi-marker-emoji{display:inline-block;transform:rotate(-45deg)}.plan-io-header{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border-panel)}.plan-name-input{background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel);border-radius:var(--radius-sm);padding:7px 9px;font-size:13px;font-weight:600;transition:border-color .12s var(--ease)}.plan-name-input:hover{border-color:var(--border-input-hover)}.plan-name-input:focus{border-color:var(--accent);outline:none}.plan-io-buttons{display:flex;gap:6px}.plan-io-buttons-export{margin-top:8px}.small-btn{flex:1;background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel-soft);border-radius:var(--radius-sm);padding:7px 4px;font-size:12px;font-weight:500;cursor:pointer;transition:background .12s var(--ease),border-color .12s var(--ease),color .12s var(--ease)}.small-btn:hover{background:var(--bg-elevated-2);border-color:var(--border-input-hover);color:var(--fg-panel)}.small-btn:disabled{opacity:.42;cursor:not-allowed}.plan-io-error{color:var(--danger-fg)}.route-card{background:var(--bg-panel-alt);border:1px solid var(--border-panel);border-radius:var(--radius-md);padding:10px 11px;cursor:pointer;transition:border-color .14s var(--ease),background .14s var(--ease),transform .1s var(--ease)}.route-card:hover{border-color:var(--border-input-hover);transform:translate(1px)}.route-card.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px #3d7dff59}.route-card-top{display:flex;align-items:center;gap:7px}.route-card-name{font-size:13px;flex:1;font-weight:500}.route-card-meta{font-size:11px;color:var(--fg-muted);margin-top:5px;margin-left:22px}.icon-only-btn{background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel-soft);width:24px;height:24px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .12s var(--ease),border-color .12s var(--ease),color .12s var(--ease)}.icon-only-btn:hover{background:var(--bg-elevated-2);border-color:var(--border-input-hover);color:var(--fg-panel)}.icon-only-btn.active{border-color:var(--accent);background:var(--accent-soft);color:#fff;box-shadow:inset 0 0 0 1px #3d7dff66}.import-toast{position:fixed;top:68px;left:316px;z-index:2000;background:var(--bg-panel-alt);border:1px solid var(--border-panel);border-radius:var(--radius-md);padding:9px 13px;font-size:12px;color:var(--fg-panel);display:flex;align-items:center;gap:8px;max-width:280px;box-shadow:var(--shadow-lg);animation:toast-in .18s var(--ease-out)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.import-toast.status-error{border-color:var(--danger-border);color:var(--danger-fg)}.import-toast.status-done{border-color:#22c55e66;color:#7fe6a0}.toast-body{display:flex;flex-direction:column;gap:3px}.toast-warning{color:var(--warning);font-size:11px}.progress-bar{width:40px;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden;flex-shrink:0}.progress-fill{height:100%;background:var(--accent);transition:width .15s var(--ease)}.toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:14px;margin-left:auto;opacity:.7}.toast-close:hover{opacity:1}.export-toast{position:fixed;bottom:24px;right:24px;z-index:2000;background:var(--bg-panel-alt);border:1px solid var(--border-panel);border-radius:var(--radius-md);padding:13px 16px;font-size:12px;color:var(--fg-panel);display:flex;flex-direction:column;gap:9px;width:260px;box-shadow:var(--shadow-lg);animation:toast-in .18s var(--ease-out)}.export-toast.status-error{border-color:var(--danger-border);color:var(--danger-fg)}.export-toast.status-done{border-color:#22c55e66;color:#7fe6a0}.export-toast-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.export-toast-title{font-weight:650}.export-toast-pct{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:650}.export-progress-bar{width:100%;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.export-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-hover));transition:width .12s linear}.map-area{position:relative;flex:1;min-width:0;background:#0a1119}.map-container{width:100%;height:100%}.left-overlay-stack{position:absolute;top:14px;left:14px;right:14px;bottom:14px;z-index:1000;display:flex;flex-direction:column;align-items:flex-start;gap:14px;pointer-events:none}.left-overlay-stack>*{pointer-events:auto}.routing-panel-overlay{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:1;min-height:0;max-width:100%}.routing-panel{background:var(--panel-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);padding:14px;width:380px;max-width:100%;max-height:min(100%,92vh);overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;border:1px solid rgba(15,23,35,.05)}.routing-panel::-webkit-scrollbar{display:none}.routing-panel-header{display:flex;flex-direction:column-reverse;gap:6px;margin-bottom:12px}.routing-panel-header-actions{display:flex;justify-content:flex-end;gap:6px}.routing-panel-close{background:var(--panel-bg-soft);border:1px solid var(--border);color:var(--fg-light-muted);width:27px;height:27px;border-radius:var(--radius-sm);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0;transition:background .12s var(--ease),color .12s var(--ease)}.routing-panel-close:hover{background:var(--border);color:var(--fg-light-strong)}.icon-btn{background:var(--panel-bg-soft);border:1px solid var(--border);color:var(--fg-light-muted);width:27px;height:27px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0;position:relative;transition:background .12s var(--ease),color .12s var(--ease),border-color .12s var(--ease)}.icon-btn:hover{background:var(--border);color:var(--fg-light-strong)}.icon-btn-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-active)}.icon-btn-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:1.5px solid var(--panel-bg)}.penalty-panel{border:1px solid var(--border);border-radius:var(--radius-md);padding:11px;margin-bottom:11px;background:var(--panel-bg-soft)}.penalty-panel-header{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;font-weight:650;margin-bottom:6px;color:var(--fg-light-strong)}.penalty-panel-hint{font-size:11px;color:var(--fg-light-muted);margin:0 0 10px;line-height:1.5}.penalty-panel-section-title{font-size:10.5px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-light-muted);margin:12px 0 6px}.penalty-panel-section-title:first-of-type{margin-top:0}.penalty-field{display:flex;flex-direction:column;gap:4px;font-size:12px;margin-bottom:10px;color:var(--fg-light-strong)}.penalty-field input[type=range]{width:100%;accent-color:var(--accent)}.penalty-panel-badge{font-size:11px;color:var(--accent-active);background:var(--accent-soft);border-radius:var(--radius-sm);padding:6px 8px;margin-bottom:8px;line-height:1.5}.routing-panel-fab{width:44px;height:44px;border-radius:var(--radius-md);border:none;flex-shrink:0;background:var(--panel-bg);box-shadow:var(--shadow-float);font-size:18px;color:var(--fg-light-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s var(--ease),color .12s var(--ease)}.routing-panel-fab:hover{color:var(--accent);transform:translateY(-1px)}.profile-selector{display:flex;flex-wrap:nowrap;gap:6px;margin-bottom:0}.profile-tab{display:flex;align-items:center;justify-content:center;width:33px;height:33px;flex-shrink:0;border:1px solid var(--border);background:var(--panel-bg-soft);border-radius:var(--radius-sm);cursor:pointer;padding:0;transition:background .12s var(--ease),border-color .12s var(--ease),transform .1s var(--ease)}.profile-tab:hover{background:var(--border)}.profile-tab:active{transform:scale(.94)}.profile-tab.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}.profile-icon{font-size:16px;line-height:1}.waypoint-list{display:flex;flex-direction:column;gap:7px;margin-bottom:6px}.waypoint-row{display:flex;align-items:center;gap:7px}.waypoint-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px #0000000a}.waypoint-dot.dot-start{background:#22c55e}.waypoint-dot.dot-end{background:#ef4444}.waypoint-dot.dot-mid{background:#3b9ee6}.waypoint-row input{flex:1;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font-size:12.5px;transition:border-color .12s var(--ease),box-shadow .12s var(--ease)}.waypoint-row input:hover{border-color:#c7d0dc}.waypoint-row input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.link-btn{background:none;border:none;color:var(--accent);font-size:12.5px;font-weight:500;cursor:pointer;padding:2px 0;text-align:left;transition:color .12s var(--ease)}.link-btn:hover{color:var(--accent-active);text-decoration:underline}.waypoint-input-group{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.waypoint-label-input{font-size:11px!important;padding:4px 8px!important;color:var(--fg-muted)}.waypoint-label-input::placeholder{color:var(--fg-muted);opacity:.7}.add-stop-row{display:flex;align-items:center;gap:14px;margin-bottom:6px}.route-picker-list{list-style:none;margin:0 0 8px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-bg);max-height:160px;overflow-y:auto}.route-picker-list li{padding:7px 9px;border-radius:var(--radius-sm);font-size:12.5px;cursor:pointer;transition:background .12s var(--ease)}.route-picker-list li:hover{background:var(--accent-soft)}.waypoint-poi-badge{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);font-size:12px;align-self:center}.waypoint-poi-picker-wrap{position:relative;flex-shrink:0;align-self:center}.waypoint-poi-picker-list{position:absolute;right:0;top:calc(100% + 4px);z-index:20;width:220px;box-shadow:var(--shadow-lg)}.route-name-input{width:100%;margin:8px 0;border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 9px;font-size:12.5px;transition:border-color .12s var(--ease),box-shadow .12s var(--ease)}.route-name-input:hover{border-color:#c7d0dc}.route-name-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.primary-btn{width:100%;background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#fff;border:none;border-radius:var(--radius-sm);padding:10px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 1px 2px #3d7dff4d,0 4px 10px #3d7dff2e;transition:transform .1s var(--ease),box-shadow .12s var(--ease),filter .12s var(--ease)}.primary-btn:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 2px 4px #3d7dff52,0 8px 16px #3d7dff38}.primary-btn:active:not(:disabled){transform:translateY(0)}.primary-btn:disabled{background:#b7c8ea;box-shadow:none;cursor:not-allowed}.error-text{color:var(--danger);font-size:12px;margin-top:6px}.alt-route-list{display:flex;flex-direction:column;gap:6px;margin-top:11px;border-top:1px solid var(--border);padding-top:11px}.alt-route-hint{font-size:11px;color:var(--fg-light-muted);margin-bottom:2px}.alt-route-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;cursor:pointer;background:var(--panel-bg-soft);transition:border-color .14s var(--ease),background .14s var(--ease)}.alt-route-card:hover{border-color:#c7d0dc}.alt-route-card.selected{border-color:var(--accent);background:var(--accent-soft)}.alt-route-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.alt-route-main{display:flex;align-items:baseline;gap:8px;min-width:0}.alt-route-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.alt-route-time{font-size:15px;font-weight:650;color:var(--fg-light-strong);white-space:nowrap}.alt-route-dist{font-size:12px;color:var(--fg-light-muted);white-space:nowrap}.alt-route-via{font-size:11px;color:var(--fg-light-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alt-route-gpx{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg-light-muted);font-size:11px;padding:3px 6px;cursor:pointer;transition:background .12s var(--ease)}.alt-route-gpx:hover{background:var(--border)}.alt-route-pick{background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);color:#fff;font-size:11px;font-weight:650;padding:4px 9px;cursor:pointer;white-space:nowrap;transition:filter .12s var(--ease)}.alt-route-pick:hover{filter:brightness(1.1)}.alt-route-scroll{display:flex;flex-direction:column;gap:6px}.leg-picker-list{display:flex;flex-direction:column;gap:8px}.leg-picker-row{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;background:var(--panel-bg-soft)}.leg-picker-title{display:flex;align-items:baseline;gap:6px;font-size:12px;color:var(--fg-light-strong);margin-bottom:6px;min-width:0}.leg-picker-index{flex-shrink:0;width:16px;height:16px;border-radius:50%;background:var(--accent);color:#fff;font-size:9.5px;font-weight:700;display:flex;align-items:center;justify-content:center}.leg-picker-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leg-picker-alts{display:flex;flex-wrap:wrap;gap:5px}.leg-alt-chip{border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--fg-light-muted);font-size:10.5px;padding:3px 9px;cursor:pointer;white-space:nowrap;transition:border-color .12s var(--ease),background .12s var(--ease),color .12s var(--ease)}.leg-alt-chip:hover{border-color:#c7d0dc}.leg-alt-chip.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:650}.leg-combined-total{cursor:default}.leg-combined-total:hover{border-color:var(--accent)}.route-summary-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--panel-bg-soft);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:10px;font-size:12px}.route-summary-points{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;color:var(--fg-light-strong)}.route-summary-coord{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-summary-arrow{color:var(--fg-light-muted);flex-shrink:0}.route-summary-stops{color:var(--fg-light-muted);flex-shrink:0;white-space:nowrap}.route-summary-edit{flex-shrink:0;font-size:11px}.chart-overlay{flex-shrink:0;margin-top:auto;width:380px;max-width:calc(100% - 90px);background:var(--panel-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);padding:9px 13px;border:1px solid rgba(15,23,35,.05)}.chart-overlay:has(.route-chart.empty){width:auto;max-width:min(320px,calc(100% - 90px));padding:8px 13px}.route-chart.empty{padding:2px}.route-chart-header{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:5px;color:var(--fg-light-strong)}.route-chart-header-btn{width:100%;background:none;border:none;padding:0;cursor:pointer;gap:7px;text-align:left;color:var(--fg-light-strong)}.route-chart-header-btn strong{flex:1}.route-chart-header-btn .chevron{color:var(--fg-light-muted);flex-shrink:0}.route-chart-header select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 7px;font-size:12px;background:var(--panel-bg)}.category-strip{display:flex;height:22px;border-radius:var(--radius-sm);overflow:hidden}.route-chart-tooltip{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;font-size:12.5px;line-height:1.65;box-shadow:var(--shadow-md)}.route-chart-tooltip-label{color:var(--fg-light-muted);margin-right:4px}.hover-elevation-bubble.leaflet-tooltip{font-weight:650;font-size:12.5px;padding:4px 9px;border-radius:var(--radius-sm);border-color:#0000001f;box-shadow:var(--shadow-sm)}.measure-tooltip.leaflet-tooltip{font-weight:700;font-size:12.5px;padding:4px 9px;border-radius:var(--radius-sm);border-color:#d9a300;background:#fff8e1;color:#7a5c00;box-shadow:var(--shadow-sm)}.highway-legend{position:absolute;top:66px;right:14px;z-index:1000;background:#fffffff7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);padding:11px 13px;font-size:11.5px;max-height:60vh;overflow-y:auto;min-width:150px;border:1px solid rgba(15,23,35,.05)}.legend-title{font-weight:650;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-light-muted);margin-bottom:7px}.legend-row{display:flex;align-items:center;gap:7px;padding:2px 0}.legend-swatch{width:18px;height:0;border-top-width:3px;border-top-style:solid;flex-shrink:0;border-radius:2px}.location-search-bar{position:absolute;top:14px;right:14px;z-index:1200;width:300px;max-width:calc(100% - 28px)}.location-search-bar-input-row{display:flex;align-items:center;gap:7px;background:#fffffff7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);border:1px solid rgba(15,23,35,.05);padding:9px 12px}.location-search-bar-icon{font-size:13px;flex-shrink:0;opacity:.7}.location-search-bar-input-row input{flex:1;min-width:0;border:none;background:transparent;outline:none;font-size:13px;color:var(--fg-light-strong)}.location-search-bar-input-row input::placeholder{color:var(--fg-light-muted)}.location-search-bar-clear{flex-shrink:0;border:none;background:none;cursor:pointer;font-size:12px;color:var(--fg-light-muted);padding:2px 4px;border-radius:4px}.location-search-bar-clear:hover{background:var(--panel-bg-soft);color:var(--fg-light-strong)}.location-search-bar-dropdown{margin-top:6px;background:#fffffffa;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);border:1px solid rgba(15,23,35,.05);padding:10px;max-height:60vh;overflow-y:auto}.location-search-bar-section+.location-search-bar-section{margin-top:10px;padding-top:10px;border-top:1px solid rgba(15,23,35,.07)}.location-search-bar-section-title{font-weight:650;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-light-muted);margin-bottom:6px;padding:0 2px}.location-search-bar-empty{padding:4px 2px;font-size:12px;color:var(--fg-light-muted);line-height:1.5}.location-search-bar .location-result-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.location-search-bar .location-result-list li{font-size:12.5px;padding:7px 8px;border-radius:var(--radius-sm);cursor:pointer;line-height:1.4;color:var(--fg-light-strong);transition:background .12s var(--ease)}.location-search-bar .location-result-list li:hover{background:var(--panel-bg-soft)}.location-result-pin{margin-right:2px}.location-result-sub{color:var(--fg-light-muted);font-size:11.5px}.inspector-panel{width:300px;flex-shrink:0;background:var(--bg-panel);color:var(--fg-panel);border-left:1px solid var(--border-panel);display:flex;flex-direction:column;box-shadow:-8px 0 24px #080e1633;animation:slide-in .18s var(--ease-out)}@keyframes slide-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.inspector-header{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid var(--border-panel);font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);flex-shrink:0}.inspector-body{flex:1;overflow-y:auto;padding:15px}.props-form{display:flex;flex-direction:column;gap:11px}.props-form label{display:flex;flex-direction:column;gap:5px;font-size:10.5px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.props-form input[type=text],.props-form select{font-size:13px;text-transform:none;letter-spacing:normal;font-weight:400;background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel);border-radius:var(--radius-sm);padding:7px 9px;transition:border-color .12s var(--ease)}.props-form input[type=text]:hover,.props-form select:hover{border-color:var(--border-input-hover)}.props-form input[type=text]:focus,.props-form select:focus{border-color:var(--accent);outline:none}.props-form input:disabled{color:var(--fg-muted);opacity:.8}.props-form dl{font-size:12.5px;margin:4px 0 0}.props-form dt{color:var(--fg-muted);margin-top:9px;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.props-form dd{margin:3px 0 0;color:var(--fg-panel)}.route-profile-row{display:flex;align-items:center;gap:8px}.route-profile-row select{flex:1}.route-profile-chip{flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:15px}.route-stat-primary-row{display:flex;gap:10px;margin-top:2px}.route-stat-primary{flex:1;display:flex;align-items:baseline;gap:4px;justify-content:center;background:var(--bg-elevated-2);border:1px solid var(--border-panel);border-radius:var(--radius-sm);padding:12px 8px}.route-stat-value{font-size:22px;font-weight:700;color:var(--fg-panel);font-variant-numeric:tabular-nums}.route-stat-unit{font-size:12px;color:var(--fg-muted);font-weight:600}.route-stat-secondary-row{display:flex;flex-wrap:wrap;gap:6px}.route-stat-chip{flex:1;min-width:84px;display:flex;flex-direction:column;gap:2px;background:var(--input-bg);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:7px 9px}.route-stat-chip-label{font-size:10px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.03em}.route-stat-chip-value{font-size:13px;color:var(--fg-panel);font-weight:600;font-variant-numeric:tabular-nums}.route-stops-overview{display:flex;flex-direction:column;gap:6px}.route-stops-overview-title{font-size:10.5px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.route-stops-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.route-stops-list-item{display:flex;align-items:baseline;justify-content:space-between;gap:8px;background:var(--input-bg);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:6px 9px;font-size:12px}.route-stops-list-label{color:var(--fg-muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.route-stops-list-value{color:var(--fg-panel);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-legs-list{display:flex;flex-direction:column;gap:8px}.route-leg-row{background:var(--input-bg);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:8px 9px}.route-leg-title{display:flex;align-items:baseline;gap:6px;font-size:11.5px;color:var(--fg-panel);min-width:0}.route-leg-index{flex-shrink:0;width:15px;height:15px;border-radius:50%;background:var(--accent);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center}.route-leg-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-leg-arrow{color:var(--fg-muted)}.route-leg-stats{font-size:11px;color:var(--fg-muted);margin-top:4px;font-variant-numeric:tabular-nums}.route-leg-via{color:var(--fg-muted)}.route-leg-alts{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.route-leg-alt-chip{border:1px solid var(--border-input);border-radius:999px;background:var(--bg-elevated-2);color:var(--fg-muted);font-size:10px;padding:3px 8px;cursor:pointer;white-space:nowrap;transition:border-color .12s var(--ease),background .12s var(--ease),color .12s var(--ease)}.route-leg-alt-chip:hover{border-color:var(--accent)}.route-leg-alt-chip.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:650}.btn-row{display:flex;gap:6px}.btn-row .secondary-btn{margin-top:0}.secondary-btn{width:100%;background:var(--input-bg);color:var(--fg-panel-soft);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:8px;font-size:12px;font-weight:500;cursor:pointer;margin-top:6px;transition:background .12s var(--ease),border-color .12s var(--ease),color .12s var(--ease)}.secondary-btn:hover{background:var(--bg-elevated-2);border-color:var(--border-input-hover);color:var(--fg-panel)}.danger-btn{background:var(--danger-bg);color:var(--danger-fg);border:1px solid var(--danger-border);border-radius:var(--radius-sm);padding:9px;font-size:12.5px;font-weight:500;cursor:pointer;margin-top:4px;transition:background .12s var(--ease)}.danger-btn:hover{background:#ef444438}.tag-table-header{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px}.way-title-row{display:flex;align-items:center;gap:7px}.tag-row-list{display:flex;flex-direction:column;gap:6px}.tag-row{display:grid;grid-template-columns:92px 1fr auto;gap:6px;align-items:center}.tag-row input{width:100%;background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel);border-radius:5px;padding:6px 8px;font-size:12px;transition:border-color .12s var(--ease),background .12s var(--ease)}.tag-row input:focus{border-color:var(--accent);outline:none}.tag-row-key{color:var(--fg-panel-soft)!important;font-weight:600;font-size:11.5px!important}.tag-row-value{font-family:var(--font-mono, ui-monospace, monospace)}.tag-row .icon-btn{background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel-soft);width:25px;height:25px;border-radius:5px;cursor:pointer;flex-shrink:0}.tag-row .icon-btn:hover{background:#ef44442e;border-color:#ef444466;color:#f87171}.long-press-ring{position:fixed;z-index:2500;pointer-events:none;width:46px;height:46px;margin-left:-23px;margin-top:-23px;border-radius:50%;border:2px solid var(--accent);background:var(--accent-soft);animation:long-press-grow .6s ease-out forwards}@keyframes long-press-grow{0%{transform:scale(.3);opacity:.85}to{transform:scale(1);opacity:.1}}.map-context-menu{position:fixed;z-index:3000;background:var(--panel-bg);color:var(--fg-light-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:220px;padding:7px 0;font-size:13px;border:1px solid rgba(0,0,0,.06);animation:toast-in .12s var(--ease-out)}.map-context-menu button{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;text-align:left;padding:8px 15px;font-size:13px;color:inherit;cursor:pointer;transition:background .1s var(--ease)}.map-context-menu button:hover,.map-context-menu button:focus-visible{background:var(--panel-bg-soft);outline:none}.map-context-menu .ctx-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.map-context-menu .ctx-dot-outline{background:#fff;border:2px solid #95a5a6;width:8px;height:8px}.map-context-menu .ctx-divider{height:1px;background:var(--border);margin:6px 0}.map-context-menu .ctx-plain{color:var(--fg-light-muted)}.map-context-menu .ctx-poi-caption{padding:6px 15px 8px;margin-bottom:4px;border-bottom:1px solid var(--border);font-size:12px;font-weight:650;color:var(--fg-light-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-panel{display:flex;flex-direction:column;gap:20px}.settings-section{display:flex;flex-direction:column;gap:2px}.settings-section-title{font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);margin-bottom:7px}.settings-radio-row{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--fg-panel-soft);padding:7px 3px;cursor:pointer;border-radius:var(--radius-sm);transition:background .12s var(--ease),color .12s var(--ease)}.settings-radio-row:hover{background:var(--bg-elevated);color:var(--fg-panel)}.settings-radio-row input[type=radio]{display:none}.settings-radio-dot{width:18px;height:18px;border-radius:50%;flex-shrink:0;border:2px solid var(--border-input);background:transparent;display:flex;align-items:center;justify-content:center;box-sizing:border-box;transition:border-color .12s var(--ease)}.settings-radio-dot.checked{border-color:var(--accent)}.settings-radio-dot.checked:after{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent);animation:pop-in .15s var(--ease-out)}@keyframes pop-in{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.settings-toggle-row{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--fg-panel-soft);padding:7px 3px;cursor:pointer;transition:color .12s var(--ease)}.settings-toggle-row:hover{color:var(--fg-panel)}.settings-toggle-row input[type=checkbox]{display:none}.settings-toggle{width:34px;height:20px;border-radius:10px;flex-shrink:0;background:var(--input-bg);border:1px solid var(--border-input);position:relative;transition:background .18s var(--ease),border-color .18s var(--ease);box-sizing:border-box}.settings-toggle.on{background:var(--accent);border-color:var(--accent)}.settings-toggle-knob{position:absolute;top:1px;left:1px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .18s var(--ease-out);box-shadow:0 1px 3px #0006}.settings-toggle.on .settings-toggle-knob{transform:translate(14px)}.settings-checkbox-group{display:flex;flex-wrap:wrap;gap:5px 18px}.settings-checkbox-row{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--fg-panel-soft);padding:7px 3px;cursor:pointer;transition:color .12s var(--ease)}.settings-checkbox-row:hover{color:var(--fg-panel)}.settings-checkbox-row input[type=checkbox]{display:none}.settings-checkbox-box{width:16px;height:16px;border-radius:4px;flex-shrink:0;border:2px solid var(--border-input);background:transparent;display:flex;align-items:center;justify-content:center;font-size:11px;line-height:1;color:#fff;box-sizing:border-box;transition:border-color .12s var(--ease),background .12s var(--ease)}.settings-checkbox-box.checked{border-color:var(--accent);background:var(--accent)}.obstacles-panel{display:flex;flex-direction:column;gap:4px}.obstacles-anchor-hint{background:var(--warning-bg);border:1px solid rgba(242,201,76,.35);border-radius:var(--radius-sm);padding:9px;margin:4px 0 9px;color:var(--fg-panel-soft)}.obstacles-info-toggle{width:100%;display:flex;align-items:center;gap:7px;background:none;border:none;padding:0 0 8px;margin:0 0 4px;border-bottom:1px solid var(--border-panel);font-size:12px;font-weight:600;color:var(--fg-panel-soft);cursor:pointer;transition:color .12s var(--ease)}.obstacles-info-toggle:hover{color:var(--fg-panel)}.obstacles-info-toggle-icon{font-size:13px;line-height:1;flex-shrink:0}.obstacles-info-toggle .chevron{margin-left:auto}.obstacles-info-text{margin:0 0 9px}.obstacles-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-input)}.obstacles-actions button{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border-input);color:var(--fg-muted);border-radius:var(--radius-sm);padding:7px 12px;font-size:12.5px;cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease),border-color .12s var(--ease)}.obstacles-actions button:hover{background:var(--bg-elevated-2);color:var(--fg-panel);border-color:var(--fg-muted)}.obstacles-actions button:disabled{opacity:.5;cursor:not-allowed}.dataset-mode-toggle{display:flex;gap:6px;margin:2px 0 10px}.dataset-mode-toggle button{flex:1;background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel-soft);border-radius:var(--radius-sm);padding:7px 10px;font-size:12.5px;cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease),border-color .12s var(--ease)}.dataset-mode-toggle button:hover{background:var(--bg-elevated-2);color:var(--fg-panel)}.dataset-mode-toggle button.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);font-weight:600}.dataset-grid-warning{color:#f2c94c}.dataset-road-type-select{grid-column:1 / -1;width:100%;background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel);border-radius:5px;padding:6px 8px;font-size:12.5px}.grid-point{transition:r .15s var(--ease-out)}.grid-point-selected{filter:drop-shadow(0 0 5px rgba(61,125,255,.85))}.grid-preview-line{stroke:#3d7dff!important;stroke-width:3!important;stroke-opacity:.55!important;stroke-dasharray:1 9;stroke-linecap:round;animation:grid-preview-flow .9s linear infinite}@keyframes grid-preview-flow{to{stroke-dashoffset:-20}}.obstacle-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.obstacle-list-delete{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:none;background:transparent;color:var(--fg-muted);font-size:16px;line-height:1;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s var(--ease),color .12s var(--ease)}.obstacle-list-delete:hover{background:#ef444426;color:#ef4444}.obstacle-gen-settings,.obstacle-draw-settings{background:var(--bg-panel-alt);border:1px solid var(--border-input);border-radius:var(--radius-md);padding:9px;margin:4px 0 9px;display:flex;flex-direction:column;gap:7px}.obstacle-gen-title{font-size:11px;font-weight:650;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em}.obstacle-gen-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--fg-panel-soft)}.obstacle-gen-label{flex:1}.obstacle-gen-count{width:44px;background:var(--input-bg);border:1px solid var(--border-input);color:var(--fg-panel);border-radius:4px;padding:3px 4px;font-size:12.5px;text-align:center}.obstacle-gen-spread{margin-top:2px}.obstacle-gen-row.obstacle-gen-spread{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:8px;row-gap:6px}.obstacle-gen-spread .obstacle-gen-label{grid-column:1 / -1}.obstacle-gen-spread input[type=range]{grid-column:1;width:100%;min-width:0;margin:0;accent-color:var(--accent)}.obstacle-gen-spread-value{grid-column:2;width:auto;flex-shrink:0;text-align:right;color:var(--fg-muted);font-size:12px;font-variant-numeric:tabular-nums}.obstacle-type-btn-row{display:flex;flex-wrap:wrap;gap:6px}.obstacle-type-btn{display:flex;align-items:center;gap:6px}.obstacles-offroad-hint{font-size:11.5px;line-height:1.55;margin:2px 0 0;color:var(--fg-muted)}.instructions-tab-list{list-style:none;margin:0;padding:0}.instructions-tab-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border-panel)}.instructions-tab-row:last-child{border-bottom:none}.instructions-tab-arrow{color:var(--fg-panel-soft)}.turn-arrow{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;font-size:18px;line-height:1}.turn-pin{width:14px;height:14px;border-radius:50% 50% 50% 0;flex-shrink:0;transform:rotate(-45deg);margin:0 4px;box-shadow:0 1px 3px #00000059}.turn-pin.pin-start{background:#22c55e}.turn-pin.pin-finish{background:#ef4444}.instructions-tab-text{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--fg-panel)}.instructions-tab-title{line-height:1.4}.instructions-tab-dist{font-size:11.5px;color:var(--fg-muted)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}@media (max-width: 768px){.app-header{padding:0 10px;gap:8px}.app-header .subtitle{display:none}.app-header h1{font-size:13px}.mock-badge{display:none}.sidebar{width:0;min-width:0;border-right:none;overflow:visible}.sidebar-rail{position:fixed;left:0;right:0;bottom:0;z-index:1500;width:auto;height:60px;flex-direction:row;justify-content:space-around;align-items:stretch;padding:0;gap:0;border-right:none;border-top:1px solid var(--border-panel);box-shadow:0 -4px 16px #00000047}.sidebar-rail-btn{flex:1;width:auto;height:auto;border-radius:0;flex-direction:column;gap:3px;justify-content:center}.sidebar-rail-btn.active:before{display:none}.rail-label{display:block;font-size:9.5px;font-weight:600;letter-spacing:.01em;line-height:1}.rail-badge{top:4px;right:auto;left:50%;margin-left:6px}.rail-mobile-only{display:flex}.routing-panel-fab,.sidebar-panel{display:none}.sidebar-panel.mobile-open{display:flex;position:fixed;top:0;right:0;left:0;bottom:60px;z-index:1700;width:auto;animation:mobile-panel-in .16s var(--ease-out)}.sidebar-mobile-back{display:flex}.sidebar-panel-header{padding:0 10px 0 6px}.inspector-panel{position:fixed;top:0;right:0;left:0;bottom:60px;z-index:1750;width:auto;animation:mobile-panel-in .16s var(--ease-out)}@keyframes mobile-panel-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.left-overlay-stack{top:auto;bottom:72px;left:8px;right:8px;align-items:stretch}.routing-panel-overlay{max-width:100%}.routing-panel{width:100%}.routing-panel-fab{align-self:flex-end}.location-search-bar{top:8px;left:8px;right:8px;width:auto}.highway-legend{display:none}.import-toast{left:8px;right:8px;max-width:none}.export-toast{left:8px;right:8px;width:auto;bottom:72px}.map-context-menu{min-width:200px}.routing-panel{padding:10px 12px;max-height:46vh}.routing-panel-header{margin-bottom:8px;gap:4px}.waypoint-list{gap:5px;margin-bottom:4px}.waypoint-row input{padding:6px 8px;font-size:13px}.routing-panel .primary-btn{padding:9px 12px}.profile-selector{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.profile-selector::-webkit-scrollbar{display:none}}
