@import "https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:16px/1.4 JetBrains Mono,ui-monospace,monospace}*{box-sizing:border-box}html,body{background:#000904;height:100%;margin:0;padding:0}#root{width:100%;min-height:100svh}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.radar-wrap{aspect-ratio:1;filter:drop-shadow(0 0 40px #39ff8c26);width:100%;max-width:800px;margin:0 auto;position:relative}.radar-svg{width:100%;height:100%;overflow:visible}.radar-ring{fill:none;stroke:#39ff8c40;stroke-width:1px}.radar-crosshair{stroke:#39ff8c26;stroke-width:1px}.radar-ring-label{fill:#39ff8c66;font-family:JetBrains Mono,monospace;font-size:11px}.radar-center-dot{fill:#39ff8c}.radar-sweep{animation:4s linear infinite sweep-rotate}@keyframes sweep-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.plane-blip{cursor:pointer;transition:opacity .3s}.plane-icon{fill:#39ff8c;stroke:#0a2e1a;stroke-width:.5px}.band-low .plane-icon{fill:#ff6b6b}.band-mid .plane-icon{fill:#ffd93d}.band-high .plane-icon{fill:#39ff8c}.plane-blip.selected .plane-icon{fill:#fff}.plane-label{fill:#eafff2;paint-order:stroke;stroke:#000;stroke-width:3px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}.plane-blip{animation:2.4s ease-in-out infinite blip-pulse}@keyframes blip-pulse{0%,to{opacity:.85}50%{opacity:1}}.plane-list{color:#d7ffe8;background:#03110a99;border:1px solid #39ff8c33;border-radius:8px;height:100%;padding:16px;font-family:JetBrains Mono,monospace;overflow-y:auto}.plane-list-header,.plane-row{grid-template-columns:1.4fr .9fr 1.1fr .9fr .7fr;gap:8px;padding:8px 4px;font-size:13px;display:grid}.plane-list-header{color:#39ff8c99;letter-spacing:.08em;background:#03110af2;border-bottom:1px solid #39ff8c26;position:sticky;top:0}.plane-row{border-bottom:1px solid #39ff8c0f;animation:.4s row-in}@keyframes row-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.callsign{color:#39ff8c;font-weight:700}.vr.climbing{color:#6bffb0}.vr.descending{color:#ff8080}.plane-list-empty{color:#d7ffe880;text-align:center;padding:24px 4px}.plane-list-body::-webkit-scrollbar{width:6px}.plane-list-body::-webkit-scrollbar-thumb{background:#39ff8c4d;border-radius:3px}.app{color:#d7ffe8;background:radial-gradient(at top,#39ff8c0f,#0000 60%),#000904;flex-direction:column;gap:24px;width:100%;min-height:100svh;padding:28px 40px;display:flex}.app-header{border-bottom:1px solid #39ff8c33;justify-content:space-between;align-items:flex-end;padding-bottom:16px;display:flex}.title-block h1{letter-spacing:.06em;color:#eafff2;text-shadow:0 0 18px #39ff8c80;margin:0;font-family:Orbitron,sans-serif;font-size:clamp(28px,3.4vw,48px);font-weight:900}.title-block h1 .accent{color:#39ff8c}.subtitle{color:#d7ffe88c;letter-spacing:.05em;text-transform:uppercase;margin:6px 0 0;font-size:15px}.status-block{letter-spacing:.08em;align-items:center;gap:10px;font-size:14px;display:flex}.status-dot{background:#39ff8c;border-radius:50%;width:10px;height:10px;animation:1.6s ease-in-out infinite pulse;box-shadow:0 0 10px #39ff8c}.status-dot.loading{background:#ffd93d;box-shadow:0 0 10px #ffd93d}.status-dot.error{background:#ff6b6b;animation:none;box-shadow:0 0 10px #ff6b6b}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.status-text{color:#eafff2;font-weight:600}.last-updated{color:#d7ffe866}.app-main{flex:1;grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);align-items:stretch;gap:32px;display:grid}.error-banner{color:#ffb3b3;letter-spacing:.04em;background:#ff6b6b26;border:1px solid #ff6b6b80;border-radius:6px;padding:10px 20px;font-size:13px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.config-error{color:#ff6b6b;text-align:center;background:#000904;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100svh;padding:40px;display:flex}.config-error h1{letter-spacing:.08em;font-family:Orbitron,sans-serif}.config-error p{color:#d7ffe8b3;max-width:520px;font-size:15px}.config-error code{color:#39ff8c;background:#39ff8c1a;border-radius:4px;padding:2px 6px}.config-error .hint{color:#d7ffe866;font-size:13px}@media (width<=1000px){.app-main{grid-template-columns:1fr}}
