:root{--bg: #f6f7f9;--surface: #ffffff;--border: #dcdfe4;--text: #16191d;--text-muted: #626a75;--accent: #2563eb;--accent-hover: #1d4ed8;--danger: #b42318;--danger-hover: #912018;--route: #c2410c;--airfield: #7c3aed;--radius: 10px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #101317;--surface: #181c22;--border: #2b313a;--text: #e8eaed;--text-muted: #9aa3af;--accent: #3b82f6;--accent-hover: #60a5fa;--danger: #f87171;--danger-hover: #fca5a5;--route: #fb923c;--airfield: #a78bfa}}:root[data-theme=dark]{--bg: #101317;--surface: #181c22;--border: #2b313a;--text: #e8eaed;--text-muted: #9aa3af;--accent: #3b82f6;--accent-hover: #60a5fa;--danger: #f87171;--danger-hover: #fca5a5;--route: #fb923c;--airfield: #a78bfa;color-scheme:dark}:root[data-theme=light]{color-scheme:light}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2{margin:0;line-height:1.25}h1{font-size:1.5rem;letter-spacing:-.01em}h2{font-size:1rem;font-weight:600}code{font-family:ui-monospace,Cascadia Code,SF Mono,Consolas,monospace;font-size:.9em;background:var(--bg);padding:.1em .35em;border-radius:4px}.muted{color:var(--text-muted)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem}.auth-header{margin-bottom:1.5rem}.auth-header p{margin:.35rem 0 0;font-size:.9rem}.auth-footer{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border);font-size:.875rem;text-align:center}.auth-footer p{margin:0}.field{display:block;margin-bottom:1rem}.field>span{display:block;margin-bottom:.35rem;font-size:.8125rem;font-weight:500}.field small{display:block;margin-top:.35rem;font-size:.75rem}input[type=text],input[type=email],input[type=password],textarea,select{width:100%;padding:.6rem .7rem;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;font:inherit}textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem;line-height:1.5}.field input[type=checkbox]{width:auto;margin-right:.25rem;vertical-align:middle}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:disabled,button:disabled{opacity:.6;cursor:not-allowed}button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid transparent;padding:.6rem .9rem}button.primary{width:100%;background:var(--accent);color:#fff;font-weight:500}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}button.secondary:hover:not(:disabled){border-color:var(--text-muted)}button.danger{background:transparent;color:var(--danger);border-color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger);color:#fff}button.link{background:none;border:none;padding:0;color:var(--accent);text-decoration:underline}.error{margin:0 0 1rem;padding:.6rem .7rem;border-radius:8px;border:1px solid var(--danger);color:var(--danger);font-size:.875rem}.app-shell{min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border)}.app-header-actions{display:flex;align-items:center;gap:.9rem;font-size:.875rem}.app-header-brand{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.app-nav{display:flex;gap:.25rem}.app-nav-link{padding:.4rem .75rem;border-radius:8px;color:var(--text-muted);font-size:.9rem;font-weight:500;text-decoration:none}.app-nav-link:hover{color:var(--text);background:color-mix(in srgb,var(--text) 5%,transparent)}.app-nav-link.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.app-nav-link:focus-visible,a.button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a.button{display:inline-block;border-radius:8px;border:1px solid transparent;padding:.6rem .9rem;font-size:inherit;line-height:1.2;text-decoration:none;white-space:nowrap}a.button.accent{background:var(--accent);color:#fff;font-weight:500}a.button.accent:hover{background:var(--accent-hover)}a.button.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}a.button.secondary:hover{border-color:var(--text-muted)}.app-main{padding:1rem;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr);align-content:start}@media(min-width:1000px){.app-shell{height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr)}.app-main{overflow-y:auto;padding:1.25rem}}.theme-switch{display:inline-flex;padding:2px;gap:2px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.theme-switch button{width:auto;padding:3px 10px;font-size:12px;font-weight:600;color:var(--text-muted);background:transparent;border:0;border-radius:calc(var(--radius) - 3px);cursor:pointer}.theme-switch button:hover{color:var(--text)}.theme-switch button[aria-pressed=true]{color:var(--text);background:var(--surface);box-shadow:0 1px 2px #00000026}.flight-layout{display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);grid-template-areas:"fleet" "map" "side" "drawer"}.flight-fleet{grid-area:fleet;min-width:0}.flight-map{grid-area:map;min-width:0}.flight-side{grid-area:side;min-width:0;display:flex;flex-direction:column;gap:.75rem}.flight-drawer{grid-area:drawer;min-width:0}.flight-layout .panel{padding:1rem}@media(min-width:1000px){.app-main.flight-main{padding:.75rem;overflow:hidden;align-content:stretch}.flight-layout{height:100%;min-height:0;grid-template-columns:clamp(190px,14vw,260px) minmax(0,1fr) clamp(300px,24vw,460px);grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"fleet map side" "fleet drawer side"}.flight-fleet,.flight-side{min-height:0;overflow-y:auto}.flight-fleet>.panel{min-height:100%}.flight-map{min-height:0;display:flex;flex-direction:column}.flight-map>.panel{flex:1;min-height:0;display:flex;flex-direction:column}.flight-map .track-map,.flight-map .track-map-loading{flex:1;height:auto;min-height:240px}.flight-map>.panel:not(:has(.track-map,.track-map-loading)){overflow-y:auto}.flight-drawer .drawer-body{max-height:42dvh;overflow-y:auto}}.flight-drawer{display:flex;flex-direction:column;gap:.5rem}.tab-strip{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tab-strip .map-toggle{box-shadow:none}.drawer-tabs .map-toggle{padding:6px 12px;font-size:13px}.drawer-close{margin-left:auto;font-size:13px}.tab-alert{display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:var(--danger);vertical-align:middle}.fleet .device-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:8px;row-gap:0;padding:6px 8px}.fleet .device-row-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-row-stats{grid-column:2 / -1;font-size:12px}.summary .panel-head{margin-bottom:8px}.summary.replaying{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.replay-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:5px 6px 5px 10px;font-size:13px;border-radius:6px;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.replay-banner button{padding:3px 10px;font-size:12px}.summary-warnings{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:4px}.summary-warnings>li{padding:5px 10px;font-size:13px;font-weight:600;border-radius:6px;color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}.summary-stats{margin:0 0 10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}.summary-stats dt{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}.summary-stats dd{margin:0;font-size:1.35rem;font-weight:600;line-height:1.2;white-space:nowrap}.summary-stats dd.summary-word{font-size:.9rem;white-space:normal}.summary-stats dd small{font-size:.75rem;font-weight:500;color:var(--text-muted)}.summary-lines{margin:0;padding-top:8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:3px;font-size:13px}.summary-lines>div{display:flex;justify-content:space-between;gap:12px}.summary-lines dt{color:var(--text-muted)}.summary-lines dd{margin:0;text-align:right}.video .panel-head{flex-wrap:wrap}.video .video-frame,.video .video-actions{margin-bottom:8px}.video-details summary{cursor:pointer;font-size:13px;color:var(--text-muted)}.video-details[open] summary{margin-bottom:10px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.panel>h2{margin-bottom:.75rem}.panel>p{margin:0 0 1rem;font-size:.9rem}.panel>p:last-child,.panel>button:last-child{margin-bottom:0}.detail-list{margin:0;display:grid;gap:.6rem}.detail-list>div{display:grid;grid-template-columns:9rem 1fr;gap:.75rem;font-size:.9rem}.detail-list dt{color:var(--text-muted)}.detail-list dd{margin:0;overflow-wrap:anywhere}@media(max-width:480px){.detail-list>div{grid-template-columns:1fr;gap:.15rem}}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-head>h2{margin:0}.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:.92em}.badge{padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;border:1px solid transparent}.badge-ok{color:#067647;background:#ecfdf3;border-color:#abefc6}.badge-wait,.badge-off{color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 10%,transparent);border-color:var(--border)}.badge-warn{color:#b54708;background:#fffaeb;border-color:#fedf89}.badge-replay{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.badge-bad{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .badge-ok{color:#75e0a7;background:#05603a40;border-color:#75e0a759}:root:not([data-theme=light]) .badge-warn{color:#fec84b;background:#b5470833;border-color:#fec84b59}}:root[data-theme=dark] .badge-ok{color:#75e0a7;background:#05603a40;border-color:#75e0a759}:root[data-theme=dark] .badge-warn{color:#fec84b;background:#b5470833;border-color:#fec84b59}.warn-text{color:var(--danger);font-weight:600}.device-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.device-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:inherit;font:inherit;text-align:left;cursor:pointer}.device-row:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}.device-row.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.device-row-id{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-weight:600}.device-row-mode{margin-left:auto;font-size:13px}.dot{width:8px;height:8px;border-radius:50%;flex:none}.dot-live{background:#17b26a;box-shadow:0 0 0 3px #17b26a33}.dot-off{background:var(--text-muted);opacity:.5}.track-plot{margin-bottom:20px;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--text) 3%,transparent);overflow:hidden}.track-plot svg{display:block;width:100%;height:auto}.track-plot-empty{display:grid;place-items:center;min-height:160px}.track-plot-empty p{margin:0}.track-line{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;opacity:.75}.track-marker{fill:var(--accent)}.track-marker.stale{fill:var(--text-muted)}.track-scale line{stroke:var(--text-muted);stroke-width:1}.track-scale text,.track-north{fill:var(--text-muted);font-size:11px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.readout{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:20px}.readout h3{margin:0 0 8px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.readout dl{margin:0;display:flex;flex-direction:column;gap:4px}.readout dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.readout dt{color:var(--text-muted);font-size:13px}.readout dd{margin:0;text-align:right}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:260px;overflow-y:auto}@media(min-width:1000px){.timeline{max-height:clamp(260px,30dvh,520px)}}.timeline>li{display:flex;gap:10px;align-items:baseline;font-size:14px;padding-bottom:6px;border-bottom:1px solid var(--border)}.timeline>li:last-child{border-bottom:none;padding-bottom:0}.timeline-time{flex:none;font-size:12px}.timeline-device{flex:none;font-size:12px;color:var(--text-muted)}.video-list{display:grid;gap:20px}.video-card+.video-card{padding-top:20px;border-top:1px solid var(--border)}.video-card-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.video-card-head h3{margin:0;font-size:15px;font-weight:600}.video-frame{position:relative;aspect-ratio:16 / 9;border-radius:var(--radius);background:#0b0d10;overflow:hidden;margin-bottom:12px}.video-frame video{display:block;width:100%;height:100%;object-fit:contain}.video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;text-align:center;color:#c9ced6;font-size:14px;background:#0b0d1099}.video-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.video-actions button{padding:.4rem .8rem;font-size:14px}.video-error{margin:0 0 12px;color:var(--danger);font-size:14px}.zoom{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;margin-bottom:12px;font-size:14px}.zoom-label{color:var(--text-muted)}.zoom-slider{flex:1 1 160px;min-width:0;accent-color:var(--accent)}.zoom-readout{min-width:9ch;font-size:13px}.zoom .secondary{padding:.4rem .8rem;font-size:14px}.zoom-error{flex-basis:100%;margin:0}.gimbal{margin-bottom:12px;padding-top:10px;border-top:1px solid var(--border)}.gimbal-status{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px;font-size:14px}.gimbal-angles{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0 0 8px;font-size:13px}.gimbal-angles>div{display:flex;gap:6px}.gimbal-angles dt{color:var(--text-muted)}.gimbal-angles dd{margin:0}.gimbal-pad{display:block;width:100%;aspect-ratio:240 / 90;margin-bottom:8px;border:1px solid var(--border);border-radius:8px;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none}.gimbal-pad:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gimbal-pad.disabled{cursor:not-allowed;opacity:.55}.gimbal-pad-bg{fill:var(--bg)}.gimbal-pad-axis{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}.gimbal-pad-aim line{stroke:var(--text-muted);stroke-width:1.5;vector-effect:non-scaling-stroke}.gimbal-pad-current{fill:var(--accent);stroke:var(--surface);stroke-width:1.5;vector-effect:non-scaling-stroke}.gimbal-note{margin:0 0 8px;font-size:13px}.track-map{position:relative;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;height:420px}.track-map .track-map-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.track-map-loading{display:grid;place-items:center;height:420px;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--text) 3%,transparent)}.track-map-loading p{margin:0}@media(min-width:1000px){.track-map,.track-map-loading{height:clamp(420px,46dvh,760px)}}.track-map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;text-align:center;pointer-events:none;background:color-mix(in srgb,var(--bg) 70%,transparent)}.track-map-overlay p{margin:0}.track-map-note{position:absolute;bottom:10px;left:50%;transform:translate(-50%);z-index:1;margin:0;padding:4px 10px;font-size:12px;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 2px #0000001f;pointer-events:none;white-space:nowrap}.track-map-controls{position:absolute;top:10px;left:10px;display:flex;gap:6px;z-index:1}.map-toggle{padding:5px 10px;font-size:12px;font-weight:600;width:auto;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;box-shadow:0 1px 2px #0000001f}.map-toggle.active{color:#fff;background:var(--accent);border-color:var(--accent)}.track-map .mapboxgl-ctrl-group{background:var(--surface);border:1px solid var(--border);box-shadow:none}.track-map .mapboxgl-ctrl-group button+button{border-top-color:var(--border)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .track-map .mapboxgl-ctrl-group button .mapboxgl-ctrl-icon{filter:invert(1)}:root:not([data-theme=light]) .track-map .mapboxgl-ctrl-scale{color:var(--text);background:color-mix(in srgb,var(--surface) 70%,transparent);border-color:var(--text-muted)}}:root[data-theme=dark] .track-map .mapboxgl-ctrl-group button .mapboxgl-ctrl-icon{filter:invert(1)}:root[data-theme=dark] .track-map .mapboxgl-ctrl-scale{color:var(--text);background:color-mix(in srgb,var(--surface) 70%,transparent);border-color:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.route-status{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 10px;font-size:.9rem}.route-hint,.route-warning,.route-notice{margin:0 0 12px;padding:8px 10px;border-radius:8px;font-size:.875rem;border:1px solid var(--border);background:color-mix(in srgb,var(--route) 8%,transparent)}.route-warning{border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 8%,transparent)}.route-notice{margin:12px 0 0}.route-footnote{margin:10px 0 0;font-size:.85rem}.procedure-line{margin:0 0 10px;font-size:.9rem}.procedure-edit{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 12px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:.9rem}.procedure-edit select{width:auto;min-width:10rem;padding:3px 6px}.procedure-field{display:inline-flex;align-items:center;gap:6px}.procedure-direction{padding:3px 10px}.procedure-note{flex-basis:100%;margin:0}.link-button{padding:0;font:inherit;color:var(--accent);background:none;border:0;text-decoration:underline;cursor:pointer}.route-table-wrap{overflow-x:auto;margin:0 -4px 12px}.route-table{width:100%;border-collapse:collapse;font-size:.875rem}.route-table th{text-align:left;font-weight:500;font-size:.75rem;color:var(--text-muted);padding:4px;border-bottom:1px solid var(--border);white-space:nowrap}.route-table td{padding:5px 4px;border-bottom:1px solid var(--border);white-space:nowrap}.route-row{cursor:pointer}.route-row.done td{color:var(--text-muted)}.route-row.current td:first-child{box-shadow:inset 3px 0 0 var(--route)}.route-row.selected td{background:color-mix(in srgb,var(--route) 10%,transparent)}.route-current{margin-left:6px;padding:0 6px;border-radius:999px;font-family:system-ui,sans-serif;font-size:11px;font-weight:600;color:#fff;background:var(--route)}.num-field{display:inline-flex;align-items:center;gap:4px}.num-field input{width:5.5rem;padding:3px 6px;font:inherit;font-variant-numeric:tabular-nums;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px}.route-row-actions{display:flex;gap:2px}.route-row-actions button{padding:2px 7px;font-size:.8rem;line-height:1.2;color:var(--text);background:transparent;border-color:var(--border)}.route-row-actions button:hover:not(:disabled){border-color:var(--text-muted)}.route-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.route-actions-spacer{flex:1}button.accent{background:var(--accent);color:#fff;font-weight:500}button.accent:hover:not(:disabled){background:var(--accent-hover)}button.armed,button.armed:hover:not(:disabled){color:#fff;background:var(--danger);border-color:var(--danger);font-weight:600}.wp-marker{display:grid;place-items:center;width:24px;height:24px;padding:0;border-radius:50%;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--route);background:var(--surface);border:2px solid var(--route);box-shadow:0 1px 3px #0000004d;cursor:pointer}.wp-marker.editing{cursor:grab}.wp-marker.current{color:#fff;background:var(--route)}.wp-marker.selected{outline:3px solid color-mix(in srgb,var(--route) 45%,transparent);outline-offset:1px}.airfield-form{margin-top:12px}.airfield-form-fields{display:flex;flex-wrap:wrap;gap:0 12px}.airfield-form-fields .field{flex:1 1 200px}.airfield-form-fields .airfield-width{flex:0 1 120px}.airfield-form input[type=number]{width:100%;padding:.6rem .7rem;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;font:inherit}.airfield-row-actions{text-align:right;white-space:nowrap}.airfield-row-actions button{padding:.25rem .6rem;font-size:.8125rem}.reset-marker{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#00000059;border:2px dashed var(--surface);cursor:grab}.reset-marker-arrow{font-size:16px;line-height:1;color:var(--danger);text-shadow:0 1px 2px rgb(0 0 0 / .5)}.af-marker{display:grid;place-items:center;width:22px;height:22px;border-radius:4px;font-size:12px;font-weight:700;color:#fff;background:var(--airfield);border:2px solid var(--surface);box-shadow:0 1px 3px #0000004d;cursor:grab}.history-window{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.history-date{padding:4px 8px;font:inherit;font-size:12px;font-weight:600;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 2px #0000001f}.history-date.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.history-controls{display:flex;align-items:flex-start;gap:10px}.history-play{width:2.75rem;flex:none;padding-inline:0}.history-track{flex:1;min-width:0;padding-top:.55rem}.history-slider{display:block;width:100%;margin:0;accent-color:var(--accent)}.history-coverage{position:relative;height:4px;margin-top:4px;border-radius:2px;background:color-mix(in srgb,var(--text) 8%,transparent)}.history-coverage>span{position:absolute;top:0;bottom:0;border-radius:2px;background:var(--accent);opacity:.6}.history-ends{display:flex;justify-content:space-between;gap:8px;margin-top:4px;font-size:12px}select.history-speed{width:auto;flex:none}.history-readout{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem 1rem;margin:1rem 0 0}.history-readout>div{display:grid;gap:.1rem}.history-readout dt{color:var(--text-muted);font-size:.8rem}.history-readout dd{margin:0}.history-footnote{margin:.75rem 0 0;font-size:.85rem}@media(max-width:560px){.history-controls{flex-wrap:wrap}.history-track{order:-1;flex-basis:100%}}.app-main.page-single{grid-template-columns:minmax(0,1fr);padding-inline:max(1rem,calc((100% - 1000px)/2))}@media(min-width:1000px){.app-main.page-split{grid-template-columns:minmax(0,2fr) minmax(340px,1fr)}.app-main.page-split .track-map{height:calc(100dvh - 12rem);min-height:420px}}.page-side{display:flex;flex-direction:column;gap:1rem;min-width:0}.page-crumbs{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-muted)}.page-crumbs a{color:var(--accent);text-decoration:none}.page-crumbs a:hover{text-decoration:underline}.page-subtitle{margin:.2rem 0 0;font-size:.875rem}.device-table td{vertical-align:middle;padding-block:8px}.device-table-row{cursor:pointer}.device-table-row:hover{background:color-mix(in srgb,var(--text) 4%,transparent)}.device-table-name{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.device-table-id{display:block;font-size:.75rem}.device-table a.button{padding:.3rem .7rem;font-size:.8125rem}.inline-form{display:flex;align-items:flex-start;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.inline-form .field{flex:1 1 18rem;margin-bottom:.5rem}.inline-form>button{margin-top:1.55rem}.settings-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1rem;margin-top:.5rem;border-top:1px solid var(--border)}.settings-row>div{flex:1 1 20rem}.settings-row p{margin:.25rem 0 0;font-size:.875rem}.profile-form{max-width:28rem}.inline-form.profile-form{max-width:none}.panel>p.profile-note{margin-top:1rem;font-size:.8125rem}.cockpit{--hud: #5cff9d;--hud-dim: rgba(92, 255, 157, .45);--hud-caution: #ffd23f;--hud-warning: #ff4d4d;--hud-panel: rgba(6, 10, 8, .62);position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;overflow:hidden;background:#000;color:var(--hud);font-family:ui-monospace,Cascadia Mono,SF Mono,Menlo,Consolas,monospace;font-size:13px;-webkit-user-select:none;user-select:none}.cockpit-video{position:absolute;object-fit:contain;background:#000}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;fill:none;stroke:var(--hud);stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 1.5px rgba(0,0,0,.95)) drop-shadow(0 0 3px rgba(0,0,0,.6))}.hud text{fill:var(--hud);stroke:none;font-size:15px;font-weight:600}.hud .hud-small{font-size:12px}.hud .hud-value{font-size:17px;font-weight:700}.hud .hud-horizon{stroke-width:2.5}.hud .hud-ladder-below line{stroke-dasharray:8 6}.hud .hud-aircraft{stroke-width:3}.hud .hud-aircraft circle{fill:var(--hud)}.hud .hud-box{fill:#00000073}.hud .hud-fill{fill:var(--hud);stroke:none}.hud .hud-pointer{fill:var(--hud)}.hud .hud-bug{fill:#ff7ad9;stroke:#ff7ad9}.hud .hud-bug-line{stroke:#ff7ad9;stroke-width:3}.hud .hud-limit{stroke:var(--hud-caution)}.hud .hud-faint{stroke:var(--hud-dim);stroke-width:1}.hud .hud-caution{fill:var(--hud-caution);font-size:14px}.cockpit-top-left,.cockpit-top-right{position:absolute;top:12px;display:flex;flex-direction:column;gap:8px}.cockpit-top-left{left:12px;align-items:flex-start}.cockpit-top-right{right:12px;align-items:flex-end}.cockpit-panel{min-width:220px;padding:8px 10px;border:1px solid var(--hud-dim);border-radius:6px;background:var(--hud-panel);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.cockpit-panel-title{margin-bottom:4px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.cockpit-group{margin-top:6px;color:var(--hud-dim);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.cockpit-row{display:flex;justify-content:space-between;gap:16px;line-height:1.45}.cockpit-row-label{color:var(--hud-dim)}.cockpit-row-value{font-variant-numeric:tabular-nums;text-align:right}.cockpit-tone-accent{color:#fff;font-weight:700}.cockpit-tone-caution{color:var(--hud-caution)}.cockpit-tone-warning{color:var(--hud-warning);font-weight:700}.cockpit-exit{color:var(--hud);font-weight:700;text-decoration:none;padding:4px 10px;border:1px solid var(--hud-dim);border-radius:6px;background:var(--hud-panel)}.cockpit-exit:hover{background:#5cff9d26}.cockpit-warnings{position:absolute;top:34%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.cockpit-warning{padding:3px 12px;border-radius:4px;font-weight:800;font-size:15px;letter-spacing:.06em;background:#0009}.cockpit-warning-warning{color:var(--hud-warning);border:2px solid var(--hud-warning);animation:cockpit-flash 1s steps(2,start) infinite}.cockpit-warning-caution{color:var(--hud-caution);border:1px solid var(--hud-caution)}@keyframes cockpit-flash{to{opacity:.35}}@media(prefers-reduced-motion:reduce){.cockpit-warning-warning{animation:none}}.cockpit-controls{position:absolute;left:50%;bottom:14px;transform:translate(-50%);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:8px 12px;border:1px solid var(--hud-dim);border-radius:8px;background:var(--hud-panel)}.cockpit-hint{color:var(--hud-dim)}.cockpit-error{flex-basis:100%;margin:0;text-align:center;color:var(--hud-warning)}.cockpit-button,.cockpit-segmented button{font:inherit;font-weight:700;color:var(--hud);background:#00000080;border:1px solid var(--hud-dim);border-radius:6px;padding:6px 14px;cursor:pointer}.cockpit-button:hover:not(:disabled),.cockpit-segmented button:hover{background:#5cff9d26}.cockpit-button:disabled{opacity:.45;cursor:not-allowed}.cockpit-button-primary{color:#04140a;background:var(--hud);border-color:var(--hud)}.cockpit-button-primary:hover:not(:disabled){background:#8dffbc}.cockpit-button-danger{color:#fff;background:#a11;border-color:var(--hud-warning)}.cockpit-segmented{display:inline-flex}.cockpit-segmented button{border-radius:0}.cockpit-segmented button:first-child{border-radius:6px 0 0 6px}.cockpit-segmented button:last-child{border-radius:0 6px 6px 0}.cockpit-segmented button[aria-pressed=true]{color:#04140a;background:var(--hud)}.cockpit button:focus-visible,.cockpit a:focus-visible{outline:2px solid #fff;outline-offset:2px}.cockpit-video-notice{position:absolute;top:58%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--hud-dim)}@media(max-width:720px){.cockpit-top-right .cockpit-panel{display:none}}
