/* Pagine pubbliche «Risultati e classifiche» — rilascio 55, rifatte nel rilascio 86 (tavole «prima e dopo» approvate
   dal committente il 06/11/2026): home, «Tutti i campionati», «Tutte le manifestazioni» e pagina del campionato, con
   il linguaggio della pagina live (live.css: barra, testata con la foto, piede, consenso, spazi AdSense). Niente righe
   che scorrono di lato: filtri e schede vanno a capo. I primi tre di ogni classifica hanno la medaglia e la riga
   sfumata d'oro, d'argento e di bronzo. I grafici (barre e tabella per categoria) solo da computer. */

/* barra: le tre pagine principali */
.rs-nav { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.rs-nav a { color: #fff; text-decoration: none; padding: 8px 0; border-bottom: 3px solid transparent; }
.rs-nav a[aria-current="page"] { font-weight: 700; border-bottom-color: #fff; }
.rs-nav a:hover, .rs-nav a:focus-visible { border-bottom-color: rgba(255, 255, 255, .6); }

/* testata con la foto (gestionale 64, prompt 1 di PROMPT_GRAFICHE_PAGINE_LIVE.md) */
.rs-hero { background-color: #0B4D26; background-image: linear-gradient(90deg, rgba(11, 77, 38, .94) 0%, rgba(11, 77, 38, .66) 45%, rgba(11, 77, 38, .08) 80%), image-set(url("../../img/live/hero-risultati.webp") type("image/webp"), url("../../img/live/hero-risultati.jpg") type("image/jpeg")); background-size: cover; background-position: right center; }
.rs-hero .lv-corsie { display: none; }
.rs-hero-testi { display: grid; gap: 14px; }
.rs-hero-testi > * { max-width: 760px; }
.lv-hero-inner.rs-hero-testi { width: 100%; }
.rs-hero-camp { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 18px; }
.rs-indietro { color: #fff; font-size: .9rem; }
.rs-indietro:hover, .rs-indietro:focus-visible { color: #DDF3E5; }

/* filtri (una fila per tutte le pagine) */
.rs-filtri { display: grid; gap: 10px; }
.rs-cerca { display: flex; gap: 8px; }
.rs-cerca input { flex: 1; min-width: 0; height: 50px; border: 0; border-radius: 12px; padding: 0 16px; font: inherit; font-size: 1.05rem; color: var(--c-ink, #0E1B2A); }
.rs-cerca button { min-height: 50px; padding: 0 18px; border-radius: 12px; border: 0; background: #fff; color: var(--c-brand, #006B2E); font: inherit; font-weight: 800; cursor: pointer; }
.rs-scelte { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-scelte label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rs-scelte select { min-height: 44px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .6); background: rgba(255, 255, 255, .14); color: #fff; padding: 0 12px; font: inherit; }
.rs-scelte select option { color: var(--c-ink, #0E1B2A); }
.rs-togli { color: #fff; align-self: center; font-size: .9rem; }

/* corpo e sezioni */
.rs-corpo { display: grid; gap: 24px; }
.rs-colonne { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.rs-colonne-sola { grid-template-columns: minmax(0, 1fr); }
.rs-principale, .rs-lato { display: grid; gap: 24px; min-width: 0; align-content: start; }
.rs-sezione { display: grid; gap: 12px; min-width: 0; }
.rs-sezione-testa { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.rs-sezione-testa h2 { margin: 0; font-size: 1.35rem; font-weight: 800; flex: 1 1 auto; }
.rs-tutti { font-weight: 700; }
.rs-box { background: #fff; border: 1px solid var(--c-line, #C9D5E0); border-radius: 16px; min-width: 0; }
.rs-box-testa { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 16px 18px 8px; }
.rs-box-testa h2, .rs-box-testa h3 { margin: 0; font-size: 1.2rem; }
.rs-nota { color: var(--c-ink-muted, #44546A); font-size: .875rem; margin: 0; }
.rs-box > .rs-nota { padding: 4px 18px 16px; }
.rs-vuoto { margin: 0; padding: 14px 16px; background: #fff; border: 1px dashed var(--c-line, #C9D5E0); border-radius: 12px; color: var(--c-ink-muted, #44546A); }

/* in diretta */
.rs-dirette { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.rs-diretta { display: grid; gap: 8px; padding: 16px 18px; background: #fff; border: 2px solid var(--c-live-mark, #F2701D); border-radius: 16px; color: inherit; text-decoration: none; }
.rs-diretta:hover, .rs-diretta:focus-visible { box-shadow: 0 0 0 3px var(--c-live-soft, #FDEBDD); }
.rs-diretta-testa { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.rs-diretta-testa strong { font-size: 1.15rem; }
.rs-diretta-vai { margin-left: auto; font-weight: 800; color: var(--c-live, #B03A0A); }
.rs-avanza { display: block; width: 100%; height: 8px; border-radius: 4px; background: var(--c-sunken, #E3EAF1); }
.rs-avanza-pieno { fill: var(--c-brand, #006B2E); }
.rs-acqua { display: inline-flex; align-items: center; gap: 6px; border-radius: 7px; padding: 3px 9px; font-size: .85rem; font-weight: 700; background: var(--c-live, #B03A0A); color: #fff; white-space: nowrap; }
.rs-acqua::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #FFB27A; }

/* schede dei campionati */
.rs-campionati { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px; }
.rs-camp { display: grid; gap: 8px; height: 100%; box-sizing: border-box; padding: 16px 18px 12px; background: #fff; border: 1px solid var(--c-line, #C9D5E0); border-radius: 16px; color: inherit; text-decoration: none; align-content: start; }
.rs-camp:hover, .rs-camp:focus-visible { border-color: var(--c-brand, #006B2E); }
.rs-camp.is-live { border: 2px solid var(--c-live-mark, #F2701D); }
.rs-camp-ambito { font-size: .85rem; color: var(--c-ink-muted, #44546A); display: flex; justify-content: space-between; gap: 8px; }
.rs-camp-nome { font-size: 1.1rem; line-height: 1.25; overflow-wrap: anywhere; }
.rs-camp-stato { font-size: .875rem; color: var(--c-ink-muted, #44546A); }
.rs-camp.is-live .rs-camp-stato { color: var(--c-live, #B03A0A); font-weight: 700; }
.rs-primi { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.rs-primi li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 5px 8px; border-radius: 8px; }
.rs-primi li span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* medaglie e righe dei primi tre */
.rs-med { width: 30px; height: 30px; border-radius: 50%; display: inline-grid; place-items: center; font-weight: 800; font-size: .875rem; flex: 0 0 auto; background: var(--c-sunken, #EEF2F6); color: var(--c-ink, #0E1B2A); }
.rs-primi .rs-med { width: 24px; height: 24px; font-size: .75rem; }
.rs-med-1 { background: radial-gradient(circle at 35% 30%, #FFE9A3, #E0B23A); color: #5C4500; box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .12); }
.rs-med-2 { background: radial-gradient(circle at 35% 30%, #FFFFFF, #AEB9C5); color: #33465C; box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .12); }
.rs-med-3 { background: radial-gradient(circle at 35% 30%, #F6CDA9, #C98A55); color: #4A2808; box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .12); }
.rs-rk-1 { background: linear-gradient(90deg, #FFF3CC 0%, #FFFBEF 55%, #fff 100%); box-shadow: inset 4px 0 0 #E0B23A; }
.rs-rk-2 { background: linear-gradient(90deg, #EDF1F5 0%, #F7F9FB 55%, #fff 100%); box-shadow: inset 4px 0 0 #A9B5C2; }
.rs-rk-3 { background: linear-gradient(90deg, #FBE8D9 0%, #FDF5EE 55%, #fff 100%); box-shadow: inset 4px 0 0 #C98A55; }
.rs-rk-1 strong { font-size: 1.05em; }
.rs-medaglie { display: inline-flex; gap: 4px; }
.rs-medaglie span { min-width: 26px; padding: 1px 6px; border-radius: 7px; text-align: center; font-weight: 700; box-sizing: border-box; }

/* manifestazioni */
.rs-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; background: var(--c-sunken, #E3EAF1); border-radius: 12px; padding: 4px; }
.rs-seg a { min-height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 9px; color: #33465C; text-decoration: none; font-size: .95rem; }
.rs-seg a[aria-current="page"], .rs-seg a.is-on { background: #fff; color: var(--c-brand, #006B2E); font-weight: 700; box-shadow: 0 1px 2px rgba(14, 27, 42, .12); }
.rs-lista { list-style: none; margin: 0; padding: 0; }
.rs-lista li + li { border-top: 1px solid var(--c-sunken, #EEF2F6); }
.rs-man { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 16px; color: inherit; text-decoration: none; }
.rs-man:hover, .rs-man:focus-visible { background: var(--c-sunken, #F3F6F9); }
.rs-data { display: grid; justify-items: center; padding: 4px 0; border-radius: 10px; background: var(--c-brand-soft, #E6F4EC); color: var(--c-brand, #006B2E); line-height: 1.1; }
.rs-data-g { font-family: var(--font-mono, "Atkinson Hyperlegible Mono", ui-monospace, monospace); font-weight: 800; font-size: 1.15rem; }
.rs-data-m { font-size: .75rem; font-weight: 700; }
.rs-man-testi { display: grid; gap: 2px; min-width: 0; }
.rs-man-testi strong { overflow-wrap: anywhere; }
.rs-man-testi span { color: var(--c-ink-muted, #44546A); font-size: .9rem; }
.rs-man-chip { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.rs-naz { background: var(--c-info-soft, #E6EEF9); color: var(--c-info, #1A56A8); }
.rs-mese { margin: 18px 0 8px; font-size: 1rem; color: var(--c-ink-muted, #44546A); }
.rs-pagine { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; }
.rs-pagine a, .rs-pagine span { min-height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 10px; border: 1px solid var(--c-line, #C9D5E0); background: #fff; color: inherit; text-decoration: none; }
.rs-elenco-box { transition: opacity .15s ease; }
.rs-elenco-box.htmx-request { opacity: .55; }
@media (prefers-reduced-motion: reduce) { .rs-elenco-box { transition: none; } }

.lv-muted-chiaro { color: #DDF3E5; font-weight: 600; }
.rs-filtri-soc { display: grid; gap: 6px; }
.rs-etichetta { font-weight: 700; }
.rs-filtri-soc input { min-height: 46px; }
[data-rs-trova-in] li.is-trovata { box-shadow: inset 0 0 0 2px var(--c-brand, #006B2E); background: var(--c-brand-soft, #E6F4EC); }

/* società trovate dalla ricerca */
.rs-trovate { list-style: none; margin: 0; padding: 0 18px 14px; display: grid; gap: 10px; }
.rs-trovate li { display: grid; gap: 4px; }
.rs-trovate ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }

/* chip e filtri della pagina dei campionati */
.rs-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rs-chips-t { color: var(--c-ink-muted, #44546A); font-size: .9rem; margin-right: 4px; }
.rs-chip { min-height: 40px; display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; border: 1px solid var(--c-line, #C9D5E0); background: #fff; padding: 0 14px; color: inherit; text-decoration: none; font-size: .9rem; }
.rs-chip[aria-current="page"], .rs-chip.is-on { background: var(--c-brand, #006B2E); border-color: var(--c-brand, #006B2E); color: #fff; font-weight: 700; }

/* campionato: manifestazioni nella testata (1ª, 2ª… con la data) */
.cp-man { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cp-man a { display: grid; justify-items: center; min-width: 56px; padding: 8px 6px; border-radius: 10px; border: 1.5px solid rgba(255, 255, 255, .7); color: #fff; text-decoration: none; font-weight: 800; background: rgba(11, 77, 38, .35); box-sizing: border-box; }
.cp-man a small { font-weight: 600; font-size: .7rem; }
.cp-man .is-svolta { background: #fff; color: var(--c-brand, #006B2E); border-color: #fff; }
.cp-man .is-live { background: var(--c-live-mark, #F2701D); border-color: var(--c-live-mark, #F2701D); }
.cp-man .is-prossima { border-style: dashed; }
.cp-man a:hover, .cp-man a:focus-visible { box-shadow: 0 0 0 3px rgba(255, 255, 255, .45); }

/* campionato: classifica delle società con le barre */
.cp-cls { list-style: none; margin: 0; padding: 0 18px 10px; display: grid; gap: 2px; }
.cp-cls li { display: grid; grid-template-columns: 32px minmax(140px, 240px) minmax(0, 1fr) 64px 20px; gap: 12px; align-items: center; padding: 8px 8px 8px 10px; border-radius: 10px; }
.cp-cls li + li:not(.rs-rk-2):not(.rs-rk-3) { border-top: 1px solid var(--c-sunken, #EEF2F6); }
.cp-cls.is-semplice li { grid-template-columns: 32px minmax(0, 1fr) 64px; }
.cp-cls .cp-fc { opacity: .7; }
.cp-pt { font-family: var(--font-mono, "Atkinson Hyperlegible Mono", ui-monospace, monospace); font-weight: 700; text-align: right; }
.cp-barra { width: 100%; height: 18px; display: block; }
.cp-su { color: #0B6B2E; } .cp-giu { color: #A3201A; } .cp-pari { color: #8394A6; }
.cp-legenda { padding: 0 18px 8px; }

/* tabelle (punti per manifestazione, medagliere, atleti, punti FIN) */
.rs-tab { width: 100%; border-collapse: collapse; }
.rs-tab th { text-align: left; font-size: .8rem; color: var(--c-ink-muted, #44546A); font-weight: 600; padding: 10px 12px; border-bottom: 1px solid var(--c-line, #C9D5E0); }
.rs-tab td { padding: 10px 12px; border-bottom: 1px solid var(--c-sunken, #EEF2F6); vertical-align: middle; }
.rs-tab .n { text-align: right; font-family: var(--font-mono, "Atkinson Hyperlegible Mono", ui-monospace, monospace); font-variant-numeric: tabular-nums; }
.rs-tab tr:last-child td { border-bottom: 0; }
.rs-tab small { color: var(--c-ink-muted, #44546A); }
.rs-tab-box { padding: 0 6px 6px; }
.rs-gauge { display: block; width: 100%; height: 8px; min-width: 80px; margin-top: 4px; border-radius: 4px; background: var(--c-sunken, #EEF2F6); }
.rs-gauge rect, .rs-hbar-b rect { fill: #256abf; }
.rs-gare-migliori { display: flex; flex-wrap: wrap; gap: 4px; }
.rs-gare-migliori span { background: var(--c-sunken, #EEF2F6); border-radius: 6px; padding: 1px 6px; font-size: .8rem; white-space: nowrap; }
.rs-calore { padding: 0 14px 14px; }
.rs-calore .pd-calore { width: 100%; }
.rs-regole { margin: 0; padding: 0 18px 16px 36px; color: var(--c-ink-muted, #44546A); font-size: .9rem; line-height: 1.5; }
.rs-gruppi-atleti { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 16px; }

/* barre «Società di giornata» della pagina della manifestazione */
.rs-hbar { list-style: none; margin: 0; padding: 0 18px 14px; display: grid; gap: 6px; }
.rs-hbar li { display: grid; grid-template-columns: 28px minmax(0, 260px) minmax(0, 1fr) 56px; gap: 8px; align-items: center; font-size: .9rem; }
.rs-hbar li > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs-hbar-b { display: block; width: 100%; height: 14px; }
.rs-hbar .rs-med { width: 24px; height: 24px; font-size: .75rem; }

@media (max-width: 900px) {
    .rs-colonne { grid-template-columns: minmax(0, 1fr); }
    .rs-lato .ann-laterale { display: none; }
}
@media (max-width: 720px) {
    .rs-hero { background-image: linear-gradient(180deg, rgba(11, 77, 38, .55) 0%, rgba(11, 77, 38, .93) 70%), image-set(url("../../img/live/hero-risultati-1024.webp") type("image/webp"), url("../../img/live/hero-risultati-1024.jpg") type("image/jpeg")); }
    .rs-nav { display: none; }
    .rs-scelte { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rs-scelte select { width: 100%; padding: 0 8px; }
    .rs-scelte select[name="regione"] { grid-column: 1 / -1; }
    .rs-solo-pc { display: none !important; }
    .rs-man { grid-template-columns: 46px minmax(0, 1fr); }
    .rs-man-chip { display: none; }
    .cp-cls { padding: 0 10px 8px; }
    .cp-cls li, .cp-cls.is-semplice li { grid-template-columns: 30px minmax(0, 1fr) auto auto; gap: 8px; }
    .cp-cls li .cp-barra { display: none; }
    .cp-man { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px; }
    .cp-man a { min-width: 0; padding: 6px 2px; font-size: .85rem; }
    .rs-tab-mobile thead { display: none; }
    .rs-tab-mobile tr { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 2px 10px; padding: 10px 12px; border-bottom: 1px solid var(--c-sunken, #EEF2F6); }
    .rs-tab-mobile td { padding: 0; border: 0; }
    .rs-tab-mobile td.rs-mob-2 { grid-column: 2; color: var(--c-ink-muted, #44546A); font-size: .85rem; }
    .rs-tab-mobile td.rs-mob-nascondi { display: none; }
    .rs-hbar li { grid-template-columns: 28px minmax(0, 1fr) 56px; }
    .rs-hbar-b { display: none; }
}

/* rilascio 86: precisazioni sopra results.css (caricato dopo nella pagina del campionato) */
.rs-corpo > .rs-seg { justify-self: start; }
.cp-cls .cp-barra { grid-column: auto; grid-row: auto; }
.rs-box .cp-legenda { padding: 0 18px 8px; }
.rs-tab th { white-space: nowrap; }
.rs-tab th .rs-med { width: 20px; height: 20px; }
.rs-lato .rs-tab th, .rs-lato .rs-tab td { padding: 8px 6px; }
.rs-lato .rs-tab td:nth-child(2) { overflow-wrap: anywhere; }

/* Rilascio 88 (segnalazione del committente del 06/11/2026: «come mai son così brutti questi pulsanti?»): le schede
   del campionato come linguette con la riga sotto, sulla larghezza della pagina e mai stirate in altezza; il corpo
   non allunga più le righe quando la scheda ha poco contenuto. */
.rs-corpo { align-content: start; }
.rs-schede { display: flex; flex-wrap: wrap; gap: 2px 6px; border-bottom: 2px solid var(--c-line, #C9D5E0); }
.rs-schede a { display: inline-flex; align-items: center; min-height: 46px; padding: 0 16px; margin-bottom: -2px; color: var(--c-ink-muted, #44546A); text-decoration: none; font-weight: 600; border-bottom: 3px solid transparent; border-radius: 8px 8px 0 0; }
.rs-schede a:hover, .rs-schede a:focus-visible { color: var(--c-ink, #0E1B2A); background: var(--c-surface-2, #E9EEF3); }
.rs-schede a[aria-current="page"] { color: var(--c-brand, #006B2E); border-bottom-color: var(--c-brand, #006B2E); font-weight: 800; }
.rs-seg { align-self: start; justify-self: start; }
@media (max-width: 720px) { .rs-schede a { padding: 0 10px; font-size: .95rem; } }
/* Rilascio 88 (segnalazione del 06/11/2026: «esce fuori dalla sua card»): la tabella dei punti per categoria sta sempre
   nella sua scheda, anche con molte categorie e staffette: colonne fisse, intestazioni che vanno a capo. */
.rs-calore .pd-calore { width: 100% !important; min-width: 0; table-layout: fixed; }
.rs-calore .pd-calore abbr { text-decoration: none; }
.rs-calore .pd-calore th { white-space: normal; overflow-wrap: break-word; hyphens: auto; font-size: .72rem; line-height: 1.15; vertical-align: bottom; padding: 4px 2px; }
.rs-calore .pd-calore td { min-width: 0; padding: 6px 1px; font-size: .78rem; }
.rs-calore .pd-calore .pd-calore-soc { width: 190px; font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
