/*
 * Risultati di gara e classifica della manifestazione — restyling ondata 6B.
 */

.rr-meta {
    margin-left: var(--s-2);
    color: var(--c-ink-muted);
}

.rr-podium {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--s-3);
    margin-bottom: var(--s-4);
}

.rr-podium-place {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--s-4);
    border-radius: var(--r-md);
    border: 1px solid var(--c-line);
    background: var(--c-surface);
}

.rr-podium-place.is-first {
    border-color: var(--c-caution);
    background: var(--c-caution-soft);
}

.rr-podium-pos {
    font-family: var(--t-display);
    font-size: var(--t-22);
    font-weight: 800;
}

.rr-podium-name {
    font-weight: 700;
}

.rr-podium-society,
.rr-podium-score {
    font-size: var(--t-14);
    color: var(--c-ink-muted);
}

.standings-note {
    margin-bottom: var(--s-4);
    padding: var(--s-2) var(--s-4);
    border-radius: var(--r-md);
    background: var(--c-surface-alt);
    color: var(--c-ink-muted);
}

.standings-note.is-partial {
    background: var(--c-caution-soft);
    color: var(--c-caution);
    font-weight: 600;
}

/* ── Ondata 6C: campionati ── */

.ch-progress,
.ch-top {
    display: block;
    font-size: var(--t-14);
    color: var(--c-ink-muted);
}

.ch-summary {
    margin-bottom: var(--s-4);
}

.ch-progress-line {
    margin-bottom: var(--s-3);
}

.ch-timeline {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-2);
    margin-bottom: var(--s-4);
    padding: 0;
    list-style: none;
}

.ch-step {
    display: flex;
    flex-direction: column;
    padding: var(--s-2) var(--s-3);
    border-radius: var(--r-md);
    border: 1px solid var(--c-line-strong);
    background: var(--c-surface);
    font-size: var(--t-14);
}

.ch-step-svolta {
    border-color: var(--c-success);
    background: var(--c-success-soft);
}

.ch-step-in-corso {
    border-color: var(--c-live-mark);
    background: var(--c-live-soft);
}

.ch-step-futura {
    border-style: dashed;
}

.ch-step-annullata {
    border-color: var(--c-danger);
    background: var(--c-danger-soft);
    text-decoration: line-through;
}

.ch-step-name {
    font-weight: 700;
}

.ch-step-meta {
    color: var(--c-ink-muted);
    font-size: var(--t-14);
}

.ch-podium {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--s-3);
}

.ch-podium-place {
    display: flex;
    flex-direction: column;
    padding: var(--s-4);
    border-radius: var(--r-md);
    border: 1px solid var(--c-line);
    background: var(--c-surface);
}

.ch-podium-place.is-first {
    border-color: var(--c-caution);
    background: var(--c-caution-soft);
}

.ch-podium-pos {
    font-family: var(--t-display);
    font-size: var(--t-22);
    font-weight: 800;
}

.ch-podium-name {
    font-weight: 700;
}

.ch-podium-points {
    font-size: var(--t-14);
    color: var(--c-ink-muted);
}

/* ── Ondata 6D: classifica della manifestazione ── */

.es-jump {
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--s-5);
    margin-bottom: var(--s-3);
}

.es-jump a {
    display: inline-flex;
    align-items: center;
    min-height: var(--h-control);
    font-weight: 600;
}

/* posizione in cifre monospaziate; il podio in grassetto su fondo ambra (oro, argento e bronzo
   stanno già nel medagliere) */
.es-pos {
    display: inline-grid;
    place-items: center;
    min-width: 32px;
    height: 32px;
    border-radius: var(--r-xs);
    font-family: var(--t-num);
    font-weight: 700;
}

.es-pos.is-podium {
    background: var(--c-caution-soft);
    color: var(--c-caution);
}

.es-card {
    padding: var(--s-5);
    margin-bottom: var(--s-4);
    overflow-x: auto;
}

.es-title {
    font-size: var(--t-18);
    font-weight: 700;
    margin-bottom: var(--s-3);
}

.es-empty {
    color: var(--c-ink-muted);
}

.es-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--t-16);
}

.es-table th,
.es-table td {
    text-align: left;
    padding: var(--s-2);
    border-bottom: 1px solid var(--c-line);
}

.es-table td {
    font-variant-numeric: tabular-nums;
}

.es-table .num {
    text-align: right;
    font-family: var(--t-num);
}

