@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0a0d14;--color-surface:#111623;--color-surface-2:#1a2035;--color-border:#ffffff12;--color-border-hover:#ffffff26;--color-primary:#3d7ff5;--color-primary-bright:#5590f7;--color-primary-glow:#3d7ff540;--color-primary-soft:#3d7ff524;--color-primary-soft-hover:#3d7ff53d;--color-accent:#f5a623;--color-accent-glow:#f5a62333;--color-accent-wash:#f5a62314;--color-accent-soft:#f5a62329;--color-accent-soft-hover:#f5a62347;--color-accent-border:#f5a6234d;--color-danger-border:#ff555547;--color-success-border:#3ecf8e33;--color-primary-border:#3d7ff54d;--color-success:#3ecf8e;--color-success-glow:#3ecf8e24;--color-danger:#f55;--color-danger-strong:#e55353;--color-danger-glow:#ff55551a;--color-text:#e8edf7;--color-text-muted:#6b7a99;--color-text-dim:#3e4a63;--color-overlay:#0a0d14d9;--color-overlay-strong:#0a0d14f0;--color-scrim:#00000073;--color-airport-dot:#e8edf7;--color-chart-halo:#0a0d14;--font-sans:"Inter", -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--sidebar-width:420px;--dock-height:340px;--panel-gap:16px;--panel-radius:12px;--shadow-card:0 4px 24px #0006;--shadow-glow-primary:0 0 24px #3d7ff533}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f3f6fb;--color-surface:#fff;--color-surface-2:#f7f9fd;--color-border:#101a2e1c;--color-border-hover:#101a2e42;--color-primary:#1f5fd0;--color-primary-bright:#3f7ce8;--color-primary-glow:#1f5fd02e;--color-primary-soft:#1f5fd01a;--color-primary-soft-hover:#1f5fd02e;--color-accent:#a2650a;--color-accent-glow:#a2650a21;--color-accent-wash:#a2650a12;--color-accent-soft:#a2650a1f;--color-accent-soft-hover:#a2650a33;--color-accent-border:#a2650a73;--color-danger-border:#cf223166;--color-success-border:#10795a59;--color-primary-border:#1f5fd073;--color-success:#10795a;--color-success-glow:#10795a1f;--color-danger:#cf2231;--color-danger-strong:#c01f2d;--color-danger-glow:#cf223117;--color-text:#111a2b;--color-text-muted:#55637d;--color-text-dim:#7d8ba4;--color-overlay:#ffffffe6;--color-overlay-strong:#fffffff5;--color-scrim:#101a2e38;--color-airport-dot:#1b2436;--color-chart-halo:#fff;--shadow-card:0 4px 20px #101a2e24;--shadow-glow-primary:0 0 24px #1f5fd029}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.5}.app-layout{width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}.sidebar-toggle{top:max(12px, env(safe-area-inset-top));left:calc(var(--sidebar-width) + 12px);z-index:40;background:var(--color-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);width:40px;height:40px;color:var(--color-text-muted);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;font-size:15px;line-height:1;transition:left .28s,color .2s,border-color .2s,background .2s;display:flex;position:absolute}.sidebar-toggle:hover{color:var(--color-text);border-color:var(--color-border-hover)}.app-layout.sidebar-collapsed .sidebar-toggle{left:12px}.app-layout.sidebar-collapsed .sidebar{margin-left:calc(-1 * var(--sidebar-width));border-right-color:#0000}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);z-index:10;flex-direction:column;flex-shrink:0;transition:margin-left .28s,transform .28s,border-color .28s;display:flex;overflow:hidden}@media (prefers-reduced-motion:reduce){.sidebar,.sidebar-toggle{transition:none}}.sidebar-header{border-bottom:1px solid var(--color-border);flex-shrink:0;padding:20px 20px 16px}.sidebar-header h1{letter-spacing:.02em;color:var(--color-text);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.sidebar-header h1 span.icon{font-size:18px}.sidebar-header p{color:var(--color-text-muted);margin-top:3px;font-size:12px}.sidebar-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:var(--panel-gap);scrollbar-width:thin;scrollbar-color:var(--color-surface-2) transparent;gap:var(--panel-gap);flex-direction:column;flex:1;display:flex;overflow-y:auto}.panel{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--panel-radius);padding:14px;transition:border-color .2s}.panel:hover{border-color:var(--color-border-hover)}.panel-title{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);align-items:center;gap:6px;margin-bottom:12px;font-size:11px;font-weight:600;display:flex}.panel-hint{text-transform:none;letter-spacing:0;margin-left:auto;font-weight:400}.coord-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.input-group{flex-direction:column;gap:4px;display:flex}.input-group label{color:var(--color-text-muted);font-size:11px;font-weight:500}.input-group input{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-mono);border-radius:8px;width:100%;padding:8px 10px;font-size:13px;transition:border-color .2s,box-shadow .2s}.input-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow);outline:none}.pick-start-btn{border:1px dashed var(--color-border);width:100%;color:var(--color-text-muted);font-size:12px;font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin-top:8px;padding:8px;transition:all .2s;display:flex}.pick-start-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-glow)}.pick-start-btn.active{border-style:solid;border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-glow)}.launch-row{grid-template-columns:1fr auto;align-items:end;gap:8px;display:grid}.now-btn{border:1px solid var(--color-border);height:35px;color:var(--color-text-muted);font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:500;transition:all .2s}.now-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-glow)}.now-btn:disabled{cursor:default;color:var(--color-text-dim);border-color:#0000}.launch-mode{letter-spacing:.04em;text-transform:none;color:var(--color-accent);background:var(--color-accent-glow);border-radius:999px;margin-left:auto;padding:2px 7px;font-size:10px;font-weight:500}.launch-mode.now{color:var(--color-success);background:var(--color-success-glow)}.launch-hint{color:var(--color-text-muted);margin-top:8px;font-size:11px;line-height:1.5}.schedule-list{flex-direction:column;gap:6px;display:flex}.schedule-item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;grid-template-columns:1fr 1fr .7fr 28px;align-items:center;gap:6px;padding:8px 10px;transition:border-color .2s;display:grid}.schedule-item-header{background:0 0;border:none;margin-bottom:2px;padding:0 10px}.schedule-dist-cell{font-family:var(--font-mono);color:var(--color-text-muted);text-align:right;padding-right:4px;font-size:12px}.schedule-item:hover{border-color:var(--color-border-hover)}.schedule-item input{color:var(--color-text);font-family:var(--font-mono);background:0 0;border:none;width:100%;padding:0;font-size:13px}.schedule-item input:focus{color:var(--color-primary);outline:none}.schedule-item input::placeholder{color:var(--color-text-dim)}.schedule-time-cell{align-items:baseline;gap:6px;min-width:0;display:flex}.schedule-time-cell input{flex:auto;min-width:0}.schedule-time-clock{font-family:var(--font-mono);color:var(--color-text-muted);flex:none;font-size:11px}.schedule-item-label{color:var(--color-text-muted);align-items:center;gap:3px;font-size:10px;display:flex}.delete-btn{cursor:pointer;color:var(--color-text-dim);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;font-size:16px;line-height:1;transition:color .2s,background .2s;display:flex}.delete-btn:hover{color:var(--color-danger);background:var(--color-danger-glow)}.add-waypoint-btn{border:1px dashed var(--color-border);width:100%;color:var(--color-text-muted);font-size:12px;font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin-top:6px;padding:8px;transition:all .2s;display:flex}.add-waypoint-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-glow)}.export-row{gap:8px;display:flex}.export-row button{border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.02em;cursor:pointer;background:0 0;border-radius:8px;flex:1;padding:8px;font-size:12px;font-weight:600;transition:all .2s}.export-row button:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-glow)}.live-status{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:9px;align-items:center;gap:9px;padding:9px 12px;font-size:12px;transition:border-color .2s,background .2s,color .2s;display:flex}.live-dot{background:var(--color-text-dim);border-radius:50%;flex-shrink:0;width:8px;height:8px}.live-status .live-text{color:var(--color-text-muted);flex:1}.live-status.loading .live-dot{background:var(--color-primary);animation:1s ease-in-out infinite pulse-dot}.live-status.loading .live-text{color:var(--color-primary)}.live-status.success{border-color:var(--color-success-border)}.live-status.success .live-dot{background:var(--color-success)}.live-status.success .live-text{color:var(--color-text)}.live-status.error{border-color:var(--color-danger-border);background:var(--color-danger-glow)}.live-status.error .live-dot{background:var(--color-danger)}.live-status.error .live-text{color:var(--color-danger)}.live-status.rate-limited{border-color:var(--color-accent-border);background:var(--color-accent-wash)}.live-status.rate-limited .live-dot{background:var(--color-accent);animation:1.6s ease-in-out infinite pulse-dot}.live-status.rate-limited .live-text{color:var(--color-accent)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.workspace{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden;container-type:inline-size}.workspace .map-container{flex:1;min-height:0}.dock-wrap{flex-shrink:0;position:relative}.dock-toggle{background:var(--color-surface-2);border:none;border-top:1px solid var(--color-border);width:100%;color:var(--color-text-muted);font-family:var(--font-sans);cursor:pointer;align-items:center;gap:6px;padding:5px 18px;font-size:11px;font-weight:500;transition:color .15s,background .15s;display:flex}.dock-toggle:hover{color:var(--color-primary);background:var(--color-surface)}.dock-wrap.collapsed .dock-toggle{border-top:1px solid var(--color-border)}.schedule-dock{height:var(--dock-height);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:10;flex-shrink:0;padding:14px 18px;overflow-y:auto}.schedule-dock .panel{background:0 0;border:none;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) clamp(200px,28%,360px);column-gap:18px;height:100%;padding:0;display:grid}.schedule-dock .panel-title{grid-column:1/-1}.schedule-dock .panel-hint{margin-left:10px}.schedule-dock .altitude-profile{grid-area:2/1/span 2;height:auto;min-height:0;margin-bottom:0}.schedule-dock .schedule-list{grid-area:2/2;padding-right:4px;overflow-y:auto}.schedule-dock .add-waypoint-btn{grid-area:3/2}@container (width<=660px){.schedule-dock .panel{height:auto;display:block}.schedule-dock .altitude-profile{height:190px;margin-bottom:12px}@media (pointer:coarse){.schedule-dock .altitude-profile{height:215px}}.chart-zoom-range{display:none}}.calculate-btn{border:1px solid var(--color-primary);background:var(--color-primary-soft);width:100%;color:var(--color-text);cursor:pointer;border-radius:9px;padding:10px 12px;font-size:12.5px;font-weight:600;transition:background .2s,border-color .2s,opacity .2s}.calculate-btn:hover:not(:disabled){background:var(--color-primary-soft-hover)}.calculate-btn:disabled{opacity:.5;cursor:default}.calculate-btn.dirty{border-color:var(--color-accent);background:var(--color-accent-soft);box-shadow:0 0 0 3px var(--color-accent-wash)}.live-status.dirty{border-color:var(--color-accent-border)}.live-status.dirty .live-dot{background:var(--color-accent)}.live-status.dirty .live-text{color:var(--color-accent)}.toggle-row{color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;margin-top:12px;font-size:12.5px;display:flex}.toggle-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.toggle-hint{color:var(--color-text-dim);margin:6px 0 0 24px;font-size:11px;line-height:1.5}.spread-result{border-top:1px solid var(--color-border);margin-top:12px;padding-top:12px}.spread-row{align-items:center;gap:8px;padding:3px 0;font-size:11.5px;display:flex}.spread-row.failed{opacity:.5}.spread-swatch{border-radius:2px;flex-shrink:0;width:14px;height:3px}.spread-swatch.empty{background:var(--color-text-dim);opacity:.4}.spread-label{color:var(--color-text);flex:1}.spread-endpoint{color:var(--color-text-dim);font-variant-numeric:tabular-nums}.spread-summary{color:var(--color-text-muted);margin-top:10px;font-size:11.5px;line-height:1.6}.terrain-warning{border:1px solid var(--color-danger-border);background:var(--color-danger-glow);border-radius:10px;padding:12px 14px}.terrain-warning-title{color:var(--color-danger-strong);align-items:center;gap:8px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.terrain-warning-body{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.6}.rate-limit-panel{border:1px solid var(--color-accent-border);background:var(--color-accent-wash);border-radius:10px;padding:12px 14px}.rate-limit-title{color:var(--color-accent);align-items:center;gap:8px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.rate-limit-body{color:var(--color-text-muted);margin:0 0 10px;font-size:12px;line-height:1.6}.rate-limit-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.rate-limit-countdown{font-variant-numeric:tabular-nums;color:var(--color-accent);font-size:12px}.rate-limit-retry{background:var(--color-accent-soft);border:1px solid var(--color-accent-border);color:var(--color-accent);cursor:pointer;border-radius:7px;padding:5px 12px;font-size:12px;font-weight:500;transition:background .15s}.rate-limit-retry:hover{background:var(--color-accent-soft-hover)}.refresh-btn{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;transition:color .2s,background .2s,transform .2s;display:flex}.refresh-btn:hover:not(:disabled){color:var(--color-primary);background:var(--color-primary-glow);transform:rotate(90deg)}.refresh-btn:disabled{opacity:.4;cursor:not-allowed}.result-stats{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.stat-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:10px}.stat-card .stat-value{font-family:var(--font-mono);color:var(--color-primary);font-size:15px;font-weight:500}.stat-card .stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;font-size:10px}.map-container{flex:1;position:relative;overflow:hidden}.map-container .maplibregl-map{width:100%;height:100%}.map-topright{top:max(14px, env(safe-area-inset-top));z-index:5;align-items:center;gap:8px;display:flex;position:absolute;right:14px}.map-badge{background:var(--color-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:8px;padding:8px 12px;font-size:11px}.map-badge strong{color:var(--color-text)}.map-theme-toggle{background:var(--color-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);width:34px;height:34px;color:var(--color-text-muted);cursor:pointer;border-radius:8px;flex:none;place-items:center;font-size:15px;line-height:1;transition:color .2s,border-color .2s,background .2s;display:grid}.map-theme-toggle:hover{color:var(--color-accent);border-color:var(--color-border-hover)}.start-marker{background:var(--color-success);border:2px solid var(--color-bg);width:16px;height:16px;box-shadow:0 0 0 3px var(--color-success-glow), var(--shadow-card);cursor:grab;border-radius:50%}.start-marker:active{cursor:grabbing}.scrub-marker{background:var(--color-danger);border:2px solid var(--color-chart-halo);width:14px;height:14px;box-shadow:0 0 0 4px var(--color-danger-glow);pointer-events:none;border-radius:50%}.map-calculating-badge{top:max(14px, env(safe-area-inset-top));background:var(--color-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-primary-border);color:var(--color-primary);z-index:6;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:500;display:flex;position:absolute;left:62px}.map-rate-limit-badge{top:max(14px, env(safe-area-inset-top));background:var(--color-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-accent);color:var(--color-accent);z-index:6;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:500;display:flex;position:absolute;left:62px}.map-picking-banner{background:var(--color-accent-soft);border:1px solid var(--color-accent);color:var(--color-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:6;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:12px;font-weight:500;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.airspace-legend{top:calc(max(14px, env(safe-area-inset-top)) + 44px);z-index:5;background:var(--color-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;width:168px;max-height:calc(100% - 90px);display:flex;position:absolute;right:14px;overflow:hidden}.airspace-legend-toggle{width:100%;color:var(--color-text);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:11px;font-weight:600;display:flex}.airspace-legend-toggle:hover{color:var(--color-primary)}.airspace-legend-body{padding:2px 12px 10px;overflow-y:auto}.airspace-legend-body label{color:var(--color-text-muted);cursor:pointer;align-items:center;gap:8px;padding:3px 0;font-size:12px;display:flex}.airspace-legend-body label:hover{color:var(--color-text)}.airspace-legend-body input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer;flex:none;width:13px;height:13px}.airspace-swatch{opacity:.85;border-radius:2px;flex:none;width:14px;height:10px}.airspace-swatch-airport{background:var(--color-airport-dot);border-radius:50%;width:8px;height:8px;margin:0 3px}.airspace-legend-note{border-top:1px solid var(--color-border);color:var(--color-text-dim);margin-top:8px;padding-top:8px;font-size:10px;line-height:1.4}.airspace-legend-error{color:var(--color-accent);margin-bottom:6px;font-size:10px;line-height:1.4}.airspace-popup-shell .maplibregl-popup-content{background:var(--color-overlay-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);color:var(--color-text);font-family:var(--font-sans);box-shadow:var(--shadow-card);border-radius:8px;padding:10px 12px}.airspace-popup-shell .maplibregl-popup-tip{border-top-color:var(--color-overlay-strong);border-bottom-color:var(--color-overlay-strong)}.airspace-popup-shell .maplibregl-popup-close-button{color:var(--color-text-muted);padding:0 6px;font-size:16px}.airspace-popup-row+.airspace-popup-row{border-top:1px solid var(--color-border);margin-top:8px;padding-top:8px}.airspace-popup-tag{letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:700;display:block}.airspace-popup-row strong{padding-right:14px;font-size:12px;font-weight:600;display:block}.airspace-popup-limits,.airspace-popup-more{font-family:var(--font-mono);color:var(--color-text-muted);font-size:11px}.airspace-popup-more{font-family:var(--font-sans);color:var(--color-text-dim);margin-top:8px;font-size:10px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--color-primary);border-top-color:#0000;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin}.altitude-profile{height:180px;margin-bottom:12px;position:relative}.altitude-profile svg{touch-action:pan-y;width:100%;height:100%;overflow:visible}.altitude-profile-bg{cursor:copy}.chart-zoom{z-index:1;align-items:center;gap:3px;display:flex;position:absolute;top:2px;right:2px}.chart-zoom-time{left:2px;right:auto}.chart-zoom button{background:var(--color-surface);border:1px solid var(--color-border);width:20px;height:20px;color:var(--color-text-muted);font-family:var(--font-sans);cursor:pointer;border-radius:5px;place-items:center;padding:0;font-size:12px;line-height:1;transition:color .15s,border-color .15s,background .15s;display:grid}.chart-zoom button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-glow)}.chart-zoom button:disabled{cursor:default;opacity:.4}.chart-zoom-range{font-family:var(--font-mono);color:var(--color-text-dim);white-space:nowrap;background:var(--color-surface);border-radius:4px;padding:1px 4px;font-size:9.5px}.waypoint-offscreen{fill:var(--color-primary);opacity:.5;pointer-events:none}.chart-grid-line{stroke:var(--color-border);stroke-width:1px;pointer-events:none}.chart-axis-label{fill:var(--color-text-dim);font-family:var(--font-mono);pointer-events:none;font-size:8.5px}.chart-day-line{stroke:var(--color-accent);stroke-width:1px;stroke-dasharray:3 3;opacity:.45}.chart-day-label{fill:var(--color-accent);font-family:var(--font-mono);opacity:.8;font-size:8.5px}.waypoint-handle{pointer-events:none;transition:r .12s}.altitude-profile-grab{cursor:default}.chart-cursor-line{stroke:var(--color-danger);stroke-width:1.5px;stroke-dasharray:3 2;opacity:.85}.chart-cursor-flag{fill:var(--color-danger);opacity:.95}.drag-tooltip{background:var(--color-bg);border:1px solid var(--color-primary);color:var(--color-text);font-family:var(--font-mono);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-card);z-index:2;border-radius:6px;flex-direction:column;align-items:center;padding:4px 8px;font-size:11px;line-height:1.35;display:flex;position:absolute;transform:translate(-50%,-100%)}.drag-tooltip-sub{color:var(--color-text-muted);font-size:9.5px}.sidebar-footer{padding:0 var(--panel-gap) var(--panel-gap);border-top:1px solid var(--color-border);padding-top:var(--panel-gap);background:var(--color-surface);flex-shrink:0}.api-usage{padding:12px 14px}.api-usage .panel-title{margin-bottom:10px}.usage-plan{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-dim);border:1px solid var(--color-border);border-radius:3px;margin-left:auto;padding:1px 5px;font-size:9px}.usage-bars{grid-template-columns:auto 1fr auto auto;align-items:center;gap:7px 8px;display:grid}.usage-row{display:contents}.usage-label{color:var(--color-text-muted);white-space:nowrap;font-size:11px}.usage-track{background:var(--color-bg);border:1px solid var(--color-border);border-radius:3px;height:6px;overflow:hidden}.usage-fill{background:var(--color-primary);height:100%;box-shadow:0 0 8px var(--color-primary-glow);border-radius:3px;transition:width .4s,background .3s}.usage-fill.warn{background:var(--color-accent);box-shadow:0 0 8px var(--color-accent-glow)}.usage-fill.critical{background:var(--color-danger);box-shadow:0 0 8px var(--color-danger-glow)}.usage-uncapped{color:var(--color-text-dim);white-space:nowrap;font-size:10px}.usage-value{font-family:var(--font-mono);color:var(--color-text);text-align:right;min-width:34px;font-size:11px}.usage-count{font-family:var(--font-mono);color:var(--color-text-dim);text-align:right;min-width:74px;font-size:10px}.usage-total{border-top:1px solid var(--color-border);color:var(--color-text-dim);text-align:center;margin-top:10px;padding-top:8px;font-size:10px}@media (width<=820px){.sidebar{z-index:30;width:min(100%,460px);box-shadow:8px 0 32px var(--color-scrim);margin-left:0;position:absolute;top:0;bottom:0;left:0}.app-layout.sidebar-collapsed .sidebar{margin-left:0;transform:translate(-100%)}.sidebar-toggle{left:calc(min(100vw,460px) - 52px)}.sidebar-header{padding:14px 64px 12px 16px}.sidebar-body,.sidebar-footer{padding-left:12px;padding-right:12px}.sidebar-footer{padding-bottom:max(12px, env(safe-area-inset-bottom))}.input-group input,.schedule-item input{font-size:16px}.input-group input{padding:10px 12px}.schedule-item{grid-template-columns:1fr 1fr .7fr 36px;padding:10px 12px}.delete-btn{width:36px;height:36px;font-size:20px}.refresh-btn{width:34px;height:34px;font-size:16px}.pick-start-btn,.add-waypoint-btn{padding:12px;font-size:13px}.rate-limit-retry{padding:9px 14px}.altitude-profile{height:200px}.chart-zoom button{width:26px;height:26px;font-size:14px}.chart-zoom-range{display:none}.panel-title{flex-wrap:wrap;row-gap:4px}.map-badge{padding:6px 9px;font-size:10px}.map-calculating-badge,.map-rate-limit-badge{max-width:calc(100vw - 76px);padding:7px 10px;font-size:11px}.map-picking-banner{top:auto;bottom:max(16px, env(safe-area-inset-bottom))}.usage-count{min-width:0;font-size:9px}}@media (pointer:coarse){.chart-zoom{gap:4px}.map-theme-toggle{width:38px;height:38px;font-size:17px}.chart-zoom button{width:30px;height:30px;font-size:16px}.altitude-profile{height:210px}}@media (hover:none){.panel:hover,.schedule-item:hover{border-color:var(--color-border)}.pick-start-btn:active,.add-waypoint-btn:active,.chart-zoom button:active:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-glow)}.chart-zoom button:hover:not(:disabled){border-color:var(--color-border);color:var(--color-text-muted);background:var(--color-surface)}.refresh-btn:hover:not(:disabled){transform:none}}.sidebar-body::-webkit-scrollbar{width:4px}.sidebar-body::-webkit-scrollbar-track{background:0 0}.sidebar-body::-webkit-scrollbar-thumb{background:var(--color-surface-2);border-radius:4px}
