:root{--bg: #060a14;--bg-2: #0c1322;--panel: #0f1828;--panel-2: #131e30;--line: #1e2c44;--line-2: #2a3c59;--text: #e7eef9;--dim: #7e8fab;--dim-2: #566481;--amber: #ffb000;--amber-2: #ffce5c;--green: #2fe07a;--red: #ff5470;--blue: #4d9cff;--cyan: #2fd9ff;--purple: #a77bff;--mono: "SF Mono", "JetBrains Mono", "Roboto Mono", ui-monospace, "Courier New", monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html,body{height:100%}body{background:var(--bg);background-image:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(77,156,255,.08),transparent),radial-gradient(ellipse 60% 40% at 100% 100%,rgba(167,123,255,.05),transparent);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased;overflow:hidden}.app{height:100vh;height:100dvh;display:flex;flex-direction:column}header.top{flex:0 0 auto;display:flex;align-items:center;gap:24px;padding:14px 24px;background:linear-gradient(180deg,var(--bg-2),var(--bg));border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}.brand .mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#ff5470,#ffb000);display:grid;place-items:center;font-size:20px;box-shadow:0 4px 16px #ff54704d}.brand .titles .site-name{font-size:15px;font-weight:700;letter-spacing:.5px;line-height:1.1;color:var(--text)}.brand .titles p{font-size:11px;color:var(--dim);letter-spacing:.8px;text-transform:uppercase}.tabs{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--dim);font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.4px;padding:9px 20px;border-radius:9px;cursor:pointer;transition:all .18s ease;display:flex;align-items:center;gap:8px}.tab:hover{color:var(--text)}.tab.active{background:var(--panel-2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}.tab[data-mode=arrivals].active{box-shadow:inset 0 0 0 1px #2fe07a80;color:var(--green)}.tab[data-mode=departures].active{box-shadow:inset 0 0 0 1px #4d9cff80;color:var(--blue)}.tab .dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.8}.search{margin-left:auto;position:relative;flex:0 1 320px;display:flex;align-items:center}.search svg{position:absolute;left:12px;color:var(--dim);pointer-events:none}.search input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--text);font-family:var(--sans);font-size:13px;padding:10px 14px 10px 36px;outline:none;transition:border-color .15s}.search input::placeholder{color:var(--dim-2)}.search input:focus{border-color:var(--line-2)}.clock{flex:0 0 auto;text-align:right;font-family:var(--mono)}.clock .time{font-size:22px;font-weight:700;color:var(--amber);letter-spacing:1px;text-shadow:0 0 18px rgba(255,176,0,.35);font-variant-numeric:tabular-nums}.clock .date{font-size:10px;color:var(--dim);letter-spacing:.6px;text-transform:uppercase}.statusbar{flex:0 0 auto;display:flex;align-items:center;gap:18px;padding:8px 24px;background:var(--bg-2);border-bottom:1px solid var(--line);font-size:11px;color:var(--dim)}.statusbar .pill{display:inline-flex;align-items:center;gap:6px}.statusbar .live{display:inline-flex;align-items:center;gap:7px;color:var(--green);font-weight:600;letter-spacing:.5px;text-transform:uppercase}.statusbar .live .pulse{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 #2fe07ab3;animation:pulse 1.6s infinite}@keyframes pulse{0%{box-shadow:0 0 #2fe07a99}70%{box-shadow:0 0 0 8px #2fe07a00}to{box-shadow:0 0 #2fe07a00}}.statusbar .sep{color:var(--line-2)}.statusbar .updated{font-family:var(--mono)}.history-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line-2);background:var(--panel);color:var(--dim);font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;padding:4px 10px;border-radius:6px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.history-toggle:hover{color:var(--text);border-color:#3a4f74}.history-toggle.active{background:#2fe07a1f;color:var(--green);border-color:#2fe07a66}.statusbar .count{margin-left:auto;color:var(--text);font-weight:600}main.board{flex:1 1 auto;overflow:hidden;min-width:0;min-height:0}.fids-scroll{overflow:auto;-webkit-overflow-scrolling:touch;height:100%;max-width:100%}table.fids{width:100%;border-collapse:collapse;font-size:13px;min-width:max-content}table.fids thead th{position:sticky;top:0;z-index:2;background:var(--bg-2);color:var(--dim);font-size:10.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;text-align:left;padding:12px 16px;border-bottom:1px solid var(--line-2);white-space:nowrap}table.fids thead th.num{text-align:center}table.fids tbody td{padding:11px 16px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}table.fids tbody tr{transition:background .12s ease}table.fids tbody tr:nth-child(2n){background:#ffffff06}table.fids tbody tr:hover,table.fids tbody tr:hover:nth-child(2n){background:#4d9cff14}.time-cell{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.flight-cell{font-family:var(--mono);font-weight:600;letter-spacing:.3px;color:var(--amber-2)}.flight-cell .code{background:#ffb0001a;border:1px solid rgba(255,176,0,.25);padding:2px 7px;border-radius:5px;margin-right:4px;font-size:12px;display:inline-block}.place-cell{color:var(--text);font-weight:600}.place-cell .iata{font-family:var(--mono);background:var(--panel);border:1px solid var(--line-2);color:var(--cyan);padding:2px 7px;border-radius:5px;margin-right:8px;font-size:12px;font-weight:700;display:inline-block}.gate-cell,.belt-cell,.term-cell,.hall-cell{font-family:var(--mono);text-align:center;font-weight:600;color:var(--text)}.gate-cell.empty,.belt-cell.empty,.term-cell.empty,.hall-cell.empty{color:var(--dim-2);font-weight:400}.status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;font-size:11.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;font-family:var(--mono);white-space:nowrap}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.s-arrived,.s-landed,.s-gate{background:#2fe07a1f;color:var(--green)}.s-departed,.s-boarding{background:#4d9cff1f;color:var(--blue)}.s-estimated,.s-scheduled,.s-checkin{background:#ffb0001a;color:var(--amber)}.s-delayed{background:#ff54701f;color:var(--red)}.s-cancelled{background:#ff54702e;color:var(--red);text-decoration:line-through}.s-unknown{background:var(--panel);color:var(--dim)}.state{flex:1 1 auto;display:grid;place-items:center;color:var(--dim);text-align:center;padding:40px;min-height:240px}.state .spinner{width:38px;height:38px;border:3px solid var(--line);border-top-color:var(--amber);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.state.error{color:var(--red)}.state h3{font-size:15px;color:var(--text);margin-bottom:6px}.state p{font-size:12px}@media(max-width:900px){header.top{flex-wrap:wrap;gap:10px;padding:12px}.brand{flex:1 1 auto;min-width:0}.brand .mark{width:32px;height:32px;font-size:17px;border-radius:8px}.brand .titles .site-name{font-size:13px;letter-spacing:.3px}.brand .titles p{font-size:10px}.clock{order:2;margin-left:auto;text-align:right}.clock .time{font-size:18px}.clock .date{font-size:9px}.tabs{order:3;flex:1 1 100%}.tab{flex:1 1 0;justify-content:center;padding:9px 12px}.search{order:4;flex:1 1 100%}.statusbar{flex-wrap:wrap;gap:10px 12px;padding:8px 12px;font-size:10.5px}.statusbar .pill.hide-mobile,.statusbar .sep.hide-mobile{display:none}table.fids thead th,table.fids tbody td{padding:9px 12px}table.fids{font-size:12.5px}}@media(max-width:480px){header.top{padding:10px;gap:8px}.brand .titles .site-name{font-size:12px}.brand .titles p{font-size:9px;letter-spacing:.4px}.clock .time{font-size:16px}.tab{padding:8px 10px;font-size:12px}table.fids{font-size:11.5px}table.fids thead th{font-size:9.5px;letter-spacing:.8px;padding:10px}table.fids tbody td{padding:8px 10px}.flight-cell .code,.place-cell .iata{padding:1px 5px;font-size:10.5px}.status{font-size:10px;padding:3px 7px}.time-cell{font-size:13px}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:6px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#3a4f74}
