/* Programma 13 · Trova tornei. Base in ../comune/stile.css (non si tocca). */

.testata h1 { margin: 4px 0 4px; font-size: clamp(26px, 6vw, 34px); line-height: 1.15; }
.testata .logo { margin: 0; }
.tenue { color: var(--tenue); }
.piccolo { font-size: 14px; }
h2 { font-size: 20px; margin: 0 0 8px; }
h3 { font-size: 19px; margin: 2px 0; line-height: 1.25; }
h4 { font-size: 17px; margin: 2px 0; line-height: 1.25; }
a { color: var(--accento-scuro); }

/* Scelte: sì = nero pieno, no = bordo scuro */
.scelta {
  border: 2px solid var(--testo);
  background: transparent;
  color: var(--testo);
  border-radius: var(--raggio-piccolo);
  padding: 9px 14px;
  font-weight: 700;
  min-height: 44px;
}
.scelta[aria-selected="true"],
.scelta[aria-pressed="true"] { background: var(--testo); color: var(--fondo); }

.schede { display: flex; gap: 8px; flex-wrap: wrap; margin: 16px 0; }
.schede .scelta { flex: 1 1 auto; }
.viste { display: flex; gap: 8px; margin: 12px 0; }
.viste .scelta { flex: 1; }

.griglia { display: grid; gap: 16px; }
.pannello[hidden] { display: none; }

