/* ==========================================================================
   SHELL — contenitore viste + tab bar inferiore + card generiche
   ========================================================================== */

/* ---------- Ottimizzazione touch globale ---------- */
button,
a,
[role="button"],
.tab-btn,
.card-rapida,
.riga-altro,
.btn-giocatore,
.btn-azione,
.opzione-modale,
.toggle-si-no button {
  touch-action: manipulation;
  user-select: none;
  -webkit-user-select: none;
}
/* ---------- Contenitore "device" centrato (stile Investing.com) ---------- */
#app-shell {
  display: none;
  flex-direction: column;
  height: 100vh;
  height: 100dvh;
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
  background: var(--color-bg);
  box-shadow: 0 0 24px rgba(11, 12, 16, 0.10);
  position: relative;
  overflow: hidden;
}
#app-shell.visibile { display: flex; }

@media (max-width: 480px) {
  #app-shell {
    max-width: 100%;
    box-shadow: none;
  }
}

#view-container {
  flex: 1;
  overflow: hidden;
  position: relative;
}

.view {
  display: none;
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  flex-direction: column;
  padding-bottom: calc(var(--tabbar-height) + 26px + env(safe-area-inset-bottom));
}
.view.attiva { display: flex; }

/* ---------- BOTTOM NAV — capsula fluttuante compatta ---------- */
.tab-bar {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(6px + env(safe-area-inset-bottom, 0px));
  z-index: 40;
  width: calc(100% - 20px);
  max-width: 410px;
  min-height: var(--tabbar-height);
  display: flex;
  align-items: stretch;
  padding: 4px;
  touch-action: manipulation;
  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  border-radius: 20px;
  box-shadow: var(--shadow-card);
}

/* ====== TELEFONO/TABLET RUOTATO: nessuna nav — si ruota in verticale per navigare ======
   Le tab interne (Stats/Adv/Analisi) restano: dentro una vista ci si muove comunque. */
@media (orientation: landscape) and (pointer: coarse) {
  #app-shell {
    flex-direction: column;
    max-width: 100%;
    box-shadow: none;
  }
  .tab-bar { display: none; }
  .view,
  #view-partita { padding-bottom: env(safe-area-inset-bottom, 0px); }
}

/* ============ DESKTOP / LAPTOP (mouse): sidebar sinistra + contenuto centrato ============ */
@media (min-width: 900px) and (pointer: fine) {
  #app-shell {
    flex-direction: row;
    max-width: 100%;
    box-shadow: none;
  }
  #view-container { flex: 1; min-width: 0; }

  .tab-bar {
    order: -1;
    position: static;
    transform: none;
    align-self: stretch;
    flex-direction: column;
    justify-content: flex-start;
    width: 148px;
    min-width: 148px;
    max-width: 148px;
    min-height: 0;
    padding: 12px 6px;
    gap: 4px;
    border: 0;
    border-right: 1px solid var(--color-border);
    border-radius: 0;
    box-shadow: none;
    background: var(--color-surface-raised);
  }
  .tab-btn {
    flex: 0 0 auto;
    flex-direction: row;
    justify-content: flex-start;
    gap: 10px;
    padding: 9px 10px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0;
    border-radius: var(--radius-sm);
  }
  .tab-btn .icona { font-size: 18px; }
  .tab-btn .icona .ico { width: 18px; height: 18px; }

  .view { padding-bottom: var(--space-5); }

  /* Colonna contenuto centrata — larga per le tabelle, stretta "da lettura" per il resto */
  #view-stats > *,
  #view-adv > * { max-width: 1120px; margin-inline: auto; width: 100%; }
  /* Analisi stagione (tabella Giocatori, 20+ colonne): niente tetto, sfrutta
     tutto lo schermo disponibile come Rotazioni/Rating Net/Player Development
     (nessuna di queste tre è mai stata nell'elenco sopra). */
  #view-analisi > * { width: 100%; }
  #view-calendario > * { max-width: 1040px; margin-inline: auto; width: 100%; }
  #view-squadra > *,
  #view-partita > * { max-width: 760px; margin-inline: auto; width: 100%; }
}

.tab-btn {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border-radius: 18px;
  color: var(--color-text-muted);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2px;
  touch-action: manipulation;
  user-select: none;
  -webkit-user-select: none;
}
.tab-btn .icona { font-size: 22px; line-height: 1; }
.tab-btn .icona .ico { width: 22px; height: 22px; }
.tab-btn.attivo {
  background: var(--color-brand-soft);
  color: var(--color-brand-ink);
}

/* ---------- Header di sezione generico ---------- */
.header-pagina {
  padding: var(--space-4) var(--space-4) var(--space-3);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface-raised);
  flex-shrink: 0;
}
.header-pagina h1 {
  font-size: 20px;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.header-pagina p { color: var(--color-text-muted); font-size: 13px; margin-top: 2px; }

.contenuto-pagina {
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  flex: 1;
}

/* ---------- Card generiche ---------- */
.card-placeholder,
.card-lista {
  background: var(--color-surface-raised);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-card);
}
.card-placeholder {
  border-radius: var(--radius-lg);
  padding: var(--space-5) var(--space-4);
  text-align: center;
}
.card-lista {
  border-radius: var(--radius-md);
  overflow: hidden;
}

.card-placeholder .icona-grande {
  font-size: 32px;
  color: var(--color-text-secondary);
  margin-bottom: var(--space-2);
}
.card-placeholder h3 { font-size: 16px; font-weight: 800; margin-bottom: var(--space-1); }
.card-placeholder p { color: var(--color-text-muted); font-size: 13px; line-height: 1.5; }

.badge-in-arrivo {
  display: inline-block;
  background: var(--color-brand-soft);
  color: var(--color-brand-ink);
  font-size: 11px;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  margin-top: var(--space-2);
}

.riga-lista {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-border);
}
.riga-lista:last-child { border-bottom: none; }
.riga-lista .titolo-riga { font-weight: 700; font-size: 14px; }
.riga-lista .sottotitolo-riga { font-size: 12px; color: var(--color-text-muted); margin-top: 2px; }

.chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 800;
  padding: 3px 9px;
  border-radius: var(--radius-pill);
  background: var(--color-surface);
  color: var(--color-text-secondary);
  border: 1px solid var(--color-border-strong);
  white-space: nowrap;
}
.chip .ico { font-size: 13px; }
.chip-casa {
  background: var(--color-brand-soft);
  color: var(--color-brand-ink);
  border-color: var(--color-brand-ink);
}

/* Esiti partita nel calendario */
.esito-w { color: var(--color-state-positive); font-weight: 800; }
.esito-l { color: var(--color-state-negative); font-weight: 800; }

/* ==========================================================================
   RESPONSIVE — smartphone piccoli / schermi ampi
   ========================================================================== */
@media (max-width: 360px) {
  .tab-btn { font-size: 10px; }
  .contenuto-pagina { padding: var(--space-3); }
}
