@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;--color-position:#28d17c;--color-position-soft:#28d17c2e;--color-vspeed-1:#fdba74;--color-vspeed-2:#f97316;--color-vspeed-3:#c2410c;--color-vspeed-4:#f55;--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;--color-position:#0f8f4e;--color-position-soft:#0f8f4e29;--color-vspeed-1:#c2650a;--color-vspeed-2:#9c3d0a;--color-vspeed-3:#6b2308;--color-vspeed-4:#cf2231;--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}.map-recalc-control{top:calc(max(12px, env(safe-area-inset-top)) + 48px);z-index:40;background:var(--color-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:7px;display:flex;position:absolute;left:12px}.map-recalc-btn{border:1px solid var(--color-primary);background:var(--color-primary-soft);width:38px;height:38px;color:var(--color-text);cursor:pointer;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:background .2s,border-color .2s,box-shadow .2s,opacity .2s;display:flex}.map-recalc-btn:hover:not(:disabled){background:var(--color-primary-soft-hover)}.map-recalc-btn:disabled{opacity:.6;cursor:default}.map-recalc-btn.dirty{border-color:var(--color-accent);background:var(--color-accent-soft);box-shadow:0 0 0 3px var(--color-accent-wash)}.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-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;align-items:end;gap:8px;display:grid}.launch-actions{gap:8px;margin-top:8px;display:flex}.now-btn,.launch-nudge-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;flex:1;padding:8px 14px;font-size:12px;font-weight:500;transition:all .2s}.now-btn:hover:not(:disabled),.launch-nudge-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:minmax(60px,1.7fr) minmax(30px,.6fr) minmax(44px,.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{flex-wrap:wrap;align-items:baseline;gap:2px 6px;min-width:0;display:flex}.schedule-time-cell input{flex:5.5ch;min-width:5.5ch}.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}.map-bottom{left:50%;bottom:max(24px, env(safe-area-inset-bottom));z-index:5;pointer-events:none;flex-direction:column;align-items:center;gap:10px;width:calc(100% - 24px);max-height:calc(100% - 36px);display:flex;position:absolute;transform:translate(-50%)}.flight-bar{justify-content:center;align-items:flex-end;gap:10px;width:100%;min-height:0;display:flex}.dock-toggle{background:var(--color-overlay-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--panel-radius);box-shadow:var(--shadow-card);color:var(--color-text-muted);font-family:var(--font-sans);white-space:nowrap;cursor:pointer;pointer-events:auto;flex-shrink:0;align-items:center;gap:6px;padding:12px 14px;font-size:14px;font-weight:600;transition:color .15s,border-color .15s;display:flex}.dock-toggle:hover{color:var(--color-primary);border-color:var(--color-primary)}.schedule-dock{width:100%;height:var(--dock-height);background:var(--color-overlay-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--panel-radius);min-height:0;box-shadow:var(--shadow-card);pointer-events:auto;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-title-toggle{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin:-8px 0 -8px -8px;padding:8px;transition:color .15s;display:flex}.schedule-title-toggle:hover{color:var(--color-primary)}.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]{appearance:none;background:var(--color-border);border:1px solid var(--color-border-hover);cursor:pointer;border-radius:10px;flex-shrink:0;width:34px;min-width:34px;height:20px;transition:background .2s,border-color .2s;position:relative}.toggle-row input[type=checkbox]:after{content:"";background:var(--color-text-dim);border-radius:50%;width:16px;height:16px;transition:transform .2s,background .2s;position:absolute;top:1px;left:1px}.toggle-row input[type=checkbox]:checked{background:var(--color-primary-soft);border-color:var(--color-primary)}.toggle-row input[type=checkbox]:checked:after{background:var(--color-primary);transform:translate(14px)}.toggle-row.compact{flex-direction:column;align-items:center;gap:4px;margin-top:0;font-size:11px}.toggle-row.compact input[type=checkbox]{border-radius:11px;width:38px;min-width:38px;height:22px}.toggle-row.compact input[type=checkbox]:after{width:18px;height:18px}.toggle-row.compact input[type=checkbox]:checked:after{transform:translate(16px)}.toggle-hint{color:var(--color-text-dim);margin:6px 0 0 43px;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)}.calc-progress{color:var(--color-text-dim);align-items:center;gap:9px;padding:0 2px;font-size:11px;display:flex}.calc-progress-track{background:var(--color-border);border-radius:2px;flex:1;height:4px;overflow:hidden}.calc-progress-fill{background:var(--color-primary);border-radius:2px;height:100%;transition:width .4s}.calc-progress-label{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:60%;overflow:hidden}.input-error-panel{border:1px solid var(--color-danger-border);background:var(--color-danger-glow);border-radius:10px;padding:12px 14px}.input-error-title{color:var(--color-danger-strong);align-items:center;gap:8px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.input-error-body{color:var(--color-text-muted);margin:0 0 10px;font-size:12px;line-height:1.6}.input-error-action{background:var(--color-danger-glow);border:1px solid var(--color-danger-border);color:var(--color-danger-strong);cursor:pointer;border-radius:7px;padding:5px 12px;font-size:12px;font-weight:500;transition:background .15s}.input-error-action:hover{background:var(--color-danger-border)}.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%}.position-marker{background:var(--color-position);border:3px solid var(--color-chart-halo);width:18px;height:18px;box-shadow:0 0 0 4px var(--color-position-soft), var(--shadow-card);pointer-events:none;border-radius:50%;position:relative}.position-marker-heading{border-left:6px solid #0000;border-right:6px solid #0000;border-bottom:9px solid var(--color-position);transform-origin:50% 22px;width:0;height:0;filter:drop-shadow(0 0 2px var(--color-chart-halo));margin:-22px 0 0 -6px;position:absolute;top:50%;left:50%}.map-follow-btn{background:var(--color-overlay-strong);-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:8px;justify-content:center;align-items:center;font-size:18px;transition:color .15s,border-color .15s,background .15s;display:flex;position:absolute;bottom:92px;right:12px}.map-follow-btn:hover{color:var(--color-text);border-color:var(--color-border-hover)}.map-follow-btn.active{color:var(--color-position);border-color:var(--color-position);background:var(--color-position-soft)}.flight-status{pointer-events:auto;background:var(--color-overlay-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--panel-radius);width:min(560px,100%);min-height:0;box-shadow:var(--shadow-card);flex-direction:column;max-height:min(60vh,380px);display:flex;overflow:hidden}.flight-status.warn{border-color:var(--color-accent-border)}.flight-status.alert{border-color:var(--color-danger-border)}.flight-status-head{width:100%;color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:600;display:flex;position:relative}.flight-status-dot{background:var(--color-text-dim);border-radius:50%;flex-shrink:0;width:9px;height:9px}.flight-status-dot.live{background:var(--color-position);box-shadow:0 0 0 3px var(--color-position-soft)}.flight-status-dot.locating{background:var(--color-accent);animation:1.5s ease-in-out infinite pulse-dot}.flight-status-dot.error{background:var(--color-danger)}.flight-status-headline{flex-shrink:0}.flight-status.warn .flight-status-headline{color:var(--color-accent)}.flight-status.alert .flight-status-headline{color:var(--color-danger)}.flight-status-actual{font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.flight-status-delta{color:var(--color-accent);margin-left:6px}.flight-status-next-in{font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:12px;font-weight:500}.flight-status-progress{background:var(--color-border);height:2px;position:absolute;bottom:0;left:0;right:0}.flight-status-progress>span{background:var(--color-primary);height:100%;display:block}.flight-status-edited{text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);background:var(--color-accent-wash);border:1px solid var(--color-accent-border);border-radius:4px;flex-shrink:0;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:600}.flight-status-chevron{color:var(--color-text-muted);flex-shrink:0;margin-left:auto}.flight-status-edited+.flight-status-chevron{margin-left:8px}.flight-status-body{overscroll-behavior:contain;border-top:1px solid var(--color-border);padding:12px 14px 14px;overflow-y:auto}.flight-gps-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.flight-gps-btn{border:1px solid var(--color-border-hover);background:var(--color-surface-2);color:var(--color-text);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:inline-flex}.flight-gps-btn.on{border-color:var(--color-position);color:var(--color-position);background:var(--color-position-soft)}.flight-gps-btn:disabled{opacity:.5;cursor:not-allowed}.flight-gps-state{font-size:11px;font-family:var(--font-mono);color:var(--color-text-muted)}.flight-status-error{color:var(--color-danger);background:var(--color-danger-glow);border:1px solid var(--color-danger-border);border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:11px;line-height:1.5}.flight-status-warn-note{color:var(--color-accent);background:var(--color-accent-wash);border:1px solid var(--color-accent-border);border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:11px;line-height:1.5}.flight-status-note{color:var(--color-text-muted);margin:0 0 10px;font-size:11px;line-height:1.5}.flight-signals{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:10px;display:grid}.flight-signal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;min-width:0;padding:8px 10px}.flight-signal.warn{border-color:var(--color-accent-border);background:var(--color-accent-wash)}.flight-signal.alert{border-color:var(--color-danger-border);background:var(--color-danger-glow)}.flight-signal-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:3px;font-size:10px}.flight-signal-value{font-family:var(--font-mono);color:var(--color-text);font-size:15px;font-weight:600}.flight-signal.warn .flight-signal-value{color:var(--color-accent)}.flight-signal.alert .flight-signal-value{color:var(--color-danger)}.flight-signal-sub{color:var(--color-text-muted);overflow-wrap:anywhere;margin-top:2px;font-size:10px;line-height:1.4}.flight-status-next{color:var(--color-text);border:1px solid var(--color-primary-border);border-left:3px solid var(--color-primary);background:var(--color-primary-soft);border-radius:8px;margin:0 0 10px;padding:10px 12px;font-size:14px;line-height:1.6}.flight-status-next strong{color:var(--color-text);font-weight:700}.flight-status-next-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);margin-right:6px;font-size:10px;font-weight:700;display:inline-block}.flight-status-next.vspeed-1,.flight-status-next.vspeed-2,.flight-status-next.vspeed-3{border-color:var(--color-accent-border);background:var(--color-accent-wash)}.flight-status-next.vspeed-1 .flight-status-next-label,.flight-status-next.vspeed-1 strong,.flight-status-next.vspeed-2 .flight-status-next-label,.flight-status-next.vspeed-2 strong,.flight-status-next.vspeed-3 .flight-status-next-label,.flight-status-next.vspeed-3 strong{color:var(--color-accent)}.flight-status-next.vspeed-1{border-left-color:var(--color-vspeed-1)}.flight-status-next.vspeed-2{border-left-color:var(--color-vspeed-2)}.flight-status-next.vspeed-3{border-left-color:var(--color-vspeed-3)}.flight-status-next.vspeed-4{border-color:var(--color-danger-border);background:var(--color-danger-glow);border-left-color:var(--color-danger)}.flight-status-next.vspeed-4 .flight-status-next-label,.flight-status-next.vspeed-4 strong{color:var(--color-danger)}.flight-actions{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.flight-actions .flight-replan-btn{flex:160px;margin-bottom:0}.flight-replan-btn{border:1px solid var(--color-primary-border);background:var(--color-primary-soft);width:100%;color:var(--color-primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-bottom:10px;padding:11px;font-size:13px;font-weight:600;transition:background .15s;display:flex}.flight-replan-btn:hover:not(:disabled){background:var(--color-primary-soft-hover)}.flight-replan-btn:disabled{opacity:.45;cursor:not-allowed}.reset-btn{border:1px solid var(--color-danger-border);width:100%;color:var(--color-danger);cursor:pointer;background:0 0;border-radius:8px;padding:10px;font-size:13px;font-weight:600;transition:background .15s}.reset-btn:hover{background:var(--color-danger-glow)}.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-calculating-text{flex-direction:column;gap:4px;min-width:0;display:flex}.map-calculating-text span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.map-calculating-track{background:var(--color-primary-border);border-radius:2px;width:140px;height:3px;overflow:hidden}.map-calculating-fill{background:var(--color-primary);border-radius:2px;height:100%;transition:width .4s}.map-input-error-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-danger-border);max-width:min(78vw,360px);color:var(--color-danger-strong);z-index:6;border-radius:8px;align-items:flex-start;gap:8px;padding:8px 12px;font-size:12px;font-weight:500;line-height:1.5;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{flex-direction:column;height:180px;min-height:0;margin-bottom:12px;display:flex}.altitude-profile-chart{flex:auto;min-height:0;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}.altitude-line-vspeed.vspeed-0{stroke:var(--color-primary)}.altitude-line-vspeed.vspeed-1{stroke:var(--color-vspeed-1)}.altitude-line-vspeed.vspeed-2{stroke:var(--color-vspeed-2)}.altitude-line-vspeed.vspeed-3{stroke:var(--color-vspeed-3)}.altitude-line-vspeed.vspeed-4{stroke:var(--color-vspeed-4)}.vspeed-legend{color:var(--color-text-muted);flex-wrap:wrap;gap:4px 12px;padding:4px 2px 0;font-size:10px;display:flex}.vspeed-legend-item{align-items:center;gap:5px;display:inline-flex}.vspeed-legend-swatch{border-radius:2px;flex:none;width:12px;height:3px}.vspeed-legend-swatch.vspeed-1{background:var(--color-vspeed-1)}.vspeed-legend-swatch.vspeed-2{background:var(--color-vspeed-2)}.vspeed-legend-swatch.vspeed-3{background:var(--color-vspeed-3)}.vspeed-legend-swatch.vspeed-4{background:repeating-linear-gradient(to right, var(--color-vspeed-4) 0 5px, transparent 5px 8px)}.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}.chart-now-line{stroke:var(--color-success);stroke-width:1.5px;stroke-dasharray:3 2;opacity:.85}.chart-now-flag{fill:var(--color-success);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-body{padding-top:calc(max(12px, env(safe-area-inset-top)) + 48px)}.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:minmax(72px,1.7fr) minmax(36px,.6fr) minmax(40px,.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}.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}.dock-toggle{gap:4px;padding:10px;font-size:13px}.dock-toggle-label{display:none}.schedule-dock{height:min(var(--dock-height), 52dvh);padding:12px}.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}}@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}
