body{min-width:320px;margin:0;line-height:1.5}#root{width:100%}:root{--bg-color:#0b0f1a;--card-bg:#161c2db3;--header-bg:#0b0f1af2;--border:#ffffff14;--primary:#fbbf24;--primary-glow:#fbbf244d;--accent:#38bdf8;--success:#34d399;--error:#fb7185;--text-main:#f1f5f9;--text-muted:#94a3b8;--font-display:"Orbitron", "Space Grotesk", sans-serif;--font-sans:"Inter", sans-serif;--font-mono:"JetBrains Mono", "Roboto Mono", monospace;--shadow-lg:0 10px 15px -3px #00000080, 0 4px 6px -4px #00000080;--glass:blur(12px);--chart-grid:#ffffff1a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body,html{font-family:var(--font-sans);color:var(--text-main);-webkit-font-smoothing:antialiased;background-color:#04060f;background-image:radial-gradient(circle at 22% 20%,#5064b40d 0%,#0000 45%),radial-gradient(circle at 78% 72%,#785ac809 0%,#0000 42%),radial-gradient(1px 1px at 17px 33px,#ffffffd9 50%,#0000 51%),radial-gradient(1px 1px at 93px 141px,#ffffff80 50%,#0000 51%),radial-gradient(1.4px 1.4px at 161px 79px,#fffffff2 50%,#0000 51%),radial-gradient(1px 1px at 211px 188px,#fff6 50%,#0000 51%),radial-gradient(1.7px 1.7px at 247px 39px,#ffffffb3 50%,#0000 51%),radial-gradient(1px 1px at 53px 219px,#fff9 50%,#0000 51%),radial-gradient(1.2px 1.2px at 127px 254px,#ffffffbf 50%,#0000 51%);background-size:100% 100%,100% 100%,280px 280px,280px 280px,280px 280px,280px 280px,280px 280px,280px 280px,280px 280px;height:100dvh;margin:0;padding:0;overflow:hidden}.loading{text-align:center;color:#f1f5f9;font-family:var(--font-display);letter-spacing:.2em;padding:4rem 1rem;font-size:.85rem}.dashboard-container{box-sizing:border-box;flex-direction:column;height:100dvh;display:flex}.dashboard-header{background:var(--header-bg);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border-bottom:1px solid var(--border);z-index:10;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;padding:.75rem clamp(1rem,3vw,2rem);display:flex}.header-left,.header-right{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.flight-time,.flight-id{border:1px solid var(--border);font-family:var(--font-display);color:var(--text-main);letter-spacing:.1em;font-variant-numeric:tabular-nums;background:#0000004d;border-radius:2px;align-items:center;gap:.4rem;padding:.25rem .75rem;font-size:.85rem;display:flex}.flight-time-label,.flight-id-label{font-family:var(--font-display);color:var(--text-muted);letter-spacing:.15em;font-size:.65rem;font-weight:700}.header-left h1{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:#fff;margin:0;font-size:.9rem;font-weight:700}.dashboard-grid{flex:1;grid-template:"altitude map"1.5fr"left-metrics right-metrics"1fr/1fr 1.2fr;gap:1rem;min-height:0;padding:1rem;display:grid}.glass-card{background:var(--card-bg);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);box-sizing:border-box;box-shadow:var(--shadow-lg);border-radius:4px;flex-direction:column;min-height:0;padding:.45rem 1.5rem 1.25rem;animation:.8s ease-out forwards fade-in;display:flex;position:relative;overflow:hidden}.glass-card:before{content:"";background:linear-gradient(90deg, transparent, var(--border), transparent);width:100%;height:2px;position:absolute;top:0;left:0}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.altitude-section{grid-area:altitude}.metric-head{align-items:baseline;gap:.75rem;margin-bottom:.5rem;display:flex}.metric-head .label{flex:1;min-width:0;margin-bottom:0}.metric-meta{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;font-size:clamp(1rem,1.15vw,1.45rem);font-weight:500}.metric-meta strong{color:var(--text-main);margin:0 .3em;font-weight:500}.metric-chart{flex-direction:column;flex:1;min-height:0;margin-top:1rem;display:flex}.metric-chart-canvas{flex:1;min-height:0}.range-btn{border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.05em;cursor:pointer;background:0 0;border-radius:2px;padding:.35rem .7rem;font-size:.8rem;transition:all .15s}.range-btn:hover{border-color:var(--text-main);color:var(--text-main)}.range-btn.active{border-color:var(--primary);color:var(--primary);background:#fbbf2414}.metrics-row{grid-template-columns:1fr 1fr;gap:1rem;min-height:0;display:grid}.left-metrics{grid-area:left-metrics}.right-metrics{grid-area:right-metrics}.map-wrapper{border:4px solid var(--bg-color);border-radius:2px;width:100%;height:100%;min-height:300px;position:relative}.map-wrapper:after{content:"";pointer-events:none;z-index:400;position:absolute;inset:0;box-shadow:inset 0 0 30px #000000b3}.map-recenter-btn{z-index:1000;font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:#e2e8f0;cursor:pointer;background:#0b0f1ad9;border:1px solid #ffffff40;border-radius:4px;align-items:center;padding:.5rem .9rem;font-size:.72rem;font-weight:700;line-height:1;transition:color .15s,border-color .15s,background .15s;display:inline-flex;position:absolute;bottom:12px;left:12px}.map-recenter-btn:hover{color:#fff;background:#0b0f1af2;border-color:#fff}.leaflet-container{background:#111!important}.leaflet-container .leaflet-tile-pane{filter:brightness(2.4)contrast(1.15)saturate(1.3)}.map-wrapper--satellite .leaflet-container .leaflet-tile-pane{filter:none}.balloon-marker{filter:drop-shadow(0 2px 4px #0009);background:0 0;border:none}.map-section{grid-area:map;padding:1.5rem;overflow:hidden}.image-section{min-height:0}.latest-image-wrapper{border:4px solid var(--bg-color);border-radius:2px;flex:1;min-height:0;overflow:hidden}.latest-image{object-fit:contain;object-position:center;width:100%;height:100%}.image-empty{color:var(--text-muted);font-family:var(--font-display);letter-spacing:.1em;flex:1;justify-content:center;align-items:center;font-size:.75rem;display:flex}.label{font-family:var(--font-display);color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:clamp(.9rem,1vw,1.3rem);font-weight:500;display:flex}.label:after{content:"";background:var(--border);flex:1;height:1px}.value-large{font-family:var(--font-display);color:#fff;letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:0;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:500;line-height:.95}.value-medium{font-family:var(--font-display);color:var(--text-main);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:0;font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:500;line-height:1}.unit{font-family:var(--font-sans);color:var(--text-muted);text-transform:none;letter-spacing:normal;margin-left:.6rem;font-size:.25em;font-weight:600}.value-large .unit{font-size:.48em}.value-medium .unit{font-size:.54em}.status-indicator{font-family:var(--font-display);letter-spacing:.1em;border:1px solid var(--border);background:#0000004d;border-radius:2px;align-items:center;gap:.75rem;min-width:120px;padding:.4rem 1rem;font-size:.7rem;font-weight:700;transition:all .3s;display:flex}.status-dot{background:currentColor;border-radius:50%;width:8px;height:8px}.online{color:var(--success);border-color:#34d39933;animation:2s infinite pulse-border}.offline{color:var(--primary);border-color:#fbbf2433;animation:2s infinite pulse-border}@keyframes pulse-border{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.recharts-cartesian-grid line{stroke:var(--chart-grid)}.recharts-tooltip-cursor{stroke:var(--border)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:var(--border)}::-webkit-scrollbar-thumb:hover{background:var(--primary)}@media (width<=1100px){body,html{height:auto;overflow:auto}.dashboard-grid{grid-template:none/1fr;height:auto;overflow-y:auto}.dashboard-container{height:auto;overflow-y:auto}.altitude-section,.map-section,.left-metrics,.right-metrics{grid-area:auto}.map-section{order:-1}.dashboard-header{position:sticky;top:0}.altitude-section,.map-section{min-height:400px}.metrics-row{min-height:320px}}@media (width<=640px){.dashboard-grid{gap:.75rem;padding:.75rem}.dashboard-header{gap:.5rem .75rem;padding:.6rem .75rem}.glass-card{padding:.35rem 1rem 1rem}.header-left h1{letter-spacing:.15em;font-size:.8rem}.flight-time,.flight-id{padding:.2rem .5rem;font-size:.75rem}.metrics-row{grid-template-columns:1fr;min-height:0}.metrics-row .glass-card{min-height:280px}.altitude-section{min-height:320px}.map-section{min-height:clamp(300px,45dvh,420px)}.status-indicator{min-width:0}}@media (width<=400px){.dashboard-grid{gap:.5rem;padding:.5rem}.metrics-row{gap:.5rem}.glass-card{padding:.3rem .75rem .75rem}.header-left,.header-right{gap:.5rem}.header-left h1{letter-spacing:.1em;font-size:.7rem}.flight-time,.flight-id{font-size:.7rem}}@media (pointer:coarse){.range-btn{padding:.5rem .85rem}}@media (width>=1101px) and (height<=950px){.glass-card{padding:.35rem 1.25rem 1rem}.value-large{font-size:clamp(2.2rem,4vw,3.2rem)}.value-medium{font-size:clamp(1.4rem,2.5vw,2rem)}.label,.metric-head{margin-bottom:.25rem}.metric-chart{margin-top:.6rem}}.globe-wrapper{border:4px solid var(--bg-color);border-radius:2px;width:100%;height:100%;min-height:300px;position:relative;overflow:hidden}.globe-canvas,.globe-canvas .cesium-widget,.globe-canvas .cesium-widget canvas{width:100%;height:100%}.globe-overlay{text-align:center;color:#f1f5f9;font-family:var(--font-display);letter-spacing:.15em;z-index:500;background:#04060fd9;justify-content:center;align-items:center;padding:1rem;font-size:.8rem;line-height:1.6;display:flex;position:absolute;inset:0}.control-window{z-index:3000;width:240px;max-height:calc(100vh - 24px);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow-lg);color:#f1f5f9;-webkit-user-select:none;user-select:none;background:#0b0f1aeb;border:1px solid #ffffff1f;border-radius:4px;flex-direction:column;display:flex;position:fixed}.control-titlebar{cursor:move;touch-action:none;border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.control-title{font-family:var(--font-display);letter-spacing:.15em;font-size:.8rem;font-weight:700}.control-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.2rem;line-height:1}.control-close:hover{color:#fff}.control-body{flex-direction:column;gap:.75rem;padding:.75rem;display:flex;overflow-y:auto}.control-section{flex-direction:column;gap:.5rem;display:flex}.control-section.disabled{opacity:.5}.control-label{font-family:var(--font-display);letter-spacing:.15em;color:#94a3b8;text-transform:uppercase;font-size:.7rem;font-weight:700}.control-row{flex-wrap:wrap;gap:.3rem;display:flex}.control-row .range-btn{flex:1}.control-wide{width:100%}.control-hint{font-family:var(--font-sans);color:#94a3b8;font-size:.7rem;line-height:1.4}.control-window .range-btn{color:#94a3b8;border-color:#ffffff2e}.control-window .range-btn:hover{color:#fff;border-color:#fff}.control-window .range-btn.active{color:#fbbf24;background:#fbbf241f;border-color:#fbbf24}.control-window .range-btn:disabled{opacity:.5;cursor:not-allowed}.control-window .range-btn:disabled:hover{color:#94a3b8;border-color:#ffffff2e}.open-control-btn{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #ffffff2e;border-radius:4px;justify-content:center;align-items:center;padding:.4rem .9rem;font-size:.72rem;font-weight:700;line-height:1;transition:color .15s,border-color .15s;display:inline-flex}.open-control-btn:hover{color:#fff;border-color:#fff}.maintenance-launcher{z-index:2000;font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:#94a3b8;cursor:pointer;background:#0b0f1ad9;border:1px solid #ffffff40;border-radius:4px;justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.72rem;font-weight:700;line-height:1;transition:color .15s,border-color .15s;display:inline-flex;position:fixed;top:16px;right:16px}.maintenance-launcher:hover{color:#fff;border-color:#fff}.maintenance-overlay{z-index:1500;text-align:center;color:#f1f5f9;background:radial-gradient(circle at 50% 38%,#5064b424 0%,#0000 55%),#04060f;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0;overflow-y:auto}.maintenance-inner{flex-direction:column;align-items:center;gap:1rem;max-width:40rem;margin:auto 0;display:flex}.maintenance-logo{font-family:var(--font-display);letter-spacing:.12em;color:#fff;white-space:nowrap;margin:0;font-size:clamp(1.7rem,7vw,5rem);font-weight:700;line-height:.95}@media (width<=360px){.maintenance-logo{white-space:normal}}.maintenance-tagline{font-family:var(--font-display);letter-spacing:.15em;color:#94a3b8;margin:0;font-size:clamp(.9rem,2vw,1.4rem)}.maintenance-logos{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(1rem,4vw,2.5rem);margin-top:.5rem;display:flex}.maintenance-logo-img{object-fit:contain;width:auto;height:clamp(2.5rem,8vw,5rem)}.maintenance-about{flex-direction:column;gap:1rem;max-width:34rem;margin-top:1.25rem;display:flex}.maintenance-about-text{font-family:var(--font-sans);color:#cbd5e1;margin:0;font-size:clamp(.95rem,2.4vw,1.15rem);line-height:1.7}.maintenance-links{flex-wrap:wrap;justify-content:center;gap:1.25rem;margin-top:1rem;display:flex}.maintenance-link{font-family:var(--font-mono);letter-spacing:.05em;color:#94a3b8;border-bottom:1px solid #0000;font-size:.95rem;text-decoration:none;transition:color .15s,border-color .15s}.maintenance-link:hover{color:#fff;border-color:#fff}