/* ── Ondata 6E: modelli di punteggio e menu Scarica ── */

.sm-points {
    display: block;
    font-size: var(--t-14);
    color: var(--c-ink-muted);
    font-variant-numeric: tabular-nums;
}

/* Menu "Scarica" (dl-*): spostato in components/shared.css (21/09/2026) */

/* ── Ondata 6H: versioni pubblicate e filtri della classifica ── */

.rr-version {
    margin-bottom: var(--s-2);
    padding: var(--s-2) var(--s-4);
    border-radius: var(--r-md);
    background: var(--c-success-soft);
    color: var(--c-success);
}

.rr-versions {
    margin-bottom: var(--s-4);
    font-size: var(--t-14);
    color: var(--c-ink-muted);
}

.rr-versions ul {
    margin: var(--s-2) 0 0 var(--s-4);
}

.es-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--s-3);
    margin-bottom: var(--s-4);
}

/* ── Ondata 6I: card dei campionati ── */

.ch-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: var(--s-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ch-card {
    display: flex;
    flex-direction: column;
    gap: var(--s-2);
    padding: var(--s-4);
    border-radius: var(--r-md);
    border: 1px solid var(--c-line);
    background: var(--c-surface);
}

.ch-card-name {
    font-size: var(--t-16);
    font-weight: 700;
    color: var(--c-ink);
}

.ch-card-meta {
    display: block;
    font-size: var(--t-14);
    color: var(--c-ink-muted);
}

.ch-bar {
    height: 6px;
    border-radius: var(--r-pill);
    background: var(--c-surface-alt);
    overflow: hidden;
}

.ch-bar-fill {
    display: block;
    width: 0;
    height: 100%;
    background: var(--c-success);
}

.ch-card-top {
    margin: 0;
    padding-left: var(--s-4);
    font-size: var(--t-14);
}

.ch-card-pos {
    font-weight: 700;
}

.ch-card-points {
    color: var(--c-ink-muted);
}

/* ── Gestionale 65: filtri e gruppi per regione dei campionati ── */

.ch-filtri {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--s-3);
    margin: 0 0 var(--s-5);
    padding: var(--s-3) var(--s-4);
    border: 1px solid var(--c-line);
    border-radius: var(--r-md);
    background: var(--c-surface);
}

.ch-filtro {
    display: flex;
    flex-direction: column;
    gap: var(--s-1);
    min-width: 150px;
    font-size: var(--t-14);
    color: var(--c-ink-muted);
}

.ch-gruppo {
    margin-bottom: var(--s-6);
}

.ch-gruppo-titolo {
    display: flex;
    align-items: baseline;
    gap: var(--s-2);
    margin: 0 0 var(--s-3);
    padding-bottom: var(--s-2);
    border-bottom: 1px solid var(--c-line);
    font-size: var(--t-18);
}

.ch-gruppo-conto {
    font-size: var(--t-14);
    font-weight: 400;
    color: var(--c-ink-muted);
}

.ch-card-badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-1);
    margin: var(--s-1) 0;
}

@media (max-width: 640px) {
    .ch-filtro { min-width: calc(50% - var(--s-3)); }
    .ch-cards { grid-template-columns: 1fr; }
}

/* ── Ondata 6I: card dei modelli di punteggio ── */

.sm-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--s-3);
    margin: 0;
    padding: 0;
    list-style: none;
}

.sm-card {
    display: flex;
    flex-direction: column;
    gap: var(--s-1);
    padding: var(--s-4);
    border-radius: var(--r-md);
    border: 1px solid var(--c-line);
    background: var(--c-surface);
}

.sm-card.is-inactive {
    opacity: 0.65;
}

.sm-card-head {
    display: flex;
    align-items: center;
    gap: var(--s-2);
}

.sm-card-name {
    font-size: var(--t-16);
    font-weight: 700;
    color: var(--c-ink);
}

.sm-card-meta {
    font-size: var(--t-14);
    color: var(--c-ink-muted);
}

.sm-card-actions {
    display: flex;
    gap: var(--s-2);
    margin-top: var(--s-2);
}

.sm-empty {
    padding: var(--s-6);
    text-align: center;
    color: var(--c-ink-muted);
}

/* ── Ondata 6N: punti per categoria nella classifica ── */

.st-detail {
    margin-top: 2px;
    font-size: var(--t-14);
    color: var(--c-ink-muted);
}

