:root{--bg:#050b14;--panel:#0a1421;--panel2:#0d1b2b;--line:#1c334a;--line2:#294967;--text:#f1f7fd;--muted:#7f9ab2;--cyan:#27d7f2;--blue:#3988ff;--green:#28d59a;--amber:#f5bd42;--purple:#9a83ff;--red:#ff586c;--shadow:0 24px 70px rgba(0,0,0,.42);--mono:SFMono-Regular,Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 15% 0,#10263c 0,transparent 33%),var(--bg);color:var(--text);overflow:hidden}button,input,select{font:inherit}.hidden{display:none!important}
.topbar{height:76px;display:flex;align-items:center;padding:0 20px;border-bottom:1px solid rgba(71,111,145,.35);background:linear-gradient(100deg,rgba(7,18,31,.98),rgba(12,31,49,.97));gap:13px;box-shadow:0 8px 30px rgba(0,0,0,.2);position:relative;z-index:1000}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.4}.brandmark{width:46px;height:46px;border-radius:14px;background:linear-gradient(145deg,#35e1f8,#1b64e9);display:grid;place-items:center;box-shadow:0 0 0 1px rgba(255,255,255,.15),0 10px 32px rgba(27,131,235,.34);position:relative}.brandmark:before{content:"";position:absolute;inset:-5px;border:1px solid rgba(39,215,242,.18);border-radius:18px}.brandmark span{font-size:25px;transform:rotate(-12deg);text-shadow:0 2px 5px #000}.brand{display:flex;flex-direction:column;line-height:1}.brand strong{font-size:17px}.brand strong b{color:var(--cyan)}.brand>span{font-family:var(--mono);font-size:8px;letter-spacing:2.4px;color:#7ea3bf;margin-top:7px}.stationbadge{height:42px;margin-left:18px;padding:0 14px;display:flex;align-items:center;gap:10px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.stationbadge>i{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(40,213,154,.1),0 0 18px var(--green)}.stationbadge div{display:flex;flex-direction:column}.stationbadge span,.clock span{font-family:var(--mono);font-size:7px;letter-spacing:1.5px;color:var(--muted)}.stationbadge strong{font-family:var(--mono);font-size:10px;margin-top:5px;color:#bad0e2}.clock{margin-left:auto;text-align:right;display:flex;flex-direction:column;min-width:92px}.clock strong{font-family:var(--mono);font-size:15px;letter-spacing:1px}.clock span{margin-top:4px}.connection{height:35px;padding:0 12px;border:1px solid var(--line);background:#0a1c2d;border-radius:9px;display:flex;align-items:center;gap:8px;color:#a9bdce;font-size:10px;font-weight:700}.connection i{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 12px currentColor}.connection.live{border-color:rgba(40,213,154,.28);color:#9bdec7}.connection.live i{background:var(--green)}.connection.error{border-color:rgba(255,88,108,.4);color:#ffc3cb}.connection.error i{background:var(--red)}.iconbtn,.maptools button,.closebtn{border:1px solid var(--line);color:var(--text);background:linear-gradient(145deg,#13283e,#0b1929);cursor:pointer;transition:.15s}.iconbtn{width:38px;height:38px;border-radius:10px;font-size:17px}.iconbtn:hover,.maptools button:hover,.closebtn:hover{border-color:#3c7199;background:#18344e;transform:translateY(-1px)}
.kpis{height:116px;padding:14px 16px;display:grid;grid-template-columns:repeat(4,1fr);gap:11px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#0b1725,#060d17)}.kpis article{--accent:var(--blue);position:relative;overflow:hidden;background:linear-gradient(145deg,#102337,#081421);border:1px solid var(--line);border-radius:15px;padding:12px 13px;display:flex;align-items:center;gap:12px;box-shadow:0 12px 30px rgba(0,0,0,.16)}.kpis article:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.kpis article:before{content:"";position:absolute;width:90px;height:90px;right:-45px;bottom:-55px;border-radius:50%;background:var(--accent);filter:blur(30px);opacity:.14}.kpi-cyan{--accent:var(--cyan)!important}.kpi-green{--accent:var(--green)!important}.kpi-purple{--accent:var(--purple)!important}.kpi-icon{width:42px;height:42px;flex:0 0 42px;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 11%,transparent);color:var(--accent);border-radius:12px;display:grid;place-items:center;font-size:20px}.kpis article>div:nth-child(2){display:grid;grid-template-columns:auto auto;align-items:center;column-gap:11px}.kpis span{grid-column:1/3;font-family:var(--mono);font-size:8px;letter-spacing:1.35px;color:var(--muted)}.kpis strong{font-family:var(--mono);font-size:28px;line-height:1.15;margin-top:4px}.kpis small{font-size:9px;color:var(--muted);white-space:nowrap;margin-top:6px}.kpis small i{display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:50%;margin-right:5px;box-shadow:0 0 9px var(--accent)}.kpis em{position:absolute;right:12px;top:10px;font-family:var(--mono);font-style:normal;font-size:7px;letter-spacing:1px;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:5px;padding:3px 5px}
.workspace{height:calc(100vh - 192px);display:grid;grid-template-columns:minmax(0,1fr) 460px}.mapwrap{position:relative;min-width:0;overflow:hidden}.mapwrap:after{content:"";pointer-events:none;position:absolute;z-index:420;inset:0;box-shadow:inset 0 0 80px rgba(0,9,18,.28)}.mapwrap #map{height:100%;background:#07121d}.leaflet-container{font-family:inherit}.leaflet-tile-pane{filter:brightness(.6) saturate(.7) contrast(1.18) hue-rotate(165deg)}.leaflet-control-zoom{border:1px solid var(--line2)!important;border-radius:10px!important;overflow:hidden;box-shadow:var(--shadow)!important}.leaflet-control-zoom a{background:#0b1d2d!important;color:#e9f4ff!important;border-color:var(--line)!important}.mapheadline{position:absolute;z-index:500;left:14px;top:14px;height:43px;padding:0 12px;border:1px solid #355e7f;border-radius:11px;background:rgba(5,16,27,.84);backdrop-filter:blur(14px);box-shadow:0 12px 35px #0005;display:flex;align-items:center;gap:18px}.mapheadline>div{display:flex;align-items:center;gap:7px}.mapheadline strong{font-family:var(--mono);font-size:9px;letter-spacing:1.2px}.mapheadline small,.mapheadline>span{font-family:var(--mono);font-size:8px;color:var(--muted)}.radar-pulse{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(40,213,154,.5);animation:pulse 1.8s infinite}@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(40,213,154,0)}}.maptools{position:absolute;z-index:500;left:14px;bottom:51px;display:flex;gap:7px}.maptools button{width:40px;height:40px;border-radius:10px;font-size:18px;box-shadow:var(--shadow)}.legend{position:absolute;z-index:500;right:14px;bottom:15px;display:flex;align-items:center;gap:11px;padding:8px 11px;border:1px solid #355e7f;border-radius:10px;background:rgba(5,16,27,.86);backdrop-filter:blur(12px);font-family:var(--mono);font-size:8px;color:#b9cddd}.legend strong{font-size:7px;letter-spacing:1.2px;color:var(--muted);padding-right:4px;border-right:1px solid var(--line)}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:50%;box-shadow:0 0 7px currentColor}.legend .low{background:var(--amber)}.legend .mid{background:var(--green)}.legend .high{background:var(--purple)}.legend .ground{background:#8fa4b7}.attribution{position:absolute;z-index:500;left:7px;bottom:4px;color:#91a5b7;background:#040c15b3;padding:2px 5px;font-size:8px;border-radius:4px}
.sidebar{border-left:1px solid var(--line);background:linear-gradient(180deg,#0b1725,#08121e);display:flex;min-height:0;flex-direction:column;box-shadow:-18px 0 45px #0003;position:relative;z-index:600}.sidehead{height:58px;padding:0 13px 0 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.sidehead div{display:flex;flex-direction:column}.sidehead span{font-family:var(--mono);font-size:7px;letter-spacing:1.7px;color:var(--cyan)}.sidehead strong{font-size:14px;margin-top:4px}.sidehead>b{font-family:var(--mono);font-size:8px;color:#8fe1c5;background:#28d59a1a;border:1px solid #28d59a3b;padding:5px 7px;border-radius:6px}.tabs{height:47px;padding:6px 9px 0;display:flex;gap:5px;border-bottom:1px solid var(--line)}.tabs button{flex:1;background:transparent;border:0;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer;border-bottom:2px solid transparent}.tabs button span{color:var(--green);font-size:8px;margin-right:4px}.tabs button.active{color:#eaf6ff;border-color:var(--cyan);background:linear-gradient(180deg,transparent,#27d7f20f)}.filters{padding:10px;border-bottom:1px solid #1c334ab3;display:flex;flex-direction:column;gap:7px}.searchbox{height:38px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;background:#07131f;padding:0 10px}.searchbox span{color:var(--cyan);font-size:18px}.searchbox input{border:0;background:transparent;padding:0;height:100%;width:100%;color:var(--text);outline:none;min-width:0}.selectrow{display:grid;grid-template-columns:1fr 1fr;gap:7px}.filters select{height:34px;border:1px solid var(--line);border-radius:8px;background:#0b1b2a;color:#a9bdce;padding:0 8px;outline:none;font-size:10px;min-width:0}.filters select:focus,.searchbox:focus-within{border-color:#2c779e;box-shadow:0 0 0 3px #27d7f20f}.listhead{display:grid;grid-template-columns:1fr 76px 72px;padding:8px 13px 7px;color:#607c94;font-family:var(--mono);font-size:7px;letter-spacing:1.1px}.aircraftlist{min-height:0;overflow:auto;padding:0 7px 42px;scrollbar-width:thin;scrollbar-color:#294761 transparent}.aircraftrow{--plane-color:var(--blue);display:grid;grid-template-columns:1fr 76px 72px;align-items:center;gap:4px;padding:9px 7px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:.12s;position:relative}.aircraftrow:after{content:"";position:absolute;left:0;top:20%;bottom:20%;width:2px;background:var(--plane-color);border-radius:2px;opacity:0}.aircraftrow:hover{background:#10243a;border-color:#1d3a54;transform:translateX(-2px);z-index:5}.aircraftrow:hover:after,.aircraftrow.selected:after{opacity:1}.aircraftrow.selected{background:linear-gradient(90deg,#27d7f21c,#27d7f209);border-color:#275677}.aircraft-id{display:flex;align-items:center;gap:9px;min-width:0}.mini-plane{width:31px;height:31px;flex:0 0 31px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--plane-color) 10%,#102238);border:1px solid color-mix(in srgb,var(--plane-color) 24%,transparent)}.mini-plane svg{width:21px;height:21px;fill:var(--plane-color);stroke:#06101a;stroke-width:.7}.aircraft-id div{min-width:0}.aircraft-id strong,.aircraft-id small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aircraft-id strong{font-family:var(--mono);font-size:11px}.aircraft-id small{font-size:9px;color:var(--muted);margin-top:4px}.aircraftrow>span{font-family:var(--mono);font-size:10px;text-align:right;color:#d4e4f0}.aircraftrow>span small{display:block;color:#637e95;font-family:Inter;font-size:8px;margin-top:3px}.row-extra{display:none;grid-column:1/4;margin:5px 0 0 40px;padding:8px;border:1px solid #294761;border-radius:8px;background:#071521;grid-template-columns:repeat(3,1fr);gap:7px;box-shadow:0 10px 25px #0005}.aircraftrow:hover .row-extra{display:grid}.row-extra div{min-width:0}.row-extra label{display:block;font-family:var(--mono);font-size:6px;color:#68849a;letter-spacing:.8px}.row-extra b{display:block;font-size:9px;color:#c9dce9;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty{padding:35px 15px;text-align:center;color:var(--muted);font-size:11px}.sidefooter{position:absolute;bottom:0;left:0;right:0;height:35px;padding:0 12px;border-top:1px solid var(--line);background:#07111def;display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:7px;color:var(--muted)}.sidefooter span{color:#8cd9c0}.sidefooter i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 9px var(--green);margin-right:5px}
.aircraft-marker{width:34px;height:34px;display:grid;place-items:center;filter:drop-shadow(0 3px 5px #000c);transition:filter .15s;position:relative}.aircraft-marker:hover,.aircraft-marker.selected{filter:drop-shadow(0 0 8px #fff)}.aircraft-marker svg{overflow:visible}.aircraft-marker .shape{fill:var(--plane-color);stroke:#04101a;stroke-width:1.25}.aircraft-marker .halo{fill:none;stroke:#fff;stroke-width:1.4;opacity:0}.aircraft-marker.selected .halo{opacity:.9}.marker-label{position:absolute;left:calc(100% + 4px);top:50%;transform:translateY(-50%) rotate(calc(-1 * var(--rotation)));padding:2px 4px;border-radius:4px;background:#040e17d9;border:1px solid #5a7f9c61;color:#eaf5fd;font-family:var(--mono);font-size:7px;white-space:nowrap;pointer-events:none}.aircraft-marker.selected .marker-label{border-color:var(--cyan)}.receiver-marker{width:22px;height:22px;border:4px solid #fff;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 6px #27d7f233,0 0 25px #27d7f2a6}
.detailpanel{position:fixed;z-index:1100;right:18px;top:90px;width:420px;max-height:calc(100vh - 108px);overflow:auto;background:linear-gradient(145deg,#0e2234fa,#06111dfc);border:1px solid #2c506d;border-radius:18px;box-shadow:0 35px 100px #000a;transform:translateX(calc(100% + 45px));opacity:0;transition:.25s ease;padding:17px;scrollbar-width:thin}.detailpanel:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--purple));border-radius:18px 18px 0 0}.detailpanel.open{transform:translateX(0);opacity:1}.detailhead{display:grid;grid-template-columns:55px 1fr 34px;gap:11px;align-items:center}.detailplane{width:55px;height:55px;border-radius:15px;background:linear-gradient(135deg,var(--blue),var(--cyan));display:grid;place-items:center;font-size:29px;box-shadow:0 12px 35px #2795ef45}.detailhead small{font-family:var(--mono);font-size:7px;letter-spacing:1.5px;color:var(--cyan)}.detailhead h2{font-family:var(--mono);font-size:20px;margin:4px 0}.detailhead p{font-size:10px;color:var(--muted);margin:0}.closebtn{width:32px;height:32px;border-radius:9px;font-size:22px}.emergency{margin-top:13px;border-radius:9px;background:#ff586c24;border:1px solid var(--red);color:#ffd9de;padding:9px;text-align:center;font-weight:800;font-size:11px;animation:warning 1s infinite alternate}@keyframes warning{to{box-shadow:0 0 20px #ff586c4d}}.detailgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.detailitem{padding:10px;border-radius:10px;border:1px solid var(--line);background:linear-gradient(145deg,#0b1d2de6,#07131fe6);min-width:0}.detailitem span{display:block;font-family:var(--mono);font-size:7px;letter-spacing:1px;color:#6f8ca4}.detailitem strong{display:block;font-size:12px;margin-top:6px;overflow-wrap:anywhere}.detailactions{display:flex;gap:8px;margin-top:13px;position:sticky;bottom:-17px;background:linear-gradient(0deg,#07131f 65%,transparent);padding:13px 0 17px}.detailactions button{flex:1;height:40px;border-radius:10px;border:1px solid #2f6488;background:linear-gradient(145deg,#17415e,#102d45);color:#fff;font-size:11px;font-weight:700;cursor:pointer}.detailactions button:hover{border-color:var(--cyan);background:#194a69}.toast{position:fixed;z-index:1500;left:50%;bottom:20px;transform:translateX(-50%);padding:11px 16px;border-radius:10px;background:#102b42;border:1px solid #34759c;box-shadow:var(--shadow);font-size:11px}.route-line{stroke-linecap:round;stroke-linejoin:round}
.light{--bg:#e9f0f5;--panel:#fff;--line:#d2dfe8;--line2:#b8cfde;--text:#10283b;--muted:#637c90;--shadow:0 18px 50px #132b402b;background:#e9f0f5}.light .topbar,.light .sidebar,.light .sidefooter{background:#fff}.light .kpis{background:#edf3f7}.light .kpis article{background:#fff}.light .searchbox,.light .filters select{background:#f4f8fb}.light .leaflet-tile-pane{filter:none}.light .aircraftrow:hover{background:#edf5fa}.light .aircraftrow.selected{background:#dff2fa}.light .detailpanel{background:linear-gradient(145deg,#fff,#eef5f9)}.light .detailitem{background:#f5f9fc}.light .mapheadline,.light .legend{background:#ffffffe6;color:#193044}.light .marker-label{background:#ffffffe6;color:#183044}
/* Jasp Tracking Enterprise v2.2 aircraft silhouettes */
.aircraft-marker .aircraft-svg{width:100%;height:100%;overflow:visible}.aircraft-body{fill:var(--plane-color);stroke:#03101a;stroke-width:1.8;stroke-linejoin:round}.aircraft-detail{fill:none;stroke:#eefaff;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;opacity:.82}.aircraft-engine,.aircraft-basket{fill:color-mix(in srgb,var(--plane-color) 70%,#06121d);stroke:#dff7ff;stroke-width:1}.aircraft-prop{fill:none;stroke:var(--plane-color);stroke-width:2;opacity:.95}.aircraft-halo{position:absolute;inset:-4px;border:1.5px solid #fff;border-radius:50%;opacity:0;box-shadow:0 0 12px #fff8}.aircraft-marker.selected .aircraft-halo{opacity:.9}.mini-plane>span{width:23px;height:23px;display:block}.mini-plane .aircraft-svg{width:23px;height:23px;display:block}.mini-plane .aircraft-body{stroke-width:2.3}.mini-plane .aircraft-detail{stroke-width:1.7}.detailplane{--plane-color:#fff;font-size:0}.detailplane>span{display:block;width:38px;height:38px}.detailplane .aircraft-svg{width:38px;height:38px;display:block}.detailplane .aircraft-body{stroke:#0b4e70;stroke-width:1.4}.leaflet-tooltip.flight-tooltip{pointer-events:none!important}
.board-info{grid-column:1/4;margin:2px 0 0 40px;padding:7px 9px;border-left:2px solid color-mix(in srgb,var(--plane-color) 70%,#64748b);background:linear-gradient(90deg,color-mix(in srgb,var(--plane-color) 8%,transparent),transparent);border-radius:0 7px 7px 0;min-width:0}.board-info span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-company{font-size:9px;font-weight:800;color:#d8ebf7}.board-route{font-family:var(--mono);font-size:8px;color:#7895aa;margin-top:4px}.flight-tip .tip-wide{grid-column:1/3}.light .board-company{color:#153c55}.light .board-route{color:#55758b}.light .board-info{background:linear-gradient(90deg,color-mix(in srgb,var(--plane-color) 9%,#fff),transparent)}
/* Jasp Tracking Enterprise v2.3.2 map controls and adaptive markers */
.maptools button{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;color:#dff6ff;font-size:0}.maptools button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.maptools button:hover{color:#fff;box-shadow:0 0 0 1px #27d7f255,0 10px 28px #0007}.light .maptools button{background:linear-gradient(145deg,#fff,#e8f0f5);border-color:#9fb8ca;color:#153b55;box-shadow:0 5px 16px #183b5426}.light .maptools button:hover{background:#fff;border-color:#168cb7;color:#087da5}.aircraft-marker.zoom-far .marker-label,.aircraft-marker.zoom-mid .marker-label{display:none}.aircraft-marker.selected .marker-label{display:block}
.range-panel{position:absolute;z-index:720;right:14px;top:70px;width:400px;max-width:calc(100% - 28px);max-height:calc(100% - 86px);overflow:auto;padding:15px;background:linear-gradient(145deg,#0c2133f7,#06111dfb);border:1px solid #315b78;border-radius:17px;box-shadow:0 30px 80px #000a;backdrop-filter:blur(18px);transform:translateX(calc(100% + 30px));opacity:0;pointer-events:none;transition:.24s ease;scrollbar-width:thin}.range-panel.open{transform:translateX(0);opacity:1;pointer-events:auto}.range-panel:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--cyan),var(--purple));border-radius:17px 17px 0 0}.range-head{display:flex;align-items:center;justify-content:space-between}.range-head small{font-family:var(--mono);font-size:7px;letter-spacing:1.6px;color:var(--cyan)}.range-head h3{font-size:16px;margin:5px 0 0}.range-head button{width:31px;height:31px;border-radius:9px;border:1px solid var(--line);background:#10283c;color:#dff4ff;font-size:21px;cursor:pointer}.range-loading{padding:70px 15px;text-align:center;color:var(--muted);font-size:11px}.range-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.range-kpis article{padding:10px;border:1px solid #294a63;border-radius:11px;background:#0b1b2a}.range-kpis span,.range-record>span{display:block;font-family:var(--mono);font-size:6px;letter-spacing:1px;color:#718da2}.range-kpis strong{font-family:var(--mono);font-size:25px;display:inline-block;margin-top:5px}.range-kpis small{font-size:8px;color:var(--muted);margin-left:4px}.polar-wrap{margin:11px 0;padding:6px;border:1px solid #24445d;border-radius:13px;background:radial-gradient(circle at center,#102d42,#07131f 70%)}#rangeChart{display:block;width:100%;max-height:300px}.polar-grid circle,.polar-grid line{fill:none;stroke:#55748b;stroke-width:.8;opacity:.42}.polar-grid text{fill:#6f8da3;font-family:var(--mono);font-size:7px}.polar-area{fill:url(#rangeFill);stroke:#8c7cff;stroke-width:2;stroke-linejoin:round}.polar-center{fill:var(--cyan);filter:drop-shadow(0 0 5px var(--cyan))}.direction{fill:#dcecf6;font-family:var(--mono);font-weight:800;font-size:10px;text-anchor:middle}.range-record{padding:11px;border:1px solid #2b4c65;border-radius:11px;background:linear-gradient(90deg,#122a3d,#091724)}.range-record strong{display:block;font-family:var(--mono);font-size:15px;color:#e9f7ff;margin-top:6px}.range-record p{font-size:9px;color:#8ea8ba;margin:6px 0 0;line-height:1.5}.range-foot{display:flex;justify-content:space-between;margin-top:10px;font-family:var(--mono);font-size:7px;color:#668297}.light .range-panel{background:linear-gradient(145deg,#fffffff8,#edf4f8fa);border-color:#9ebccd;box-shadow:0 30px 80px #17354d48}.light .range-head h3,.light .range-kpis strong,.light .range-record strong{color:#15364d}.light .range-head button{background:#fff;border-color:#afc7d6;color:#17384f}.light .range-kpis article,.light .range-record{background:#fff;border-color:#bed1dd}.light .polar-wrap{background:radial-gradient(circle at center,#fff,#e8f1f6 75%);border-color:#b7cdd9}.light .polar-grid circle,.light .polar-grid line{stroke:#7894a7}.light .polar-grid text,.light .range-record p,.light .range-foot{fill:#57758a;color:#57758a}.light .direction{fill:#17384f}
.command-center-button{position:relative}.alert-badge{position:absolute;right:-5px;top:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#ff586c;color:#fff;border:2px solid #07131f;font-family:var(--mono);font-size:7px!important;font-weight:800;display:grid;place-items:center;box-shadow:0 0 13px #ff586c88}.light .alert-badge{border-color:#fff}.command-center{position:fixed;z-index:1400;right:18px;top:82px;width:min(880px,calc(100vw - 36px));height:calc(100vh - 100px);display:flex;flex-direction:column;background:linear-gradient(145deg,#0b1e2efc,#050d17fd);border:1px solid #315a77;border-radius:19px;box-shadow:0 35px 110px #000c;transform:translateX(calc(100% + 45px));opacity:0;pointer-events:none;transition:.26s ease;overflow:hidden}.command-center.open{transform:translateX(0);opacity:1;pointer-events:auto}.command-center:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--purple),var(--green))}.command-head{min-height:75px;padding:14px 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.command-head small{font-family:var(--mono);font-size:7px;letter-spacing:1.8px;color:var(--cyan)}.command-head h2{font-size:20px;margin:4px 0 0}.command-head p{font-size:9px;color:var(--muted);margin:4px 0 0}.command-head>button{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:#11283b;color:#e7f5ff;font-size:22px;cursor:pointer}.command-tabs{height:48px;display:flex;padding:6px 10px 0;border-bottom:1px solid var(--line);gap:5px}.command-tabs button{flex:1;border:0;border-bottom:2px solid transparent;background:transparent;color:#7790a4;font-size:10px;font-weight:700;cursor:pointer}.command-tabs button.active{color:#eaf7ff;border-color:var(--cyan);background:linear-gradient(180deg,transparent,#27d7f20d)}.command-tabs b{display:inline-grid;place-items:center;min-width:16px;height:16px;border-radius:8px;margin-left:4px;background:#ff586c22;color:#ff8997;font-family:var(--mono);font-size:7px}.command-body{flex:1;min-height:0;overflow:auto;padding:14px;scrollbar-width:thin}.command-view{display:none}.command-view.active{display:block}.period-switch{display:flex;gap:5px;justify-content:flex-end;margin-bottom:10px}.period-switch button{height:29px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:#0c1c2b;color:#7893a7;font-family:var(--mono);font-size:7px;cursor:pointer}.period-switch button.active{color:#dff9ff;border-color:#279abd;background:#123449}.command-loading{padding:100px 20px;text-align:center;color:var(--muted);font-size:11px}.command-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.command-kpis article,.chart-card,.top-types-card,.records-card,.health-section{border:1px solid #25455d;background:linear-gradient(145deg,#0d2132,#08141f);border-radius:12px}.command-kpis article{padding:11px}.command-kpis span,.card-title span,.health-card span,.signal-health span{display:block;font-family:var(--mono);font-size:6px;letter-spacing:1px;color:#6f8aa0}.command-kpis strong{display:block;font-family:var(--mono);font-size:23px;margin-top:6px}.command-kpis small,.health-card small{display:block;font-size:8px;color:var(--muted);margin-top:4px}.chart-card{margin-top:9px;padding:11px}.card-title b{display:block;font-size:12px;margin-top:4px}.card-title{margin-bottom:8px}#statsChart{display:block;width:100%;height:230px}.stats-grid line{stroke:#4c6a80;stroke-width:.7;opacity:.35}.stats-grid text,.x-label{fill:#6b869a;font-family:var(--mono);font-size:7px;text-anchor:end}.x-label{text-anchor:middle}.stats-aircraft,.stats-rate{fill:none;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}.stats-aircraft{stroke:var(--cyan)}.stats-rate{stroke:var(--purple)}.chart-empty{fill:#6d879a;font-size:11px;text-anchor:middle}.chart-legend{display:flex;justify-content:center;gap:18px;font-size:8px;color:#819aad}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{width:16px;height:2px}.aircraft-line{background:var(--cyan)}.rate-line{background:var(--purple)}.stats-lower{display:grid;grid-template-columns:1.25fr .75fr;gap:9px;margin-top:9px}.top-types-card,.records-card{padding:11px}.type-bar{display:grid;grid-template-columns:65px 1fr 32px;gap:8px;align-items:center;margin-top:8px}.type-bar>span,.type-bar>b{font-family:var(--mono);font-size:8px}.type-bar>b{text-align:right}.type-bar>div{height:6px;border-radius:4px;background:#183044;overflow:hidden}.type-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--cyan),var(--blue))}.records-card #recordList{display:grid;grid-template-columns:1fr 1fr;gap:7px}.records-card #recordList div{padding:8px;border-radius:8px;background:#07131f;border:1px solid #203b50}.records-card span{display:block;font-family:var(--mono);font-size:6px;color:#6e879a}.records-card b{display:block;font-size:10px;margin-top:5px}.no-data{font-size:9px;color:var(--muted)}.health-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.health-card{position:relative;padding:12px;border:1px solid #28475f;border-radius:11px;background:#0b1d2c;overflow:hidden}.health-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--green)}.health-card.warn:before{background:var(--amber)}.health-card.bad:before{background:var(--red)}.health-card strong{display:block;font-family:var(--mono);font-size:18px;margin-top:7px}.health-section{padding:12px;margin-top:9px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.service-grid>div{display:grid;grid-template-columns:9px 1fr auto;align-items:center;gap:8px;padding:9px;border:1px solid #203d52;border-radius:8px;background:#07131f}.service-grid i{width:7px;height:7px;border-radius:50%}.service-grid i.ok{background:var(--green);box-shadow:0 0 8px var(--green)}.service-grid i.bad{background:var(--red)}.service-grid span{font-size:9px}.service-grid b{font-family:var(--mono);font-size:7px;color:#7f9aab}.signal-health{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.signal-health>div{padding:10px;border:1px solid #203d52;border-radius:8px;background:#07131f}.signal-health strong{display:block;font-family:var(--mono);font-size:18px;margin-top:6px}.signal-health small{font-size:8px;color:var(--muted)}.alerts-toolbar{display:flex;align-items:center;justify-content:space-between;padding:4px 2px 12px}.alerts-toolbar span{display:block;font-family:var(--mono);font-size:6px;letter-spacing:1px;color:var(--cyan)}.alerts-toolbar strong{display:block;font-size:13px;margin-top:4px}.alerts-toolbar button{height:30px;border:1px solid #36566c;border-radius:8px;background:#102638;color:#a9bdca;font-size:8px;cursor:pointer}.alerts-list{display:grid;gap:7px}.alert-item{display:grid;grid-template-columns:5px 1fr;gap:11px;padding:11px;border:1px solid #27465d;border-radius:10px;background:#091724;cursor:pointer}.alert-item>i{border-radius:3px;background:var(--cyan)}.alert-item.warning>i{background:var(--amber)}.alert-item.critical>i{background:var(--red);box-shadow:0 0 10px var(--red)}.alert-item.record>i{background:var(--purple)}.alert-item span{font-family:var(--mono);font-size:6px;color:#6e889b}.alert-item strong{display:block;font-size:11px;margin-top:4px}.alert-item p{font-size:9px;color:#849daf;margin:4px 0 0}.alerts-empty{padding:90px 15px;text-align:center;color:var(--muted);font-size:10px}.light .command-center{background:linear-gradient(145deg,#fffffff9,#edf4f8fb);border-color:#9fbccb;box-shadow:0 35px 100px #17354d52}.light .command-head,.light .command-tabs{border-color:#c5d6e1}.light .command-head h2,.light .command-kpis strong,.light .card-title b,.light .health-card strong,.light .signal-health strong,.light .alert-item strong{color:#15364d}.light .command-head>button,.light .period-switch button,.light .alerts-toolbar button{background:#fff;border-color:#b7cad7;color:#17384f}.light .command-tabs button.active{color:#0c4964;background:#e5f6fa}.light .command-kpis article,.light .chart-card,.light .top-types-card,.light .records-card,.light .health-section,.light .health-card{background:#fff;border-color:#bfd1dd}.light .records-card #recordList div,.light .service-grid>div,.light .signal-health>div,.light .alert-item{background:#f6fafc;border-color:#c9d8e2}.light .type-bar>div{background:#dce8ef}.light .stats-grid line{stroke:#9ab0bf}.light .chart-empty{fill:#647f92}
.detailactions{flex-wrap:wrap}.detailactions button{min-width:42%}.lab-toolbar,.watch-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.lab-toolbar span,.watch-toolbar span{display:block;font-family:var(--mono);font-size:6px;letter-spacing:1.2px;color:var(--cyan)}.lab-toolbar strong,.watch-toolbar strong{display:block;font-size:15px;margin-top:4px}.lab-toolbar small,.watch-toolbar small{display:block;font-size:8px;color:var(--muted);margin-top:4px}.lab-toolbar button,.watch-toolbar button{height:34px;border:1px solid #2c617e;border-radius:9px;background:#11324a;color:#dff8ff;font-size:8px;font-weight:700;padding:0 12px;cursor:pointer}.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.lab-bars{display:grid;gap:10px}.lab-bar{display:grid;grid-template-columns:95px 1fr 68px;gap:9px;align-items:center}.lab-bar>span,.lab-bar>b{font-family:var(--mono);font-size:7px}.lab-bar>b{text-align:right}.lab-bar>div{height:8px;border-radius:5px;background:#173247;overflow:hidden}.lab-bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--cyan),var(--purple))}.direction-bars{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}.lab-advice{margin-top:9px;padding:12px 14px;border:1px solid #246151;border-radius:11px;background:#0a2723}.lab-advice.warn{border-color:#7b6124;background:#2b210a}.lab-advice strong{font-family:var(--mono);font-size:7px;letter-spacing:1px;color:var(--green)}.lab-advice.warn strong{color:var(--amber)}.lab-advice p{font-size:10px;line-height:1.55;margin:6px 0 0;color:#b5cbd7}.watch-toolbar form{display:flex;gap:6px}.watch-toolbar input{width:180px;height:34px;border:1px solid #294b62;border-radius:9px;background:#071521;color:#e6f6ff;padding:0 10px;font-family:var(--mono);font-size:8px;text-transform:uppercase;outline:0}.watch-list{display:grid;gap:8px}.watch-item{display:grid;grid-template-columns:6px 1fr auto 32px;gap:11px;align-items:center;padding:11px;border:1px solid #29495f;border-radius:11px;background:#091724;cursor:pointer}.watch-item>i{width:6px;height:34px;border-radius:4px;background:#617a8c}.watch-item.online>i{background:var(--green);box-shadow:0 0 10px #35d69f88}.watch-item strong{display:block;font-size:11px}.watch-item span{display:block;margin-top:4px;color:#7892a5;font-family:var(--mono);font-size:7px}.watch-item>b{font-family:var(--mono);font-size:7px;color:#718a9d}.watch-item.online>b{color:var(--green)}.remove-watch{width:30px;height:30px;border:1px solid #355268;border-radius:8px;background:#102334;color:#a8bdca;font-size:18px;cursor:pointer}.alert-item.watch>i{background:var(--green);box-shadow:0 0 10px #35d69f77}.playback-panel{position:fixed;z-index:1350;left:50%;bottom:18px;transform:translateX(-50%);width:min(760px,calc(100vw - 30px));padding:12px 14px;background:linear-gradient(145deg,#0b1f30f7,#06111dfb);border:1px solid #37637f;border-radius:16px;box-shadow:0 25px 80px #000b;backdrop-filter:blur(16px)}.playback-head{display:flex;align-items:center;justify-content:space-between}.playback-head span{display:block;font-family:var(--mono);font-size:6px;letter-spacing:1.4px;color:var(--cyan)}.playback-head strong{display:block;font-size:13px;margin-top:3px}.playback-head button{width:29px;height:29px;border:1px solid var(--line);border-radius:8px;background:#10283b;color:#fff;font-size:19px}.playback-controls{display:grid;grid-template-columns:38px 68px 1fr 125px;gap:8px;align-items:center;margin-top:10px}.playback-controls button,.playback-controls select{height:34px;border:1px solid #315a73;border-radius:8px;background:#10283b;color:#e9f8ff}.playback-controls input{width:100%;accent-color:var(--cyan)}.playback-controls>strong{font-family:var(--mono);font-size:8px;text-align:right}.playback-stats{display:flex;gap:18px;margin-top:8px;color:#7894a8;font-family:var(--mono);font-size:7px}.playback-stats span:last-child{margin-left:auto}.light .lab-toolbar button,.light .watch-toolbar button,.light .playback-controls button,.light .playback-controls select{background:#fff;border-color:#a9c2d1;color:#17384f}.light .watch-toolbar input{background:#fff;border-color:#b4cbd8;color:#17384f}.light .watch-item,.light .playback-panel{background:#f8fbfd;border-color:#b9cfdb;color:#15364d}.light .lab-bar>div{background:#dce8ef}.light .lab-advice{background:#effaf6}.light .lab-advice.warn{background:#fff8e9}.light .lab-advice p{color:#4d6b7e}
.aircraft-silhouette .aircraft-body{fill:var(--aircraft-paint);stroke:#020b12;stroke-width:2;paint-order:stroke fill}.aircraft-spine{fill:none;stroke:#dff8ff;stroke-width:.8;opacity:.52}.aircraft-cockpit{fill:#071724;stroke:#fff;stroke-width:.75;opacity:.95}.nav-light{stroke:#fff;stroke-width:.55;filter:drop-shadow(0 0 2px currentColor)}.nav-light.port{fill:#ff405d;color:#ff405d}.nav-light.starboard{fill:#3dffad;color:#3dffad}.nav-light.tail{fill:#fff;color:#fff}.aircraft-marker:not(.zoom-far) .nav-light{animation:navBlink 1.6s infinite alternate}@keyframes navBlink{50%{opacity:.28}100%{opacity:1}}.aircraft-marker.selected .aircraft-svg{filter:drop-shadow(0 0 4px var(--plane-color))}.mini-plane .nav-light,.mini-plane .aircraft-spine,.mini-plane .aircraft-cockpit{display:none}.detailplane .nav-light{filter:drop-shadow(0 0 3px currentColor)}
.notification-stack{position:fixed;z-index:1900;right:18px;top:88px;width:min(370px,calc(100vw - 28px));display:grid;gap:9px;pointer-events:none}.notification-card{--notify:#27d7f2;position:relative;display:grid;grid-template-columns:45px 1fr 26px;gap:10px;align-items:center;min-height:82px;padding:11px 10px 11px 11px;border:1px solid color-mix(in srgb,var(--notify) 55%,#24445b);border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--notify) 13%,#102537f5),#06111df8 72%);box-shadow:0 22px 55px #000b,0 0 0 1px #ffffff08;backdrop-filter:blur(18px);transform:translateX(calc(100% + 30px));opacity:0;transition:.24s ease;overflow:hidden;pointer-events:auto;cursor:pointer}.notification-card.visible{transform:translateX(0);opacity:1}.notification-card.closing{transform:translateX(calc(100% + 30px));opacity:0}.notification-card.watch{--notify:#35d69f}.notification-card.critical{--notify:#ff586c}.notification-card.warning{--notify:#f7c948}.notification-card.record{--notify:#9a83ff}.notification-card.success{--notify:#35d69f}.notification-card>i{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--notify) 19%,#071521);border:1px solid color-mix(in srgb,var(--notify) 55%,transparent);color:var(--notify);font-style:normal;font-family:var(--mono);font-size:20px;font-weight:900;box-shadow:inset 0 0 18px color-mix(in srgb,var(--notify) 12%,transparent),0 0 18px color-mix(in srgb,var(--notify) 18%,transparent)}.notification-card small{display:block;font-family:var(--mono);font-size:6px;letter-spacing:1.4px;color:var(--notify)}.notification-card strong{display:block;margin-top:4px;font-size:12px;color:#f2f9fd}.notification-card p{margin:4px 0 0;font-size:9px;line-height:1.4;color:#8fa9ba}.notification-card button{align-self:start;width:25px;height:25px;border:0;background:transparent;color:#6f899c;font-size:18px;cursor:pointer}.notification-progress{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--notify);transform-origin:left;animation:notifyProgress linear forwards}@keyframes notifyProgress{to{transform:scaleX(0)}}.light .notification-card{background:linear-gradient(135deg,color-mix(in srgb,var(--notify) 10%,#fff),#f5f9fb 72%);box-shadow:0 18px 45px #17354d3d}.light .notification-card strong{color:#15364d}.light .notification-card p{color:#5c7789}
.airport-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.airport-toolbar span{display:block;font-family:var(--mono);font-size:6px;letter-spacing:1.2px;color:var(--cyan)}.airport-toolbar strong{display:block;margin-top:4px;font-size:15px}.airport-toolbar small{display:block;margin-top:4px;color:var(--muted);font-size:8px}.airport-toolbar select{height:34px;min-width:170px;border:1px solid #31566f;border-radius:9px;background:#0a1b29;color:#d7e9f4;padding:0 9px;font-size:9px}.airport-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:10px}.airport-kpis article{padding:9px 10px;border:1px solid #28485f;border-radius:10px;background:#0a1b29}.airport-kpis span{display:block;font-family:var(--mono);font-size:6px;color:#6f8b9f}.airport-kpis strong{display:block;margin-top:5px;font-family:var(--mono);font-size:20px}.airport-board-head,.airport-row{display:grid;grid-template-columns:1.1fr 1.35fr 54px 54px 100px;gap:9px;align-items:center}.airport-board-head{padding:7px 10px;font-family:var(--mono);font-size:6px;letter-spacing:.8px;color:#627e92}.airport-board{display:grid;gap:5px}.airport-row{padding:9px 10px;border:1px solid #223f54;border-radius:10px;background:#081725;cursor:pointer;transition:.15s}.airport-row:hover{border-color:#377293;background:#0d2233;transform:translateX(2px)}.airport-row>div{display:flex;align-items:center;gap:8px;min-width:0}.airport-row .mini-plane{width:28px;height:28px;flex-basis:28px}.airport-row>div span{min-width:0}.airport-row strong,.airport-row small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.airport-row strong{font-family:var(--mono);font-size:10px}.airport-row small{font-size:7px;color:#718b9d;margin-top:3px}.airport-row>b{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.airport-row em{font-style:normal;font-family:var(--mono);font-size:10px;color:#d7e8f2}.flight-phase{font-family:var(--mono);font-size:6px;font-weight:800;border:1px solid #315065;border-radius:6px;padding:5px;text-align:center;color:#8aa1b1}.flight-phase.arrivals{color:#35d69f;border-color:#35d69f55;background:#35d69f0d}.flight-phase.departures{color:#27d7f2;border-color:#27d7f255;background:#27d7f20d}.flight-phase.cruise{color:#9a83ff;border-color:#9a83ff55;background:#9a83ff0d}.light .airport-toolbar select,.light .airport-kpis article,.light .airport-row{background:#fff;border-color:#bfd2de;color:#17364d}.light .airport-row:hover{background:#eef8fb}
.airport-data-status{margin:-2px 0 10px;padding:9px 11px;border:1px solid #38536a;border-radius:9px;background:#101b25;color:#c8d6df;font:800 8px var(--mono);letter-spacing:.35px}.airport-data-status.active{border-color:#008b63;background:#063d30;color:#fff}.airport-data-status.warning{border-color:#d47600;background:#542b08;color:#fff}.airport-data-status.missing{border-color:#bf3e4f;background:#501721;color:#fff}.schedule-plane{width:28px;height:28px;flex:0 0 28px;display:grid!important;place-items:center;border:1px solid #536b7b;border-radius:50%;background:#172834;color:#fff;font-size:14px}.light .airport-data-status.active{background:#063d30;color:#fff}.light .airport-data-status.warning{background:#542b08;color:#fff}.light .airport-data-status.missing{background:#501721;color:#fff}
.alert-settings{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px;padding:10px;border:1px solid #29485e;border-radius:10px;background:#081725}.alert-settings label{display:flex;align-items:center;gap:5px;height:27px;padding:0 8px;border:1px solid #29485e;border-radius:7px;color:#91a7b6;font-size:8px;cursor:pointer}.alert-settings input{accent-color:var(--cyan)}.alert-settings button{height:27px;margin-left:auto;padding:0 10px;border:1px solid #2d6482;border-radius:7px;background:#11324a;color:#dff8ff;font-size:8px;cursor:pointer}.light .alert-settings{background:#f7fbfd;border-color:#bfd2de}.light .alert-settings label{border-color:#c4d5df;color:#49697e}.light .alert-settings button{background:#fff;color:#17506b}
.central-alert-search{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:7px;align-items:center;margin-bottom:12px}.central-alert-search input,.central-alert-search button{height:36px;border:1px solid #315b75;border-radius:9px;background:#091b29;color:#e7f7ff;font-size:9px}.central-alert-search input{min-width:0;padding:0 11px;text-transform:uppercase;outline:0}.central-alert-search input:focus{border-color:#32c7df;box-shadow:0 0 0 3px #32c7df1c}.central-alert-search button{padding:0 13px;cursor:pointer}.central-alert-search span{grid-column:1/-1;color:#7894a7;font-family:var(--mono);font-size:7px}.alert-item small{display:block;margin-top:6px;color:#5f849b;font-family:var(--mono);font-size:7px;letter-spacing:.02em}.light .central-alert-search input,.light .central-alert-search button{background:#fff;border-color:#aec7d6;color:#17384f}.light .alert-item small{color:#4e7187}
.aircraft-marker .aircraft-svg{filter:drop-shadow(0 0 1px #fff) drop-shadow(0 3px 2px #000d);transition:filter .16s ease,transform .16s ease}.aircraft-marker:hover .aircraft-svg{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 7px var(--plane-color));transform:scale(1.1)}.aircraft-marker.selected .aircraft-svg{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 9px var(--plane-color));transform:scale(1.12)}.aircraft-marker .aircraft-halo{inset:-7px;background:radial-gradient(circle,transparent 48%,color-mix(in srgb,var(--plane-color) 18%,transparent) 52%,transparent 72%);border:1px solid color-mix(in srgb,var(--plane-color) 70%,#fff)}.aircraft-marker:hover .aircraft-halo{opacity:.55}.aircraft-engine{filter:drop-shadow(0 1px 1px #000)}.aircraft-cockpit{filter:drop-shadow(0 1px 1px #000)}.aircraft-detail{stroke-width:1.05;opacity:.9}.mini-plane .aircraft-svg{filter:drop-shadow(0 0 .6px #fff) drop-shadow(0 2px 1px #000b)}.detailplane .aircraft-svg{filter:drop-shadow(0 0 1px #fff) drop-shadow(0 5px 5px #07547755)}
@media(max-width:1100px){.stationbadge{display:none}.workspace{grid-template-columns:minmax(0,1fr) 400px}.kpis article{gap:8px}.kpi-icon{width:36px;height:36px;flex-basis:36px}.kpis strong{font-size:24px}}
@media(max-width:820px){body{overflow:auto}.topbar{height:62px;padding:0 10px}.brandmark{width:40px;height:40px}.clock,.connection span,#fullscreenBtn{display:none}.kpis{height:auto;grid-template-columns:1fr 1fr;padding:8px}.kpis article{min-height:75px}.workspace{height:auto;display:block}.mapwrap{height:56vh;min-height:390px}.sidebar{height:50vh;min-height:410px;border-left:0;border-top:1px solid var(--line)}.detailpanel{top:auto;bottom:8px;left:8px;right:8px;width:auto;max-height:78vh;transform:translateY(calc(100% + 30px))}.detailpanel.open{transform:translateY(0)}.range-panel{left:8px;right:8px;top:58px;width:auto;max-width:none;max-height:calc(100% - 66px);transform:translateY(calc(100% + 20px))}.range-panel.open{transform:translateY(0)}.command-center{left:8px;right:8px;top:8px;bottom:8px;width:auto;height:auto;transform:translateY(calc(100% + 20px))}.command-center.open{transform:translateY(0)}.command-tabs button{font-size:8px}.command-body{padding:10px}.command-kpis{grid-template-columns:1fr 1fr}.stats-lower{grid-template-columns:1fr}.health-overview{grid-template-columns:1fr 1fr}.service-grid{grid-template-columns:1fr}.signal-health{grid-template-columns:1fr}.legend{max-width:85%;flex-wrap:wrap}.mapheadline{top:8px;left:8px}.marker-label,.row-extra{display:none!important}}
@media(max-width:820px){.command-tabs{height:auto;min-height:48px;overflow-x:auto}.command-tabs button{font-size:7px;min-width:88px;padding:7px 4px}.lab-grid{grid-template-columns:1fr}.lab-toolbar,.watch-toolbar{align-items:stretch;flex-direction:column}.watch-toolbar form{width:100%}.watch-toolbar input{flex:1;width:auto}.direction-bars{grid-template-columns:1fr}.playback-panel{bottom:8px;padding:10px}.playback-controls{grid-template-columns:36px 60px 1fr}.playback-controls>strong{grid-column:1/4;text-align:left}.playback-stats{gap:8px;flex-wrap:wrap}}
@media(max-width:820px){.notification-stack{right:8px;top:70px;width:calc(100vw - 16px)}.notification-card{min-height:75px}.airport-toolbar{align-items:stretch;flex-direction:column}.airport-toolbar select{width:100%}.airport-kpis{grid-template-columns:1fr 1fr}.airport-board-head{display:none}.airport-row{grid-template-columns:1fr 45px 45px}.airport-row>div{grid-column:1/2}.airport-row>b{grid-column:1/2;grid-row:2}.airport-row em{grid-row:1}.airport-row .flight-phase{grid-column:2/4;grid-row:2}.alert-settings button{margin-left:0}}
@media(max-width:620px){.central-alert-search{grid-template-columns:1fr 1fr}.central-alert-search input{grid-column:1/-1}.central-alert-search button{width:100%}.central-alert-search span{grid-column:1/-1}}
@media(max-width:520px){.brand strong{font-size:13px}.brand>span{font-size:6px}.kpis strong{font-size:21px}.kpis span{font-size:7px}.kpis small{font-size:8px}.kpi-icon{display:none}.mapwrap{height:52vh}.sidehead{height:52px}.listhead,.aircraftrow{grid-template-columns:1fr 68px 58px}.detailgrid{grid-template-columns:1fr 1fr}.mapheadline>span{display:none}.legend strong{display:none}.legend{gap:7px}.attribution{display:none}}
.flight-tooltip{background:#071521f2!important;border:1px solid #2d6385!important;border-radius:11px!important;color:#edf7ff!important;box-shadow:0 18px 45px #0009!important;padding:0!important}.flight-tooltip:before{border-top-color:#2d6385!important}.flight-tip{width:230px;padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.flight-tip header{grid-column:1/3;display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid #25435a}.flight-tip header b{font-family:var(--mono);font-size:13px;color:#fff}.flight-tip header span{font-family:var(--mono);font-size:8px;color:var(--cyan)}.flight-tip div{min-width:0}.flight-tip label{display:block;font-family:var(--mono);font-size:6px;letter-spacing:.8px;color:#708ba0}.flight-tip strong{display:block;font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brandmark span{font-family:var(--mono);font-size:18px;font-weight:800;letter-spacing:-1px;transform:none;text-shadow:0 2px 5px #000}
.light{--text:#10263a;--muted:#5f7487;--line:#cbd9e4;--line2:#abc2d2;background:linear-gradient(135deg,#edf3f7,#e5edf3);color:#10263a}.light .topbar{background:linear-gradient(180deg,#fff,#f4f8fb);border-bottom-color:#c6d6e2;box-shadow:0 8px 25px #17354d18}.light .topbar:after{opacity:.75}.light .brand strong{color:#0b2235}.light .brand strong b{color:#087aa3}.light .brand>span,.light .clock span,.light .stationbadge span{color:#61798d}.light .stationbadge{border-color:#cfdae3}.light .stationbadge strong,.light .clock strong{color:#17364e}.light .connection{background:#eef7f5;border-color:#a8d8c9;color:#217458}.light .iconbtn,.light .closebtn{background:linear-gradient(145deg,#fff,#e8f0f5);border-color:#bfd0dc;color:#17354c;box-shadow:0 4px 12px #183b5414}.light .kpis{background:linear-gradient(180deg,#e9f0f5,#f3f7fa);border-color:#cad8e3}.light .kpis article{background:linear-gradient(145deg,#fff,#f5f9fc);border-color:#cbd9e4;box-shadow:0 10px 25px #17354d12}.light .kpis span,.light .kpis small{color:#587186}.light .kpis strong{color:#102d43}.light .sidebar{background:linear-gradient(180deg,#fff,#f2f6f9);border-color:#c7d5df;box-shadow:-15px 0 40px #17354d12}.light .sidehead{border-color:#cbd9e4}.light .sidehead span{color:#087da5}.light .sidehead strong{color:#16344a}.light .sidehead>b{color:#167455;background:#e7f7f1;border-color:#a8dac9}.light .tabs{border-color:#ccd9e3}.light .tabs button{color:#62788a}.light .tabs button.active{color:#0d344e;background:linear-gradient(180deg,transparent,#dff4fa);border-color:#0789b3}.light .filters{border-color:#cfdae3}.light .searchbox,.light .filters select{background:#fff;border-color:#bdcfdb;color:#17384f;box-shadow:inset 0 1px 2px #17354d0d}.light .searchbox input{color:#17384f}.light .searchbox input::placeholder{color:#7890a3}.light .listhead{color:#5d7487}.light .aircraftrow{border-bottom-color:#e1e8ed}.light .aircraftrow:hover{background:#e9f5fa;border-color:#afd4e3}.light .aircraftrow.selected{background:linear-gradient(90deg,#d8f1f8,#edf9fc);border-color:#81c8dd}.light .aircraft-id strong,.light .aircraftrow>span{color:#13344d}.light .aircraft-id small,.light .aircraftrow>span small{color:#627b8f}.light .mini-plane{background:#edf4f8;border-color:#bfd2df}.light .row-extra{background:#fff;border-color:#abc7d8;box-shadow:0 12px 30px #17354d24}.light .row-extra label{color:#668095}.light .row-extra b{color:#17364d}.light .sidefooter{background:#f8fbfd;border-color:#cbd9e4;color:#61798b}.light .detailpanel{background:linear-gradient(145deg,#fff,#edf4f8);border-color:#9dbccd;box-shadow:0 30px 90px #17354d45}.light .detailhead h2,.light .detailhead p{color:#17364d}.light .detailitem{background:#fff;border-color:#c7d8e3}.light .detailitem span{color:#668095}.light .detailitem strong{color:#16364d}.light .detailactions{background:linear-gradient(0deg,#eef5f9 65%,transparent)}.light .detailactions button{background:linear-gradient(145deg,#167fa7,#0b6387);border-color:#0b688d;color:#fff}.light .mapheadline,.light .legend{background:#fffffff2;border-color:#9fb9ca;color:#17364d;box-shadow:0 10px 30px #17354d26}.light .mapheadline small,.light .mapheadline>span,.light .legend{color:#4f6e84}.light .marker-label{background:#fffffff2;border-color:#9fb9ca;color:#15354d;box-shadow:0 5px 13px #17354d24}.light .flight-tooltip{background:#fffffff7!important;border-color:#75a9c1!important;color:#17364d!important}.light .flight-tip header{border-color:#cbdce6}.light .flight-tip header b{color:#12344d}.light .flight-tip label{color:#698297}.light .flight-tip strong{color:#17364d}
/* v4.0.1: duidelijke menunavigatie en rechtstreeks volgen vanuit luchthavenbord */
.command-tabs{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.command-tabs button{flex:0 0 auto;min-width:105px;padding-left:10px;padding-right:10px;white-space:nowrap}
.airport-board-head,.airport-row{grid-template-columns:minmax(150px,1.1fr) minmax(130px,1.2fr) 50px 50px 104px 64px}
.airport-follow{height:30px;border:1px solid #2786aa;border-radius:8px;background:#113a52;color:#e9fbff;font-size:8px;font-weight:800;cursor:pointer}
.airport-follow:hover{background:#17516f;border-color:#35cbea}
.light .airport-follow{background:#087da5;border-color:#087394;color:#fff}
.light .airport-follow:hover{background:#05698d}
.light .airport-row em,.light .airport-row>b,.light .airport-board-head{color:#244a63}
.light .airport-row small{color:#58758a}
.airport-toolbar>div>span,.airport-board-head{color:#c7d5df}.airport-row strong{color:#fff}.airport-row>b{color:#d9e5ed}.airport-row small{color:#a9bdca}.flight-phase.departures{color:#ffd166;border-color:#ffd16670;background:#ffd16612}.airport-follow{border-color:#7d94a5;background:#263b4a;color:#fff}.airport-follow:hover{border-color:#b8c7d1;background:#344e60}.light .airport-toolbar>div>span,.light .airport-board-head{color:#294b61}.light .airport-row strong,.light .airport-row>b,.light .airport-row em{color:#153247}.light .airport-row small{color:#4f6a7c}.light .flight-phase.departures{color:#7a4b00;border-color:#d49a32;background:#fff4d8}.light .airport-follow{background:#294b61;border-color:#294b61;color:#fff}.light .airport-follow:hover{background:#18394f}
.airport-row.arrivals{border-left:5px solid #00a878;background:#071e1a}.airport-row.departures{border-left:5px solid #f08c00;background:#221509}.airport-row.cruise{border-left:5px solid #7557d6;background:#141125}.flight-phase.arrivals{color:#fff;border-color:#008b63;background:#006b4f}.flight-phase.departures{color:#fff;border-color:#b85d00;background:#8a4300}.flight-phase.cruise{color:#fff;border-color:#684cc4;background:#4d3796}.airport-kpis article:nth-child(2){border-color:#008b63;background:#063d30}.airport-kpis article:nth-child(3){border-color:#b85d00;background:#542b08}.airport-kpis article:nth-child(2) span,.airport-kpis article:nth-child(2) strong,.airport-kpis article:nth-child(3) span,.airport-kpis article:nth-child(3) strong{color:#fff}.light .airport-row.arrivals{border-color:#00a878;background:#071e1a}.light .airport-row.departures{border-color:#f08c00;background:#221509}.light .airport-row.cruise{border-color:#7557d6;background:#141125}.light .airport-row.arrivals strong,.light .airport-row.arrivals b,.light .airport-row.arrivals em,.light .airport-row.departures strong,.light .airport-row.departures b,.light .airport-row.departures em,.light .airport-row.cruise strong,.light .airport-row.cruise b,.light .airport-row.cruise em{color:#fff}.light .airport-row.arrivals small,.light .airport-row.departures small,.light .airport-row.cruise small{color:#cbd8df}.light .flight-phase.arrivals{color:#fff;border-color:#005c45;background:#006b4f}.light .flight-phase.departures{color:#fff;border-color:#713600;background:#8a4300}.light .flight-phase.cruise{color:#fff;border-color:#3d2c78;background:#4d3796}.light .airport-kpis article:nth-child(2){border-color:#005c45;background:#006b4f}.light .airport-kpis article:nth-child(3){border-color:#713600;background:#8a4300}
.light .command-tabs button{color:#526f82}
.light .command-tabs button.active{color:#075f7e}
@media(min-width:821px){.command-center{width:min(1040px,calc(100vw - 36px))}}
.airport-board{gap:7px}.airport-board-head,.airport-row{grid-template-columns:minmax(190px,1.2fr) minmax(165px,1.25fr) 62px 62px 122px 76px;gap:11px}.airport-board-head{padding:9px 13px;font-size:8px}.airport-row{min-height:62px;padding:12px 13px}.airport-row .mini-plane,.schedule-plane{width:34px;height:34px;flex-basis:34px}.airport-row strong{font-size:12px}.airport-row small{font-size:9px;line-height:1.35}.airport-row>b{font-size:10px}.airport-row em{font-size:11px}.flight-phase{font-size:8px;padding:7px 5px}.airport-follow{height:35px;font-size:9px}.airport-row.active-flight{box-shadow:inset 0 0 0 1px #7557d688}.airport-row.landed-recent{opacity:.88}
@media(max-width:820px){.airport-board-head{display:none}.airport-row{grid-template-columns:minmax(0,1fr) 72px 68px}.airport-row>div,.airport-row>b{grid-column:1}.airport-row>em:nth-of-type(1){grid-column:2;grid-row:1}.airport-row>em:nth-of-type(2){grid-column:2;grid-row:2}.airport-row .flight-phase{grid-column:3;grid-row:1}.airport-follow{grid-column:3;grid-row:2}}
#map.runway-camera:after{content:"BAANCAMERA · " attr(data-runway-camera);position:absolute;z-index:1100;left:50%;top:14px;transform:translateX(-50%);padding:7px 11px;border:1px solid #41cddd88;border-radius:8px;background:#071722dd;color:#eafbff;box-shadow:0 8px 24px #0008;font:800 8px var(--mono);letter-spacing:.8px;pointer-events:none}.light #map.runway-camera:after{border-color:#1389a9;background:#f7fcfdee;color:#16465b;box-shadow:0 8px 20px #17394c35}@media(max-width:560px){#map.runway-camera:after{top:9px;font-size:7px;padding:6px 9px}}
