@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/fonts/inter-latin-wght-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/fonts/inter-latin-ext-wght-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url("/assets/fonts/space-grotesk-latin-wght-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url("/assets/fonts/space-grotesk-latin-ext-wght-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--font-body:"Inter",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-display:"Space Grotesk","Inter",ui-sans-serif,system-ui,-apple-system,sans-serif;--bg:#fef9f0;--blob1:rgba(251, 191, 36, 0.22);--blob2:rgba(253, 186, 116, 0.20);--ink:#1c1007;--muted:#7a6049;--panel:#ffffff;--panel-glass:rgba(255, 250, 245, 0.88);--line:#f0dfca;--accent:#ea580c;--accent-strong:#c2410c;--accent-light:#fff7ed;--accent-ink:#ffffff;--arrival:#fce7f3;--arrival-ink:#9d174d;--departure:#d1fae5;--departure-ink:#065f46;--chip-bg:#fed7aa;--chip-ink:#9a3412;--warning:#fef9c3;--warning-ink:#92400e;--atis-bg:var(--accent-light);--atis-chip-bg:var(--chip-bg);--atis-chip-ink:var(--chip-ink);--atis-chip-line:transparent;--atis-chip-shadow:none;--action-bg:var(--accent-light);--action-ink:var(--accent);--action-border:var(--line);--action-hover-bg:var(--accent);--action-hover-ink:var(--accent-ink);--action-hover-border:var(--accent);--action-shadow:none;--wind-panel:rgba(255, 255, 255, 0.96);--wind-accent:#db2777;--wind-accent-soft:rgba(219, 39, 119, 0.18);--shadow:0 4px 20px rgba(234, 88, 12, 0.09);--shadow-lg:0 16px 48px rgba(234, 88, 12, 0.12);color-scheme:light}:root[data-theme=dark]{--bg:#0d0b1e;--blob1:rgba(109, 40, 217, 0.18);--blob2:rgba(6, 78, 116, 0.14);--ink:#eae8f5;--muted:#8b87a8;--panel:#181628;--panel-glass:rgba(24, 22, 40, 0.90);--line:#2d2a48;--accent:#8b5cf6;--accent-strong:#7c3aed;--accent-light:#2e1065;--accent-ink:#ffffff;--arrival:#0c2840;--arrival-ink:#7dd3fc;--departure:#062214;--departure-ink:#6ee7b7;--chip-bg:#2a1f5c;--chip-ink:#c4b5fd;--warning:#431407;--warning-ink:#fde68a;--atis-bg:#211636;--atis-chip-bg:#46308b;--atis-chip-ink:#ddd6fe;--atis-chip-line:rgba(196, 181, 253, 0.26);--atis-chip-shadow:0 8px 22px rgba(0, 0, 0, 0.24);--action-bg:#f59e0b;--action-ink:#17130b;--action-border:#fbbf24;--action-hover-bg:#fde68a;--action-hover-ink:#17130b;--action-hover-border:#fde68a;--action-shadow:0 8px 22px rgba(245, 158, 11, 0.26);--wind-panel:rgba(13, 11, 30, 0.92);--wind-accent:#facc15;--wind-accent-soft:rgba(250, 204, 21, 0.20);--shadow:0 4px 20px rgba(0, 0, 0, 0.28);--shadow-lg:0 16px 48px rgba(0, 0, 0, 0.44);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse 70% 55% at 5% -5%,var(--blob1) 0,transparent 55%),radial-gradient(ellipse 60% 45% at 95% 5%,var(--blob2) 0,transparent 55%),var(--bg);color:var(--ink);font-family:var(--font-body)}.callsign,.metric strong,h1,h2,h3{font-family:var(--font-display)}button,select{font:inherit}.app-shell{width:min(1440px,calc(100% - 36px));margin:0 auto;padding:28px 0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:12px}.topbar-brand{flex:none}.eyebrow{margin:0 0 6px;color:var(--accent);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}h1,h2,h3,p{overflow-wrap:anywhere}h1{margin:0;font-size:clamp(2rem, 4vw, 4.2rem);line-height:.95;letter-spacing:0}.brand-logo{width:min(210px,48vw)}.brand-logo-img{display:block;width:100%;height:auto}.brand-logo-dark{display:none}:root[data-theme=dark] .brand-logo-light{display:none}:root[data-theme=dark] .brand-logo-dark{display:block}.seo-intro{margin:0 0 10px}.seo-intro h1{margin:0;font-size:clamp(1.05rem, 1.7vw, 1.35rem);font-weight:700;line-height:1.3;color:var(--ink)}.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}h2,h3{margin:0;letter-spacing:0}.controls{position:relative;z-index:100;display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(110px,0.8fr) minmax(110px,0.8fr) auto;gap:10px;align-items:end;width:min(680px,100%);background:var(--panel-glass);border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:var(--shadow);backdrop-filter:blur(12px)}label{display:grid;gap:5px;color:var(--muted);font-size:.78rem;font-weight:700}.select{position:relative}.select::after{content:'';position:absolute;right:14px;top:50%;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-65%) rotate(45deg);pointer-events:none}select{width:100%;min-height:42px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-weight:500;padding:0 34px 0 12px;appearance:none}select:focus{outline:2px solid var(--accent);outline-offset:1px}.combo-native{display:none}.combo{position:relative}.combo-input{width:100%;min-height:42px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-weight:500;padding:0 34px 0 12px}.combo-input::placeholder{color:var(--muted);font-weight:400}.combo-input:focus{outline:2px solid var(--accent);outline-offset:1px}.combo-clear{position:absolute;top:0;right:0;height:42px;width:32px;min-height:unset;border:none;background:0 0;color:var(--muted);font-size:1.3rem;line-height:1}.combo-clear:hover{color:var(--ink)}.combo-list{position:absolute;z-index:50;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;max-height:340px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg)}.combo-group{display:flex;align-items:center;gap:6px;padding:8px 8px 4px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.combo-group:not(:first-child){margin-top:4px;border-top:1px solid var(--line)}.combo-flag{font-size:1rem}.combo-option{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer}.combo-option.is-active{background:var(--accent-light)}.combo-opt-main{color:var(--ink)}.combo-option.is-selected .combo-opt-main{font-weight:700}.combo-option.is-selected .combo-opt-main::after{content:' ✓';color:var(--accent)}.combo-opt-meta{color:var(--muted);font-size:.78rem;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.combo-empty{padding:12px 10px;color:var(--muted)}button{min-height:42px;border-radius:8px;border:1px solid transparent;cursor:pointer}.submit-btn{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);padding:0 18px;font-weight:800}.submit-btn:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.theme-btn{display:inline-flex;align-items:center;justify-content:center;min-height:unset;width:1.5em;height:1.5em;padding:0;border:none;border-radius:4px;background:0 0;color:var(--muted);font-size:inherit;line-height:1;vertical-align:middle;opacity:.75}.theme-btn:hover{opacity:1;background:var(--accent-light);color:var(--accent)}.lang-switch{display:inline-flex;align-items:center;gap:2px;margin-right:2px}.lang-btn{min-height:unset;padding:2px 6px;border:none;border-radius:4px;background:0 0;color:var(--muted);font-size:.78rem;font-weight:600;line-height:1;letter-spacing:.03em;cursor:pointer;opacity:.7}.lang-btn.is-active,.lang-btn:hover{opacity:1;background:var(--accent-light);color:var(--accent)}.status-line{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;color:var(--muted);font-size:.88rem}.status-right{display:flex;align-items:center;gap:6px}.atis-strip{margin-bottom:14px;border:1px solid var(--line);border-radius:12px;background:var(--atis-bg);padding:14px 16px;box-shadow:var(--shadow)}.atis-strip[hidden]{display:none}.loading-modal{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(28,16,7,.34);backdrop-filter:blur(5px)}:root[data-theme=dark] .loading-modal{background:rgba(3,2,12,.58)}.loading-modal-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;width:min(480px,100%);border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);padding:38px 34px;box-shadow:var(--shadow-lg);font-size:1rem;font-weight:800;text-align:center}.loading-modal[hidden]{display:none}.loading-modal-logo{width:min(260px,72vw)}.loading-modal-logo-img{display:block;width:100%;height:auto}.loading-modal-status{display:flex;align-items:center;justify-content:center;gap:10px}.loading-dot{width:10px;height:10px;flex:none;border-radius:50%;background:var(--accent);animation:.9s ease-in-out infinite loadingPulse}@keyframes loadingPulse{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.atis-strip .eyebrow{margin-bottom:10px}.atis-grid{display:flex;flex-wrap:wrap;gap:8px}.atis-chip{display:grid;gap:3px;min-width:110px;flex:1 1 110px;border:1px solid var(--atis-chip-line);border-radius:10px;background:var(--atis-chip-bg);color:var(--atis-chip-ink);padding:8px 12px;box-shadow:var(--atis-chip-shadow)}.atis-chip span{font-size:.65rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;opacity:.75}.atis-chip strong{font-size:.92rem;font-weight:700}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:18px;align-items:stretch}.primary-panel,.queue-panel{min-height:620px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg)}.primary-panel{position:relative;overflow:hidden;padding:24px}.primary-panel::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--blob1) 1px,transparent 1px),linear-gradient(0deg,var(--blob2) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to bottom,rgba(0,0,0,0.25),transparent 65%);pointer-events:none}.primary-content{position:relative;display:grid;min-height:572px;grid-template-rows:auto auto auto auto;gap:22px}.flight-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.flight-status-stack{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.airline-logo-mark{display:inline-flex;align-items:center;justify-content:center;width:74px;height:74px;border:1px solid rgba(28,16,7,.08);border-radius:50%;background:#fff;box-shadow:0 10px 24px rgba(28,16,7,.12);opacity:0;padding:12px}.airline-logo-mark.is-loaded{opacity:1}:root[data-theme=dark] .airline-logo-mark{border-color:rgba(255,255,255,.16);box-shadow:0 12px 30px rgba(0,0,0,.34)}.airline-logo{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.callsign{font-size:clamp(3.2rem, 9vw, 8.8rem);line-height:.82;font-weight:900;letter-spacing:0}.flight-operator{margin-top:10px;font-size:clamp(1rem, 2.4vw, 1.5rem);font-weight:800;letter-spacing:.02em;color:var(--muted)}.flight-route{margin-top:10px;font-size:clamp(1.1rem, 2.6vw, 1.7rem);font-weight:800;letter-spacing:.04em;color:var(--accent)}.flight-route-names{margin-top:4px;color:var(--muted);font-size:.92rem;font-weight:700}.queue-operator{margin-top:4px;font-weight:700;font-size:.9rem;color:var(--muted)}.queue-route{margin-top:4px;font-weight:800;font-size:.95rem;letter-spacing:.03em;color:var(--accent)}.phase{display:inline-flex;align-items:center;min-height:34px;border-radius:999px;padding:0 14px;font-weight:800;font-size:.88rem;white-space:nowrap}.phase.arrival{background:var(--arrival);color:var(--arrival-ink)}.phase.departure{background:var(--departure);color:var(--departure-ink)}.phase.taxi{background:var(--warning);color:var(--warning-ink)}.phase.parked{background:var(--chip-bg);color:var(--chip-ink)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px}.metric{min-height:112px;border:1px solid var(--line);border-radius:10px;background:var(--panel-glass);padding:14px 16px}.detail span,.metric span{display:block;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.metric strong{display:block;margin-top:10px;font-size:clamp(1.5rem, 3vw, 2.6rem);line-height:1}.metric small{display:block;margin-top:8px;color:var(--muted);font-size:.92rem;font-weight:700}.details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.detail{border-top:1px solid var(--line);padding-top:12px}.detail strong{display:block;margin-top:4px;font-size:1.05rem}.detail .map-link-sm{display:inline-block;margin-top:0;margin-left:8px;text-align:left;vertical-align:baseline}.queue-panel{padding:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}#queue-count{display:grid;place-items:center;min-width:42px;height:42px;border-radius:50%;background:var(--chip-bg);color:var(--chip-ink);font-weight:900;font-size:1rem}.queue-list{display:grid;gap:10px}.queue-item{display:grid;grid-template-columns:1fr auto;gap:18px;border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--panel-glass)}.queue-item.is-pinnable{cursor:pointer;transition:border-color .15s,background .15s,transform 50ms}.queue-item.is-pinnable:hover{border-color:var(--accent);background:var(--accent-light)}.queue-item.is-pinnable:active{transform:scale(.995)}.queue-item.is-pinnable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.queue-item .phase{min-height:26px;padding:0 10px;font-size:.72rem}.primary-content.is-pinned{outline:2px solid var(--accent);outline-offset:8px;border-radius:12px}.pin-release{justify-self:start;display:inline-flex;align-items:center;gap:6px;margin:0;padding:5px 12px;border:1px solid var(--accent);border-radius:999px;background:var(--accent-light);color:var(--accent-strong);font:inherit;font-size:.78rem;font-weight:800;letter-spacing:.01em;cursor:pointer;transition:background .15s,color .15s}.pin-release:hover{background:var(--accent);color:var(--accent-ink)}.pin-release:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.queue-item h3{margin-top:8px;font-size:1.3rem}.queue-meta{margin-top:6px;color:var(--muted);font-size:.88rem}.queue-stats{display:grid;gap:8px;text-align:right;font-weight:900}.queue-stat small,.queue-stat span,.queue-stat strong{display:block}.queue-stat span{color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.queue-stat strong{margin-top:4px}.queue-stat small{margin-top:3px;color:var(--muted);font-size:.74rem;font-weight:600}.queue-stats .map-link-sm{grid-column:1/-1;justify-self:end}.empty-state{position:relative;display:grid;place-content:center;min-height:572px;max-width:720px;margin:0 auto;text-align:center}.empty-state h2{font-size:clamp(2rem, 5vw, 4rem);line-height:1}.empty-state p:last-child{color:var(--muted);font-size:1.05rem}.flight-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.map-link{display:inline-flex;align-items:center;padding:6px 14px;border-radius:8px;border:1px solid var(--action-border);background:var(--action-bg);color:var(--action-ink);box-shadow:var(--action-shadow);font-size:.82rem;font-weight:700;text-decoration:none}.map-link:hover{background:var(--action-hover-bg);color:var(--action-hover-ink);border-color:var(--action-hover-border)}.map-link-sm{display:block;margin-top:6px;color:var(--accent);font-size:.8rem;font-weight:700;text-decoration:none;text-align:right;opacity:.8}.map-link-sm:hover{opacity:1;text-decoration:underline}.flight-map-panel{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--panel-glass)}.flight-map{position:relative;width:100%;height:clamp(220px,30vw,320px);background:var(--accent-light)}.flight-map-meta{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;color:var(--muted);font-size:.78rem;font-weight:700}.flight-map-meta a{color:var(--accent);text-decoration:none;white-space:nowrap}.flight-map-meta a:hover{text-decoration:underline}.aircraft-map-icon{display:grid;place-items:center}.aircraft-map-icon svg{display:block;stroke:#000000;stroke-width:1;stroke-linejoin:round;filter:drop-shadow(0 2px 4px rgba(0, 0, 0, .35));transform-origin:50% 50%}.aircraft-map-icon svg circle,.aircraft-map-icon svg path,.aircraft-map-icon svg rect{vector-effect:non-scaling-stroke}.aircraft-map-icon--arrival svg{fill:#F23A1C}.aircraft-map-icon--departure svg{fill:#31B439}.aircraft-map-icon--taxi svg{fill:#f59e0b}.aircraft-map-icon--parked svg{fill:#64748b}.airport-tooltip.leaflet-tooltip{padding:2px 7px;border:none;border-radius:999px;background:rgba(234,88,12,.7);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.04em;line-height:1.3;white-space:nowrap;box-shadow:0 2px 5px rgba(0,0,0,.3)}.airport-tooltip.leaflet-tooltip-bottom::before{border-bottom-color:rgba(234,88,12,.7)}.aircraft-tooltip.leaflet-tooltip{padding:2px 7px;border:none;border-radius:999px;background:rgba(15,23,42,.78);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.04em;line-height:1.3;white-space:nowrap;box-shadow:0 2px 5px rgba(0,0,0,.3)}.aircraft-tooltip.leaflet-tooltip-top::before{border-top-color:rgba(15,23,42,.78)}.leaflet-container{background:var(--accent-light);color:#1c1007;font:inherit}.leaflet-control-attribution{font-size:.68rem}.center-plane-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;margin-top:5px;border:2px solid rgba(0,0,0,.2);border-radius:4px;background:#fff;cursor:pointer;box-shadow:none;transition:background .15s}.center-plane-btn:hover{background:#f4f4f4}.center-plane-btn svg{display:block;width:16px;height:16px;fill:#333}.wind-field{position:absolute;top:0;left:0;pointer-events:none}.wind-indicator{display:flex;align-items:center;gap:10px;margin:0 0 10px 10px;padding:8px 12px 8px 9px;border-radius:9px;background:var(--wind-panel);border:1px solid var(--wind-accent);box-shadow:0 8px 24px rgba(0,0,0,.22),0 0 0 3px var(--wind-accent-soft);color:var(--ink);line-height:1.1;backdrop-filter:blur(6px)}.wind-arrow{width:32px;height:32px;flex:none;fill:var(--wind-accent);color:var(--wind-accent);transform-origin:50% 50%;transition:transform .6s;filter:drop-shadow(0 1px 1px rgba(255, 255, 255, .9)) drop-shadow(0 2px 4px rgba(0, 0, 0, .45))}.wind-arrow.is-variable{transition:none}.wind-text{display:flex;flex-direction:column}.wind-dir{font-size:.72rem;font-weight:800;color:var(--wind-accent)}.wind-value{font-size:1rem;font-weight:900;white-space:nowrap}.wind-indicator.is-calm .wind-label{font-size:.72rem;font-weight:800;color:var(--wind-accent);margin-right:6px}.warn{color:var(--warning-ink)}.site-footer{margin-top:18px;color:var(--muted);font-size:.84rem;text-align:center}.site-footer p{margin:0}.site-footer a{color:var(--accent);font-weight:700;text-decoration:none}.site-footer a:hover{text-decoration:underline}@media (max-width:1050px){.dashboard{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:stretch}.controls{width:100%}.primary-panel,.queue-panel{min-height:auto}}@media (max-width:760px){.app-shell{width:min(100% - 24px,1440px);padding:16px 0}.controls,.details{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.flight-hero,.status-line{flex-direction:column}.status-line{align-items:flex-start;gap:6px}.primary-panel{padding:16px}.empty-state,.primary-content{min-height:480px}.callsign{font-size:clamp(3rem, 18vw, 5.4rem)}.flight-map-meta{flex-direction:column;gap:4px}}