.st-detail ul {
    margin: var(--s-1) 0 0 var(--s-4);
}


/* R0a (25/09/2026): fuori gara in coda, classifica a parte */
.rr-row-section td {
    padding-top: var(--s-3);
    font-size: var(--t-14);
    color: var(--c-ink-muted);
}

.rr-row-exhibition td {
    color: var(--c-ink-muted);
}

/* Rilascio 38, parte E: intestazione del blocco dell'anno di nascita (classifica per anno) */
.rr-row-year td {
    background: var(--c-surface-alt);
    color: var(--c-ink);
    font-weight: 600;
}

/* S7 (RG-20): livello e posizione assoluta indicativa accanto alla posizione nel livello */
.result-level { display: block; font-size: var(--t-14); font-weight: 500; color: var(--c-ink-muted); white-space: nowrap; }

/* Audit operativo 2026-10 (B-8, B-10, CO-5): frazioniste, riserve e fatti di gara sotto il nome della squadra */
.rr-team {
    display: block;
    font-size: var(--t-14);
}

.rr-team-note {
    color: var(--c-ink);
    font-style: italic;
}

/* gestionale 65.1: classifiche individuali */
.ci-gara { white-space: nowrap; }
.ci-jolly { display: inline-block; padding: 0 var(--s-1); border-radius: var(--r-sm); background: var(--c-warn-soft); font-weight: 700; text-decoration: none; }

