@import"https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600&family=Roboto:wght@300;400;500;700&display=swap";:root{--primary-color: #3498db;--primary-hover: #2980b9;--secondary-color: #6c757d;--success-color: #2ecc71;--danger-color: #e74c3c;--warning-color: #f39c12;--info-color: #17a2b8;--dark-background: #212529;--dark-menu-dropdown: #2c3e50;--dark-hover: #34495e;--dark-menu: #1a1f23;--dark-text: #ecf0f1;--light-border: rgba(255, 255, 255, .1);--menu-height: 36px;--menu-shadow: 0 2px 8px rgba(0, 0, 0, .25);--popup-shadow: 0 4px 16px rgba(0, 0, 0, .3);--dropdown-shadow: 0 8px 16px rgba(0, 0, 0, .2)}html,body{overflow:hidden;margin:0;padding:0;background-color:#212529;height:100vh;font-family:Roboto,Open Sans,sans-serif;transform:translateZ(0);color:#ecf0f1}.app{display:flex;flex-direction:column;height:100%;width:100%;position:relative}.menu{min-height:36px;background-color:#1a1f23;display:flex;align-items:center;position:relative;box-shadow:0 2px 8px #00000040;z-index:10001}.version{color:#6c757d;margin-left:auto;padding:0 20px;font-size:12px;letter-spacing:.5px}.menu-item:first-child{margin-left:15px}.menu-item{color:#ecf0f1;cursor:pointer;padding:0 12px;display:flex;height:100%;align-items:center;justify-content:center;position:relative;font-weight:400;font-size:14px;letter-spacing:.3px;transition:background-color .2s}.menu-item:hover{background-color:#34495e}.menu-item:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:3px;background-color:#3498db;transform:translate(-50%);transition:width .2s}.menu-item:hover:after{width:100%}.dropdown{background-color:#2c3e50;color:#ecf0f1;border-radius:0;min-width:180px;position:absolute;z-index:10000;display:flex;flex-direction:column;top:36px;left:0;overflow:hidden;box-shadow:0 8px 16px #0003;animation:dropdownFade .2s ease;border:1px solid rgba(255,255,255,.1)}.dropdown.submenu{top:0;left:100%;margin-left:2px;z-index:10001!important}.submenu-item{position:relative}.submenu-item:hover .dropdown.submenu{display:flex!important}.menu-item.submenu-active{background-color:#34495e}.menu-item.submenu-active:after{width:100%}.dropdown-item.submenu-parent-active{background-color:#34495e!important}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{box-sizing:border-box;width:100%;padding:10px 15px;border-bottom:1px solid rgba(255,255,255,.1);min-width:max-content;display:flex;align-items:center;gap:10px;color:#ecf0f1;transition:background-color .2s;cursor:pointer;position:relative}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background-color:#34495e}.dropdown-item input[type=checkbox]{pointer-events:none}.select-facility-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:380px;background-color:#2c3e50;display:flex;flex-direction:column;border-radius:6px;z-index:999999;box-shadow:0 4px 16px #0000004d;overflow:hidden;animation:popupAppear .3s ease;transition:opacity .3s,transform .3s}.select-facility-container.fade-out{opacity:0;transform:translate(-50%,-60%)}@keyframes popupAppear{0%{opacity:0;transform:translate(-50%,-60%)}to{opacity:1;transform:translate(-50%,-50%)}}.popup-header{height:50px;width:100%;display:flex;justify-content:space-between;align-items:center;background-color:#1a1f23;box-sizing:border-box;padding:0 20px;border-bottom:1px solid rgba(255,255,255,.1);font-weight:500;font-size:16px;color:#3498db}.facility-description{margin:15px 20px;color:#ecf0f1;font-size:14px;line-height:1.4;padding-bottom:5px;border-bottom:1px solid rgba(255,255,255,.1);opacity:.8}.close-btn{color:#ecf0f1;cursor:pointer;width:32px;height:32px;display:flex;justify-content:center;align-items:center;border-radius:50%;transition:all .2s ease}.close-btn:hover{background-color:#e74c3c;color:#fff}.close-btn img{width:16px;height:16px;opacity:.8}.button-container{display:flex;justify-content:flex-end;padding:15px 20px 20px;gap:10px}.cancel-btn{padding:8px 15px;border:none;border-radius:4px;background-color:#6c757d;color:#ecf0f1;font-size:14px;cursor:pointer;transition:background-color .2s}.cancel-btn:hover{background-color:#34495e}.select-facility-menu{margin:5px 20px 15px;height:45px;width:calc(100% - 40px);font-size:16px;padding:0 12px;border-radius:4px;border:1px solid rgba(255,255,255,.1);background-color:#212529;color:#ecf0f1;appearance:none;cursor:pointer;outline:none;transition:border-color .2s}.select-facility-menu:hover,.select-facility-menu:focus{border-color:#3498db}.select-facility-menu option{background-color:#212529;color:#ecf0f1;padding:10px}.webgl{outline:none;flex:1;cursor:crosshair;image-rendering:optimizeSpeed}.webgl:active{cursor:grabbing}.blur{position:absolute;background:#00000080;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);height:100vh;width:100vw;z-index:99998;animation:blurIn .3s ease;transition:opacity .3s}.blur.fade-out{opacity:0}@keyframes blurIn{0%{opacity:0}to{opacity:1}}.overlay{position:absolute;top:50px;left:50%;transform:translate(-50%);font-size:16px;display:flex;flex-direction:row;gap:12px;z-index:50;align-items:center;padding:8px 12px;background-color:#212529b3;border-radius:4px;box-shadow:0 2px 8px #0003}.overlay2{position:absolute;top:130px;left:15px;font-size:16px;gap:12px;height:100px;color:#2ecc71;font-family:consolas,monospace;z-index:50}.facility,.sectors{color:#2ecc71;font-family:consolas,monospace;display:none;gap:10px;align-items:center}.airspace-details-popup{position:fixed;background-color:#212529d9;color:#2ecc71;font-family:consolas,monospace;padding:6px 10px;border-radius:4px;font-size:14px;z-index:10000;pointer-events:none;box-shadow:0 2px 8px #0000004d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sector{padding:2px 6px;background-color:#2ecc7133;border-radius:3px}.controller.color>.widget>input[type=text]{display:none}.lil-gui{font-size:14px}.lil-gui.root{gap:10px;background-color:var(--dark-menu);color:var(--dark-text);border-radius:5px;position:absolute;top:var(--menu-height);right:0}.lil-gui.root>.title:first-child{font-size:14px}.dropdown-item-disabled{color:#6c757d;cursor:not-allowed;opacity:.6;pointer-events:none}.dropdown-item-disabled:hover{background-color:transparent;cursor:not-allowed}.config-form{margin-top:15px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#ecf0f1;font-size:14px;font-weight:500}.config-select{width:100%;padding:10px 12px;background-color:#34495e;color:#ecf0f1;border:1px solid #4a5f7a;border-radius:4px;font-size:14px;cursor:pointer;transition:border-color .2s,background-color .2s}.config-select:focus{outline:none;border-color:#3498db;background-color:#3c5572}.config-select:hover{border-color:#5a6f8a}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.config-btn{padding:8px 16px;border:1px solid #34495e;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s}.cancel-btn{background-color:#6c757d;color:#fff}.cancel-btn:hover{background-color:#5a6268}.submit-btn{background-color:#2c3e50;color:#fff}.submit-btn:hover{background-color:#34495e}.config-btn:active{transform:translateY(1px)}.ap-logo{height:20px;margin-left:8px;margin-right:8px}.glow-effect{filter:drop-shadow(0 0 10px rgba(0,123,255,.8))}.outline-effect{filter:drop-shadow(0 0 2px white) drop-shadow(0 0 5px #ff00ff)}.neon-effect{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 8px #919191);transition:filter .3s ease}.neon-effect:hover{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 8px #347cdb)}.help-popup-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:480px;background-color:#2c3e50;display:flex;flex-direction:column;border-radius:6px;z-index:999999;box-shadow:0 4px 16px #0000004d;overflow:hidden;animation:popupAppear .3s ease}.help-popup-content{padding:20px;color:#ecf0f1}.help-popup-content h2{color:#3498db;margin-top:0;margin-bottom:20px;font-size:22px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:10px}.help-popup-content h3{color:#2ecc71;margin-top:15px;margin-bottom:10px;font-size:16px}.control-group{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.control-item{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.control-action{width:120px;font-weight:500;color:#2ecc71}.control-key{background-color:#34495e;padding:5px 10px;border-radius:4px;font-family:Consolas,monospace;font-size:14px;border:1px solid rgba(255,255,255,.1)}.control-or{color:#6c757d;font-size:14px;font-style:italic}.tip-container{background-color:#21252980;border-radius:4px;padding:10px 15px;margin-top:15px}.tip-container ul{margin:10px 0 5px;padding-left:20px}.tip-container ul li{margin-bottom:8px;line-height:1.4}.key{background-color:#34495e;padding:2px 6px;border-radius:3px;font-family:Consolas,monospace;font-size:13px;border:1px solid rgba(255,255,255,.1)}.playback-controls-container{position:fixed;bottom:0;left:0;right:0;height:80px;background:linear-gradient(to bottom,#2d343ae6,#1a1f23f2,#12161afa);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.1);z-index:1000;display:flex;align-items:center;padding:0 20px;box-shadow:0 -2px 10px #0000004d;animation:slideUpFromBottom .3s ease}@keyframes slideUpFromBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.playback-controls-content{display:flex;align-items:center;justify-content:space-between;width:100%}.scenario-info{display:flex;flex-direction:column;align-items:flex-start}.scenario-title{font-size:14px;font-weight:600;color:#3498db;margin-bottom:2px}.scenario-clock-display{font-family:consolas,monospace;font-size:16px;font-weight:700;color:#2ecc71}.main-controls{display:flex;align-items:center;gap:15px}.control-btn{width:45px;height:45px;border:none;border-radius:50%;background-color:#3498db;color:#fff;font-size:16px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.secondary-controls{display:flex;align-items:center;gap:20px;min-width:300px;justify-content:flex-end}.speed-container{display:flex;align-items:center;gap:8px}.speed-label{color:#ecf0f1;font-weight:500;font-size:14px;margin-right:5px}.speed-btn{padding:6px 12px;border:2px solid rgba(255,255,255,.2);border-radius:15px;background-color:#ffffff1a;color:#ecf0f1;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:35px;text-align:center}.seek-label{color:#ecf0f1;font-weight:500;font-size:14px}.seek-input{padding:6px 10px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background-color:#34495ecc;color:#ecf0f1;font-size:13px;width:80px}.seek-input:focus{outline:none;border-color:#3498db;background-color:#34495e}.seek-btn{padding:6px 12px;border:none;border-radius:4px;background-color:#27ae60;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s}.playback-close-btn{position:absolute;top:0;right:0;width:20px;height:20px;border:none;background:#e74c3ccc;color:#fff;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.playback-close-btn:hover{background-color:#c0392b}.scenario-clock-container{color:#2ecc71;font-family:consolas,monospace;display:flex;gap:5px;padding:8px 12px;background-color:#212529b3;border-radius:4px;border-left:3px solid #e74c3c;box-shadow:0 2px 8px #0003;align-items:center}.scenario-clock-label{font-weight:700}.scenario-clock{font-weight:400}.scenario-selector-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:500px;max-height:80vh;background-color:#2c3e50;display:flex;flex-direction:column;border-radius:6px;z-index:999999;box-shadow:0 4px 16px #0000004d;overflow:hidden;animation:popupAppear .3s ease}.scenario-selector-content{flex:1;overflow-y:auto;padding:20px}.scenario-list{display:flex;flex-direction:column;gap:15px}.scenario-item{padding:15px;border:2px solid rgba(255,255,255,.1);border-radius:6px;background-color:#ffffff0d;cursor:pointer;transition:all .2s ease}.scenario-item:hover{background-color:#ffffff1a;border-color:#3498db}.scenario-item.selected{background-color:#3498db33;border-color:#3498db}.scenario-content{display:flex;justify-content:space-between;align-items:center;width:100%}.scenario-header{font-size:14px;font-weight:600;color:#3498db;flex:1}.scenario-meta{color:#95a5a6;font-size:12px;font-family:consolas,monospace;flex-shrink:0;margin-left:15px}.load-scenario-btn{padding:10px 20px;border:none;border-radius:4px;background-color:#3498db;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.load-scenario-btn:hover:not(:disabled){background-color:#2980b9}.load-scenario-btn:disabled{background-color:#6c757d;cursor:not-allowed}.clock-container{display:flex;justify-content:center;align-items:center;padding:15px;background-color:#21252980;border-radius:6px}.scenario-clock-display{font-family:consolas,monospace;font-size:24px;font-weight:700;color:#2ecc71;text-align:center}.controls-container{display:flex;justify-content:center;gap:15px;align-items:center}.control-btn{width:50px;height:50px;border:none;border-radius:50%;background-color:#3498db;color:#fff;font-size:18px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.control-btn:hover{background-color:#2980b9;transform:scale(1.05)}.control-btn:active{transform:scale(.95)}.stop-btn{background-color:#e74c3c}.stop-btn:hover{background-color:#c0392b}.speed-container{display:flex;align-items:center;gap:10px;justify-content:center;flex-wrap:wrap}.speed-container span{color:#ecf0f1;font-weight:500}.speed-btn{padding:8px 16px;border:2px solid rgba(255,255,255,.2);border-radius:20px;background-color:#ffffff1a;color:#ecf0f1;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.speed-btn:hover{background-color:#fff3;border-color:#3498db}.speed-btn.active{background-color:#3498db;border-color:#3498db;color:#fff}.seek-container{display:flex;align-items:center;gap:10px;justify-content:center;flex-wrap:wrap;display:none}.seek-container span{color:#ecf0f1;font-weight:500}.seek-input{padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background-color:#34495e;color:#ecf0f1;font-size:14px}.seek-input:focus{outline:none;border-color:#3498db}.seek-btn{padding:8px 16px;border:none;border-radius:4px;background-color:#27ae60;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.seek-btn:hover{background-color:#229954}.aircraft-list-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0000004d;z-index:998}.aircraft-list-sidebar{position:fixed;top:36px;left:-450px;width:450px;max-height:calc(100vh - 120px);background-color:#2c3e50;display:flex;flex-direction:column;z-index:500;transition:left .3s ease;box-shadow:2px 0 10px #0000004d}.aircraft-list-sidebar.visible{left:0}.aircraft-list-header{background-color:#34495e;padding:10px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1)}.aircraft-list-header h3{color:#ecf0f1;margin:0;font-size:18px;font-weight:600}.aircraft-list-close{background:none;border:none;color:#ecf0f1;font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;transition:color .2s}.aircraft-list-close:hover{color:#e74c3c}.aircraft-list-controls{padding:15px 20px;background-color:#34495e;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.1)}.aircraft-list-controls span{color:#ecf0f1;font-size:14px;font-weight:500}.aircraft-sort-select{padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background-color:#2c3e50;color:#ecf0f1;font-size:14px;cursor:pointer}.aircraft-sort-select:focus{outline:none;border-color:#3498db}.aircraft-table-container{flex:1;overflow-y:auto}.aircraft-table{width:100%;border-collapse:collapse;font-family:Consolas,monospace}.aircraft-table th{background-color:#34495e;color:#ecf0f1;padding:12px 15px;text-align:left;font-weight:600;font-size:14px;border-bottom:2px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:1}.aircraft-table td{padding:12px 15px;color:#bdc3c7;font-size:13px;border-bottom:1px solid rgba(255,255,255,.05)}.aircraft-row{transition:background-color .2s}.aircraft-row:hover{background-color:#34495e80}.aircraft-row.active{background-color:#2ecc711a}.aircraft-row.inactive{background-color:#f1c40f1a}.aircraft-row.pending{background-color:#95a5a61a}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}.status-dot.active{background-color:#2ecc71;box-shadow:0 0 6px #2ecc7180}.status-dot.inactive{background-color:#f1c40f;box-shadow:0 0 6px #f1c40f80}.status-dot.pending{background-color:#95a5a6;box-shadow:0 0 6px #95a5a680}.route-header-container{display:flex;align-items:center;gap:6px}.view-all-routes-checkbox{width:14px;height:14px;cursor:pointer;accent-color:#3498db}.view-all-routes-label{font-size:12px;color:#ffffffe6;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500}.route-checkbox{width:16px;height:16px;cursor:pointer;accent-color:#3498db;margin-right:8px}.route-label{font-size:11px;color:#fffc;font-weight:500}.column-controls{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px;background-color:#34495e4d;border-radius:4px;flex-wrap:wrap}.column-label{font-weight:700;color:#ecf0f1;margin-right:8px}.column-checkbox-wrapper{display:flex;align-items:center;gap:4px;margin-right:12px}.column-checkbox{width:14px;height:14px;accent-color:#3498db}.column-checkbox-label{color:#bdc3c7;font-size:12px;cursor:pointer;white-space:nowrap}.column-checkbox-label:hover{color:#ecf0f1}.aircraft-list-controls{padding:15px;background-color:#34495e33;border-bottom:1px solid rgba(149,165,166,.2)}.aircraft-table{width:100%;table-layout:fixed}.aircraft-table th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:8px 6px}.aircraft-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:6px}.route-header-container,.view-all-routes-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:80px}.aircraft-table th[data-column=status],.aircraft-table td[data-column=status]{max-width:90px;min-width:80px}.aircraft-table th[data-column=callsign],.aircraft-table td[data-column=callsign]{max-width:120px;min-width:100px}.aircraft-table th[data-column=aircraftType],.aircraft-table td[data-column=aircraftType]{max-width:120px;min-width:80px}.aircraft-table th[data-column=spawnTime],.aircraft-table td[data-column=spawnTime]{max-width:100px;min-width:90px}.aircraft-table th[data-column=route],.aircraft-table td[data-column=route]{max-width:80px;min-width:60px;text-align:center}.aircraft-table td[data-column=route] .route-checkbox{margin:0 auto}