/* Filtri */
.filtri, .modulo { display: grid; gap: 12px; }
.filtri label, .modulo label { display: grid; gap: 4px; font-size: 14px; font-weight: 600; }
.filtri .etichetta { margin: 0; }
.due { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.campo { min-height: 44px; min-width: 0; }
.campo:disabled { opacity: 0.5; }
.bottone, .bottone-secondario { min-height: 44px; }
.bottone-secondario { color: var(--testo); text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: 4px; text-align: center; }

/* Conteggio sul panno */
.conteggio { padding: 14px 16px; }
.conteggio .etichetta { color: rgba(255, 255, 255, 0.8); margin: 0; }
.conteggio-numero { font-size: clamp(24px, 6vw, 32px); font-weight: 800; margin: 2px 0 0; line-height: 1.2; }

.avviso { background: var(--fondo-2); border: 1px dashed var(--linea); border-radius: var(--raggio-piccolo); padding: 12px; }

/* Festival */
#lista, #calendario { display: grid; gap: 14px; }
.festival { display: grid; gap: 10px; background: var(--fondo); }
.festival-testa { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.quando { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--accento); }
.dove, .km { margin: 0; font-size: 14px; color: var(--tenue); }
.km { color: var(--testo); font-weight: 600; }
.nota { margin: 0; font-size: 14px; color: var(--tenue); }
.fonti { margin: 0; color: var(--tenue); overflow-wrap: anywhere; }

.bollino {
  flex: none;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 4px 10px;
  border: 2px solid var(--testo);
  white-space: nowrap;
}
.bollino.si { background: var(--testo); color: var(--fondo); }
.bollino.no { background: transparent; color: var(--testo); border-color: var(--tenue); }

/* Tornei */
.tornei { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.torneo { background: var(--fondo-2); border: 1px solid var(--linea); border-radius: var(--raggio-piccolo); padding: 12px; display: grid; gap: 8px; }
.torneo p { margin: 0; }
.torneo-testa { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.tipo { font-size: 12px; font-weight: 700; border: 1px solid var(--linea); border-radius: 999px; padding: 2px 8px; background: var(--fondo); white-space: nowrap; }
.dati { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 12px; margin: 0; }
.dato { min-width: 0; }
.dato dt { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tenue); }
.dato dd { margin: 0; font-weight: 700; }
.dato dd.vuoto { font-weight: 500; color: var(--tenue); font-style: italic; }

/* Voto */
.voto { background: var(--fondo); border: 1px solid var(--linea); border-radius: var(--raggio-piccolo); }
.voto summary { cursor: pointer; padding: 10px 12px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px; list-style: none; min-height: 44px; }
.voto summary::-webkit-details-marker { display: none; }
.voto-testa { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.voto-numero { font-size: 17px; }
.voto-numero.buono { color: var(--vince); }
.voto-numero.caro { color: var(--perde); }
.voto-numero.insufficiente { color: var(--tenue); font-weight: 700; }
.perche { font-size: 14px; color: var(--accento-scuro); text-decoration: underline; }
.voto ul { margin: 0; padding: 0 12px 12px 30px; font-size: 14px; display: grid; gap: 4px; }

.collega { display: flex; flex-wrap: wrap; gap: 8px; }
.collega a { flex: 1 1 160px; font-size: 15px; flex-wrap: wrap; column-gap: 6px; row-gap: 0; padding: 8px 12px; }

/* Calendario */
.cal { display: grid; gap: 10px; padding: 12px; }
.cal-testa { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.cal-testa h3 { text-transform: capitalize; }
.cal-testa button { min-width: 44px; font-size: 22px; padding: 4px 12px; }
.cal-griglia { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.cal-intestazione { font-size: 11px; font-weight: 700; text-transform: uppercase; text-align: center; color: var(--tenue); padding: 2px 0; }
.cal-giorno {
  min-height: 52px;
  border: 1px solid var(--linea);
  border-radius: 6px;
  background: var(--fondo);
  padding: 3px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  text-align: left;
  overflow: hidden;
  min-width: 0;
}
.cal-giorno.fuori { opacity: 0.4; }
.cal-giorno.oggi .cal-num { text-decoration: underline; text-decoration-thickness: 2px; }
.cal-giorno.pieno { border-color: var(--accento); }
.cal-giorno.scelto { background: var(--testo); color: var(--fondo); border-color: var(--testo); }
.cal-num { font-size: 13px; font-weight: 700; }
.cal-evento {
  display: block;
  font-size: 10px;
  line-height: 1.3;
  font-weight: 700;
  background: var(--accento);
  color: var(--su-accento);
  border-radius: 3px;
  padding: 0 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cal-altri { font-size: 10px; font-weight: 700; }
.cal-titolo-giorno { margin: 4px 0 10px; }

/* Online */
.testo-largo { max-width: 760px; }

/* Segnala */
.modulo h2 { margin: 0; }
.modulo p { margin: 0; }
fieldset { border: 1px solid var(--linea); border-radius: var(--raggio-piccolo); margin: 0; padding: 10px 12px; display: grid; gap: 10px; min-width: 0; }
legend { font-weight: 700; padding: 0 4px; }
.modulo label.radio { display: flex; align-items: center; gap: 8px; font-weight: 600; min-height: 36px; }
.radio input { width: 20px; height: 20px; accent-color: var(--testo); }
#tornei-modulo { display: grid; gap: 10px; }
.torneo-modulo { background: var(--fondo); }
.togli { justify-self: start; }
.uscita { display: grid; gap: 10px; }
.uscita p { margin: 0; }
.json { font-family: ui-monospace, Consolas, monospace; font-size: 12px; resize: vertical; }
.azioni { display: flex; flex-wrap: wrap; gap: 8px; }
.azioni[hidden] { display: none; }
.errori { border: 2px solid var(--perde); border-radius: var(--raggio-piccolo); padding: 10px 12px; }
.errori p { font-weight: 700; }
.errori ul { margin: 6px 0 0; padding-left: 20px; }
.pronti { font-weight: 700; color: var(--vince); }

@media (max-width: 400px) {
  .contenitore { padding: 12px; }
  .cal-evento { font-size: 0; height: 6px; padding: 0; }
  .cal-giorno { min-height: 44px; }
  .schede .scelta { flex: 1 1 100%; }
}

@media (min-width: 900px) {
  #pannello-live .griglia { grid-template-columns: 340px 1fr; align-items: start; }
  .colonna-filtri { position: sticky; top: 16px; }
  #pannello-segnala .griglia { grid-template-columns: 1fr 1fr; align-items: start; }
  .colonna-uscita { position: sticky; top: 16px; }
  .dati { grid-template-columns: repeat(3, 1fr); }
  .schede .scelta { flex: 0 0 auto; }
  .cal-giorno { min-height: 76px; }
  .cal-evento { font-size: 11px; }
}

/* Fatti noti quando il voto non c'è */
.info-torneo { margin: 0; padding: 0 0 0 18px; font-size: 14px; color: var(--tenue); display: grid; gap: 2px; }

/* Riquadro "A cosa serve / Quando usarlo": sempre visibile in alto. */
.a-cosa-serve {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
  padding: 14px 16px;
  background: var(--fondo-2);
  border: 1px solid var(--linea);
  border-left: 5px solid var(--accento);
  border-radius: var(--raggio-piccolo);
}
.a-cosa-serve p { margin: 0; font-size: 16px; line-height: 1.45; }
.a-cosa-serve strong { color: var(--accento-scuro); }

.aiuto-campo { font-size: 13px; font-weight: 400; color: var(--tenue); line-height: 1.35; }
.conteggio-spiega { margin: 4px 0 0; font-size: 13px; color: rgba(255, 255, 255, 0.85); }
.voto-frase { flex-basis: 100%; font-size: 14px; color: var(--testo); line-height: 1.4; }