/* ── Gestionale 66: riepilogo del campionato (avanzamento | podio) e medagliere ── */
.ch-riepilogo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--s-4);
    margin-bottom: var(--s-4);
    align-items: stretch;
}
.ch-riepilogo-card { margin: 0; }
.ch-riepilogo-titolo { margin: 0 0 var(--s-3); font-size: var(--t-18); display: flex; align-items: baseline; gap: var(--s-2); flex-wrap: wrap; }
.ch-riepilogo .ch-progress-line { margin: 0 0 var(--s-3); }
.ch-podio { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-2); align-items: end; }
.ch-podio-posto { display: flex; flex-direction: column; gap: var(--s-1); padding: var(--s-3); border-radius: var(--r-md); border: 1px solid var(--c-line); background: var(--c-surface); min-width: 0; }
.ch-podio-1 { order: 2; min-height: 150px; background: var(--c-warn-soft); border-color: var(--c-warn); }
.ch-podio-2 { order: 1; min-height: 125px; }
.ch-podio-3 { order: 3; min-height: 105px; }
.ch-podio-pos { font-family: var(--t-num); font-size: var(--t-28); font-weight: 800; line-height: 1; }
.ch-podio-nome { font-weight: 700; overflow-wrap: anywhere; }
.ch-podio-punti { color: var(--c-ink-muted); font-size: var(--t-14); margin-top: auto; }
.ch-medaglia { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; }
.ch-oro { background: #D4A017; }
.ch-argento { background: #A8B2BD; }
.ch-bronzo { background: #B0703C; }
@media (max-width: 900px) {
    .ch-riepilogo { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .ch-podio { grid-template-columns: 1fr; }
    .ch-podio-1, .ch-podio-2, .ch-podio-3 { order: 0; min-height: 0; }
}

/* gestionale 66: «Come si calcola questa classifica» */
.ch-spiega > summary { cursor: pointer; list-style: none; font-weight: 700; }
.ch-spiega > summary::-webkit-details-marker { display: none; }
.ch-spiega > summary::after { content: " ▾"; color: var(--c-ink-muted); }
.ch-spiega[open] > summary::after { content: " ▴"; }
.ch-spiega-corpo { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--s-4) var(--s-6); }
.ch-spiega-sezione h3 { margin: 0 0 var(--s-2); font-size: var(--t-16); }
.ch-spiega-sezione ul { margin: 0; padding-left: var(--s-5); display: grid; gap: var(--s-1); line-height: 1.45; }
.ch-origine { margin-top: var(--s-1); font-size: var(--t-14); }
/* gestionale 67: motivo del fuori classifica (campionato con «solo le società presenti a tutte le prove») */
.ch-fc { display: block; margin-top: var(--s-1); font-size: var(--t-14); color: var(--c-ink-muted); }
.ch-origine > summary { cursor: pointer; color: var(--c-action); font-weight: 700; }
.ch-origine ul { list-style: none; margin: var(--s-1) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-2); }
.ch-origine li { padding: 2px var(--s-2); border-radius: var(--r-sm); background: var(--c-surface-alt); }
.ch-riepilogo > .card, .ch-riepilogo > .card + .card { margin: 0; }
.ch-spiega-link { grid-column: 1 / -1; margin: 0; }

/* Gestionale 71 — «Come si formano i punti» nella pagina del campionato (richiesta del committente del 04/11/2026).
   Fasce per posizione: una sola tinta, dalla più scura (1° posto) alla più chiara (oltre l'ultima posizione della scala),
   scala ordinale controllata con il validatore (passi 650-550-450-350-250 su chiaro; 150-250-350-450-550 su notturna,
   dove «di più» è più chiaro); i bonus in un'altra tinta (arancio). Tabella per categoria: sei passi della stessa tinta
   che crescono con i punti. Barre sottili, estremità arrotondata, 2 px di stacco fra i pezzi. */
.pd {
    --pd-p1: #104281; --pd-p2: #1c5cab; --pd-p3: #2a78d6; --pd-p4: #5598e7; --pd-oltre: #86b6ef;
    --pd-altro: #9aa6b4; --pd-bonus: #eb6834;
    --pd-c1: #e3eefc; --pd-c2: #cde2fb; --pd-c3: #9ec5f4; --pd-c4: #5598e7; --pd-c5: #256abf; --pd-c6: #104281;
    --pd-c-ink-forte: #ffffff;
    --pd-c4-ink: var(--c-ink);
    --pd-traccia: var(--c-surface-alt);
}
[data-theme="notturna"] .pd {
    --pd-p1: #b7d3f6; --pd-p2: #86b6ef; --pd-p3: #5598e7; --pd-p4: #2a78d6; --pd-oltre: #1c5cab;
    --pd-altro: #5d6b7a; --pd-bonus: #d95926;
    --pd-c1: #15304d; --pd-c2: #184f95; --pd-c3: #1c5cab; --pd-c4: #3987e5; --pd-c5: #86b6ef; --pd-c6: #cde2fb;
    --pd-c-ink-forte: #0E1B2A;
    --pd-c4-ink: #0E1B2A;
}
.pd { position: relative; }
.pd-testa { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-2) var(--s-3); }
.pd-titolo { margin: 0; font-size: var(--t-18); }
.pd-sotto { margin: 0; font-size: var(--t-16); font-weight: 800; }
.pd-nota { margin: var(--s-1) 0 0; color: var(--c-ink-muted); font-size: var(--t-14); }
.pd-avviso { margin: var(--s-2) 0 0; padding: var(--s-2) var(--s-3); border-radius: var(--r-sm); background: var(--c-warn-soft); font-size: var(--t-14); }

/* la scala del modello: colonne sottili con il valore sopra e la posizione sotto */
.pd-modello {
    display: grid;
    grid-template-columns: minmax(200px, 280px) minmax(0, 1fr);
    gap: var(--s-4) var(--s-6);
    align-items: end;
    padding: var(--s-4);
    border-bottom: 1px solid var(--c-line);
}
.pd-regole { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-2); margin: var(--s-3) 0 0; padding: 0; list-style: none; font-size: var(--t-14); }
.pd-regole li { padding: 2px var(--s-2); border: 1px solid var(--c-line); border-radius: var(--r-pill); }
.pd-scala {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(28px, 1fr);
    gap: var(--s-2);
    margin: 0;
    padding: 0;
    list-style: none;
    max-width: 640px;
}
.pd-scala-voce { display: grid; grid-template-rows: auto 72px auto; justify-items: center; gap: 4px; min-width: 0; }
.pd-scala-punti { font: 700 var(--t-14) var(--t-num); font-variant-numeric: tabular-nums; }
.pd-scala-svg { width: 100%; max-width: 28px; height: 72px; overflow: visible; }
.pd-scala-svg rect { fill: var(--pd-p3); }
.pd-scala-voce:first-child .pd-scala-svg rect { fill: var(--pd-p1); }
.pd-scala-pos { font-size: var(--t-12); color: var(--c-ink-muted); text-align: center; line-height: 1.2; white-space: nowrap; }
.pd-scala-pos small { display: block; font-size: var(--t-12); }

