@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--glass-bg: rgba(20, 20, 30, .55);--glass-bg-hover: rgba(30, 30, 45, .7);--glass-bg-strong: rgba(25, 25, 40, .75);--glass-border: rgba(255, 255, 255, .1);--glass-border-hi: rgba(255, 255, 255, .18);--glass-highlight: linear-gradient(135deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, .04) 100%);--glass-shadow: 0 2px 24px rgba(0, 0, 0, .2), 0 0 1px rgba(255, 255, 255, .05);--glass-shadow-lg: 0 8px 48px rgba(0, 0, 0, .3), 0 0 1px rgba(255, 255, 255, .08);--glass-blur: blur(40px) saturate(180%);--glass-blur-sm: blur(20px) saturate(160%);--accent-blue: #0A84FF;--accent-cyan: #64D2FF;--accent-green: #30D158;--accent-orange: #FF9F0A;--accent-red: #FF453A;--accent-purple: #BF5AF2;--accent-pink: #FF375F;--accent-teal: #6AC4DC;--accent-amber: #FFD60A;--accent-indigo: #5E5CE6;--text-primary: rgba(255, 255, 255, .92);--text-secondary: rgba(255, 255, 255, .55);--text-muted: rgba(255, 255, 255, .3);--text-on-accent: #ffffff;--radius-sm: 12px;--radius-md: 18px;--radius-lg: 24px;--radius-xl: 32px;--radius-pill: 999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--spring: .4s cubic-bezier(.34, 1.56, .64, 1);--ease: .25s cubic-bezier(0, 0, .2, 1);--smooth: .35s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);color:var(--text-primary);min-height:100vh;overflow-x:hidden;background:radial-gradient(ellipse 120% 80% at 15% 5%,rgba(10,132,255,.15),transparent 50%),radial-gradient(ellipse 100% 70% at 85% 15%,rgba(191,90,242,.12),transparent 50%),radial-gradient(ellipse 80% 60% at 50% 95%,rgba(255,159,10,.08),transparent 50%),radial-gradient(ellipse 70% 50% at 5% 80%,rgba(48,209,88,.06),transparent 50%),linear-gradient(145deg,#0c0c14,#10101c,#0e0e1a 60%,#111118);background-attachment:fixed}a{color:var(--accent-cyan);text-decoration:none}a:hover{text-decoration:underline}.app-container{max-width:1440px;margin:0 auto;padding:0 24px 60px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;margin:16px 0 24px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow-lg);position:relative;overflow:hidden;flex-wrap:wrap;gap:16px}.app-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,#ffffff0f,#fff0 50%);pointer-events:none}.header-brand{display:flex;align-items:center;gap:14px;position:relative;z-index:1}.header-icon{width:48px;height:48px;background:linear-gradient(135deg,var(--accent-blue),var(--accent-cyan));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 4px 20px #0a84ff59,inset 0 1px 1px #ffffff26}.header-title{font-size:1.55rem;font-weight:700;letter-spacing:-.5px;background:linear-gradient(135deg,#fff 0%,var(--accent-cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-subtitle{font-size:.82rem;color:var(--text-secondary);font-weight:400;margin-top:1px}.header-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;position:relative;z-index:1}.live-dot{width:8px;height:8px;background:var(--accent-green);border-radius:50%;display:inline-block;animation:pulse-dot 2s ease-in-out infinite;margin-right:6px;box-shadow:0 0 10px #30d15880}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.meta-text{font-size:.85rem;color:var(--text-secondary);font-weight:500;background:#ffffff0f;padding:6px 16px;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.08)}.filters-bar{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border:1px solid var(--glass-border);border-radius:var(--radius-xl);margin-bottom:24px;flex-wrap:wrap;box-shadow:var(--glass-shadow);position:relative;z-index:20}.filters-bar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,#ffffff0a,#fff0);pointer-events:none}.filter-group{display:flex;align-items:center;gap:8px;position:relative;z-index:1}.filter-label{font-size:.75rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.filter-input,.filter-select{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text-primary);padding:8px 14px;font-size:.85rem;font-family:var(--font-sans);transition:all var(--ease);outline:none}.filter-input:focus,.filter-select:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px #0a84ff33;background:#ffffff1a}.filter-select{cursor:pointer;padding-right:28px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.filter-select option{background:#1a1a2e;color:#fff}.filter-date-range{display:flex;align-items:center;gap:6px}.filter-date-sep{color:var(--text-muted);font-size:.8rem;font-weight:500}.search-select{position:relative;z-index:10}.search-select-trigger{display:flex;align-items:center;gap:6px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text-primary);padding:8px 14px;font-size:.85rem;font-family:var(--font-sans);cursor:pointer;transition:all var(--ease);min-width:120px;text-align:left}.search-select-trigger:hover,.search-select-trigger.open{border-color:var(--accent-blue);background:#ffffff1a}.search-select-value{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-select-value.placeholder{color:var(--text-muted)}.search-select-arrow{font-size:.7rem;color:var(--text-muted);transition:transform var(--ease)}.search-select-trigger.open .search-select-arrow{transform:rotate(180deg)}.search-select-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:280px;background:#141423f2;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-hi);border-radius:var(--radius-sm);box-shadow:0 12px 40px #00000080;animation:dropIn .2s ease-out;overflow:hidden}@keyframes dropIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.search-select-search-wrap{padding:8px;border-bottom:1px solid rgba(255,255,255,.06)}.search-select-input{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary);padding:6px 10px;font-size:.82rem;font-family:var(--font-sans);outline:none}.search-select-input:focus{border-color:var(--accent-blue)}.search-select-options{max-height:200px;overflow-y:auto;padding:4px}.search-select-option{padding:7px 12px;font-size:.83rem;border-radius:8px;cursor:pointer;transition:background .12s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-select-option:hover{background:#ffffff14}.search-select-option.active{background:#0a84ff33;color:var(--accent-cyan);font-weight:600}.search-select-empty{padding:12px;text-align:center;color:var(--text-muted);font-size:.82rem}.filter-toggle-group{display:flex;position:relative;border-radius:var(--radius-sm);background:#ffffff0f;border:1px solid rgba(255,255,255,.08);padding:3px;gap:2px}.filter-toggle{padding:6px 18px;font-size:.82rem;font-weight:600;background:transparent;color:var(--text-secondary);border:none;cursor:pointer;transition:all var(--spring);font-family:var(--font-sans);border-radius:9px;position:relative;z-index:1}.filter-toggle:hover{color:var(--text-primary)}.filter-toggle.active{color:var(--text-on-accent);background:var(--accent-blue);box-shadow:0 2px 12px #0a84ff66;transform:scale(1.02)}.filter-toggle+.filter-toggle{border-left:none}.filter-spacer{flex:1}.filter-search{min-width:200px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px}.kpi-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:22px 24px;transition:all var(--spring);position:relative;overflow:hidden;box-shadow:var(--glass-shadow)}.kpi-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--glass-highlight);pointer-events:none;opacity:.6;mask-image:linear-gradient(180deg,white 0%,transparent 50%);-webkit-mask-image:linear-gradient(180deg,white 0%,transparent 50%)}.kpi-card:after{content:"";position:absolute;top:-20px;right:-20px;width:80px;height:80px;border-radius:50%;filter:blur(35px);opacity:.2;pointer-events:none}.kpi-card.cyan:after{background:var(--accent-cyan)}.kpi-card.amber:after{background:var(--accent-orange)}.kpi-card.green:after{background:var(--accent-green)}.kpi-card.purple:after{background:var(--accent-purple)}.kpi-card.blue:after{background:var(--accent-blue)}.kpi-card.pink:after{background:var(--accent-pink)}.kpi-card:hover{transform:translateY(-3px) scale(1.02);box-shadow:var(--glass-shadow-lg);border-color:var(--glass-border-hi)}.kpi-label{font-size:.73rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;position:relative;z-index:1}.kpi-value{font-size:2rem;font-weight:700;font-family:var(--font-mono);letter-spacing:-1px;line-height:1;position:relative;z-index:1}.kpi-value.cyan{color:var(--accent-cyan)}.kpi-value.amber{color:var(--accent-orange)}.kpi-value.green{color:var(--accent-green)}.kpi-value.purple{color:var(--accent-purple)}.kpi-value.blue{color:var(--accent-blue)}.kpi-value.pink{color:var(--accent-pink)}.kpi-sub{font-size:.78rem;color:var(--text-secondary);margin-top:6px;position:relative;z-index:1}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:28px}@media(max-width:900px){.charts-grid{grid-template-columns:1fr}}.chart-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:22px;transition:all var(--smooth);box-shadow:var(--glass-shadow);position:relative;overflow:hidden}.chart-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.04) 0%,transparent 40%);pointer-events:none}.chart-card:hover{box-shadow:var(--glass-shadow-lg);border-color:var(--glass-border-hi)}.chart-card.wide{grid-column:span 2}@media(max-width:900px){.chart-card.wide{grid-column:span 1}}.chart-title{font-size:.92rem;font-weight:700;color:var(--text-primary);margin-bottom:18px;display:flex;align-items:center;gap:8px;position:relative;z-index:1}.chart-title-icon{font-size:1rem}.chart-clickable{cursor:pointer}.chart-clickable .recharts-bar-rectangle,.chart-clickable .recharts-pie-sector{cursor:pointer;transition:filter .15s}.chart-clickable .recharts-bar-rectangle:hover,.chart-clickable .recharts-pie-sector:hover{filter:brightness(1.2)}.table-section{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--glass-shadow)}.table-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid rgba(255,255,255,.06)}.table-title{font-size:1rem;font-weight:700;display:flex;align-items:center;gap:8px}.table-count{font-size:.8rem;color:var(--text-muted);font-family:var(--font-mono)}.table-wrapper{overflow-x:auto}.flight-table{width:100%;border-collapse:collapse;font-size:.85rem}.flight-table thead th{background:#ffffff0a;padding:12px 16px;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);border-bottom:1px solid rgba(255,255,255,.06);white-space:nowrap;position:sticky;top:0}.flight-table tbody tr{border-bottom:1px solid rgba(255,255,255,.03);transition:background var(--ease)}.flight-table tbody tr:hover{background:#0a84ff0f}.flight-table td{padding:11px 16px;white-space:nowrap}.flight-table .col-airline{font-weight:600}.flight-table .col-fltno{font-family:var(--font-mono);font-weight:600;color:var(--accent-cyan);font-size:.88rem}.flight-table .col-code{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted);font-weight:500}.flight-table .col-time{font-family:var(--font-mono);font-weight:500}.flight-table .col-gate{font-family:var(--font-mono);text-align:center;color:var(--accent-purple);font-weight:600}.flight-table .col-pax{font-family:var(--font-mono);text-align:right;font-weight:600;color:var(--accent-orange)}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:var(--radius-pill);font-size:.73rem;font-weight:600}.status-badge.arrived,.status-badge.departed{background:#30d1581f;color:var(--accent-green)}.status-badge.on-time{background:#64d2ff1a;color:var(--accent-cyan)}.status-badge.delayed{background:#ff9f0a1f;color:var(--accent-orange)}.status-badge.cancelled{background:#ff453a1f;color:var(--accent-red)}.status-badge.other{background:#ffffff0d;color:var(--text-secondary)}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.type-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-pill);font-size:.72rem;font-weight:700;letter-spacing:.5px}.type-badge.arrival{background:#0a84ff1f;color:var(--accent-blue)}.type-badge.departure{background:#ff9f0a1f;color:var(--accent-orange)}.pagination{display:flex;align-items:center;justify-content:center;gap:6px;padding:16px 22px;border-top:1px solid rgba(255,255,255,.06)}.page-btn{padding:6px 14px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.08);background:#ffffff0d;color:var(--text-secondary);font-size:.82rem;font-weight:600;cursor:pointer;transition:all var(--spring);font-family:var(--font-sans)}.page-btn:hover:not(:disabled){border-color:var(--accent-blue);color:var(--accent-blue);background:#0a84ff1a;transform:scale(1.05)}.page-btn.active{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue);box-shadow:0 2px 12px #0a84ff66}.page-btn:disabled{opacity:.3;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:modalFadeIn .25s ease-out;padding:24px}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#141423eb;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-hi);border-radius:var(--radius-xl);box-shadow:0 24px 80px #00000080,0 0 1px #ffffff1a;width:90%;max-width:900px;max-height:80vh;display:flex;flex-direction:column;animation:modalSlideUp .3s var(--spring);position:relative;overflow:hidden}.modal-content:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.06) 0%,transparent 40%);pointer-events:none}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.06);position:relative;z-index:1}.modal-title{font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:10px}.modal-close{width:32px;height:32px;border-radius:50%;border:none;background:#ffffff14;color:var(--text-secondary);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--ease)}.modal-close:hover{background:#ff453a33;color:var(--accent-red);transform:scale(1.1)}.modal-body{padding:0;overflow-y:auto;flex:1}.modal-body .flight-table thead th{background:#ffffff0a}.loading-container,.empty-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-muted)}.spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.08);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:.9rem;font-weight:500}.empty-icon{font-size:3rem;margin-bottom:12px;opacity:.3}.empty-text{font-size:.95rem;font-weight:500}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:#ffffff0a}.recharts-text{fill:var(--text-muted)!important;font-family:var(--font-sans)!important;font-size:11px!important}.recharts-tooltip-wrapper{filter:drop-shadow(0 4px 20px rgba(0,0,0,.4))}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff26}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-in{animation:fadeInUp .5s var(--spring) both}.animate-in:nth-child(1){animation-delay:0s}.animate-in:nth-child(2){animation-delay:.06s}.animate-in:nth-child(3){animation-delay:.12s}.animate-in:nth-child(4){animation-delay:.18s}.animate-in:nth-child(5){animation-delay:.24s}.animate-in:nth-child(6){animation-delay:.3s}@media(max-width:640px){.app-container{padding:0 12px 40px}.app-header{border-radius:var(--radius-lg);padding:16px 18px;margin:8px 0 16px}.header-title{font-size:1.2rem}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}.kpi-value{font-size:1.5rem}.filters-bar{padding:12px 14px;border-radius:var(--radius-lg)}.filter-search{min-width:140px}.modal-content{width:98%;max-height:90vh}}
