/* ==============================================================
   Stagione: roster, classifiche e risultati (Serie B e Giovanili)
================================================================= */

/* ---------- Roster a griglia: sempre allineato, su ogni schermo ---------- */
.rosterTitolo { margin: 2.5rem 0 1rem; text-align: center; text-transform: uppercase; letter-spacing: .05em; }
.roster {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 16px;
	margin: 0;
}
@media only screen and (max-width: 400px) {
	.roster { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}
.giocatore {
	display: flex; flex-direction: column; align-items: center; text-align: center;
	border: 1px solid #e8e8e8; padding: 0 0 14px; background: #fff;
}
.giocatore img {
	width: 100%; height: auto; aspect-ratio: 400 / 556; object-fit: cover; object-position: top;
	background: #f0f0f0; margin-bottom: 10px;
}
.giocatoreNome { font-weight: 700; font-size: 15px; line-height: 1.3; padding: 0 8px; color: #151618; }
.giocatoreNome .numero { display: block; font-size: 13px; color: #1C4596; letter-spacing: .05em; }
.giocatoreRuolo { font-size: 13px; color: #555; margin-top: 4px; padding: 0 8px; }

/* ---------- Riepilogo stagione ---------- */
.stagione h4, .categoria h4 { margin: 2.5rem 0 .8rem; text-transform: uppercase; letter-spacing: .04em; font-size: 1.1rem; }
.numeriStagione {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px;
	margin: 1.5rem 0 0; text-align: center;
}
.numeriStagione li { border: 1px solid #e8e8e8; padding: 14px 6px; }
.numeriStagione strong { display: block; font-size: 1.8rem; line-height: 1.1; color: #151618; }
.numeriStagione span { font-size: 13px; color: #555; }

/* ---------- Classifica ---------- */
.classificaBox { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.classifica { width: 100%; border-collapse: collapse; margin: 0 0 .5rem; font-size: 15px; }
.classifica caption { text-align: left; font-size: 13px; color: #555; padding: 0 0 6px; }
.classifica th, .classifica td { padding: 9px 8px; text-align: right; border-bottom: 1px solid #e8e8e8; white-space: nowrap; }
.classifica th { font-size: 12px; text-transform: uppercase; color: #555; background: #f8f8f8; }
.classifica th:first-child, .classifica td:first-child { text-align: center; width: 2.2em; color: #555; }
.classifica .squadra { text-align: left; white-space: normal; width: 100%; }
.classifica tbody tr:nth-child(even) { background: #fbfbfb; }
.classifica tr.ponte { background: #e9eef8 !important; font-weight: 700; }
.classifica tr.ponte td:first-child { color: #1C4596; box-shadow: inset 4px 0 0 #1C4596; }

/* ---------- Risultati ---------- */
.fase { border: 1px solid #e8e8e8; margin: 0 0 12px; background: #fff; }
.fase > summary {
	cursor: pointer; padding: 14px 16px; font-weight: 700; list-style-position: inside;
	background: #f8f8f8; min-height: 48px; box-sizing: border-box;
}
.fase[open] > summary { border-bottom: 1px solid #e8e8e8; }
.partite { margin: 0; }
.partita {
	display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 12px; align-items: center;
	padding: 10px 16px; border-bottom: 1px solid #f0f0f0;
}
.partita:last-child { border-bottom: 0; }
.esito {
	width: 32px; height: 32px; border-radius: 6px; display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 14px;
}
.esitoV { background: #1C4596; color: #fff; }
.esitoP { background: #e3e3e3; color: #333; }
.esitoN { background: #fff; color: #888; border: 1px dashed #ccc; }
.partitaInfo { display: flex; flex-direction: column; min-width: 0; }
.partitaInfo strong { font-size: 15px; line-height: 1.3; }
.partitaInfo small { font-size: 13px; color: #666; line-height: 1.4; }
.punteggio { font-weight: 700; font-size: 18px; white-space: nowrap; }
.punteggio.nonGiocata { font-weight: 400; font-size: 13px; color: #888; }
.fonteDati { font-size: 13px; color: #666; margin-top: 1rem; }

/* ---------- Pagina giovanili ---------- */
.titoloPagina { padding: 50px 0 30px; text-align: center; }
.categoria { padding-top: 10px; }
.categoria + .categoria { border-top: 1px solid #e8e8e8; margin-top: 30px; padding-top: 30px; }
.categoria h3 { margin-bottom: .3rem; }
.categoriaNota { color: #555; font-size: 15px; margin-bottom: 1rem; }
.categoria .numeriStagione { margin-bottom: .5rem; }
.linkFibs { font-size: 14px; }
.indiceCategorie { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 1rem 0 0; }
.indiceCategorie a {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px;
	border: 1px solid #151618; color: #151618; font-weight: 700; text-decoration: none;
}
.indiceCategorie a:hover { background: #151618; color: #fff; }

/* Contenuto della stagione centrato e non troppo largo sugli schermi grandi */
.stagione > .row > .columns, .categorie > .row > .columns { max-width: 860px; margin: 0 auto; float: none; }