/* per posizione: posizione, società, totale, poi la barra sotto, lunga in proporzione alla prima */
.pd-gruppo { padding: var(--s-4); }
.pd-gruppo + .pd-gruppo { border-top: 1px solid var(--c-line); }
.pd-gruppo-testa { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-2) var(--s-4); margin-bottom: var(--s-3); }
.pd-legenda { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-3); margin: 0; padding: 0; list-style: none; font-size: var(--t-14); color: var(--c-ink-muted); }
.pd-legenda li { display: inline-flex; align-items: center; gap: 6px; }
.pd-campione { width: 12px; height: 12px; border-radius: 3px; background: var(--pd-c); }
.pd-barre { display: grid; gap: var(--s-3); margin: 0; padding: 0; list-style: none; }
.pd-riga {
    display: grid;
    grid-template-columns: 3.2ch minmax(0, 1fr) auto;
    align-items: baseline;
    column-gap: var(--s-2);
    row-gap: 6px;
}
.pd-pos { font: 700 var(--t-14) var(--t-num); font-variant-numeric: tabular-nums; color: var(--c-ink-muted); text-align: right; }
.pd-nome { font-weight: 700; overflow-wrap: anywhere; }
.pd-totale { font: 800 var(--t-16) var(--t-num); font-variant-numeric: tabular-nums; }
.pd-barra { grid-column: 2 / -1; display: block; width: 100%; height: 14px; overflow: visible; }
.pd-riga.is-fc .pd-nome, .pd-riga.is-fc .pd-totale { color: var(--c-ink-muted); }
.pd-riga.is-fc .pd-barra { opacity: .55; }
.pd-pezzo rect { fill: var(--pd-c); stroke: var(--c-surface); stroke-width: 2px; paint-order: stroke; }
.pd-con-tip .pd-pezzo { opacity: .45; }
.pd-con-tip .pd-pezzo.is-acceso { opacity: 1; }
.is-p1 { --pd-c: var(--pd-p1); }
.is-p2 { --pd-c: var(--pd-p2); }
.is-p3 { --pd-c: var(--pd-p3); }
.is-p4 { --pd-c: var(--pd-p4); }
.is-oltre { --pd-c: var(--pd-oltre); }
.is-altro { --pd-c: var(--pd-altro); }
.is-bonus { --pd-c: var(--pd-bonus); }
.pd-tip {
    position: absolute;
    z-index: var(--z-dropdown);
    max-width: 280px;
    padding: 6px var(--s-2);
    border-radius: var(--r-sm);
    background: var(--c-ink);
    color: var(--c-surface);
    font-size: var(--t-14);
    font-weight: 700;
    pointer-events: none;
    box-shadow: var(--e-1);
}

/* per categoria: società × categoria, colore che cresce con i punti; prima colonna ferma quando si scorre */
.pd-sotto-cat { margin-top: var(--s-6); margin-bottom: var(--s-2); }
.pd-calore-wrap { border: 1px solid var(--c-line); border-radius: var(--r-md); }
.pd-calore { border-collapse: separate; border-spacing: 2px; width: max-content; min-width: 100%; font-size: var(--t-14); }
.pd-calore th, .pd-calore td { padding: 6px 8px; text-align: center; white-space: nowrap; }
.pd-calore thead th { font-weight: 700; color: var(--c-ink-muted); font-size: var(--t-12); }
.pd-calore td { min-width: 44px; border-radius: 4px; font-variant-numeric: tabular-nums; font-weight: 700; }
.pd-calore-soc { position: sticky; left: 0; z-index: 1; background: var(--c-surface); text-align: left !important; font-weight: 700; max-width: 240px; overflow: hidden; text-overflow: ellipsis; }
.pd-calore-pos { display: inline-block; min-width: 3ch; color: var(--c-ink-muted); font-variant-numeric: tabular-nums; }
.pd-calore tfoot th, .pd-calore tfoot td { border-top: 1px solid var(--c-line); color: var(--c-ink-muted); font-weight: 800; }
.pd-c-0 { color: var(--c-ink-muted); }
.pd-c-1 { background: var(--pd-c1); }
.pd-c-2 { background: var(--pd-c2); }
.pd-c-3 { background: var(--pd-c3); }
.pd-c-4 { background: var(--pd-c4); color: var(--pd-c4-ink); }
.pd-c-5 { background: var(--pd-c5); color: var(--pd-c-ink-forte); }
.pd-c-6 { background: var(--pd-c6); color: var(--pd-c-ink-forte); }
.pd-vuoto { opacity: .5; }

