:root{--body: -apple-system, BlinkMacSystemFont, "SF Pro Text", Inter, "Segoe UI", system-ui, sans-serif;--display: -apple-system, BlinkMacSystemFont, "SF Pro Display", Inter, "Segoe UI", system-ui, sans-serif;--mono: var(--body);--bg: #0b0b0c;--panel: #1c1c1e;--panel-solid: #1c1c1e;--panel-raised: #2c2c2e;--fill: rgba(255, 255, 255, .06);--fill-strong: rgba(255, 255, 255, .1);--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .16);--text: #f5f5f7;--muted: #a1a1a6;--quiet: #98989d;--accent: #2997ff;--accent-press: #0a84ff;--accent-soft: rgba(41, 151, 255, .16);--on-accent: #ffffff;--accent-text: #4aa3ff;--on-category: #0b0b0c;--cabin-first: #c9a24a;--cabin-business: #5e8bff;--cabin-premium: #35b6b0;--cabin-economy: #6b7a90;--cabin-flexible: #a07be0;--cabin-other: #8e8e93;--lifr: #bf5af2;--ok: #30d158;--warn: #ffd60a;--danger: #ff453a;--halo: #0b0b0c;--aircraft: #f5f5f7;--aircraft-ground: #8e8e93;--scrim: rgba(0, 0, 0, .5);--material: none;--shadow-float: 0 4px 18px rgba(0, 0, 0, .32), 0 0 0 .5px rgba(0,0,0,.4);--cyan: var(--accent);--cyan-soft: var(--accent-soft);--amber: var(--warn);--violet: var(--muted);--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-pill: 980px;--ease-out: cubic-bezier(.22, 1, .36, 1);font-family:var(--body);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.theme-light{--bg: #f5f5f7;--panel: #ffffff;--panel-solid: #ffffff;--panel-raised: #f5f5f7;--fill: rgba(0, 0, 0, .04);--fill-strong: rgba(0, 0, 0, .07);--line: rgba(0, 0, 0, .08);--line-strong: rgba(0, 0, 0, .14);--text: #1d1d1f;--muted: #515154;--quiet: #68686d;--accent: #0066cc;--accent-press: #0058b0;--accent-soft: rgba(0, 102, 204, .1);--ok: #1f7a36;--accent-text: var(--accent);--on-category: #ffffff;--cabin-first: #8a6a1c;--cabin-business: #2f5fd6;--cabin-premium: #0f7f7a;--cabin-economy: #55657c;--cabin-flexible: #7448c4;--cabin-other: #68686d;--lifr: #8e3cbf;--warn: #b25000;--danger: #d70015;--halo: #ffffff;--aircraft: #1d1d1f;--aircraft-ground: #86868b;--scrim: rgba(0, 0, 0, .28);--shadow-float: 0 4px 18px rgba(0, 0, 0, .12), 0 0 0 .5px rgba(0,0,0,.08)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--body)}button,input,select{font:inherit;letter-spacing:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{color:var(--on-accent);background:var(--accent)}.mono{font-family:var(--body);font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{min-height:100vh;background:var(--bg);color:var(--text);font-size:.875rem;letter-spacing:-.01em}.skip-link{position:fixed;z-index:10000;left:12px;top:-50px;padding:10px 16px;color:var(--on-accent);background:var(--accent);border-radius:var(--r-pill);transition:top .2s var(--ease-out)}.skip-link:focus{top:12px}.system-dot,.status-dot{display:inline-block;width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--quiet)}.system-dot.online{background:var(--ok)}.system-dot.warning{background:var(--warn)}.icon-button{display:grid;place-items:center;width:34px;height:34px;padding:0;color:var(--muted);border:0;border-radius:50%;background:transparent;cursor:pointer;transition:color .2s var(--ease-out),background .2s var(--ease-out),transform .15s var(--ease-out)}.icon-button:hover{color:var(--text);background:var(--fill-strong)}.icon-button:active,.primary-button:active:not(:disabled),.secondary-button:active,.map-controls button:active:not(:disabled){transform:scale(.95)}.map-surface{position:absolute;inset:0;background:var(--bg)}.leaflet-map{width:100%;height:100%;background:var(--bg)}.leaflet-container{font-family:var(--body)}.leaflet-control-attribution{opacity:1;padding:2px 8px!important;border-radius:var(--r-pill) 0 0 0;background:var(--panel)!important;color:var(--quiet)!important;font:400 11px/1.3 var(--body)!important;-webkit-backdrop-filter:var(--material);backdrop-filter:var(--material)}.leaflet-control-attribution a{color:var(--muted)!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:var(--text);background:var(--panel-solid);box-shadow:var(--shadow-float)}.leaflet-popup-content-wrapper{border-radius:var(--r-md)}.leaflet-popup-content{margin:10px 14px;font:13px/1.45 var(--body)}.map-tiles-dark{filter:invert(1) hue-rotate(180deg) grayscale(1) brightness(.72) contrast(1.08)}.map-tiles-light{filter:grayscale(1) brightness(1.04) contrast(.92)}.pulse-dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--quiet)}.pulse-dot.active{background:var(--ok)}.pulse-dot.active:after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--ok);animation:live-ping 2.4s var(--ease-out) infinite}@keyframes live-ping{0%{opacity:.6;transform:scale(1)}70%,to{opacity:0;transform:scale(2.6)}}.user-location-icon-wrap{border:0;background:transparent}.user-location-marker{position:relative;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent-soft)}.user-location-marker:after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--accent);opacity:0;animation:user-location-pulse 2.4s var(--ease-out) infinite;pointer-events:none}.user-location-dot{position:relative;z-index:1;width:12px;height:12px;border:2.5px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 1px 4px #00000059}@keyframes user-location-pulse{0%{opacity:.35;transform:scale(.6)}to{opacity:0;transform:scale(2)}}.altitude-legend{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.8125rem;font-variant-numeric:tabular-nums}.altitude-legend-title{color:var(--text);font-weight:600}.altitude-legend-items{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}.altitude-legend-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.altitude-legend-item i{display:block;width:8px;height:8px;flex:0 0 auto;border-radius:50%}.route-endpoint-icon-wrap{display:grid;place-items:center;border:0;background:transparent}.route-endpoint-marker{display:grid;place-items:center;width:25px;height:25px;color:var(--endpoint-color);filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}.route-endpoint-marker svg{width:21px;height:21px}.aircraft-marker-wrap{background:transparent;border:0}.aircraft-marker{display:grid;place-items:center;width:28px;height:28px;color:var(--aircraft);border-radius:50%;transform:rotate(calc(var(--heading) - 90deg));filter:drop-shadow(0 1px 2px rgba(0,0,0,.55));transition:transform .6s var(--ease-out),color .2s var(--ease-out),background .2s var(--ease-out)}.theme-light .aircraft-marker{filter:drop-shadow(0 1px 1.5px rgba(255,255,255,.9))}.aircraft-marker svg{width:20px;height:20px;fill:currentColor}.aircraft-marker .aircraft-svg-stroke{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.aircraft-marker .aircraft-svg-fill{fill:currentColor;stroke:none}.aircraft-marker .aircraft-svg-rotor{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;opacity:.9}.aircraft-marker.kind-helicopter svg{width:22px;height:22px}.aircraft-marker.kind-glider svg{width:23px;height:23px}.aircraft-marker.kind-balloon svg{width:20px;height:20px}.aircraft-marker.kind-small svg{width:17px;height:17px}.aircraft-marker.kind-heavy svg{width:23px;height:23px}.aircraft-marker.kind-unknown{color:var(--muted)}.aircraft-marker.ground{color:var(--aircraft-ground)}.field-label{display:block;margin:0 0 6px;color:var(--muted);font-size:.8125rem;font-weight:600}.search-input-wrap,.control-shell{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--panel-solid);color:var(--quiet);transition:border-color .2s var(--ease-out),box-shadow .2s var(--ease-out)}.search-input-wrap:focus-within,.control-shell:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-input-wrap input,.control-shell input{min-width:0;width:100%;color:var(--text);border:0;outline:0;background:transparent;font-size:.9375rem}.search-input-wrap input::placeholder{color:var(--quiet)}.clear-button{display:grid;place-items:center;width:24px;height:24px;padding:0;color:var(--quiet);border:0;border-radius:50%;background:var(--fill);cursor:pointer}.clear-button:hover{color:var(--text);background:var(--fill-strong)}.airport-search{position:relative;z-index:20}.airport-results{position:absolute;z-index:100;top:calc(100% + 6px);left:0;right:0;max-height:min(340px,50vh);padding:6px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-solid);box-shadow:var(--shadow-float);animation:pop-in .18s var(--ease-out)}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.99)}}.airport-option{display:flex;align-items:center;border-radius:var(--r-sm)}.airport-option.active,.airport-option:hover{background:var(--fill-strong)}.airport-choice{display:flex;flex:1;align-items:center;min-width:0;gap:10px;padding:8px;text-align:left;border:0;background:transparent;cursor:pointer}.airport-code{display:grid;place-items:center;width:42px;height:30px;flex:0 0 auto;color:var(--text);border-radius:var(--r-sm);background:var(--fill);font-size:.8125rem;font-weight:600}.airport-copy{display:grid;min-width:0;gap:2px}.airport-copy strong{overflow:hidden;font-size:.875rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.airport-copy small{display:flex;align-items:center;gap:3px;overflow:hidden;color:var(--quiet);font-size:.8125rem;text-overflow:ellipsis;white-space:nowrap}.favorite-button{display:grid;place-items:center;width:30px;height:30px;flex:0 0 auto;padding:0;color:var(--quiet);border:0;border-radius:50%;background:transparent;cursor:pointer}.favorite-button:hover{color:var(--text)}.favorite-button.selected{color:var(--danger)}.no-match{padding:16px 10px;color:var(--muted);font-size:.875rem;text-align:center}.control-shell input{color-scheme:dark}.theme-light .control-shell input{color-scheme:light}.mode-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:2px;border-radius:var(--r-pill);background:var(--fill-strong)}.mode-switch button{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 8px;color:var(--muted);border:0;border-radius:var(--r-pill);background:transparent;font-size:.875rem;font-weight:500;cursor:pointer;transition:color .2s var(--ease-out)}.mode-switch button>:not(.mode-switch-thumb){position:relative;z-index:1}.mode-switch button.active{color:var(--text)}.mode-switch-thumb{position:absolute;inset:0;z-index:0;border-radius:var(--r-pill);background:var(--panel-solid);box-shadow:0 1px 3px #0000002e,0 0 0 .5px var(--line)}.theme-light .mode-switch-thumb{background:#fff}.flight-list-section{display:flex;flex:1;flex-direction:column;min-height:0}.compact-search,.select-control{display:flex;align-items:center;min-width:0;gap:6px;height:32px;padding:0 10px;color:var(--quiet);border:1px solid transparent;border-radius:var(--r-pill);background:var(--fill-strong);transition:border-color .2s var(--ease-out),background .2s var(--ease-out)}.compact-search:focus-within,.select-control:focus-within{border-color:var(--accent);background:var(--panel-solid)}.compact-search input{min-width:0;width:100%;color:var(--text);border:0;outline:0;background:transparent;font-size:.875rem}.compact-search input::placeholder{color:var(--quiet)}.select-control select{max-width:90px;color:var(--text);border:0;outline:0;background:transparent;font-size:.875rem;cursor:pointer}.select-control option{color:var(--text);background:var(--panel-solid)}.list-filter-count button{padding:2px 8px;color:var(--accent);border:0;border-radius:var(--r-pill);background:transparent;font-size:.8125rem;font-weight:600;cursor:pointer}.list-filter-count button:hover{background:var(--accent-soft)}.flight-list::-webkit-scrollbar{width:6px}.flight-list::-webkit-scrollbar-thumb{border-radius:6px;background:var(--line-strong)}.movement-loading{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:12px;margin:4px 8px;padding:16px 14px;border-radius:var(--r-md);background:var(--fill)}.movement-loading>div{display:grid;gap:4px}.movement-loading strong{color:var(--text);font-size:1rem;font-weight:600}.movement-loading span:not(.movement-loading-radar){color:var(--quiet);font-size:.8125rem;line-height:1.4}.movement-loading-radar{position:relative;display:grid;place-items:center;width:32px;height:32px;border:2.5px solid var(--fill-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}.movement-loading-radar span{display:none}@keyframes spin{to{transform:rotate(360deg)}}.list-refreshing{display:flex;align-items:center;gap:8px;margin:0 8px 6px;padding:6px 10px;color:var(--muted);border-radius:var(--r-pill);background:var(--fill);font-size:.8125rem}.list-refreshing span{width:10px;height:10px;border:1.5px solid var(--fill-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}.flight-card{position:relative;display:flex;align-items:center;width:100%;min-height:68px;margin-bottom:2px;padding:10px 10px 10px 14px;overflow:hidden;text-align:left;color:var(--text);border:0;border-radius:var(--r-md);background:transparent;cursor:pointer;transition:background .2s var(--ease-out);content-visibility:auto;contain-intrinsic-size:auto 68px}.flight-card:hover{background:var(--fill)}.flight-card.selected{background:var(--accent-soft)}.status-airborne{background:var(--ok)}.status-on_ground{background:var(--quiet)}.status-completed{background:var(--muted)}.flight-card-main{display:grid;flex:1;min-width:0;grid-template-columns:1fr auto;gap:3px 10px}.flight-identity{display:grid;min-width:0;gap:2px}.callsign-row{display:flex;align-items:center;min-width:0;gap:7px}.callsign-row .status-dot{width:7px;height:7px}.flight-number{flex:none;color:var(--quiet);font-size:.8125rem;font-weight:500}.callsign{overflow:hidden;font-size:1rem;font-weight:600;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap}.airline{overflow:hidden;color:var(--muted);font-size:.8125rem;text-overflow:ellipsis;white-space:nowrap}.route{align-self:start;color:var(--text);font-size:.875rem;font-weight:500}.flight-meta{display:flex;grid-column:1 / -1;align-items:center;min-width:0;gap:5px;overflow:hidden;color:var(--quiet);font-size:.8125rem;font-variant-numeric:tabular-nums;white-space:nowrap}.flight-status-label{font-weight:600}.status-text-airborne{color:var(--ok)}.status-text-on_ground,.status-text-completed{color:var(--muted)}.flight-meta-divider{width:1px;height:10px;flex:0 0 auto;margin:0 2px;background:var(--line-strong)}.flight-plane{margin-left:8px;color:var(--quiet);transform:rotate(-45deg);transition:color .2s var(--ease-out),transform .3s var(--ease-out)}.flight-card:hover .flight-plane{transform:rotate(-45deg) translate(2px)}.flight-card.selected .flight-plane{color:var(--accent)}.skeleton{cursor:default;background:linear-gradient(100deg,var(--fill) 30%,var(--fill-strong) 45%,var(--fill) 60%);background-size:300% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{to{background-position:-150% 0}}.message-state{display:grid;place-items:center;align-content:center;min-height:260px;padding:30px 24px;color:var(--quiet);text-align:center}.message-state>svg{color:var(--quiet)}.message-state h3{margin:12px 0 6px;color:var(--text);font:600 17px/1.2 var(--display);letter-spacing:-.02em}.message-state p{max-width:260px;margin:0;font-size:.875rem;line-height:1.45}.message-state.compact{min-height:140px}.message-icon{display:grid;place-items:center;width:32px;height:32px;color:var(--danger);border-radius:50%;background:var(--fill-strong);font-weight:700}.app-error{display:grid;place-items:center;min-height:100vh;color:var(--text);background:var(--bg)}.panel-error{display:grid;justify-items:start;gap:6px;padding:18px 16px;color:var(--muted);font-size:.875rem}.panel-error svg{color:var(--warn)}.panel-error p{margin:0}.secondary-button{margin-top:14px;padding:7px 16px;color:var(--accent);border:1px solid var(--accent);border-radius:var(--r-pill);background:transparent;font-size:.875rem;cursor:pointer;transition:background .2s var(--ease-out),transform .15s var(--ease-out)}.secondary-button:hover{background:var(--accent-soft)}.radar-illustration{display:grid;place-items:center;width:48px;height:48px;color:var(--quiet);border-radius:50%;background:var(--fill-strong)}.radar-illustration span{width:8px;height:8px;border-radius:50%;background:var(--quiet)}.aircraft-photo-link img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.02);transition:opacity .5s var(--ease-out),transform .8s var(--ease-out)}.aircraft-photo-link img.is-loaded{opacity:1;transform:none}.aircraft-photo-link:hover img.is-loaded{transform:scale(1.015)}.aircraft-photo-identity{position:absolute;left:10px;bottom:10px;padding:4px 10px;color:#fff;border-radius:var(--r-pill);background:#0000008c;font-size:.8125rem;font-weight:600;-webkit-backdrop-filter:var(--material);backdrop-filter:var(--material)}.aircraft-photo figcaption{display:flex;justify-content:space-between;gap:10px;margin-top:6px;color:var(--quiet);font-size:.8125rem}.aircraft-photo figcaption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aircraft-photo figcaption a{flex:0 0 auto;color:var(--accent);text-decoration:none}.aircraft-photo figcaption a:hover{text-decoration:underline}.aircraft-photo-loading{border-radius:var(--r-md);background:linear-gradient(100deg,var(--fill) 30%,var(--fill-strong) 45%,var(--fill) 60%);background-size:300% 100%;animation:shimmer 1.5s infinite}.aircraft-photo-empty{display:flex;align-items:center;gap:10px;padding:14px;color:var(--quiet);border-radius:var(--r-md);background:var(--fill);font-size:.875rem}.route-role{color:var(--quiet);font-size:.8125rem}.operations-flag{flex:0 0 auto;padding:3px 10px;color:var(--ok);border-radius:var(--r-pill);background:var(--fill-strong);font-size:.8125rem;font-weight:600}.operations-flag.is-warning{color:var(--warn)}.operations-flag.is-alert{color:var(--danger)}.operations-progress{display:grid;gap:6px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line)}.operations-progress>div:first-child{display:flex;justify-content:space-between;align-items:center}.operations-progress strong{color:var(--text);font-size:.875rem;font-variant-numeric:tabular-nums}.operations-progress-track{height:4px;overflow:hidden;border-radius:2px;background:var(--fill-strong)}.operations-progress-track span{display:block;width:100%;height:100%;transform-origin:left;border-radius:inherit;background:var(--accent);transition:transform .6s var(--ease-out)}.profile-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;color:var(--text);font-size:.875rem;font-weight:600}.profile-section-heading>span{display:inline-flex;align-items:center;gap:7px}.profile-section-heading>span svg{color:var(--muted)}.profile-section-heading>small{color:var(--quiet);font-size:.8125rem;font-weight:400}.aircraft-profile-grid,.signal-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.aircraft-profile-grid>div,.signal-profile-grid>div{display:grid;min-width:0;gap:2px;padding:8px 0;border-top:1px solid var(--line)}.aircraft-profile-grid>div:nth-child(-n+2),.signal-profile-grid>div:nth-child(-n+2){border-top:0}.aircraft-profile-grid span,.signal-profile-grid span{color:var(--quiet);font-size:.8125rem}.aircraft-profile-grid strong,.signal-profile-grid strong{overflow:hidden;color:var(--text);font-size:.875rem;font-weight:500;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.aircraft-profile-wide{grid-column:1 / -1}.aircraft-profile-wide strong{white-space:normal}.signal-profile-card .profile-section-heading>span svg{color:var(--muted)}.signal-alert{display:inline-flex;align-items:center;gap:4px;color:var(--warn)!important}.signal-alert-text{color:var(--warn)!important}.profile-footnote{display:flex;align-items:center;gap:6px;margin:10px 0 0;color:var(--quiet);font-size:.8125rem;line-height:1.4}.profile-footnote svg{flex:0 0 auto;color:var(--quiet)}.altitude-chart{display:block;width:100%;height:auto;aspect-ratio:620 / 280;margin-top:0;overflow:visible;touch-action:none}.altitude-sample{stroke:var(--panel-solid);stroke-width:1.5}.chart-sparse-note{margin:0;color:var(--quiet);font-size:var(--type-meta);line-height:1.4}.altitude-hover-target{cursor:crosshair}.altitude-hover-line{stroke:var(--muted);stroke-dasharray:2 4;stroke-width:1}.altitude-hover-dot{stroke:var(--panel-solid);stroke-width:2}.altitude-tooltip rect{fill:var(--panel-solid);stroke:var(--line-strong);stroke-width:1}.altitude-tooltip text{fill:var(--text);font:600 14px var(--body)}.chart-altitude-legend{justify-content:flex-start;padding:2px 1px 0}.chart-empty{display:grid;place-items:center;height:78px;color:var(--quiet);font-size:.8125rem}.chart-skeleton{height:78px;margin-top:8px;border-radius:var(--r-sm);background:linear-gradient(100deg,var(--fill) 30%,var(--fill-strong) 45%,var(--fill) 60%);background-size:300% 100%;animation:shimmer 1.5s infinite}.track-error{color:var(--muted);font-size:.875rem;line-height:1.5}.toast{position:fixed;z-index:3000;left:50%;bottom:24px;padding:10px 18px;color:var(--bg);border-radius:var(--r-pill);background:var(--text);box-shadow:var(--shadow-float);font-size:.875rem;font-weight:500}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}.aircraft-marker.emergency:not(.active){color:var(--danger);filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.aircraft-marker.emergency:after{content:"";position:absolute;inset:-4px;border:1.5px solid var(--danger);border-radius:50%;animation:emergency-ring 1.8s var(--ease-out) infinite;pointer-events:none}.aircraft-marker.emergency{position:relative}@keyframes emergency-ring{0%{opacity:.9;transform:scale(.8)}to{opacity:0;transform:scale(1.6)}}.flight-card.is-emergency{background:color-mix(in srgb,var(--danger) 9%,transparent)}.flight-emergency{display:inline-flex;align-items:center;gap:4px;color:var(--danger);font-weight:600}.airline .airframe{color:var(--quiet)}.flight-altitude{display:inline-flex;align-items:center;gap:3px}.trend{flex:0 0 auto}.trend-up{color:var(--ok)}.trend-down{color:var(--accent)}.topbar{position:fixed;inset:0 0 auto;z-index:1000;height:48px;display:grid;grid-template-columns:minmax(150px,1fr) minmax(280px,560px) minmax(150px,1fr);align-items:center;gap:16px;padding:0 12px 0 14px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:9px;width:max-content}.brand-mark{display:grid;place-items:center;width:26px;height:26px;color:var(--bg);border-radius:var(--r-sm);background:var(--text)}.brand strong{font:650 15px/1 var(--display);letter-spacing:-.02em}.topbar-search{min-width:0}.topbar-actions{justify-self:end;display:flex;align-items:center;gap:4px}.topbar-status{display:flex;align-items:center;gap:7px;padding:0 8px;color:var(--muted);font-size:.8125rem;font-variant-numeric:tabular-nums;white-space:nowrap}.topbar-channel{color:var(--text);font-weight:600}.separator{width:1px;height:14px;margin:0 2px;background:var(--line-strong)}.omni-search{position:relative;z-index:30}.omni-input{display:flex;align-items:center;gap:8px;height:32px;padding:0 8px 0 11px;color:var(--quiet);border:1px solid var(--line);border-radius:var(--r-md);background:var(--fill);transition:border-color .15s var(--ease-out),background .15s var(--ease-out),box-shadow .15s var(--ease-out)}.omni-input:hover{background:var(--fill-strong)}.omni-input:focus-within{border-color:var(--accent);background:var(--panel-solid);box-shadow:0 0 0 3px var(--accent-soft)}.omni-input input{flex:1;min-width:0;height:100%;color:var(--text);border:0;outline:0;background:transparent;font-size:.875rem}.omni-input input::placeholder{color:var(--quiet)}.omni-shortcut{padding:1px 6px;color:var(--quiet);border:1px solid var(--line-strong);border-radius:4px;font-size:.8125rem;line-height:1.5}.omni-clear{display:grid;place-items:center;width:20px;height:20px;padding:0;color:var(--quiet);border:0;border-radius:50%;background:var(--fill-strong);cursor:pointer}.omni-clear:hover{color:var(--text)}.omni-results{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:min(460px,70vh);padding:6px;overflow:auto;border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--panel-solid);box-shadow:var(--shadow-float);animation:pop-in .14s var(--ease-out)}.omni-group{padding:8px 8px 4px;color:var(--quiet);font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.omni-option{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:6px 8px;text-align:left;color:var(--text);border:0;border-radius:var(--r-md);background:transparent;cursor:pointer}.omni-option.active{background:var(--fill-strong)}.omni-icon{display:grid;place-items:center;height:28px;color:var(--muted);border-radius:var(--r-sm);background:var(--fill)}.omni-code{font-size:.8125rem;font-weight:600;color:var(--text)}.omni-copy{display:grid;min-width:0;gap:1px}.omni-copy strong{overflow:hidden;font-size:.875rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.omni-copy small{display:flex;align-items:center;gap:3px;overflow:hidden;color:var(--quiet);font-size:.8125rem;text-overflow:ellipsis;white-space:nowrap}.omni-tag{color:var(--quiet);font-size:.8125rem;opacity:0;transition:opacity .12s}.omni-option.active .omni-tag{opacity:1}.omni-empty{margin:0;padding:14px 10px;color:var(--muted);font-size:.875rem;text-align:center}.omni-hint{margin:4px 0 0;padding:8px 8px 4px;color:var(--quiet);border-top:1px solid var(--line);font-size:.8125rem}.workspace{--edge: 12px;--dock-width: 392px;--traffic-width: 352px;--inset-left: var(--edge);--inset-right: var(--edge);position:fixed;inset:48px 0 0;overflow:hidden}.workspace.has-dock{--inset-left: calc(var(--dock-width) + var(--edge) * 2)}.workspace.traffic-open{--inset-right: calc(var(--traffic-width) + var(--edge) * 2)}.map-expanded .workspace.has-dock,.map-expanded .workspace.traffic-open{--inset-left: var(--edge);--inset-right: var(--edge)}.leaflet-bottom.leaflet-right{transition:right .3s var(--ease-out);right:calc(var(--inset-right) - var(--edge))}.workspace{--controls-room: 56px}.map-status{position:absolute;z-index:500;left:var(--inset-left);bottom:var(--edge);display:flex;align-items:center;gap:8px;min-height:32px;max-width:min(520px,calc(100% - var(--inset-left) - var(--inset-right) - var(--controls-room)));padding:6px 12px;color:var(--muted);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);box-shadow:var(--shadow-float);font-size:.8125rem;font-variant-numeric:tabular-nums;transition:left .3s var(--ease-out)}.map-status strong{flex:0 0 auto;color:var(--text);font-weight:600}.map-status.paused strong,.map-status.offline strong{color:var(--warn)}.map-status-copy{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-status-filter{flex:0 0 auto;padding:1px 7px;color:var(--accent);border-radius:var(--r-pill);background:var(--accent-soft);font-weight:600}.live-retry{flex:0 0 auto;padding:2px 8px;color:var(--accent);border:0;border-radius:var(--r-pill);background:var(--accent-soft);font-size:.8125rem;font-weight:600;cursor:pointer}.live-coverage-progress{position:absolute;left:10px;right:10px;bottom:0;height:2px;overflow:hidden;border-radius:1px;background:var(--fill-strong)}.live-coverage-progress span{display:block;width:100%;height:100%;transform-origin:left;background:var(--accent);transition:transform .3s var(--ease-out)}.map-controls{position:absolute;z-index:500;right:var(--inset-right);bottom:34px;display:grid;gap:8px;justify-items:end;transition:right .3s var(--ease-out)}.map-control-group{display:grid;padding:3px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);box-shadow:var(--shadow-float)}.map-controls button{display:grid;place-items:center;width:32px;height:32px;padding:0;color:var(--muted);border:0;border-radius:var(--r-sm);background:transparent;cursor:pointer;transition:color .15s var(--ease-out),background .15s var(--ease-out),transform .12s var(--ease-out)}.map-controls button:hover:not(:disabled){color:var(--text);background:var(--fill-strong)}.map-controls button:active:not(:disabled){transform:scale(.94)}.map-controls button:disabled{opacity:.35;cursor:not-allowed}.map-controls button.location-active{color:var(--accent);background:var(--accent-soft)}.map-controls button.follow-active,.map-controls button.follow-active:hover:not(:disabled){color:var(--on-accent);background:var(--accent)}.location-status{position:absolute;z-index:510;right:var(--inset-right);bottom:214px;max-width:280px;padding:8px 12px;color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);font-size:.8125rem;line-height:1.4;transition:right .3s var(--ease-out)}.map-altitude-legend{position:absolute;z-index:510;left:var(--inset-left);bottom:48px;max-width:min(600px,calc(100% - var(--inset-left) - var(--inset-right) - var(--controls-room)));padding:6px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);pointer-events:none;transition:left .3s var(--ease-out)}.map-toolbar{position:absolute;z-index:800;top:var(--edge);left:var(--inset-left);display:flex;gap:6px;transition:left .3s var(--ease-out)}.toolbar-popover{position:relative}.toolbar-button{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 10px;color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);box-shadow:var(--shadow-float);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s var(--ease-out),border-color .15s var(--ease-out)}.toolbar-button:hover{background:var(--panel-raised)}.toolbar-button.open{border-color:var(--accent)}.toolbar-button svg:first-child{color:var(--muted)}.toolbar-chevron{color:var(--quiet);transition:transform .2s var(--ease-out)}.toolbar-button.open .toolbar-chevron{transform:rotate(180deg)}.toolbar-badge{display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;color:var(--on-accent);border-radius:var(--r-pill);background:var(--accent);font-size:.8125rem;font-weight:600}.popover-panel{position:absolute;top:calc(100% + 6px);left:0;display:grid;gap:14px;width:292px;padding:14px;border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--panel-solid);box-shadow:var(--shadow-float);animation:pop-in .14s var(--ease-out)}.popover-field{display:grid;gap:7px;color:var(--muted);font-size:.8125rem;font-weight:500}.popover-field>span{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.popover-field>span b{color:var(--text);font-size:.8125rem;font-weight:600}.popover-field input[type=search]{height:32px;padding:0 10px;color:var(--text);border:1px solid var(--line-strong);border-radius:var(--r-md);outline:0;background:var(--bg);font-size:.875rem}.popover-field input[type=search]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.range-pair{display:grid;gap:4px}.range-pair input[type=range]{width:100%;height:18px;margin:0;accent-color:var(--accent);cursor:pointer}.switch-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;cursor:pointer}.switch-row>span{display:grid;gap:2px}.switch-row strong{color:var(--text);font-size:.875rem;font-weight:500}.switch-row small{color:var(--quiet);font-size:.8125rem;line-height:1.35}.switch-row input{position:absolute;opacity:0;pointer-events:none}.switch-row i{position:relative;width:34px;height:20px;border-radius:10px;background:var(--fill-strong);transition:background .18s var(--ease-out)}.switch-row i:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000059;transition:transform .18s var(--ease-out)}.switch-row input:checked+i{background:var(--accent)}.switch-row input:checked+i:after{transform:translate(14px)}.switch-row input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}.popover-reset{justify-self:start;padding:0;color:var(--accent);border:0;background:transparent;font-size:.875rem;font-weight:500;cursor:pointer}.popover-reset:disabled{color:var(--quiet);cursor:default}.segmented{display:grid;grid-template-columns:1fr 1fr;padding:2px;border-radius:var(--r-md);background:var(--fill-strong)}.segmented button{height:28px;color:var(--muted);border:0;border-radius:var(--r-sm);background:transparent;font-size:.8125rem;font-weight:500;cursor:pointer}.segmented button.active{color:var(--text);background:var(--panel-solid);box-shadow:0 1px 2px #0003}.leaflet-tooltip.aircraft-tooltip{display:grid;gap:1px;padding:6px 9px;color:var(--text);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--panel-solid);box-shadow:var(--shadow-float);font:12px/1.35 var(--body);white-space:nowrap}.leaflet-tooltip.aircraft-tooltip:before{display:none}.aircraft-tooltip strong{font-size:.875rem;font-weight:600}.aircraft-tooltip span{color:var(--muted)}.aircraft-hover-preview{position:absolute;z-index:850;box-sizing:border-box;width:252px;padding:10px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--panel-solid);box-shadow:var(--shadow-float);color:var(--text);font:12px/1.35 var(--body);pointer-events:none;animation:hover-preview-in .13s var(--ease-out) both}.aircraft-hover-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.aircraft-hover-heading strong{overflow:hidden;font-size:.9375rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.aircraft-hover-heading span,.aircraft-hover-model{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.aircraft-hover-model{margin-top:2px}.aircraft-hover-photo{margin:8px 0 0}.aircraft-hover-photo>a{display:block;overflow:hidden;border-radius:6px;background:var(--fill);pointer-events:auto}.aircraft-hover-photo img{display:block;width:100%;height:132px;object-fit:cover}.aircraft-hover-photo figcaption{display:flex;flex-wrap:wrap;gap:0 4px;margin-top:4px;color:var(--muted);font-size:.75rem;overflow-wrap:anywhere}.aircraft-hover-photo figcaption a{color:var(--accent);text-decoration:none;pointer-events:auto}.aircraft-hover-photo figcaption a:hover{text-decoration:underline}.aircraft-hover-facts{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:8px;color:var(--text);font-variant-numeric:tabular-nums}.aircraft-hover-facts:empty{display:none}@keyframes hover-preview-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.aircraft-hover-preview{animation:none}}.airport-pin-wrap{border:0;background:transparent}.airport-pin{position:relative;display:block;width:24px;height:24px}.airport-pin i{position:absolute;inset:6px;border:2px solid var(--panel-solid);border-radius:50%;background:var(--accent);transition:transform .15s var(--ease-out),border-color .15s}.airport-pin b{position:absolute;left:26px;top:50%;transform:translateY(-50%);color:var(--muted);font:600 12px/1 var(--body);letter-spacing:.02em;text-shadow:0 0 3px var(--bg),0 0 3px var(--bg),0 0 3px var(--bg);pointer-events:none}.airport-pin-wrap:focus-visible{outline:2px solid var(--accent);border-radius:50%}.airport-pin-wrap:hover .airport-pin i,.airport-pin.active i{border-color:var(--accent);transform:scale(1.35)}.airport-pin.active b{color:var(--accent)}.leaflet-marker-icon.aircraft-marker-wrap{transition:none}.leaflet-container:not(.map-camera-moving) .leaflet-marker-icon.aircraft-marker-wrap.aircraft-gliding{transition:transform 1s linear}.aircraft-marker.active{color:#fff;background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft);filter:none;animation:marker-pop .38s var(--ease-out)}@keyframes marker-pop{0%{transform:rotate(calc(var(--heading) - 90deg)) scale(.55);box-shadow:0 0 0 0 var(--accent-soft)}}.aircraft-label{position:absolute;left:31px;top:50%;display:none;gap:0;transform:translateY(-50%);color:var(--text);font:600 11px/1.2 var(--body);white-space:nowrap;letter-spacing:0;text-shadow:0 0 2px var(--halo),0 0 3px var(--halo),0 0 4px var(--halo);pointer-events:none}.aircraft-label i{display:none;color:var(--muted);font-style:normal;font-weight:500;font-variant-numeric:tabular-nums}.show-labels .aircraft-marker-selected .aircraft-label i{display:block}.aircraft-marker-selected .aircraft-label{color:var(--accent)}.dock-panel,.traffic-panel{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel-solid);box-shadow:var(--shadow-float);overflow:hidden}.dock-panel{position:absolute;z-index:650;left:var(--edge);top:var(--edge);bottom:var(--edge);width:var(--dock-width)}.dock-content{flex:1;min-height:0;padding:14px 16px 20px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;animation:dock-content-in .22s var(--ease-out)}@keyframes dock-content-in{0%{opacity:0;transform:translateY(6px)}}.traffic-slot{position:absolute;z-index:600;top:var(--edge);right:var(--edge);bottom:var(--edge);width:var(--traffic-width)}.traffic-panel{height:100%}.traffic-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 8px 8px 10px;border-bottom:1px solid var(--line)}.tabs{position:relative;display:inline-flex;gap:2px;padding:2px;border-radius:var(--r-md);background:var(--fill-strong)}.tabs button{position:relative;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;color:var(--muted);border:0;border-radius:var(--r-sm);background:transparent;font-size:.875rem;font-weight:500;cursor:pointer;transition:color .15s var(--ease-out)}.tabs button.active{color:var(--text)}.tabs button>:not(.tab-thumb){position:relative;z-index:1}.tabs small{color:var(--quiet);font-size:.8125rem;font-weight:600}.tab-thumb{position:absolute;inset:0;z-index:0;border-radius:var(--r-sm);background:var(--panel-solid);box-shadow:0 1px 2px #00000038,0 0 0 .5px var(--line)}.collapse-chevron{transform:rotate(-90deg)}.traffic-pane{display:flex;flex:1;flex-direction:column;min-height:0}.traffic-reopen{position:absolute;z-index:600;top:var(--edge);right:var(--edge);display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);box-shadow:var(--shadow-float);font-size:.875rem;font-weight:500;cursor:pointer}.traffic-reopen:hover{background:var(--panel-raised)}.traffic-reopen b{color:var(--quiet);font-size:.8125rem;font-weight:600}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);margin:10px 12px 8px;border:1px solid var(--line);border-radius:var(--r-md)}.stats-row>div{display:grid;gap:1px;padding:8px 12px;border-right:1px solid var(--line)}.stats-row>div:last-child{border-right:0}.stats-row strong{color:var(--text);font:600 18px/1.15 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stats-row span{color:var(--quiet);font-size:.8125rem}.airport-tab{display:flex;flex:1;flex-direction:column;min-height:0}.airport-form{display:grid;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.airport-form .search-input-wrap,.airport-form .control-shell{min-height:34px;border-radius:var(--r-md)}.source-pill{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px;height:22px;padding:0 8px;color:var(--muted);border-radius:var(--r-sm);background:var(--fill-strong);font-size:.8125rem;font-weight:600;white-space:nowrap}.source-pill-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.source-pill.live{color:var(--ok)}.source-pill.history{color:var(--accent)}.airport-shortcuts{flex:1;min-height:0;padding:4px 12px 16px;overflow-y:auto}.shortcuts-clear{margin-left:auto;padding:2px 6px;color:var(--quiet);border:0;border-radius:var(--r-sm);background:transparent;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.shortcuts-clear:hover{color:var(--text);background:var(--fill)}.airport-shortcuts h3{display:flex;align-items:center;gap:5px;margin:14px 2px 6px;color:var(--quiet);font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.shortcut-list{display:grid}.shortcut-list button{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;padding:7px 8px;text-align:left;color:var(--text);border:0;border-radius:var(--r-md);background:transparent;font-size:.875rem;cursor:pointer;transition:background .15s var(--ease-out)}.shortcut-list button:hover{background:var(--fill)}.shortcut-list .mono{color:var(--muted);font-size:.8125rem;font-weight:600}.shortcut-list span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-notice-inline{margin:0 12px 8px;padding:8px 10px;color:var(--muted);border:1px solid var(--line);border-radius:var(--r-md);background:var(--fill);font-size:.8125rem;line-height:1.45}.data-notice-inline button{margin-left:6px;padding:0;color:var(--accent);border:0;background:transparent;font-size:.8125rem;font-weight:600;cursor:pointer}.list-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 12px 8px}.list-toolbar .compact-search{grid-column:1 / -1}.list-toolbar .compact-search,.list-toolbar .select-control{height:30px;border-radius:var(--r-md)}.list-toolbar .select-control select{flex:1;min-width:0;max-width:none;font-size:.8125rem;text-overflow:ellipsis}.list-filter-count{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 12px 6px;color:var(--muted);font-size:.8125rem}.flight-list{flex:1;min-height:0;padding:0 6px 10px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;animation:list-in .24s var(--ease-out)}@keyframes list-in{0%{opacity:0;transform:translateY(4px)}}.list-more{display:block;width:calc(100% - 16px);margin:6px 8px 2px;padding:8px;color:var(--accent);border:1px dashed var(--line-strong);border-radius:var(--r-md);background:transparent;font-size:.8125rem;font-weight:600;cursor:pointer}.list-more:hover{background:var(--accent-soft)}.emergency-banner{position:absolute;z-index:720;top:calc(var(--edge) + 80px);left:var(--inset-left);display:grid;gap:4px;transition:left .3s var(--ease-out)}.emergency-banner button{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;min-height:34px;padding:0 14px;color:var(--danger);text-align:left;border:1px solid color-mix(in srgb,var(--danger) 45%,transparent);border-radius:var(--r-md);background:var(--panel-solid);box-shadow:var(--shadow-float);font-size:.875rem;cursor:pointer;transition:background .15s var(--ease-out),transform .12s var(--ease-out)}.emergency-banner button:hover{background:color-mix(in srgb,var(--danger) 10%,var(--panel-solid))}.emergency-banner button:active{transform:scale(.98)}.emergency-more{justify-self:start;padding:3px 10px;color:var(--danger);border-radius:var(--r-pill);background:var(--panel-solid);box-shadow:var(--shadow-float);font-size:.8125rem;font-weight:600}.emergency-banner strong{font-weight:600;white-space:nowrap}.emergency-banner span{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.details-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.details-title{min-width:0}.details-heading h2{margin:0;color:var(--text);font:650 24px/1.1 var(--display);letter-spacing:-.025em}.details-heading p{margin:3px 0 0;overflow:hidden;color:var(--muted);font-size:.875rem;text-overflow:ellipsis;white-space:nowrap}.details-actions{display:flex;flex:0 0 auto;align-items:center;gap:2px;margin:-4px -6px 0 0}.details-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}.details-status,.details-chip,.details-emergency{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;color:var(--muted);border-radius:var(--r-sm);background:var(--fill-strong);font-size:.8125rem;font-weight:600;white-space:nowrap}.details-status .status-dot{width:6px;height:6px}.details-status.status-airborne{color:var(--ok)}.details-emergency{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}.details-chip{font-weight:500}.aircraft-photo{position:relative;margin:12px 0 0}.aircraft-photo-link{position:relative;display:block;overflow:hidden;width:100%;border-radius:var(--r-md);background:var(--fill)}.aircraft-photo-link,.aircraft-photo-loading{aspect-ratio:16 / 9;max-height:220px}.route-hero{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:var(--r-lg)}.route-hero-ends{display:grid;grid-template-columns:1fr 1fr;gap:12px}.route-point{display:grid;min-width:0;gap:1px}.route-point-end{text-align:right}.route-point small{color:var(--quiet);font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.route-point strong{color:var(--text);font-size:30px;font-weight:650;line-height:1.05;letter-spacing:-.03em}.route-point span{overflow:hidden;color:var(--muted);font-size:.875rem;text-overflow:ellipsis;white-space:nowrap}.route-point time{color:var(--quiet);font-size:.8125rem}.route-progress{position:relative;height:18px;margin:12px 0 2px}.route-progress-track{position:absolute;left:0;right:0;top:8px;height:3px;overflow:hidden;border-radius:2px;background:var(--fill-strong)}.route-progress-fill{display:block;width:100%;height:100%;transform-origin:left;border-radius:inherit;background:var(--accent);opacity:0}.route-progress-plane{position:absolute;top:0;display:grid;place-items:center;width:18px;height:18px;margin-left:-9px;color:var(--accent);transform:rotate(0);opacity:0}.route-progress.is-ready .route-progress-fill,.route-progress.is-ready .route-progress-plane{opacity:1;transition:opacity .35s var(--ease-out)}.route-progress.is-moving .route-progress-fill{transition:opacity .35s var(--ease-out),transform .8s var(--ease-out)}.route-progress.is-moving .route-progress-plane{transition:opacity .35s var(--ease-out),left .8s var(--ease-out)}.route-progress-plane svg{transform:rotate(0)}.route-hero-foot{display:flex;justify-content:space-between;color:var(--muted);font-size:.8125rem}.route-source{display:block;margin:8px 0 0;color:var(--quiet);font-size:.8125rem}.from-you{margin:8px 2px 0;color:var(--muted);font-size:.8125rem}.live-readouts{display:grid;grid-template-columns:repeat(2,1fr);margin-top:12px;border:1px solid var(--line);border-radius:var(--r-lg)}.live-readouts>div{display:grid;gap:2px;min-width:0;padding:10px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.live-readouts>div:nth-child(2n){border-right:0}.live-readouts>div:nth-last-child(-n+2){border-bottom:0}.live-readouts span{color:var(--quiet);font-size:.8125rem}.live-readouts strong{overflow:hidden;color:var(--text);font-size:20px;font-weight:600;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap}.live-readouts small{display:flex;align-items:center;gap:4px;min-height:16px;overflow:hidden;color:var(--muted);font-size:.8125rem;white-space:nowrap}.panel-section{margin-top:10px;border-top:1px solid var(--line)}.panel-section>summary{display:flex;align-items:center;gap:8px;padding:12px 0;color:var(--text);font-size:.875rem;font-weight:600;list-style:none;cursor:pointer}.panel-section>summary::-webkit-details-marker{display:none}.panel-section>summary>span{flex:1}.panel-section>summary small{color:var(--quiet);font-size:.8125rem;font-weight:400}.panel-section-chevron{color:var(--quiet);transition:transform .2s var(--ease-out)}.panel-section[open] .panel-section-chevron{transform:rotate(180deg)}.panel-section-body{padding:0 0 12px}.operations-status-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}.operations-status-row strong{overflow:hidden;color:var(--text);font-size:.9375rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.operations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.operations-grid>div{display:grid;min-width:0;gap:2px;padding:8px 0;border-top:1px solid var(--line)}.operations-grid span,.operations-route>span,.operations-progress span{color:var(--quiet);font-size:.8125rem}.operations-grid strong{overflow:hidden;color:var(--text);font-size:.875rem;font-weight:500;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.operations-route{display:grid;gap:4px;margin:6px 0 0;padding-top:10px;border-top:1px solid var(--line)}.operations-route strong{overflow:hidden;color:var(--text);font-size:.8125rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.signal-profile-grid strong svg{color:var(--quiet)}.copy-value{display:inline-flex;align-items:center;gap:5px;max-width:100%;margin:-2px -6px;padding:2px 6px;color:inherit;border:0;border-radius:var(--r-sm);background:transparent;font:inherit;cursor:pointer;transition:background .15s var(--ease-out)}.copy-value:hover{background:var(--fill)}.copy-value:hover svg{color:var(--accent)}.external-trackers{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:14px 0 4px;font-size:.8125rem}.external-trackers span{margin-right:2px;color:var(--quiet)}.external-trackers a{padding:4px 10px;color:var(--muted);border:1px solid var(--line);border-radius:var(--r-pill);text-decoration:none;transition:color .15s var(--ease-out),border-color .15s var(--ease-out)}.external-trackers a:hover{color:var(--text);border-color:var(--line-strong)}.altitude-profile{display:grid;gap:6px}.map-expanded .map-status,.map-expanded .map-altitude-legend{left:var(--edge)}@media(max-width:1100px){.workspace{--dock-width: 360px;--traffic-width: 320px}.topbar{grid-template-columns:auto minmax(200px,1fr) auto}.topbar-status{display:none}}@media(max-width:900px){.topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding:0 8px}.brand strong,.omni-shortcut{display:none}.workspace{--inset-left: var(--edge) !important;--inset-right: var(--edge) !important}.dock-panel,.traffic-slot{inset:auto 0 0;width:auto;height:50%}.dock-panel,.traffic-panel{border-radius:var(--r-lg) var(--r-lg) 0 0}.map-toolbar{top:8px}.map-controls{bottom:64px}.location-status{bottom:244px}.app:not(.map-expanded) .workspace:is(.has-dock,.traffic-open) .map-controls{bottom:calc(50% + 26px)}.app:not(.map-expanded) .workspace:is(.has-dock,.traffic-open) .map-zoom-group{display:none}.app:not(.map-expanded) .workspace:is(.has-dock,.traffic-open) .leaflet-bottom{bottom:50%}.app:not(.map-expanded) .workspace:is(.has-dock,.traffic-open) .location-status{bottom:calc(50% + 160px)}.map-altitude-legend{display:none}.map-status{left:var(--edge);top:48px;bottom:auto;max-width:calc(100% - var(--edge) * 2)}.emergency-banner{top:128px;left:var(--edge);right:var(--edge)}.traffic-reopen{top:auto;bottom:12px;right:12px}.toast{bottom:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}.dock-content,.tour-body,.tour-dim,.tour-spotlight,.shortcuts{animation:none}.dock-panel,.traffic-slot,.map-status,.nearby-airports-control,.leaflet-bottom.leaflet-right,.route-progress-plane{transition:none}.icon-button:active,.primary-button:active,.secondary-button:active,.map-controls button:active{transform:none}.aircraft-photo-link img{transform:none;transition:opacity .12s linear}.aircraft-marker{transition:none}}.airport-cluster-wrap{background:transparent;border:0}.airport-cluster{display:grid;place-items:center;width:32px;height:32px;color:var(--on-accent);background:var(--accent);border:2px solid var(--panel-solid);border-radius:50%;font-size:.8125rem;font-weight:700;font-variant-numeric:tabular-nums}.airport-cluster-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:50%}.nearby-airports-control{position:absolute;z-index:790;top:calc(var(--edge) + 40px);left:var(--inset-left);transition:left .3s var(--ease-out)}.nearby-airports-panel{width:min(280px,calc(100vw - 32px));margin-top:6px;padding:12px;background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-md)}.nearby-airports-panel>strong{font-size:.875rem}.nearby-airports-panel p{color:var(--muted);font-size:.8125rem;line-height:1.4;margin:6px 0}.nearby-airports-panel ol{list-style:none;padding:0;margin:8px 0;max-height:280px;overflow-y:auto}.nearby-airports-panel li button{display:flex;justify-content:space-between;gap:12px;width:100%;padding:10px 4px;border:0;background:transparent;text-align:left;color:var(--text);cursor:pointer;border-radius:var(--r-sm)}.nearby-airports-panel li button:hover{background:var(--fill-strong)}.nearby-airports-panel li button>span{display:grid;gap:3px;min-width:0}.nearby-airports-panel li button span span{color:var(--muted);font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nearby-airports-panel small{flex-shrink:0;color:var(--muted);font-size:.8125rem;font-variant-numeric:tabular-nums}@media(max-width:900px){.nearby-airports-control{top:88px}.nearby-airports-panel{max-height:calc(50dvh - 155px);overflow-y:auto}.nearby-airports-panel ol{max-height:140px}}.traffic-panel{container:traffic / inline-size}.airport-tab.has-airport{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.airport-tab.has-airport .flight-list-section,.airport-tab.has-airport .flight-list{flex:none;min-height:auto;overflow:visible}.airport-identity{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:12px 12px 0 14px}.airport-identity>div{min-width:0}.airport-identity h2{margin:0;overflow:hidden;font:600 16px/1.25 var(--display);letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap}.airport-identity h2 .mono{margin-right:4px;color:var(--accent)}.airport-identity p{margin:2px 0 0;overflow:hidden;color:var(--quiet);font-size:.8125rem;text-overflow:ellipsis;white-space:nowrap}.airport-identity-actions{display:flex;flex:none;gap:2px;margin:-4px -4px 0 0}.airport-identity .icon-button{width:30px;height:30px}.favorite-toggle.selected{color:var(--danger)}.airport-conditions{display:grid;gap:8px;padding:8px 12px 0}.airport-clock{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px;padding:0 2px;color:var(--muted);font-size:.8125rem}.airport-clock strong{color:var(--text);font-size:.875rem;font-weight:600}.airport-sun{display:inline-flex;align-items:center;gap:6px;color:var(--quiet)}.airport-sun svg{color:var(--warn)}.conditions-card{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--fill)}.conditions-card.is-loading{min-height:74px;background:linear-gradient(100deg,var(--fill) 30%,var(--fill-strong) 45%,var(--fill) 60%);background-size:300% 100%;animation:shimmer 1.5s infinite}.conditions-empty{color:var(--muted);font-size:.8125rem}.conditions-empty button{justify-self:start;padding:0;color:var(--accent);border:0;background:transparent;font-size:.8125rem;font-weight:600;cursor:pointer}.weather-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;color:var(--text);font-size:.875rem;font-weight:500}.weather-row-secondary{color:var(--muted);font-size:.8125rem;font-weight:400}.weather-wind{display:inline-flex;align-items:center;gap:5px}.weather-wind svg{flex:0 0 auto;color:var(--accent);transition:transform .4s var(--ease-out)}.weather-age{margin-left:auto;color:var(--quiet)}.flight-category{display:inline-grid;place-items:center;height:20px;padding:0 7px;color:var(--on-category);border-radius:var(--r-sm);font-size:.8125rem;font-weight:700;letter-spacing:.02em;cursor:help}.category-vfr{background:var(--ok)}.category-mvfr{background:var(--accent)}.category-ifr{background:var(--danger)}.category-lifr{background:var(--lifr)}.runway-favoured{display:flex;align-items:center;gap:6px;padding-top:6px;border-top:1px solid var(--line);color:var(--muted);font-size:.8125rem}.runway-favoured svg{flex:0 0 auto;color:var(--quiet)}.runway-favoured strong{color:var(--text);font-weight:600}.conditions-more{border-top:1px solid var(--line)}.conditions-more>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0 0;color:var(--accent);font-size:.8125rem;font-weight:600;list-style:none;cursor:pointer}.conditions-more>summary::-webkit-details-marker{display:none}.conditions-more[open] .panel-section-chevron{transform:rotate(180deg)}.conditions-more-body{display:grid;gap:10px;padding:10px 0 2px}.runway-table{width:100%;border-collapse:collapse;font-size:.8125rem;font-variant-numeric:tabular-nums}.runway-table th,.runway-table td{padding:5px 4px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;border-top:1px solid var(--line)}.runway-table thead th{padding-top:0;color:var(--quiet);font-size:.8125rem;font-weight:600;border-top:0}.runway-table tbody th{color:var(--text);font-weight:600}.runway-table td{color:var(--muted)}.runway-table tr.is-favoured th,.runway-table tr.is-favoured td:last-child{color:var(--accent)}.frequency-list{display:grid;gap:2px;margin:0;padding:0;list-style:none}.frequency-list li{display:grid;grid-template-columns:12px 44px minmax(0,1fr) auto;align-items:center;gap:6px;color:var(--muted);font-size:.8125rem}.frequency-list svg{color:var(--quiet)}.frequency-list li>span:nth-child(2){color:var(--text);font-weight:600}.frequency-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frequency-list strong{color:var(--text);font-weight:500}.raw-report{display:grid;gap:3px;margin:0}.raw-report span{color:var(--quiet);font-size:.8125rem;font-weight:600;letter-spacing:.04em}.raw-report code{color:var(--text);font:12px/1.45 ui-monospace,SF Mono,Menlo,Consolas,monospace;overflow-wrap:anywhere}.conditions-note{margin:0;color:var(--quiet);font-size:.8125rem;line-height:1.45}.conditions-note a{color:var(--accent);text-decoration:none}.conditions-note a:hover{text-decoration:underline}.delay-alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:8px 10px;color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);border-radius:var(--r-md);background:color-mix(in srgb,var(--warn) 8%,transparent);font-size:.8125rem}.delay-alert svg{margin-top:2px}.delay-alert span{display:grid;gap:2px;min-width:0}.delay-alert strong{color:var(--text);font-weight:600}.delay-alert small{color:var(--muted);font-size:.8125rem;overflow-wrap:anywhere}.delay-clear{margin:0;padding:0 2px;color:var(--quiet);font-size:.8125rem}.board-controls{padding:12px 12px 8px}.board-controls .mode-switch{border-radius:var(--r-md)}.board-controls .mode-switch button,.board-controls .mode-switch-thumb{border-radius:var(--r-sm)}.board-controls .mode-switch button{min-height:30px;font-size:.875rem}.view-toggle{flex:0 0 auto}.view-toggle button{height:24px;padding:0 10px;font-size:.8125rem}.history-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px 6px}.history-controls .date-control{flex:1;min-width:0;max-width:180px}.date-stepper{display:flex;flex:1;align-items:center;gap:2px;min-width:0}.date-step{flex:none;width:28px;height:28px}.date-stepper .date-control{max-width:none}.date-stepper .control-shell{padding-left:8px;padding-right:6px}.date-stepper .control-shell>svg{display:none}.date-stepper input{cursor:pointer}.date-stepper input::-webkit-calendar-picker-indicator{display:none}.date-step:disabled{opacity:.35;cursor:not-allowed}.date-step-prev svg{transform:rotate(90deg)}.date-step-next svg{transform:rotate(-90deg)}.history-controls .control-shell{min-height:32px}.history-controls .control-shell input{font-size:.875rem}.board-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:4px 14px 0}.board-heading>div{min-width:0}.board-heading h3{margin:0;overflow:hidden;font:600 15px/1.2 var(--display);letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap}.board-heading p{margin:2px 0 0;overflow:hidden;color:var(--quiet);font-size:.8125rem;text-overflow:ellipsis;white-space:nowrap}.live-board{display:grid;grid-template-columns:minmax(0,1fr);padding:0 6px 12px}.live-board-meta{display:flex;align-items:center;gap:8px;min-height:28px;padding:0 6px 6px 8px;color:var(--muted);font-size:.8125rem;font-variant-numeric:tabular-nums}.live-board-meta-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pulse-dot.warn{background:var(--warn)}.meta-flag{flex:0 0 auto;padding:1px 6px;color:var(--warn);border-radius:var(--r-sm);background:color-mix(in srgb,var(--warn) 14%,transparent);font-size:.8125rem;font-weight:600;cursor:help}.list-spinner{flex:0 0 auto;width:10px;height:10px;border:1.5px solid var(--fill-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}.live-board-rows{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;animation:list-in .24s var(--ease-out)}.board-section{margin:10px 8px 4px;color:var(--quiet);font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.board-section:first-child{margin-top:2px}.board-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:60px;padding:8px 10px;text-align:left;color:var(--text);border:0;border-radius:var(--r-md);background:transparent;cursor:pointer;transition:background .2s var(--ease-out);content-visibility:auto;contain-intrinsic-size:auto 60px}.board-row:hover{background:var(--fill)}.board-row.selected{background:var(--accent-soft)}.board-row.skeleton{min-height:56px;cursor:default}.board-row.is-static{cursor:default}.board-row.is-static:hover{background:transparent}.board-time{display:grid;justify-items:start;gap:1px}.board-time strong{font-size:1rem;font-weight:600;letter-spacing:-.01em;line-height:1.2;white-space:nowrap}.board-time small{color:var(--quiet);font-size:.8125rem;line-height:1.2;white-space:nowrap}.board-time .board-time-old{text-decoration:line-through}.board-time .tone-warn{color:var(--warn)}.board-time .tone-ok{color:var(--ok)}.board-main{display:grid;gap:2px;min-width:0}.board-dest{display:flex;align-items:baseline;gap:7px;min-width:0}.board-code{flex:0 0 auto;font-size:.9375rem;font-weight:700;letter-spacing:.01em}.board-place{overflow:hidden;color:var(--text);font-size:.9375rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.board-ident{display:flex;align-items:baseline;gap:5px;min-width:0;overflow:hidden;color:var(--quiet);font-size:.8125rem;white-space:nowrap}.board-ident .mono{flex:0 0 auto;color:var(--muted);font-weight:600}.board-airline{overflow:hidden;text-overflow:ellipsis}.board-airline:before{content:"·";margin-right:5px}.is-cancelled{color:var(--quiet);text-decoration:line-through}.board-progress{display:flex;align-items:center;gap:7px;margin-top:3px;color:var(--quiet);font-size:.8125rem}.board-progress-track{position:relative;flex:1;height:3px;overflow:hidden;border-radius:2px;background:var(--fill-strong)}.board-progress-track>span{position:absolute;inset:0;transform-origin:left;border-radius:inherit;background:var(--accent);transition:transform .6s var(--ease-out)}.board-progress .mono{flex:0 0 auto;min-width:28px;text-align:right}.board-aside{display:grid;justify-items:end;gap:4px;min-width:0}.board-aside small{color:var(--quiet);font-size:.8125rem;line-height:1.2;white-space:nowrap}.board-chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;color:var(--muted);border-radius:var(--r-sm);background:var(--fill-strong);font-size:11.5px;font-weight:600;line-height:1;white-space:nowrap}.board-chip.tone-live{color:var(--accent-text);background:var(--accent-soft)}.board-chip.tone-ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.board-chip.tone-warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}.board-chip.tone-alert{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}.live-dot{flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:currentColor}.live-board-source{margin:8px 8px 0;color:var(--quiet);font-size:.8125rem;line-height:1.45}.airframe{display:grid;gap:12px}.airframe-skeleton{height:140px}.airframe-hero{display:grid;gap:2px}.airframe-registration{font-size:22px;font-weight:650;letter-spacing:-.02em;line-height:1.1}.airframe-model{color:var(--muted);font-size:.875rem}.airframe-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;margin:0}.airframe-facts>div{display:grid;align-content:start;gap:2px;min-width:0;padding:8px 0;border-top:1px solid var(--line)}.airframe-facts .airframe-wide{grid-column:1 / -1}.airframe-facts dt{color:var(--quiet);font-size:.8125rem}.airframe-facts dd{display:grid;gap:1px;margin:0;color:var(--text);font-size:.875rem;font-weight:500;line-height:1.3;overflow-wrap:anywhere}.airframe-facts dd small{color:var(--quiet);font-size:.8125rem;font-weight:400}.airframe-subhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:4px 0 0;color:var(--text);font-size:.875rem;font-weight:600}.airframe-subhead small{color:var(--quiet);font-size:.8125rem;font-weight:400}.airframe-timeline{position:relative;display:grid;margin:0;padding:0;list-style:none}.airframe-timeline li{position:relative;display:grid;grid-template-columns:14px minmax(0,1fr);gap:10px;padding-bottom:14px}.airframe-timeline li:last-child{padding-bottom:0}.airframe-timeline li:before{content:"";position:absolute;left:6px;top:14px;bottom:-2px;width:2px;border-radius:1px;background:var(--line-strong)}.airframe-timeline li:last-child:before{display:none}.timeline-dot{z-index:1;width:10px;height:10px;margin:5px 0 0 2px;border:2px solid var(--line-strong);border-radius:50%;background:var(--panel-solid)}.is-current .timeline-dot{border-color:var(--accent);background:var(--accent)}.timeline-body{display:grid;gap:2px;min-width:0}.timeline-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.timeline-head strong{min-width:0;overflow:hidden;font-size:.9375rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.timeline-head strong.is-muted{color:var(--quiet);font-weight:500}.reg-chip{flex:0 0 auto;padding:1px 7px;color:var(--muted);border-radius:var(--r-sm);background:var(--fill-strong);font-size:11.5px;font-weight:600}.timeline-meta{margin:0;color:var(--muted);font-size:.8125rem;line-height:1.4}.timeline-period{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;color:var(--quiet);font-size:.8125rem}.source-tag{padding:0 6px;border-radius:var(--r-sm);background:var(--fill);font-size:.8125rem;font-weight:600}.source-faa{color:var(--ok)}.source-opensky{color:var(--accent)}.airframe-flights{display:grid;gap:8px}.airframe-flights .secondary-button{justify-self:start;margin-top:0}.airframe-flights .secondary-button:disabled{opacity:.4;cursor:not-allowed}.airframe-flight-list{display:grid;margin:0;padding:0;list-style:none}.airframe-flight-list li{display:grid;grid-template-columns:82px minmax(0,1fr) auto;grid-template-areas:"time route state" "time ident state";align-items:center;gap:1px 10px;padding:7px 0;border-top:1px solid var(--line);font-size:.8125rem}.airframe-flight-list li>span:nth-child(1){grid-area:time;color:var(--quiet)}.airframe-route{grid-area:route;color:var(--text);font-size:.875rem;font-weight:600}.airframe-flight-ident{grid-area:ident;color:var(--quiet)}.flight-state{grid-area:state;color:var(--muted);font-size:.8125rem;text-align:right;white-space:nowrap}.flight-state.is-alert{color:var(--danger)}.airframe-offline{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;margin-top:14px;padding:14px;color:var(--muted);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--fill)}.airframe-offline svg{margin-top:2px;color:var(--quiet)}.airframe-offline strong{color:var(--text);font-size:.9375rem;font-weight:600}.airframe-offline p{margin:3px 0 0;font-size:.8125rem;line-height:1.45}.tour{position:fixed;inset:0;z-index:5000}.tour-dim{position:absolute;inset:0;background:var(--scrim);animation:tour-fade .3s var(--ease-out)}.tour-spotlight{position:absolute;border-radius:14px;box-shadow:0 0 0 9999px var(--scrim),0 0 0 1.5px var(--accent);pointer-events:none;animation:tour-fade .3s var(--ease-out)}.tour-card{position:absolute;padding:20px 20px 16px;color:var(--text);border:1px solid var(--line-strong);border-radius:14px;background:var(--panel-solid);box-shadow:0 18px 50px #0006}.tour-close{position:absolute;top:8px;right:8px;width:28px;height:28px}.tour-body{animation:tour-step .35s var(--ease-out)}.tour-count{margin:0 0 8px;color:var(--quiet);font-size:.8125rem;font-weight:600;letter-spacing:.06em}.tour-card h2{margin:0 0 6px;padding-right:24px;font:600 19px/1.2 var(--display);letter-spacing:-.02em}.tour-card p{margin:0;color:var(--muted);font-size:.9375rem;line-height:1.5}.tour-keys{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px!important}.tour-keys kbd{padding:3px 8px;color:var(--text);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--fill);font:500 12px/1.2 var(--body)}.tour-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.tour-dots{display:flex;gap:5px}.tour-dots span{width:6px;height:6px;border-radius:50%;background:var(--fill-strong);transition:background .15s var(--ease-out)}.tour-dots span.done{background:var(--accent-soft)}.tour-dots span.active{width:18px;border-radius:3px;background:var(--accent)}.tour-actions{display:flex;align-items:center;gap:6px}.tour-skip{padding:7px 12px;color:var(--muted);border:0;border-radius:var(--r-pill);background:transparent;font-size:.875rem;cursor:pointer}.tour-skip:hover{color:var(--text);background:var(--fill)}.tour-next{padding:8px 16px;color:var(--on-accent);border:0;border-radius:var(--r-pill);background:var(--accent);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s var(--ease-out),transform .15s var(--ease-out)}.tour-next:hover{background:var(--accent-press)}.tour-next:active{transform:scale(.96)}@media(pointer:coarse){.topbar-shortcuts{display:none}}.shortcuts{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:16px;background:var(--scrim);animation:tour-fade .2s var(--ease-out)}.shortcuts-card{position:relative;width:min(420px,100%);padding:20px 20px 14px;color:var(--text);border:1px solid var(--line-strong);border-radius:14px;background:var(--panel-solid);box-shadow:0 18px 50px #0006}.shortcuts-card h2{margin:0 0 12px;font:600 19px/1.2 var(--display);letter-spacing:-.02em}.shortcuts-close{position:absolute;top:8px;right:8px;width:28px;height:28px}.shortcuts-card dl{display:grid;margin:0}.shortcuts-card dl>div{display:grid;grid-template-columns:128px minmax(0,1fr);align-items:center;gap:16px;padding:8px 0;border-top:1px solid var(--line)}.shortcuts-card dt{display:flex;flex-wrap:wrap;gap:4px}.shortcuts-card dd{margin:0;color:var(--muted);font-size:.875rem;line-height:1.4}.shortcuts-card kbd{padding:3px 7px;color:var(--text);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--fill);font:500 12px/1.2 var(--body)}@keyframes tour-fade{0%{opacity:0}to{opacity:1}}@keyframes tour-step{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.tour-body,.tour-dim,.tour-spotlight,.shortcuts{animation:none}}.board-resolve-notice{margin:6px 4px;padding:8px 10px;color:var(--muted);border-radius:var(--r-md);background:var(--fill);font-size:.8125rem}.board-row.is-resolving{opacity:.6;pointer-events:none}.weather-guide{margin-top:10px}.weather-guide h3{margin:12px 0 6px;font-size:.875rem;font-weight:600;color:var(--text)}.weather-guide p{margin:0 0 10px;line-height:1.5}.weather-guide code{overflow-wrap:anywhere}.weather-code-list{margin:0}.weather-code-list dt{margin-top:10px;font-weight:600;color:var(--text)}.weather-code-list dd{margin:3px 0 10px;line-height:1.5}.weather-guide a{color:var(--accent)}.weather-guide>summary,.weather-guide .conditions-more-body{min-width:0}.weather-guide .conditions-more-body>*{min-width:0;overflow-wrap:anywhere}.weather-guide .panel-section-chevron{flex-shrink:0}.global-alerts{padding:16px}.global-alerts h2,.flight-events h3{font-size:.9375rem;margin:0 0 10px;font-weight:600}.global-alerts>p{font-size:.8125rem;line-height:1.5}.global-alerts>a{color:var(--accent);font-size:.8125rem}.global-alert-row{appearance:none;background:transparent;border:0;font:inherit;cursor:pointer;width:100%;text-align:left;display:grid;gap:5px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--text)}.global-alert-row>span{color:var(--danger);font-size:.8125rem}.global-alert-row>small{color:var(--muted);font-size:.8125rem}.global-alert-row:hover{background:var(--fill)}.flight-events{padding:14px 20px;border-bottom:1px solid var(--line)}.flight-events p,.flight-events li{display:grid;gap:5px;margin:0 0 12px;font-size:.8125rem;line-height:1.5}.flight-events span{color:var(--muted)}.flight-events ul{list-style:none;margin:0;padding:0}.weather-guide .conditions-more-body{grid-template-columns:minmax(0,1fr)}:root{--type-meta: .8125rem;--type-body: .875rem;--type-title: 1rem}::selection{color:var(--text);background:var(--accent-soft)}input{caret-color:var(--accent)}.text-button{padding:8px 10px;color:var(--accent);border:0;border-radius:var(--r-sm);background:transparent;font:inherit;font-size:var(--type-body);cursor:pointer}.text-button:hover{background:var(--fill-strong)}.text-button:disabled{color:var(--muted);cursor:default}.mobile-back{display:none}.details-heading{position:sticky;top:-14px;z-index:2;padding:10px 0;background:var(--panel-solid)}.details-drawer .route-point>span{white-space:normal;overflow:visible;line-height:1.4}.details-drawer .route-hero{margin-top:14px}.details-drawer .live-readouts{margin-top:14px;padding:14px 0}.details-drawer .live-readouts strong{font-size:1.125rem}.details-drawer .aircraft-photo{margin-top:18px}.details-drawer .aircraft-photo-link{max-height:150px}.profile-section-heading{min-height:44px}.global-alerts{overflow-y:auto;overscroll-behavior:contain;line-height:1.5}.alerts-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.alerts-heading h2{margin:0;font-size:var(--type-title)}.global-alerts>p{font-size:var(--type-body)}.alerts-freshness{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:var(--type-meta)!important;margin:16px 0 4px}.global-alert-row{padding:16px 4px;border-radius:var(--r-sm)}.global-alert-row>strong{font-size:var(--type-title)}.global-alert-row>span{font-size:var(--type-body)}.global-alert-row .alert-operator{color:var(--text)}.global-alert-row .alert-action{color:var(--accent);margin-top:4px}.global-alert-row:disabled{cursor:default}.global-alert-row:disabled>span,.global-alert-row:disabled>strong{color:var(--muted)}.global-alert-row:disabled:hover{background:transparent}.global-alerts .data-notice-inline{display:block;margin-top:12px}.global-alerts .data-notice-inline p{margin:4px 0;line-height:1.5}.alerts-help{margin:20px 0 16px;font-size:var(--type-body);color:var(--muted)}.alerts-help summary{min-height:44px;padding:10px 0;color:var(--text);cursor:pointer}.alerts-help dt{color:var(--text);font-weight:600;margin-top:12px}.alerts-help dd{margin:4px 0 12px}.loading-placeholder{height:64px;background:var(--fill);border-radius:var(--r-sm);margin-top:12px}.omni-hint summary{cursor:pointer;min-height:32px;display:flex;align-items:center}.omni-hint p{white-space:normal;line-height:1.5}.board-clock-note{color:var(--muted);margin:6px 0 12px;font-size:var(--type-meta);line-height:1.45}@media(max-width:900px){.workspace.has-dock .traffic-slot{visibility:hidden;pointer-events:none}.mobile-back{display:block;margin:-4px 0 4px -10px;min-height:44px}.icon-button,.airport-identity .icon-button{width:44px;height:44px;flex-shrink:0}.topbar-shortcuts{display:none}.topbar .icon-button{width:44px;height:44px}.topbar-actions{gap:0}.topbar-search,.omni-input{min-width:0}.omni-input{height:40px}.map-toolbar button,.map-controls button,.tabs button{min-height:44px}.tabs button{padding:0 10px}.details-heading{top:-14px}.details-drawer .live-readouts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.route-hero-foot{flex-wrap:wrap;gap:5px}.traffic-header{gap:4px;padding:6px}.details-drawer .aircraft-photo-link{max-height:120px}}.board-time-kind{color:var(--muted);font-size:.8125rem}@media(max-width:900px){.map-status{top:60px}.nearby-airports-control{top:104px}.emergency-banner{top:152px}}html.page-hidden *,html.page-hidden *:before,html.page-hidden *:after{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.pulse-dot.active:after,.user-location-marker:after,.aircraft-marker.emergency:after{animation:none;opacity:0}.skeleton,.aircraft-photo-loading,.chart-skeleton{animation:none;background:var(--fill)}.movement-loading-radar,.list-refreshing span,.list-spinner{animation:none}.map-toolbar,.map-altitude-legend,.emergency-banner{transition:none}}.position-observation{margin:12px 0;color:var(--muted);font-size:var(--type-meta);line-height:1.5}.position-observation p{margin:4px 0 0}.position-observation.is-delayed{padding:10px;background:var(--fill);border-radius:var(--r-sm);color:var(--text)}.mobile-sheet-toolbar{display:none}.chart-scale,.chart-time-axis{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:var(--type-meta);font-variant-numeric:tabular-nums}.chart-inspector{display:grid;gap:6px;margin-top:10px;font-size:var(--type-meta);color:var(--muted)}.chart-inspector input{width:100%;min-height:44px;margin:0;accent-color:var(--accent)}.altitude-hover-readout{color:var(--text);font-size:var(--type-body);font-variant-numeric:tabular-nums}@media(max-width:900px){.mobile-sheet-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.mobile-sheet-toolbar .text-button{min-height:44px}.workspace.sheet-expanded .details-drawer{height:85%}.app:not(.map-expanded) .workspace.sheet-expanded :is(.map-controls,.map-toolbar,.nearby-airports-control,.map-status,.emergency-banner,.location-status){display:none}.app:not(.map-expanded) .workspace.sheet-expanded .leaflet-bottom{bottom:85%}}@media(max-width:900px){.mobile-sheet-toolbar{position:sticky;top:-14px;z-index:3;padding:4px 0;background:var(--panel-solid)}.details-drawer .details-heading{top:38px}}.shared-flight-notice{position:absolute;z-index:810;top:110px;left:var(--inset-left);max-width:min(320px,calc(100% - 24px));padding:12px;color:var(--text);background:var(--panel-solid);border-radius:var(--r-md);font-size:var(--type-body);line-height:1.5}.shared-flight-notice p{margin:4px 0}.track-refresh-notice{color:var(--muted);font-size:var(--type-meta);line-height:1.5}@media(max-width:900px){.shared-flight-notice{top:148px;left:12px}}.altitude-hover-target{touch-action:pan-y}.aircraft-label{padding:5px 7px;border-radius:6px;background:var(--panel-solid);text-shadow:none;box-shadow:0 2px 5px #0000002e;column-gap:5px;grid-template-columns:auto 1fr}.show-labels .aircraft-label{display:grid}.aircraft-label b,.aircraft-label i{grid-column:2}.show-labels .aircraft-label.label-level-3 i{display:block}.airline-badge{grid-column:1;grid-row:1 / 3;align-self:center;display:grid;place-items:center;min-width:20px;height:20px;padding:0 4px;border-radius:3px;color:#fff;font:700 9px/1 var(--body);letter-spacing:.02em}.airline-logo{grid-column:1;grid-row:1 / 3;align-self:center;object-fit:contain;border-radius:3px;background:#fff}.aircraft-marker.kind-turboprop svg{width:20px;height:20px}.aircraft-marker.kind-regional svg{width:19px;height:19px}.aircraft-marker.airborne .aircraft-svg-rotor{transform-box:view-box;transform-origin:13px 12px;animation:helicopter-rotor .45s linear infinite}@keyframes helicopter-rotor{to{transform:rotate(360deg)}}.page-hidden .aircraft-svg-rotor{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.aircraft-marker.airborne .aircraft-svg-rotor{animation:none}}.heading-arrow{display:block;width:20px;height:20px}.heading-arrow svg{width:100%;height:100%}.cabin-section{padding:18px 0;border-top:1px solid var(--line)}.cabin-section h3{font-size:15px;margin:0 0 8px}.cabin-variant{border-bottom:1px solid var(--line);padding:12px 0}.cabin-variant summary{cursor:pointer;font-weight:600}.cabin-variant summary span{color:var(--muted);font-weight:400;margin-left:8px}.cabin-inventory{padding:16px 0 8px}.cabin-inventory-caption{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin:0 0 16px;color:var(--text);font-size:var(--type-meta)}.cabin-inventory-caption span{color:var(--muted);font-size:.75rem}.cabin-class{--seat-color: var(--cabin-other);padding:0 0 18px}.cabin-class[data-tone=first]{--seat-color: var(--cabin-first)}.cabin-class[data-tone=business]{--seat-color: var(--cabin-business)}.cabin-class[data-tone=premium]{--seat-color: var(--cabin-premium)}.cabin-class[data-tone=economy]{--seat-color: var(--cabin-economy)}.cabin-class[data-tone=flexible]{--seat-color: var(--cabin-flexible)}.cabin-class-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px}.cabin-class-heading h4{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--type-body);font-weight:500}.cabin-class-heading strong{white-space:nowrap;font-size:var(--type-body);font-variant-numeric:tabular-nums}.cabin-class-heading strong span{color:var(--muted);font-size:var(--type-meta);font-weight:400}.cabin-swatch{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--seat-color)}.cabin-seat-grid{display:grid;grid-template-columns:repeat(20,minmax(0,1fr));gap:3px}.cabin-seat{display:block;width:100%;height:auto;color:var(--seat-color)}.cabin-seat .seat-back{fill:color-mix(in srgb,var(--seat-color) 12%,var(--panel-solid));stroke:currentColor}.cabin-seat .seat-cushion{fill:currentColor}.cabin-seat .seat-arms{fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.cabin-inventory-note{margin:0 0 12px;color:var(--muted);font-size:var(--type-meta);line-height:1.5}.cabin-map-link{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);color:var(--accent);font-size:var(--type-body);text-decoration:none}.cabin-map-link:hover{background:var(--fill)}.cabin-map-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cabin-amenities{color:var(--muted);padding-left:18px;font-size:12px}.cabin-sources{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px}.cabin-sources small{color:var(--muted)}.aircraft-profile-grid small{display:block;color:var(--muted)}.chart-summary{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:.8125rem;font-variant-numeric:tabular-nums}.chart-summary>div{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.chart-summary strong{margin-left:5px;font-size:1rem}.chart-summary time,.chart-footnote{color:var(--muted)}.chart-series-key{width:14px;height:3px;background:var(--accent);border-radius:2px}.chart-grid line{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.chart-grid text{fill:var(--muted);font:24px var(--body);font-variant-numeric:tabular-nums}.chart-time-axis{margin:-14px 8.7% 0;font-size:.75rem}.chart-footnote{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:.75rem;line-height:1.5}.chart-inspector{margin-top:4px;gap:0}.altitude-hover-readout{font-size:.75rem;line-height:1.5}.cabin-inventory-toggle{margin:0 0 14px}.cabin-inventory-toggle>summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--accent);font-size:var(--type-meta);font-weight:500;list-style:none}.cabin-inventory-toggle>summary::-webkit-details-marker{display:none}.cabin-inventory-toggle>summary:after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-right:4px}.cabin-inventory-toggle[open]>summary:after{transform:rotate(225deg)}.cabin-inventory-toggle>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.cabin-inventory-toggle .cabin-seat-grid{margin:8px 0 14px}.chart-time-axis time{min-width:0;text-align:center}.chart-time-axis time:first-child{text-align:left}.chart-time-axis time:last-child{text-align:right}.cabin-inventory>.cabin-class{padding-bottom:4px}.cabin-inventory-toggle .cabin-class{padding-bottom:4px}.flight-position-age{font-variant-numeric:tabular-nums}.flight-position-age.freshness-delayed,.flight-position-age.freshness-unknown{color:var(--warn)}.status-dot.freshness-delayed,.status-dot.freshness-unknown{background:transparent;border:1px solid var(--warn)}.aircraft-marker-wrap[data-freshness=delayed] .aircraft-marker,.aircraft-marker-wrap[data-freshness=unknown] .aircraft-marker{opacity:.55}.aircraft-marker-wrap[data-estimated=true] .aircraft-marker svg{fill:none;stroke:currentColor;stroke-width:1}.map-data-guide{position:absolute;z-index:500;left:var(--inset-left);bottom:calc(var(--edge) + 42px);max-width:min(460px,calc(100% - var(--inset-left) - var(--inset-right) - var(--controls-room)));display:grid;gap:3px;padding:7px 10px;background:var(--panel);color:var(--muted);border-radius:var(--r-md);font-size:.8125rem;pointer-events:none}.map-expanded .map-data-guide{left:var(--edge)}@media(max-width:900px){.map-data-guide{left:var(--edge);top:145px;bottom:auto;max-width:calc(100% - var(--edge) * 2)}.workspace.sheet-expanded .map-data-guide{display:none}}
