:root{--bg-deep: #050D1A;--bg-panel: #0A1628;--bg-card: #0F2040;--bg-elevated: #162B52;--border: #1E3A6E;--accent: #00A8FF;--accent-dim: #0066CC;--text-primary: #FFFFFF;--text-second: #8BA4C5;--text-muted: #4A6A9A;--green: #00D4AA;--amber: #F5A623;--red: #FF3B5C;--orange: #FF6B35;--purple: #A855F7;--sidebar-w: 280px;--radius: 4px;--radius-sm: 2px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:Inter,system-ui,sans-serif;font-size:12px;background:var(--bg-deep);color:var(--text-primary);-webkit-font-smoothing:antialiased}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit;color:inherit}input{font-family:inherit;font-size:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{display:flex;height:100%;width:100%;position:relative}.app__map{flex:1;position:relative;overflow:hidden}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);height:100%;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:10}.sidebar__brand{padding:20px 16px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar__wordmark{height:28px;width:auto;display:block;margin-bottom:8px}.sidebar__product-name{font-size:13px;font-weight:600;color:var(--accent);letter-spacing:.02em}.sidebar__product-subtitle{font-size:11px;color:var(--text-second);font-weight:400;margin-top:1px}.sidebar__content{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 0 8px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.sidebar__divider{height:1px;background:var(--border);margin:8px 0}.sidebar__section-label{font-size:10px;font-weight:600;color:var(--text-muted);letter-spacing:.08em;padding:8px 16px 4px}.sidebar__footer{padding:10px 12px;border-top:1px solid var(--border);display:flex;justify-content:space-between;flex-shrink:0}.mode-toggle{display:flex;gap:1px;padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.mode-toggle__btn{flex:1;padding:6px 8px;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-card);border-radius:var(--radius);transition:all .15s ease}.mode-toggle__btn--active{background:var(--accent);color:var(--bg-deep)}.mode-toggle__btn:hover:not(.mode-toggle__btn--active){color:var(--text-primary);background:var(--bg-elevated)}.tails-selector{padding:10px 12px}.tails-selector__header{font-size:10px;font-weight:600;color:var(--text-muted);letter-spacing:.08em;margin-bottom:6px}.tails-selector__search{margin-top:6px}.warn-modal{margin-top:8px;padding:10px 12px;background:#f5a6231f;border:1px solid var(--amber);border-radius:var(--radius)}.warn-modal p{font-size:11px;color:var(--text-second);margin-bottom:8px;line-height:1.5}.warn-modal__actions{display:flex;gap:6px}.filter-panel{padding:0 12px}.filter-panel__global-actions{display:flex;align-items:center;gap:6px;margin-bottom:8px}.filter-panel__count{font-size:10px;color:var(--text-muted);margin-left:auto}.filter-category{margin-bottom:4px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.filter-category__header{display:flex;align-items:center;gap:6px;padding:7px 10px;background:var(--bg-card);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.filter-category__header:hover{background:var(--bg-elevated)}.filter-category__dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.filter-category__name{font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-second);flex:1}.filter-category__meta,.filter-category__chevron{font-size:10px;color:var(--text-muted)}.filter-category__events{padding:4px 8px 6px;background:var(--bg-panel)}.filter-event{display:flex;align-items:center;gap:7px;padding:3px 2px;cursor:pointer;border-radius:var(--radius-sm);transition:background .1s}.filter-event:hover{background:var(--bg-card)}.filter-event input[type=checkbox]{width:12px;height:12px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.filter-event__name{font-size:11px;color:var(--text-second)}.btn{padding:6px 12px;border-radius:var(--radius);font-size:11px;font-weight:500;transition:all .15s ease;white-space:nowrap}.btn--primary{background:var(--accent);color:var(--bg-deep);font-weight:600}.btn--primary:hover{background:#29b6ff}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--secondary{background:transparent;border:1px solid var(--border);color:var(--text-second)}.btn--secondary:hover{border-color:var(--accent-dim);color:var(--text-primary)}.btn--danger{background:var(--red);color:#fff;font-weight:600}.btn--danger:hover{background:#f57}.btn--ghost{background:transparent;color:var(--text-muted);padding:4px 8px}.btn--ghost:hover{color:var(--text-primary)}.btn--active{background:var(--accent);color:var(--bg-deep);font-weight:600}.btn--full{width:100%}.btn--xs{font-size:10px;padding:3px 7px}.btn--icon{font-size:14px;padding:4px 8px;background:var(--bg-card);border-radius:var(--radius);color:var(--text-primary)}.btn--icon:hover{background:var(--bg-elevated)}.btn--play{font-size:16px;padding:4px 12px;background:var(--accent);color:var(--bg-deep)}.btn--play:hover{background:#29b6ff}.btn--speed{padding:3px 8px;font-size:10px;font-weight:600;background:var(--bg-card);color:var(--text-muted);border-radius:var(--radius-sm)}.btn--speed--active{background:var(--accent-dim);color:#fff}.input{width:100%;padding:7px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:11px;outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}.input--dark{background:var(--bg-deep)}.card{position:fixed;width:300px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px #0009,0 0 0 1px #00a8ff14;z-index:100;-webkit-user-select:none;user-select:none;cursor:grab}.card:active{cursor:grabbing}.card__header{display:flex;align-items:center;gap:8px;padding:10px 12px 10px 0;background:var(--bg-elevated);border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;position:relative;overflow:hidden}.card__color-bar{width:4px;height:100%;position:absolute;left:0;top:0;background:var(--card-color, var(--accent))}.card__event-name{font-size:12px;font-weight:600;color:var(--text-primary);margin-left:12px;flex:1}.card__category-badge{font-size:9px;font-weight:600;letter-spacing:.06em;color:var(--card-color, var(--accent));background:#00a8ff1a;padding:2px 6px;border-radius:var(--radius-sm)}.card__close{font-size:11px;color:var(--text-muted);padding:0 8px;cursor:pointer;flex-shrink:0}.card__close:hover{color:var(--red)}.card__section{padding:8px 12px;border-bottom:1px solid var(--border)}.card__section:last-of-type{border-bottom:none}.card__section--paired{background:#00d4aa0d}.card__section--doppelganger{background:#ff3b5c0f}.card__identity{display:flex;justify-content:space-between;align-items:flex-start}.card__field{display:flex;flex-direction:column;gap:1px}.card__field--right{align-items:flex-end}.card__label{font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase}.card__value{font-size:12px;color:var(--text-primary)}.card__value--large{font-size:16px;font-weight:600}.card__value--mono{font-family:Courier New,monospace}.card__row{display:flex;flex-direction:column;gap:1px;margin-bottom:4px}.card__row:last-child{margin-bottom:0}.card__row--split{flex-direction:row;gap:16px;align-items:flex-end}.card__badge{display:inline-block;font-size:9px;font-weight:600;letter-spacing:.06em;padding:2px 6px;border-radius:var(--radius-sm)}.card__badge--blue{background:#00a8ff26;color:var(--accent)}.card__badge--amber{background:#f5a62326;color:var(--amber)}.card__badge--red{background:#ff3b5c26;color:var(--red)}.card__badge--green{background:#00d4aa26;color:var(--green)}.card__drag-handle{text-align:center;padding:4px;font-size:9px;color:var(--text-muted);letter-spacing:.04em;border-top:1px solid var(--border)}.aircraft-panel{position:absolute;top:0;right:0;width:320px;height:100%;background:#0a1628f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-left:1px solid var(--border);display:flex;flex-direction:column;z-index:20;box-shadow:-8px 0 32px #0006}.aircraft-panel__header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.aircraft-panel__id{display:flex;flex-direction:column;flex:1}.aircraft-panel__icao{font-size:16px;font-weight:700;font-family:Courier New,monospace}.aircraft-panel__callsign{font-size:12px;color:var(--text-second)}.aircraft-panel__state{font-size:10px;font-weight:600;letter-spacing:.06em}.aircraft-panel__close{color:var(--text-muted)}.aircraft-panel__close:hover{color:var(--red)}.aircraft-panel__stats{display:flex;padding:12px 16px;gap:12px;border-bottom:1px solid var(--border);flex-shrink:0}.aircraft-panel__stat{flex:1;display:flex;flex-direction:column;gap:2px}.aircraft-panel__stat-value{font-size:13px;font-weight:600}.aircraft-panel__stat-label{font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--text-muted)}.aircraft-panel__timeline-header{font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted);padding:10px 16px 6px;display:flex;flex-direction:column;gap:2px;flex-shrink:0}.aircraft-panel__hop-id{font-family:Courier New,monospace;font-size:10px;color:var(--text-muted);font-weight:400}.aircraft-panel__timeline-scroll{flex:1;overflow-y:auto;padding:0 12px 12px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.timeline__loading,.timeline__error{font-size:11px;color:var(--text-muted);padding:12px 4px}.timeline__error{color:var(--red)}.timeline__event{display:flex;align-items:flex-start;gap:8px;padding:6px 4px;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s}.timeline__event:hover{background:var(--bg-elevated)}.timeline__dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:3px}.timeline__content{display:flex;flex-direction:column;gap:1px;flex:1}.timeline__name{font-size:11px;font-weight:500;color:var(--text-primary)}.timeline__time{font-size:10px;font-family:Courier New,monospace;color:var(--text-muted)}.timeline__meta{font-size:10px;color:var(--text-second)}.replay-controls{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:#0a1628f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;min-width:560px;max-width:760px;z-index:30;box-shadow:0 8px 32px #00000080}.replay-controls__range{display:flex;align-items:flex-end;gap:10px}.replay-controls__input-group{display:flex;flex-direction:column;gap:3px;flex:1}.replay-controls__label{font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--text-muted)}.replay-controls__error,.replay-controls__warn{font-size:10px;margin-top:6px;padding:4px 8px;border-radius:var(--radius-sm)}.replay-controls__error{color:var(--red);background:#ff3b5c1a}.replay-controls__warn{color:var(--amber);background:#f5a6231a}.replay-controls__playback{margin-top:10px;border-top:1px solid var(--border);padding-top:10px}.replay-controls__transport{display:flex;align-items:center;gap:6px;margin-bottom:8px}.replay-controls__speeds{display:flex;gap:3px;margin-left:8px}.replay-controls__scrubber{display:flex;align-items:center;gap:8px}.replay-controls__slider{flex:1;accent-color:var(--accent);height:3px;cursor:pointer}.replay-controls__time{font-size:10px;font-family:Courier New,monospace;color:var(--text-muted);white-space:nowrap}.replay-controls__now{font-size:10px;font-family:Courier New,monospace;color:var(--text-second);text-align:center;margin-top:6px}.hover-tooltip{position:fixed;background:#050d1af2;border:1px solid var(--border);border-radius:var(--radius);padding:4px 10px;pointer-events:none;z-index:200;display:flex;align-items:center;gap:6px;box-shadow:0 2px 8px #0006}.hover-tooltip__icao{font-family:Courier New,monospace;font-size:11px;font-weight:600;color:var(--accent)}.hover-tooltip__sep{color:var(--text-muted);font-size:10px}.hover-tooltip__name{font-size:11px;color:var(--text-primary)}.login-page{height:100%;width:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 30% 50%,rgba(0,168,255,.06) 0%,transparent 60%),radial-gradient(ellipse at 70% 50%,rgba(0,100,200,.04) 0%,transparent 60%),var(--bg-deep)}.login-card{width:340px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:32px 28px;box-shadow:0 16px 48px #0009,0 0 0 1px #00a8ff0f}.login-card__wordmark{height:32px;width:auto;display:block;margin-bottom:10px}.login-card__product{font-size:15px;font-weight:600;color:var(--accent);margin-bottom:2px}.login-card__subtitle{font-size:12px;color:var(--text-second);margin-bottom:24px}.login-card__form{display:flex;flex-direction:column;gap:10px}.login-card__error{font-size:11px;color:var(--red);background:#ff3b5c1a;padding:6px 10px;border-radius:var(--radius)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:300}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:480px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 16px 48px #0009}.modal__header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.modal__title{font-size:13px;font-weight:600}.modal__body{overflow-y:auto;padding:16px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.credits-group{margin-bottom:16px}.credits-group__name{font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase}.credits-item{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid rgba(30,58,110,.4)}.credits-item__name{font-size:11px;color:var(--accent)}.credits-item__licence{font-size:10px;color:var(--text-muted)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