@media (max-width: 720px) {
    .pd-modello { grid-template-columns: minmax(0, 1fr); }
    .pd-scala { grid-auto-columns: minmax(22px, 1fr); gap: 4px; }
    .pd-gruppo, .pd-modello { padding: var(--s-3); }
}
@media (forced-colors: active) {
    .pd-pezzo rect, .pd-scala-svg rect { fill: CanvasText; stroke: Canvas; }
}

/* Gestionale 74 (decisione del committente del 04/11/2026, prototipo «Dentro · Società»): nell'elenco dei campionati
   il gruppo nazionale con il tricolore e, per chi è di una società, la sua posizione, i punti prova per prova e da
   dove vengono (gare, presenza, altri bonus). Barra in SVG con le misure in percentuale. */
.ch-tricolore { display: inline-block; width: 26px; height: 16px; border-radius: 3px; background: linear-gradient(90deg, #008C45 0 33.3%, #F4F5F0 33.3% 66.6%, #CD212A 66.6%); box-shadow: 0 0 0 1px var(--c-line); align-self: center; }
.ch-gruppo-naz .ch-gruppo-titolo { color: var(--c-brand); }
.ch-card-naz { border: 2px solid transparent; background: linear-gradient(var(--c-surface), var(--c-surface)) padding-box, linear-gradient(90deg, #008C45, #E6EBF0 50%, #CD212A) border-box; }
.ch-mia { display: flex; flex-direction: column; gap: var(--s-2); padding: var(--s-3); border-radius: var(--r-md); background: var(--c-brand-soft); }
.ch-mia-numeri { display: flex; flex-wrap: wrap; gap: var(--s-4); }
.ch-mia-voce { display: flex; flex-direction: column; gap: 2px; }
.ch-mia-etichetta { font-size: var(--t-13, .8125rem); font-weight: 700; color: var(--c-brand-raised); }
.ch-mia-voce strong { font-family: var(--font-mono); font-size: var(--t-24, 1.5rem); line-height: 1.1; }
.ch-mia-pos { font-size: 2.2rem !important; font-family: inherit !important; }
.ch-mia-su { color: var(--c-success); font-weight: 700; font-size: var(--t-14, .875rem); }
.ch-mia-giu { color: #8A0F17; font-weight: 700; font-size: var(--t-14, .875rem); }
.ch-mia-barra { width: 100%; height: 14px; display: block; border-radius: 4px; overflow: hidden; }
.ch-mia-gare { fill: #104281; background: #104281; }
.ch-mia-presenza { fill: #EB6834; background: #EB6834; }
.ch-mia-altri-bonus { fill: #5598E7; background: #5598E7; }
.ch-mia-legenda { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; font-size: var(--t-14, .875rem); color: var(--c-ink-muted); }
.ch-mia-legenda > span { display: inline-flex; align-items: center; gap: 6px; }
.ch-mia-pallino { width: 12px; height: 10px; border-radius: 2px; }
.ch-mia-prove { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px; }
.ch-mia-prova { display: flex; flex-direction: column; padding: 6px 8px; border-radius: 8px; background: var(--c-surface); font-size: var(--t-13, .8125rem); }
.ch-mia-prova span { font-family: var(--font-mono); }
.ch-mia-prova-live { background: var(--c-live-soft); }
.ch-mia-prova-programma { background: var(--c-sunken); color: var(--c-ink-muted); }
.ch-card-top-mia { font-weight: 700; }
.ch-profilo-link { margin: 0 0 var(--s-3); padding: var(--s-3) var(--s-4); border-radius: var(--r-md); background: var(--c-brand-soft); }

/* Gestionale 75 (prototipo «Dentro · Società», «applica le scelte grafiche»): elenco dei campionati a schede. Il
   nazionale in testa, schede larghe con la fascia tricolore; le regioni a griglia. Barre in SVG in percentuale. */
.ch2-gruppo { margin-bottom: var(--s-6); }
.ch2-titolo { display: flex; align-items: center; gap: var(--s-2); margin: 0 0 var(--s-3); font-size: var(--t-18); color: var(--c-info, #1A56A8); }
.ch2-gruppo-naz .ch2-titolo { color: var(--c-brand); }
.ch2-elenco { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: var(--s-4); }
.ch2-elenco-largo { grid-template-columns: minmax(0, 1fr); }
.ch2-card { height: 100%; box-sizing: border-box; border-radius: 16px; background: var(--c-surface); border: 1px solid var(--c-line); overflow: hidden; display: flex; flex-direction: column; }
.ch2-card-naz { border-radius: 18px; }
.ch2-card-mia { box-shadow: 0 0 0 2px var(--c-brand-soft); }
.ch2-fascia { height: 8px; background: linear-gradient(90deg, #008C45 0 33.3%, #F4F5F0 33.3% 66.6%, #CD212A 66.6%); }
.ch2-corpo { padding: var(--s-4) var(--s-5); display: flex; flex-direction: column; gap: var(--s-3); flex: 1; }
.ch2-testa { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); align-items: flex-start; }
.ch2-titoli { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1 1 260px; }
.ch2-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.ch2-titoli h3 { margin: 0; font-size: 1.3rem; line-height: 1.2; }
.ch2-card-naz .ch2-titoli h3 { font-size: 1.5rem; }
.ch2-titoli h3 a { color: var(--c-ink); text-decoration: none; }
.ch2-titoli h3 a:hover, .ch2-titoli h3 a:focus-visible { text-decoration: underline; }
.ch2-meta { margin: 0; color: var(--c-ink-muted); font-size: var(--t-14, .875rem); }
.ch2-nota { color: var(--c-ink-muted); font-size: var(--t-14, .875rem); }
.ch2-pos { display: flex; gap: var(--s-4); align-items: center; padding: var(--s-3) var(--s-4); border-radius: 14px; background: var(--c-brand-soft); }
.ch2-pos-testa { flex-direction: column; align-items: flex-start; gap: 2px; background: var(--c-ground); }
.ch2-pos-voce { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.ch2-etichetta { font-size: var(--t-13, .8125rem); font-weight: 700; color: var(--c-brand-raised); }
.ch2-grande { font-size: 2.6rem; line-height: 1; }
.ch2-medio { font-family: var(--font-mono); font-size: 1.7rem; line-height: 1.1; }
.ch2-avanzamento { width: 100%; height: 8px; display: block; }
.ch2-av-fondo { fill: var(--c-sunken); }
.ch2-av-pieno { fill: var(--c-brand); }
.ch2-av-pieno.is-live { fill: var(--c-live-mark); }
.ch2-tappe { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 0; }
.ch2-tappa { display: flex; flex-direction: column; gap: 3px; padding: 4px 10px 4px 10px; border-left: 3px solid var(--c-line); font-size: var(--t-14, .875rem); }
.ch2-tappa-svolta { border-left-color: var(--c-brand); }
.ch2-tappa-in-corso { border-left-color: var(--c-live-mark); }
.ch2-punti { font-family: var(--font-mono); font-weight: 700; }
.ch2-stato-live { color: var(--c-live); font-weight: 700; }
.ch2-composizione { display: flex; flex-direction: column; gap: 6px; }
.ch2-podio { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; }
.ch2-podio li { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 8px 12px; border-radius: 10px; background: var(--c-ground); }
.ch2-podio li.is-mia { background: var(--c-brand-soft); box-shadow: inset 0 0 0 2px var(--c-brand); font-weight: 700; }
.ch2-podio b { font-family: var(--font-mono); }
.ch2-soc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch2-medaglia { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; font-weight: 800; font-size: .8rem; background: var(--c-sunken); }
.ch2-medaglia-1 { background: #F6D365; } .ch2-medaglia-2 { background: #DCE2E8; } .ch2-medaglia-3 { background: #E7B48A; }
.ch2-azioni { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: auto; }
.ch2-fascia-pagina { border-radius: 4px; margin-bottom: var(--s-3); }
/* Gestionale 75 (prototipo «Dentro · Responsabile»): riquadro dei punti tabellari nella pagina del campionato. */
.ch-tab-testa { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--s-2); }
.ch-tab-corpo { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--s-4); }
.ch-tab-metodo, .ch-tab-regole { display: flex; flex-direction: column; gap: 4px; }
.ch-tab-metodo strong { font-size: 1.15rem; }
.ch-tab-regole ul { margin: 0; padding-left: 1.1rem; font-size: var(--t-14, .875rem); }
.ch-tab-tabelle { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ch-tab-tabelle li { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 10px; font-size: var(--t-14, .875rem); }
.ch-tab-tabelle .is-ok { background: var(--c-success-soft, #DDF2E4); }
.ch-tab-tabelle .is-warn { background: var(--c-warn-soft, #FCEFC7); }
