/* ASC Tango Cup — base nera, dettagli rossi */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap');
/* Ciò che è «hidden» resta nascosto anche se il suo stile dice display:flex (23/10/2026) */
[hidden] { display: none !important; }

:root {
  --nero: #0a0a0a;
  --pannello: #141414;
  --pannello2: #1c1c1c;
  --bordo: #2a2a2a;
  --rosso: #d90429;
  --rosso-chiaro: #ff2d4b;
  --rosso-scuro: #8d0018;
  --testo: #f2f2f2;
  --grigio: #9a9a9a;
  --verde: #4caf50;
  --giallo: #f5c518;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--nero); color: var(--testo); font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif; font-size: 16px; line-height: 1.5; }
a { color: var(--rosso-chiaro); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, .titolo { font-family: Oswald, Impact, sans-serif; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; margin: 0 0 .5em; }
h1 { font-size: 2.2rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.15rem; }

/* ─── testata ─── */
.testata { position: sticky; top: 0; z-index: 10; background: rgba(10,10,10,.96); border-bottom: 2px solid var(--rosso); backdrop-filter: blur(6px); }
.testata .riga { max-width: 1180px; margin: 0 auto; display: flex; align-items: center; gap: 16px; padding: 10px 16px; }
.marchio { display: flex; min-width: 0; align-items: center; gap: 10px; color: var(--testo); font-family: Oswald, sans-serif; font-size: 1.35rem; font-weight: 700; letter-spacing: .06em; white-space: nowrap; }
.marchio:hover { text-decoration: none; }
.marchio .punto { width: 14px; height: 14px; background: var(--rosso); transform: rotate(45deg); display: inline-block; flex-shrink: 0; }
.marchio .rosso { color: var(--rosso); }
/* Logo A.S.C. Danza: trasparente, direttamente sul nero */
.ente { display: inline-flex; align-items: center; flex-shrink: 0; }
.ente img { height: 34px; width: auto; display: block; }
.ente-piede img { height: 46px; }
footer.piede .riga { align-items: center; }
.ente-hero { display: block; width: min(147px, 29vw); height: auto; margin: 26px auto 0; }
/* Tutto a destra: le pagine pubbliche, poi (staccata da una riga) l'area riservata
   con, per chi è entrato, le sue pagine */
nav.menu { display: flex; align-items: center; gap: 4px; margin-left: auto; min-width: 0; }
nav.menu .gruppo { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
nav.menu .riservate { margin-left: 6px; padding-left: 8px; border-left: 1px solid var(--bordo); }
nav.menu .riservate a { color: var(--grigio); font-size: .82rem; padding: 8px 6px; }
nav.menu .riservate a.attivo { color: #fff; }
nav.menu .etichetta-riservata { color: var(--rosso-chiaro); font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .05em; font-size: .72rem; padding: 0 4px 0 0; white-space: nowrap; }
/* Sotto i 1200px non ci sta tutto in una riga (da entrati): menu a tendina */
@media (max-width: 1200px) {
  .testata .hamburger { display: block; }
  nav.menu { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--nero); flex-direction: column; align-items: stretch; border-bottom: 2px solid var(--rosso); padding: 6px 16px 12px; }
  nav.menu.aperto { display: flex; }
  nav.menu .gruppo { flex-direction: column; }
  nav.menu .riservate { margin: 6px 0 0; padding: 6px 0 0; border-left: none; border-top: 1px solid var(--bordo); align-items: stretch; }
  nav.menu .etichetta-riservata { padding: 6px 12px 2px; }
}
nav.menu a { color: var(--testo); padding: 8px 9px; font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .03em; font-size: .9rem; border-bottom: 2px solid transparent; }
nav.menu a:hover { text-decoration: none; color: var(--rosso-chiaro); }
nav.menu a.attivo { border-bottom-color: var(--rosso); color: #fff; }
.hamburger { display: none; margin-left: auto; background: none; border: 1px solid var(--bordo); color: var(--testo); font-size: 1.3rem; border-radius: 6px; padding: 4px 10px; cursor: pointer; }

main { max-width: 1180px; margin: 0 auto; padding: 32px 16px 64px; }

/* ─── home ─── */
.hero { position: relative; padding: 72px 16px 64px; text-align: center; overflow: hidden;
  background: radial-gradient(ellipse at 50% 0%, rgba(217,4,41,.35), transparent 60%), var(--nero); border-bottom: 1px solid var(--bordo); }
.hero h1 { font-size: clamp(2.4rem, 7vw, 4.6rem); margin: 0; line-height: 1.05; }
.hero h1 span { color: var(--rosso); }
.hero .sotto { font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .2em; color: var(--grigio); margin-top: 10px; font-size: clamp(.9rem, 2.4vw, 1.2rem); }
.hero .azioni { margin-top: 32px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.linea-rossa { width: 80px; height: 3px; background: var(--rosso); margin: 18px auto; }

/* ─── elementi comuni ─── */
.btn { display: inline-block; background: var(--rosso); color: #fff; border: none; border-radius: 4px; padding: 11px 22px; font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .06em; font-size: 1rem; cursor: pointer; }
.btn:hover { background: var(--rosso-chiaro); text-decoration: none; }
.btn.vuoto { background: transparent; border: 1px solid var(--rosso); color: var(--testo); }
.btn.vuoto:hover { background: rgba(217,4,41,.15); }
.btn.piccolo { padding: 5px 12px; font-size: .85rem; }
.btn.grigio { background: var(--pannello2); border: 1px solid var(--bordo); color: var(--testo); }
.btn:disabled { opacity: .5; cursor: default; }

.griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 18px; }
.scheda { background: var(--pannello); border: 1px solid var(--bordo); border-left: 3px solid var(--rosso); border-radius: 6px; padding: 18px 20px; }
.scheda .data { font-family: Oswald, sans-serif; color: var(--rosso-chiaro); font-size: 1.05rem; letter-spacing: .05em; text-transform: uppercase; }
.scheda h3 { margin: 4px 0 6px; }
.scheda .luogo { color: var(--grigio); font-size: .92rem; }
/* Sede della gara con la mappa (dalle SEDI) */
.scheda-sede { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-start; background: var(--pannello2, #1a1a1a); border: 1px solid var(--bordo); border-radius: 6px; padding: 12px; }
.mappa-sede { flex: 1 1 320px; min-width: min(320px, 100%); border: 0; border-radius: 4px; }
.sede-testo { flex: 1 1 220px; line-height: 1.5; }
.etichetta { display: inline-block; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; padding: 2px 8px; border-radius: 3px; background: var(--pannello2); border: 1px solid var(--bordo); color: var(--grigio); }
.etichetta.rossa { background: var(--rosso); border-color: var(--rosso); color: #fff; }
.etichetta.blu { background: rgba(66,165,245,.15); border-color: #42a5f5; color: #42a5f5; }
.etichetta.verde { background: rgba(76,175,80,.15); border-color: var(--verde); color: var(--verde); }

.stagioni { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin: 0 0 22px; }
.stagioni button { background: var(--pannello); border: 1px solid var(--bordo); color: var(--testo); padding: 6px 14px; border-radius: 4px; cursor: pointer; font-family: Oswald, sans-serif; letter-spacing: .04em; }
.stagioni button.attivo { background: var(--rosso); border-color: var(--rosso); }
.stagioni button:disabled { opacity: .3; cursor: default; }

table.tab { width: 100%; border-collapse: collapse; font-size: .95rem; }
table.tab th { text-align: left; font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .05em; font-weight: 500; color: var(--grigio); border-bottom: 2px solid var(--rosso); padding: 8px 10px; }
table.tab td { border-bottom: 1px solid var(--bordo); padding: 8px 10px; vertical-align: top; }
table.tab tr:hover td { background: rgba(255,255,255,.02); }
.pos { font-family: Oswald, sans-serif; font-size: 1.15rem; color: var(--rosso-chiaro); width: 46px; }
.pos.p1 { color: #ffd54a; } .pos.p2 { color: #cfd8dc; } .pos.p3 { color: #d7a26b; }
.num { font-family: Oswald, sans-serif; color: var(--grigio); }
.blocco-cat { margin: 0 0 30px; }
.blocco-cat h3 { border-left: 3px solid var(--rosso); padding-left: 10px; }
.scorri { overflow-x: auto; }

/* ─── moduli ─── */
.modulo { background: var(--pannello); border: 1px solid var(--bordo); border-radius: 6px; padding: 22px; }
.modulo fieldset { border: 1px solid var(--bordo); border-radius: 6px; margin: 0 0 18px; padding: 14px 16px 6px; }
.modulo legend { font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .06em; color: var(--rosso-chiaro); padding: 0 6px; }
.campi { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: 12px 16px; margin-bottom: 10px; }
label.campo { display: flex; flex-direction: column; gap: 4px; font-size: .85rem; color: #e2e2e2; }   /* 24/10/2026: più chiaro, si legge meglio */
/* Campi da compilare CHIARI (22/10/2026): sul nero si vedono meglio */
input, select, textarea { background: #f3f3f3; border: 1px solid #9a9a9a; color: #111; border-radius: 4px; padding: 9px 10px; font: inherit; font-size: .95rem; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--rosso); background: #fff; box-shadow: 0 0 0 2px rgba(217,4,41,.35); }
input::placeholder, textarea::placeholder { color: #777; }
input:disabled, select:disabled, textarea:disabled, input[readonly] { background: #c9c9c9; color: #444; }
optgroup, option { background: #fff; color: #111; }
input[type=checkbox] { accent-color: var(--rosso); width: 17px; height: 17px; }
.spunta { display: flex; gap: 8px; align-items: flex-start; font-size: .92rem; margin: 6px 0; color: var(--testo); }
.esca { position: absolute; left: -9999px; }
.avviso { padding: 12px 16px; border-radius: 4px; margin: 12px 0; border-left: 3px solid var(--rosso); background: rgba(217,4,41,.1); }
.avviso.ok { border-left-color: var(--verde); background: rgba(76,175,80,.1); }
.vuoto-msg { color: var(--grigio); padding: 30px 0; text-align: center; }

/* ─── piè di pagina ─── */
footer.piede { border-top: 1px solid var(--bordo); color: var(--grigio); font-size: .85rem; }
footer.piede .riga { max-width: 1180px; margin: 0 auto; padding: 22px 16px; display: flex; gap: 16px; justify-content: space-between; flex-wrap: wrap; }

@media (max-width: 760px) {
  .hamburger { display: block; }
  .testata .riga { gap: 12px; }
  .marchio { font-size: 1.1rem; gap: 8px; }
  nav.menu { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--nero); flex-direction: column; border-bottom: 2px solid var(--rosso); padding: 6px 16px 12px; }
  nav.menu.aperto { display: flex; }
  h1 { font-size: 1.7rem; }
  main { padding-top: 22px; }
}

/* ─── aiuti alla compilazione (come la domanda di Tanguedia) ─── */
.campo-errato { border-color: var(--rosso-chiaro) !important; box-shadow: 0 0 0 1px var(--rosso-chiaro); }
.errore-campo { color: var(--rosso-chiaro); font-size: .85rem; font-weight: 600; margin-top: 3px; }
.cf-esito, .data-esito { font-size: .8rem; margin-top: 3px; min-height: 1em; color: var(--grigio); }
.cf-esito.ok, .data-esito.ok { color: var(--verde); }
.cf-esito.ko, .data-esito.ko { color: var(--rosso-chiaro); }
.suggerimento-email { font-size: .85rem; margin-top: 3px; color: var(--giallo); }
.suggerimento-email:empty { display: none; }
.suggerimento-email a { color: var(--giallo); text-decoration: underline; }
.email-scritta { background: var(--pannello2); border: 1px solid var(--bordo); border-radius: 4px; padding: 10px 12px; font-size: .92rem; }
.spunta.compatta { display: flex; gap: 6px; align-items: center; color: var(--grigio); }
.spunta.compatta input { width: 14px; height: 14px; }
.velo { position: fixed; inset: 0; background: rgba(0,0,0,.7); display: flex; align-items: center; justify-content: center; padding: 16px; z-index: 50; }
.modale { background: var(--pannello); border: 1px solid var(--bordo); border-top: 3px solid var(--rosso); border-radius: 6px; padding: 20px 22px; max-width: 440px; width: 100%; }
.modale h3 { margin-top: 0; }
.modale .dato-cf { font-size: 1.2rem; margin: 6px 0; }

/* ─── home: i due formati di gara ─── */
.formati { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 18px; }
.formato { background: var(--pannello); border: 1px solid var(--bordo); border-top: 3px solid var(--rosso); border-radius: 6px; padding: 22px 24px; display: flex; flex-direction: column; }
.formato h3 { font-size: 1.3rem; }
.formato p { color: var(--grigio); margin: 0 0 16px; flex: 1; }
.formato p b { color: var(--testo); }
.testo-largo { max-width: 860px; color: var(--grigio); font-size: 1.02rem; }
.testo-largo b { color: var(--testo); }
.sezione { margin-top: 48px; }
.elenco-punti { color: var(--grigio); padding-left: 20px; margin: 8px 0 0; }
.elenco-punti li { margin: 6px 0; }
.elenco-punti b { color: var(--testo); }

/* Tipo di gara (Interregionale, Tappa 1…): testo, non pastiglia — non è cliccabile */
.tipo-gara { font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .08em; font-size: .85rem; color: var(--rosso-chiaro); margin-right: 6px; }

/* Locandine */
.scheda .locandina { display: block; margin: -18px -20px 14px; }
.scheda .locandina img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 6px 6px 0 0; }
.locandina-grande { display: block; width: min(520px, 100%); height: auto; border-radius: 6px; margin: 0 0 20px; border: 1px solid var(--bordo); }

/* Titolo di Campione Nazionale sotto il primo classificato */
.campione { font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .05em; font-size: .8rem; color: #ffd54a; }
.riga-campione td { padding-top: 0 !important; border-top: none !important; }
/* La riga del 1° e la scritta dei Campioni stanno insieme: niente linea in mezzo */
table.tab tr:has(+ .riga-campione) td { border-bottom: none; padding-bottom: 4px; }

/* Le due competizioni della gara singola: 🎖️ CC e 🏆 OA */
.comp-titolo { font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .05em; color: var(--rosso-chiaro); margin: 14px 0 2px; padding-top: 8px; border-top: 1px solid var(--bordo); }

/* Classifiche: una riga per gara (locandina piccola, data, titolo, luogo, linea, tasto) */
.riga-gara { display: flex; align-items: center; gap: 16px; padding: 12px 14px; margin-bottom: 10px; background: var(--pannello); border: 1px solid var(--bordo); border-radius: 6px; }
.riga-gara-img { width: 72px; height: 72px; border-radius: 4px; object-fit: cover; flex-shrink: 0; }
.riga-gara-img.vuota { display: inline-flex; align-items: center; justify-content: center; background: var(--pannello2, #1a1a1a); font-size: 1.8rem; }
.riga-gara-testo { min-width: 0; }
.riga-gara-testo .data { color: var(--rosso-chiaro); font-family: Oswald, sans-serif; text-transform: uppercase; font-size: .85rem; letter-spacing: .05em; }
.riga-gara-testo b { font-family: Oswald, sans-serif; font-size: 1.25rem; letter-spacing: .03em; display: block; }
.riga-gara-testo .luogo { color: var(--grigio); font-size: .9rem; }
.riga-gara-linea { flex: 1; min-width: 20px; border-top: 1px solid #5a5a5a; }
@media (max-width: 560px) { .riga-gara { flex-wrap: wrap; } .riga-gara-linea { display: none; } .riga-gara .btn { width: 100%; text-align: center; } }

/* Classifiche: risultati e voti dei giudici per turno */
.voti-cat { margin-top: 12px; padding: 12px 14px; background: var(--pannello); border: 1px solid var(--bordo); border-radius: 6px; }
.voti-cat .turno-titolo { font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .04em; margin: 16px 0 6px; color: var(--rosso-chiaro); }
.voti-cat .turno-titolo:first-of-type { margin-top: 4px; }
.tab-voti th.g, .tab-voti td.g { text-align: center; width: 38px; }
.tab-voti td.g { font-family: Oswald, sans-serif; font-size: 1.05rem; }
.schede-gara { display: flex; gap: 8px; margin: 4px 0 18px; }
.schede-gara button { flex: 0 1 200px; padding: 10px 16px; background: var(--pannello); border: 1px solid var(--bordo); color: var(--testo); border-radius: 6px; cursor: pointer; font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .05em; font-size: 1rem; }
.schede-gara button.attivo { background: var(--rosso); border-color: var(--rosso); color: #fff; }
.giudici-elenco { padding: 8px 12px; background: var(--pannello); border: 1px solid var(--bordo); border-radius: 6px; }
.giudici-elenco b { color: var(--rosso-chiaro); font-family: Oswald, sans-serif; }
.nota-condiviso { margin: 0 0 6px; color: var(--giallo, #e0b84a); }
.tab-voti .pill { display: inline-block; font-size: .72rem; padding: 1px 6px; border-radius: 3px; border: 1px solid var(--bordo); margin-top: 3px; }

/* Chi è entrato: cerchio con foto o iniziali in fondo alla testata, con il menu (24/10/2026) */
.utente-box { position: relative; flex-shrink: 0; margin-left: 4px; }
.utente-tondo { width: 38px; height: 38px; border-radius: 50%; border: 2px solid var(--rosso); background: var(--rosso); color: #fff; font-family: Oswald, sans-serif; font-weight: 600; font-size: .95rem; letter-spacing: .03em; cursor: pointer; padding: 0; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; }
.utente-tondo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.utente-tondo:hover { box-shadow: 0 0 0 3px rgba(217,4,41,.35); }
.utente-menu { position: absolute; right: 0; top: calc(100% + 8px); min-width: 220px; background: var(--pannello); border: 1px solid var(--bordo); border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,.6); padding: 6px; z-index: 50; }
.utente-chi { display: flex; flex-direction: column; padding: 8px 10px 10px; border-bottom: 1px solid var(--bordo); margin-bottom: 4px; }
.utente-chi b { font-family: Oswald, sans-serif; letter-spacing: .03em; }
.utente-chi span { color: var(--grigio); font-size: .82rem; }
.utente-chi .mail { font-size: .75rem; }
.utente-menu a, .utente-menu button { display: block; width: 100%; text-align: left; padding: 8px 10px; border-radius: 4px; background: none; border: none; color: var(--testo); font: inherit; font-size: .92rem; cursor: pointer; text-decoration: none; }
.utente-menu a:hover, .utente-menu button:hover { background: var(--pannello2, #1f1f1f); text-decoration: none; }
.utente-menu .utente-esci { color: var(--rosso-chiaro); }

/* 24/10/2026: pastiglie delle specialità con il bordo del colore della classe (Assoluti: neutro) */
.pill.cl-D { border-color: #43a047; }
.pill.cl-C { border-color: #fdd835; }
.pill.cl-B { border-color: #fb8c00; }
.pill.cl-A { border-color: #e53935; }
.pill.cl-AS { border-color: #8e24aa; }

/* 25/10/2026: scheda Evento (riservata) */
.ev-blocco { margin-top: 14px; }
.ev-blocco > b { font-family: Oswald, sans-serif; letter-spacing: .03em; }
.ev-riga { display: grid; grid-template-columns: 110px 110px 1fr auto; gap: 6px; margin-top: 6px; }
.ev-riga.ev-quota { grid-template-columns: 1fr 1fr 90px auto; }
@media (max-width: 640px) { .ev-riga, .ev-riga.ev-quota { grid-template-columns: 1fr 1fr; } }
.ev-blocco > .btn { margin-top: 8px; }
.ev-anteprima { white-space: pre-line; line-height: 1.55; background: var(--pannello2); border-left: 4px solid var(--rosso); border-radius: 4px; padding: 12px 14px; max-height: 420px; overflow-y: auto; }
tr.ev-annullata td { color: var(--grigio); text-decoration: line-through; }
tr.ev-annullata td:last-child, tr.ev-annullata td:nth-last-child(2) { text-decoration: none; }

/* tasti grandi della gara (25/10/2026, TC.tastiGara): titolo + per chi è, sotto in piccolo */
.tasti-gara { display: flex; gap: 10px; flex-wrap: wrap; }
.tasti-gara .tasto-gara { display: inline-flex; flex-direction: column; align-items: center; gap: 3px; padding: 12px 22px; line-height: 1.15; flex: 1 1 240px; max-width: 360px; text-align: center; }
.tasti-gara .tasto-gara small { font-family: Inter, system-ui, sans-serif; text-transform: none; letter-spacing: 0; font-size: .74rem; font-weight: 400; opacity: .85; }
.griglia .tasti-gara .tasto-gara { flex-basis: 100%; max-width: none; padding: 10px 14px; }
@media (max-width: 560px) { .tasti-gara .tasto-gara { max-width: none; } }

/* home con la foto di sfondo (25/10/2026): velo scuro sopra la foto per leggere titolo e tasti, che sfuma nel nero in basso */
.hero.con-foto { min-height: min(82vh, 760px); display: flex; flex-direction: column; justify-content: center; align-items: center; padding-top: 90px; padding-bottom: 80px;
  background: linear-gradient(180deg, rgba(10,10,10,.50) 0%, rgba(10,10,10,.62) 55%, rgba(10,10,10,.92) 92%, var(--nero) 100%),
              url('/img/home-sfondo.jpg') center 28% / cover no-repeat, var(--nero); }
.hero.con-foto h1 { text-shadow: 0 2px 18px rgba(0,0,0,.7); }
.hero.con-foto .sotto { color: #e6e6e6; text-shadow: 0 1px 8px rgba(0,0,0,.8); }
@media (max-width: 640px) { .hero.con-foto { min-height: 72vh; background-position: center, 62% 20%, center; } }
/* foto FERMA, il testo scorre sopra (25/10/2026): la foto è uno strato fisso dietro l'intestazione, ritagliato
   dall'intestazione stessa (clip-path), così funziona anche su iPhone dove background-attachment: fixed non va */
.hero.con-foto { background: none; clip-path: inset(0); z-index: 0; }
.hero.con-foto::before { content: ''; position: fixed; inset: 0; z-index: -2;
  background: linear-gradient(180deg, rgba(10,10,10,.50), rgba(10,10,10,.62)), url('/img/home-sfondo.jpg') center 28% / cover no-repeat, var(--nero); }
.hero.con-foto::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 38%; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(10,10,10,.85) 75%, var(--nero)); }
@media (max-width: 640px) { .hero.con-foto::before { background-position: center, 62% 20%, center; } }

/* sorteggio anticipato dei gruppi (25/10/2026, STAMPE) */
.sorteggio-barra { align-items: center; }
.et-sorteggio { font-size: .72rem; padding: 1px 6px; border-radius: 3px; border: 1px solid var(--verde); color: var(--verde); white-space: nowrap; }
tr.riga-gruppi > td { background: var(--pannello2); }
.gruppi-vista { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; padding: 4px 0; }
.gruppo-vista { border: 1px solid var(--bordo); border-radius: 6px; padding: 8px 10px; font-size: .84rem; line-height: 1.5; }
.gruppo-vista > b:first-child { font-family: Oswald, sans-serif; letter-spacing: .04em; color: var(--rosso-chiaro); }
/* GARA › tutte le batterie con le coppie (25/10/2026) */
.tutte-batterie { max-height: 70vh; overflow: auto; }
.tb-batteria { padding: 10px 0; border-bottom: 1px solid var(--bordo); }
.tb-batteria:last-child { border-bottom: 0; }
.tb-testa { margin-bottom: 6px; }

/* BATTERIE (ex Stampe, 25/10/2026): una colonna per ogni tipo di pastiglia, così si incolonnano */
td.col-pill { white-space: nowrap; vertical-align: middle; }
td.col-pill .btn { min-width: 100%; text-align: center; }
.et-sorteggio.avviata { border-color: var(--grigio); color: var(--grigio); }

/* evidenzia team nei gruppi (25/10/2026) */
.cg { padding: 1px 4px; border-radius: 3px; }
.cg[title] { cursor: pointer; }
.cg.team-evid { background: rgba(217,4,41,.22); color: #fff; box-shadow: inset 3px 0 0 var(--rosso); }
.cg.team-evid .mini { color: #ffb3bf; }
.sel-team { flex-direction: row; align-items: center; gap: 8px; margin: 0 0 0 auto; }
.sel-team select { min-width: 200px; }

/* TIMETABLE › orari e ordine delle batterie (26/10/2026) */
.tab-orari td.ora-tt { font-family: Oswald, sans-serif; font-size: 1.05rem; }
.tab-orari tr.tt-fatta td { color: var(--grigio); }
.et-sorteggio.dafare { border-color: var(--bordo); color: var(--testo); }
.et-sorteggio.incorso { border-color: var(--giallo); color: var(--giallo); }
/* colonna Ordine: ▲ e ▼ affiancati, ognuno della sua misura (non a tutta colonna come le altre pastiglie) */
.tab-orari td.col-frecce { white-space: nowrap; }
.frecce-tt { display: inline-flex; gap: 6px; }
.frecce-tt .btn { width: 40px; padding-left: 0; padding-right: 0; text-align: center; }

/* croci finite: le caselle rimaste del giudice si spengono (26/10/2026) */
.griglia-voti input.voto[type=checkbox]:disabled { opacity: .25; cursor: not-allowed; }

/* pari merito (26/10/2026): pastiglia gialla nell'albero e accanto al posto, pallino giallo accanto alla coppia */
.pill-pari { display: inline-block; font-family: Inter, system-ui, sans-serif; font-size: .68rem; font-weight: 600; letter-spacing: .02em; text-transform: none;
  padding: 1px 6px; border-radius: 3px; border: 1px solid #fdd835; color: #fdd835; background: rgba(253,216,53,.12); vertical-align: middle; white-space: nowrap; }
.pallino-pari { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #fdd835; margin-right: 6px; vertical-align: middle; }

/* SPAREGGIO (26/10/2026) */
.riquadro-spareggio { margin-top: 12px; border-color: #fdd835; background: rgba(253,216,53,.06); }
.turno-voce.turno-spareggio { margin-left: 18px; border-left: 2px solid #fdd835; }
.nota-spareggio { color: #fdd835; }

/* REGOLAMENTI: editor .md con anteprima accanto (26/10/2026) */
.reg-editor { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-top: 14px; }
@media (max-width: 960px) { .reg-editor { grid-template-columns: minmax(0, 1fr); } }
#rg-testo { width: 100%; height: 72vh; font-family: Consolas, 'Courier New', monospace; font-size: 13px; line-height: 1.5; padding: 12px; resize: vertical; }
.anteprima-reg { height: 72vh; overflow: auto; background: var(--pannello); border: 1px solid var(--bordo); border-radius: 6px; padding: 6px 18px 18px; }
.anteprima-reg .intro { color: var(--grigio); }
.anteprima-reg h2 { margin-top: 26px; padding-top: 6px; border-top: 1px solid var(--bordo); font-size: 1.25rem; }
.anteprima-reg p, .anteprima-reg li { color: #d6d6d6; }
.anteprima-reg b { color: #fff; }
.anteprima-reg ul { padding-left: 20px; }
.anteprima-reg li { margin: 5px 0; }
.anteprima-reg .titoletto { font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .05em; color: var(--rosso-chiaro); margin: 12px 0 4px; }
.anteprima-reg .indice { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 10px 0 16px; padding: 10px 12px; background: var(--pannello2); border-radius: 6px; font-size: .82rem; }
.anteprima-reg .indice a { color: var(--testo); }
/* GARA › albero: batterie collegate a quella scelta (26/10/2026) — blu pieno stessa gara, blu tenue stessa categoria/classe */
.turno-voce.collegata { box-shadow: inset 3px 0 0 #42a5f5; }
.turno-voce.collegata, .turno-voce.collegata b, .turno-voce.collegata .mini { color: #64b5f6 !important; }
.turno-voce.collegata-lieve, .turno-voce.collegata-lieve b, .turno-voce.collegata-lieve .mini { color: #7fa6d9 !important; opacity: .95; }
.turno-voce.collegata-lieve { box-shadow: inset 3px 0 0 rgba(66,165,245,.35); }
/* anche la batteria scelta col testo in blu (26/10/2026), sullo sfondo rosso di «visto» */
.turno-voce.visto, .turno-voce.visto b, .turno-voce.visto .mini { color: #64b5f6 !important; }
.turno-voce.visto { box-shadow: inset 3px 0 0 #42a5f5; }
/* una sola coppia per categoria: primo posto senza voti (26/10/2026) */
.riquadro-unica { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--verde); border-radius: 8px; background: rgba(76,175,80,.07); }

/* dettaglio del calcolo Skating a destra della classifica (26/10/2026) */
.skating-griglia { display: block; }   /* il dettaglio sta SOTTO la classifica, a tutta larghezza (26/10/2026) */
.skating-dett { margin-top: 6px; }
.tab-skating th, .tab-skating td { text-align: center; padding: 6px 8px; }
.tab-skating th.cum, .tab-skating td.cum { border-left: 1px solid var(--bordo); }
.tab-skating td.giu { color: var(--grigio); }
.tab-skating td.magg { color: var(--testo); font-weight: 700; }
.tab-skating td.dopo { color: #555; }
.tab-skating td.decide { background: rgba(217,4,41,.22); outline: 1px solid var(--rosso); color: #fff; }
.tab-skating td.decide small { color: var(--grigio); font-weight: 400; }
.decide-es { color: var(--rosso); font-weight: 700; }

/* il dettaglio Skating in GARA: chiuso, si apre con un link piccolo (26/10/2026) */
details.skating-dett { margin-top: 14px; }
details.skating-dett > summary { cursor: pointer; display: inline-block; color: var(--grigio); font-size: .9rem; text-decoration: underline; text-underline-offset: 3px; list-style: none; }
details.skating-dett > summary::-webkit-details-marker { display: none; }
details.skating-dett > summary:hover, details.skating-dett[open] > summary { color: var(--testo); }
details.skating-dett[open] > summary { margin-bottom: 8px; }

/* pari merito superato (il turno dopo è partito): grigio invece di giallo (26/10/2026) */
.pill-pari.superato { border-color: #777; color: #9a9a9a; background: rgba(154,154,154,.12); }
.pallino-pari.superato { background: #777; }

/* spiegazioni nascoste che si aprono con un link (26/10/2026, scheda Risultati) */
details.spiega-link { margin: 0 0 12px; }
details.spiega-link > summary { cursor: pointer; display: inline-block; color: var(--grigio); font-size: .85rem; text-decoration: underline; text-underline-offset: 3px; list-style: none; }
details.spiega-link > summary::-webkit-details-marker { display: none; }
details.spiega-link > summary:hover, details.spiega-link[open] > summary { color: var(--testo); }
details.spiega-link > div { margin-top: 8px; padding: 10px 14px; background: var(--pannello); border: 1px solid var(--bordo); border-radius: 6px; }
details.spiega-link ul { padding-left: 20px; margin: 4px 0 8px; }
details.spiega-link p { margin: 0 0 8px; }

/* Classifiche: la pubblicazione sul sito (26/10/2026) */
.pubblica-cl { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 10px 0 14px; padding: 10px 14px; border: 1px solid var(--giallo); border-radius: 6px; background: rgba(245,197,24,.07); }
.pubblica-cl.si { border-color: var(--verde); background: rgba(76,175,80,.08); }
.pubblica-cl b { margin-right: auto; }

/* scheda GIUDIZIO (26/10/2026) */
.tab-giudizio td { vertical-align: middle; }
.tab-giudizio .gz-riga { cursor: pointer; }
.tab-giudizio .gz-riga:hover, .tab-giudizio .gz-riga.aperta { background: rgba(255,255,255,.04); }
.gz-indice { display: flex; flex-direction: column; gap: 4px; min-width: 90px; }
.gz-indice b { font-family: Oswald, sans-serif; font-size: 1.3rem; }
.gz-barra { display: block; height: 5px; background: var(--bordo); border-radius: 3px; overflow: hidden; }
.gz-barra i { display: block; height: 100%; }
.gz-aff { font-size: .72rem; padding: 1px 7px; border-radius: 3px; border: 1px solid; text-transform: uppercase; letter-spacing: .04em; }
.gz-aff.alta { color: var(--verde); } .gz-aff.media { color: var(--giallo); } .gz-aff.bassa { color: var(--grigio); }
.gz-iniz { display: inline-flex; width: 34px; height: 34px; border-radius: 50%; align-items: center; justify-content: center; background: var(--bordo); font-size: .8rem; color: var(--grigio); }
.gz-dett > td { background: #0f0f0f; padding: 8px 10px !important; }
/* GIUDIZIO: spiegazione con icone (26/10/2026) */
.gz-intro { display: grid; gap: 6px; margin: 0 0 10px; }
.gz-intro p { margin: 0; color: #d6d6d6; font-size: .92rem; }
.gz-intro b { color: var(--testo); }
.gz-spiega .gz-tit { margin: 10px 0 2px; color: var(--testo); font-weight: 700; }
.gz-spiega .gz-tit:first-child { margin-top: 0; }
.gz-spiega ul { margin: 2px 0 6px; }
.gz-spiega li { margin: 3px 0; }
/* Modifica gara: stato del salvataggio automatico (26/10/2026) */
.fg-stato { font-size: .85rem; color: var(--grigio); }
.fg-stato.ok { color: var(--verde); font-weight: 600; }
.fg-stato.ko { color: var(--rosso-chiaro); }
/* testo dell'evento (pagina /evento e dettaglio della gara, 26/10/2026) */
.ev-testo { white-space: pre-line; line-height: 1.6; font-size: 1.02rem; background: var(--pannello); border: 1px solid var(--bordo); border-left: 4px solid var(--rosso); border-radius: 6px; padding: 16px 18px; }
/* l'indirizzo della sede è il link alla mappa (26/10/2026, al posto del tasto «Apri la mappa») */
.via-mappa { color: var(--testo); text-decoration: underline; text-decoration-color: var(--rosso); text-underline-offset: 3px; }
.via-mappa::after { content: ' ↗'; font-size: .8em; color: var(--rosso-chiaro); }
.via-mappa:hover { color: var(--rosso-chiaro); }
/* Timetable nella pagina della gara: chiuso, si apre con il link «📋 Timetable» (26/10/2026) */
details.tt-chiuso > summary { cursor: pointer; list-style: none; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
details.tt-chiuso > summary::-webkit-details-marker { display: none; }
details.tt-chiuso .tt-link { font-family: Oswald, sans-serif; text-transform: uppercase; letter-spacing: .04em; color: var(--testo); text-decoration: underline; text-decoration-color: var(--rosso); text-underline-offset: 4px; }
details.tt-chiuso .tt-link::after { content: ' ▾'; color: var(--rosso-chiaro); }
details.tt-chiuso[open] .tt-link::after { content: ' ▴'; }
details.tt-chiuso > summary:hover .tt-link { color: var(--rosso-chiaro); }
details.tt-chiuso[open] .tt-apri { display: none; }
