/* ============================================================
   Timetable condivisa — stile unico per tutte le tabelle voli
   (home, voli del giorno, voli stagionali). Look "istituzionale".
   Le variabili --air-* sono definite in :root nel layout.
   ============================================================ */

/* ── Contenitore board (tabs + filtro + tabella) ──────────── */
.board{background:#fff;border:1px solid var(--air-border);border-radius:10px;overflow:hidden}
.tt-scroll{overflow-x:auto}
.board-foot{text-align:right;padding:11px 16px;border-top:1px solid var(--air-border);background:#fff}
.board-foot a{font-size:13px;color:var(--air-blue);font-weight:700}
.board-foot a:hover{text-decoration:underline}
.b-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px}
.b-tabs{display:flex;gap:6px}
.b-tab{background:#f1f5f9;border:1px solid var(--air-border);color:var(--air-mute);
  padding:8px 16px;font-weight:700;font-size:12.5px;cursor:pointer;border-radius:7px;
  display:inline-flex;align-items:center;gap:7px;font-family:inherit;transition:all .15s}
.b-tab:hover{border-color:var(--air-blue);color:var(--air-blue)}
.b-tab.b-on,.b-tab.active{background:var(--air-blue-d);border-color:var(--air-blue-d);color:#fff}
.b-live{margin-left:auto;color:var(--air-mute);font-size:11.5px;display:flex;align-items:center;gap:12px}
.live-dot{color:var(--air-accent);font-weight:700;display:inline-flex;gap:5px;align-items:center;
  text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}
.live-dot::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--air-accent);animation:bpulse 1.4s infinite}
@keyframes bpulse{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes spin{to{transform:rotate(360deg)}}
.b-filter{display:flex;align-items:center;gap:8px}
.b-filter input{width:260px;max-width:100%;padding:8px 11px;border:1px solid var(--air-border);border-radius:6px;
  font-size:12.5px;font-family:inherit}
.b-filter input:focus{outline:none;border-color:var(--air-blue);box-shadow:0 0 0 3px rgba(26,79,160,.1)}

/* ── Tabella ──────────────────────────────────────────────── */
.flight-table{width:100%;border-collapse:collapse;font-size:13px}
.flight-table thead th{background:var(--air-blue-d);color:#fff;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.07em;padding:12px 14px;text-align:left;border-bottom:none;white-space:nowrap}
.flight-table td{padding:12px 14px;border-bottom:1px solid var(--air-border);vertical-align:middle}
.flight-table tbody tr:last-child td{border:none}
.flight-table tbody tr:hover td{background:#f7fafe}

/* ── Celle ────────────────────────────────────────────────── */
.fnum-badge{display:inline-block;font-family:"SF Mono",Consolas,monospace;font-weight:700;font-size:12.5px;
  color:var(--air-blue);background:#eef3fb;border:1px solid #dbe6f6;padding:4px 10px;border-radius:5px;
  letter-spacing:.02em;white-space:nowrap}
.fcompany{display:inline-flex;align-items:center}
.fcompany img{height:26px;max-width:92px;object-fit:contain}
.froute{font-weight:700;color:var(--air-dark);font-size:13.5px}
.froute small{font-weight:600;color:var(--air-mute);font-size:12px}
.ftime{font-weight:800;font-size:14.5px;color:var(--air-dark);font-variant-numeric:tabular-nums}
.ftime-sched{font-size:12.5px;color:#94a3b8;text-decoration:line-through;font-variant-numeric:tabular-nums}
.ftime-arrow{color:#94a3b8;margin:0 5px;font-size:11px}
.futc{display:block;font-size:10px;color:var(--air-mute);font-weight:600;margin-top:2px;letter-spacing:.02em}
.follow-link{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;
  color:var(--air-blue);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.follow-link i{font-size:11px;transition:transform .15s}
.follow-link:hover i{transform:translateX(3px)}
.follow-na{color:#cbd5e1;font-weight:700}
/* Segui volo: testo esteso su desktop, icona soltanto su mobile (toggle nel media query) */
.follow-ico-m{display:none}
.chip{display:inline-flex;width:30px;height:30px;border-radius:6px;align-items:center;justify-content:center;
  color:#fff;font-size:10px;font-weight:800;flex-shrink:0}

/* Frequenza settimanale (voli stagionali) */
.fdays{display:flex;gap:3px}
.fday{width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;font-size:.62rem;
  font-weight:700;background:#f1f5f9;color:#cbd5e1;border:1px solid var(--air-border)}
.fday.on{background:var(--air-blue);color:#fff;border-color:var(--air-blue)}

/* ── Badge di stato ───────────────────────────────────────── */
.st{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:11px;
  font-weight:700;white-space:nowrap;letter-spacing:.02em}
.st .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.st-ok{background:#dcfce7;color:#15803d}.st-ok .dot{background:#22c55e}
.st-late{background:#fef3c7;color:#a16207}.st-late .dot{background:#f59e0b;animation:bpulse 1.4s infinite}
.st-board{background:#dbeafe;color:#1e40af}.st-board .dot{background:var(--air-blue);animation:bpulse 1.4s infinite}
.st-sched{background:#eef1f5;color:#475569}.st-sched .dot{background:#94a3b8}
.st-cancel{background:#fee2e2;color:#dc2626}.st-cancel .dot{background:#ef4444}

/* ── Skeleton loading ─────────────────────────────────────── */
.skel{display:inline-block;background:linear-gradient(90deg,#eee 25%,#ddd 50%,#eee 75%);
  background-size:200% 100%;animation:sk 1.4s linear infinite;border-radius:4px;height:14px}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── Stato vuoto ──────────────────────────────────────────── */
.tt-empty{padding:40px 16px;text-align:center;color:var(--air-mute);font-size:13px}
.tt-empty i{display:block;font-size:2rem;opacity:.25;margin-bottom:8px}

/* ── MOBILE: tabella compatta a larghezza fissa, ZERO scroll orizzontale ── */
@media(max-width:640px){
  /* table-layout:fixed → la tabella non supera mai la larghezza del video */
  .flight-table{font-size:12.5px;table-layout:fixed;width:100%}
  .flight-table th,.flight-table td{padding:10px 8px}
  /* Intestazioni: a capo invece di sforare le colonne strette */
  .flight-table thead th{white-space:normal;font-size:9.5px;letter-spacing:.03em;padding:8px 6px;line-height:1.2}
  .b-filter input{width:100%}

  /* I contenitori non scorrono più in orizzontale */
  .board,.tt-scroll,.ft-table-wrap{overflow-x:hidden}

  /* La destinazione va a capo invece di allargare la colonna */
  .froute{white-space:normal;word-break:break-word;line-height:1.25;font-size:13px}
  .froute small{display:block;font-size:11px}
  /* Badge di stato compatti, così stanno nella cella */
  .st{font-size:10px;padding:3px 7px;gap:4px;white-space:normal}
  /* Segui: su mobile nascondi il testo e mostra solo l'icona */
  .follow-link{text-decoration:none}
  .follow-txt{display:none}
  .follow-link .follow-ico-m{display:inline-block;font-size:22px;line-height:1;color:var(--air-blue)}

  /* Board arrivi/partenze → Destinazione + Orario + Stato + Segui (icona).
     Nascosti: Volo (1) e Compagnia (2). */
  .flight-table.tt-arrdep thead th:nth-child(1),.flight-table.tt-arrdep tbody td:nth-child(1),
  .flight-table.tt-arrdep thead th:nth-child(2),.flight-table.tt-arrdep tbody td:nth-child(2){display:none}
  /* Larghezze proporzionali: Provenienza non più dominante, Orario/Stato centrati */
  .flight-table.tt-arrdep th:nth-child(3),.flight-table.tt-arrdep td:nth-child(3){width:38% !important}
  .flight-table.tt-arrdep th:nth-child(4),.flight-table.tt-arrdep td:nth-child(4){width:20% !important;text-align:center}
  .flight-table.tt-arrdep th:nth-child(5),.flight-table.tt-arrdep td:nth-child(5){width:34% !important;text-align:center}
  .flight-table.tt-arrdep th:nth-child(6),.flight-table.tt-arrdep td:nth-child(6){width:8% !important;text-align:center;padding-left:0;padding-right:0}
  .flight-table.tt-arrdep td:nth-child(6) .follow-link{display:block;width:100%;text-align:center}
  .flight-table.tt-arrdep thead th:nth-child(6){font-size:0}
  /* Separatori di colonna per una migliore leggibilità */
  .flight-table.tt-arrdep tbody td{border-right:1px solid var(--air-border)}
  .flight-table.tt-arrdep tbody td:last-child{border-right:none}
  .flight-table.tt-arrdep thead th{border-right:1px solid rgba(255,255,255,.14)}
  .flight-table.tt-arrdep thead th:last-child{border-right:none}

  /* Voli stagionali → restano Partenza + Arrivo + Frequenza.
     Nascosti: Compagnia (1) e Periodo (ultima). */
  .flight-table.tt-seasonal thead th:nth-child(1),.flight-table.tt-seasonal tbody td:nth-child(1),
  .flight-table.tt-seasonal thead th:last-child,.flight-table.tt-seasonal tbody td:last-child{display:none}
  /* Larghezze proporzionali: Destinazione + Partenza + Arrivo + Frequenza */
  .flight-table.tt-seasonal th:nth-child(2),.flight-table.tt-seasonal td:nth-child(2){width:34%}
  .flight-table.tt-seasonal th:nth-child(3),.flight-table.tt-seasonal td:nth-child(3){width:19%;text-align:center}
  .flight-table.tt-seasonal th:nth-child(4),.flight-table.tt-seasonal td:nth-child(4){width:19%;text-align:center}
  .flight-table.tt-seasonal th:nth-child(5),.flight-table.tt-seasonal td:nth-child(5){width:28%}
  /* Giorni: pastiglie più piccole così le 7 stanno nella cella senza sforare */
  .flight-table.tt-seasonal .fdays{justify-content:center;gap:2px;flex-wrap:nowrap}
  .flight-table.tt-seasonal .fday{width:14px;height:14px;line-height:14px;font-size:.5rem}
}
