/* ELOM - foglio di stile. Tema bianco/verde, con tema scuro automatico.
   Font: Montserrat Alternates (come il sito Sleeper; licenza OFL, ospitato in locale). */
@font-face{font-family:"Montserrat Alternates";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/montserrat-alternates-400.woff2) format("woff2")}
@font-face{font-family:"Montserrat Alternates";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/montserrat-alternates-600.woff2) format("woff2")}
@font-face{font-family:"Montserrat Alternates";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/montserrat-alternates-700.woff2) format("woff2")}
:root{
  --bg:#f3f7f5;--card:#fff;--tx:#17231f;--mut:#5f6f69;--bd:#d9e4df;
  --ac:#0b7a5b;--chiaro:#16a876;--tenue:#2f7360;--ac2:#0f9a73;--ac-soft:#e3f4ed;--on-ac:#fff;
  --err:#b42318;--up:#067647;--dn:#b42318;
  --shadow:0 1px 2px rgba(16,40,32,.06),0 6px 20px rgba(16,40,32,.06);
  --radius:12px;
  --f-testo:"Montserrat Alternates",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-titoli:"Montserrat Alternates",system-ui,sans-serif;
}
/* Tema: segue il sistema finche' l'utente non sceglie; la scelta (html[data-theme]) e' salvata nel browser. */
:root:not([data-theme="light"]){color-scheme:light dark}
:root[data-theme="light"]{color-scheme:light}
:root[data-theme="dark"]{
  --bg:#0e1714;--card:#16221e;--tx:#e6efeb;--mut:#9ab0a8;--bd:#27382f;
  --ac:#3ccf9f;--chiaro:#7cf0c4;--tenue:#8ccdb4;--ac2:#25a87e;--ac-soft:#183128;--on-ac:#06241a;
  --err:#ff8a80;--up:#5ddc9d;--dn:#ff8a80;--shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.3);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0e1714;--card:#16221e;--tx:#e6efeb;--mut:#9ab0a8;--bd:#27382f;
  --ac:#3ccf9f;--chiaro:#7cf0c4;--tenue:#8ccdb4;--ac2:#25a87e;--ac-soft:#183128;--on-ac:#06241a;
  --err:#ff8a80;--up:#5ddc9d;--dn:#ff8a80;--shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.3);
  color-scheme:dark;
}}
/* Colore principale del sito: verde (predefinito), blu o rosso, scelto con i tre pallini in alto a sinistra nella home (html[data-colore], salvato nel browser).
   Cambiano solo accento e grigi di fondo; su/giu', errori e saldi (--up, --dn, --err) restano verde e rosso in ogni colore. */
:root[data-colore="blu"]{--bg:#f3f6fb;--bd:#d9e2ef;--tx:#17202e;--mut:#5b687c;--ac:#1d5fd0;--chiaro:#3b82f6;--tenue:#35599a;--ac2:#2563eb;--ac-soft:#e3ecfb;--on-ac:#fff;}
:root[data-colore="blu"][data-theme="dark"]{--bg:#0e1420;--card:#161e2d;--tx:#e6ecf5;--mut:#9aa9bf;--bd:#27344a;--ac:#6ea8fe;--chiaro:#9cc3ff;--tenue:#a5c4f0;--ac2:#3b82f6;--ac-soft:#18263f;--on-ac:#06142b;}
@media (prefers-color-scheme:dark){:root[data-colore="blu"]:not([data-theme="light"]){--bg:#0e1420;--card:#161e2d;--tx:#e6ecf5;--mut:#9aa9bf;--bd:#27344a;--ac:#6ea8fe;--chiaro:#9cc3ff;--tenue:#a5c4f0;--ac2:#3b82f6;--ac-soft:#18263f;--on-ac:#06142b;}}
:root[data-colore="rosso"]{--bg:#faf4f5;--bd:#ecd9dc;--tx:#2a1719;--mut:#76595d;--ac:#b8203a;--chiaro:#e04860;--tenue:#9a3342;--ac2:#d02a46;--ac-soft:#fbe6e9;--on-ac:#fff;}
:root[data-colore="rosso"][data-theme="dark"]{--bg:#1a1011;--card:#271819;--tx:#f3e7e8;--mut:#c1a5a8;--bd:#442a2d;--ac:#ff7a8c;--chiaro:#ffa3b0;--tenue:#e8a4ae;--ac2:#d9435c;--ac-soft:#3a1d22;--on-ac:#2e050c;}
@media (prefers-color-scheme:dark){:root[data-colore="rosso"]:not([data-theme="light"]){--bg:#1a1011;--card:#271819;--tx:#f3e7e8;--mut:#c1a5a8;--bd:#442a2d;--ac:#ff7a8c;--chiaro:#ffa3b0;--tenue:#e8a4ae;--ac2:#d9435c;--ac-soft:#3a1d22;--on-ac:#2e050c;}}

*{box-sizing:border-box}
body{margin:0;font:14.5px/1.55 var(--f-testo);background:var(--bg);color:var(--tx)}
a{color:var(--ac)}

/* ---- intestazione ---- */
header{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:10px 20px;background:var(--card);
  border-bottom:3px solid var(--ac);position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand h1{font-size:19px;font-weight:700;margin:0;letter-spacing:.3px}
.brand h1 b{color:var(--ac)}
nav{display:flex;gap:4px;flex-wrap:wrap}
.navwrap{position:relative;display:flex;align-items:center;min-width:0}
.navwrap nav{flex:1 1 auto;min-width:0}
.navfr{display:none;position:absolute;top:0;bottom:0;width:28px;padding:0;border:0;cursor:pointer;font-size:22px;line-height:1;color:var(--tx);z-index:1}   /* frecce di scorrimento del menu: solo smartphone (vedi sotto) */
.navfr.sx{left:0;background:linear-gradient(90deg,var(--card) 55%,transparent)}
.navfr.dxf{right:0;background:linear-gradient(270deg,var(--card) 55%,transparent)}
nav button{background:none;border:0;padding:8px 13px;border-radius:999px;color:var(--mut);cursor:pointer;font:inherit;font-family:var(--f-titoli);font-weight:600;font-size:14px}
nav button:hover{background:var(--ac-soft);color:var(--tx)}
nav button.on{background:var(--ac);color:var(--on-ac)}
header .dx{margin-left:auto;display:flex;align-items:center;gap:10px}
#ciao{color:var(--mut);font-size:13px;white-space:nowrap}

main{max-width:1100px;margin:0 auto;padding:18px 16px 40px}
h1,h2,h3,nav button,button.p,.tile b,th{font-family:var(--f-titoli)}
h3{margin:0 0 10px;font-weight:700}
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--radius);padding:16px;margin-bottom:16px;box-shadow:var(--shadow)}
dialog{font-family:var(--f-testo);border:1px solid var(--bd);border-radius:var(--radius);background:var(--card);color:var(--tx);box-shadow:var(--shadow)}
dialog::backdrop{background:rgba(5,20,15,.5)}

/* ---- tabelle ---- */
table{width:100%;border-collapse:collapse}
th,td{padding:8px 9px;text-align:left;border-bottom:1px solid var(--bd);vertical-align:middle}
th{color:var(--mut);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px}
tr.cl{cursor:pointer}tr.cl:hover{background:var(--ac-soft)}tr.cl:focus-visible{outline:2px solid var(--ac2);outline-offset:-2px;background:var(--ac-soft)}
tr:last-child td{border-bottom:0}

/* ---- form e pulsanti ---- */
button,input,select,textarea,option,summary{font-family:inherit}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid var(--bd);border-radius:8px;background:var(--bg);color:var(--tx);max-width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--ac2);outline-offset:1px}
input.g{width:56px;text-align:center}
button.p{background:var(--ac);color:var(--on-ac);border:0;border-radius:8px;padding:9px 18px;cursor:pointer;font:inherit;font-family:var(--f-titoli);font-weight:600}
button.p:hover{filter:brightness(1.08)}
button.s{background:none;border:1px solid var(--bd);color:var(--tx);border-radius:8px;padding:5px 11px;cursor:pointer;font:inherit}
button.s:hover{border-color:var(--ac);color:var(--ac)}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:10px}
.row label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--mut)}
.pair{border:1px solid var(--bd);border-radius:10px;padding:10px;margin-bottom:10px;background:var(--ac-soft)}
.pairs{display:flex;flex-wrap:wrap;gap:0 12px}
.pairs .pair{flex:1 1 340px;min-width:0}   /* affiancate; su schermi stretti una sopra l'altra */
.row.sets{gap:10px 36px}   /* piu' spazio tra i tre set */
img.timg{display:block;max-width:100%;max-height:320px;border-radius:10px;margin:8px 0;border:1px solid var(--bd)}
pre.sp{white-space:pre-wrap;font:13px/1.55 var(--f-testo);background:var(--bg);border:1px solid var(--bd);border-left:4px solid var(--ac);border-radius:8px;padding:10px 12px;margin:6px 0}
details>summary{cursor:pointer;padding:4px 0}
.up{color:var(--up)}.dn{color:var(--dn)}.mut{color:var(--mut)}.err{color:var(--err);margin:6px 0}
.bar{height:7px;background:var(--bd);border-radius:4px;min-width:80px}
.bar i{display:block;height:100%;border-radius:4px} /* colore inline: verde (punteggio piu' alto) -> rosso (piu' basso) */

/* ---- riquadro del torneo: titolo + Elimina in testa; sotto, una sola riga con "la mia iscrizione" (sinistra) e "Aggiungi nominativo" (destra) ---- */
.dhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px 24px;flex-wrap:wrap}
.dtit{flex:1 1 260px;min-width:0}
.dazioni{display:flex;justify-content:flex-end}
button.salva,button.ib{display:inline-flex;align-items:center;justify-content:center;gap:7px}   /* icona + testo */
button.salva[hidden],button.ib[hidden]{display:none}
button.salva .ico,button.ib .ico{flex:none}
button.p.ib,.azg button.p,.prefmia button.p{padding:5px 14px;border:1px solid transparent}   /* stessa altezza dei pulsanti .s (Iscrivi; Salva coppie e Genera partite) */
.dettaglio input[type=file]::file-selector-button,#boxnuova input[type=file]::file-selector-button,.tcard input[type=file]::file-selector-button{padding-left:32px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b5563' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z'/%3E%3C/svg%3E") no-repeat 10px center/16px}   /* "Scegli file" con icona (il pulsante e' del browser: l'icona e' uno sfondo) */
:root[data-theme="dark"] .dettaglio input[type=file]::file-selector-button,:root[data-theme="dark"] #boxnuova input[type=file]::file-selector-button,:root[data-theme="dark"] .tcard input[type=file]::file-selector-button{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d1d5db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z'/%3E%3C/svg%3E")}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .dettaglio input[type=file]::file-selector-button,:root:not([data-theme="light"]) #boxnuova input[type=file]::file-selector-button,:root:not([data-theme="light"]) .tcard input[type=file]::file-selector-button{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d1d5db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z'/%3E%3C/svg%3E")}}
button.elim{display:inline-flex;align-items:center;gap:7px}
button.elim .ico{flex:none}
button.elim:hover{border-color:var(--err);color:var(--err)}
.rigaazioni{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;margin:8px 0 4px}
.ria{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;min-width:0}
.ria .okmsg{margin:0}
.nominativo{display:flex;align-items:center;gap:10px;margin-left:auto;flex-wrap:wrap}
.nominativo label{font-size:13px;color:var(--mut)}
.piccolo{margin:0 0 4px;font-size:12px;text-align:right}

/* ---- classifica finale: una posizione per coppia ---- */
.posizioni{display:grid;gap:8px;margin:10px 0 12px;max-width:460px}
.posiz{display:flex;align-items:center;gap:10px}
.posiz b{min-width:2.4em;font-family:var(--f-titoli);color:var(--ac)}
.posiz select{flex:1;min-width:0}

/* ---- popup email ---- */
dialog.mailbox{width:min(560px,94vw);padding:18px;max-height:92vh;overflow:auto}
dialog.mailbox h3{margin:0 0 8px}
.mfield{display:flex;flex-direction:column;gap:4px;margin:12px 0;font-size:13px;color:var(--mut)}
.mfield input,.mfield textarea{width:100%;font-size:14px;color:var(--tx)}
.mfield textarea{resize:vertical}
.maz{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}

/* ---- gestione utenti (admin) ---- */
.creato{margin-top:10px;padding:10px 12px;border:1px solid var(--ac);border-radius:10px;background:var(--ac-soft)}
.creato .cred{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:6px}
.creato .pwc{font-family:ui-monospace,Consolas,monospace;user-select:all}
table.utenti tr.nuovo td{background:var(--ac-soft);animation:evidenzia 3s ease-out}
@keyframes evidenzia{from{background:var(--ac);color:var(--on-ac)}to{background:var(--ac-soft)}}
table.utenti td.az{white-space:nowrap;text-align:right}
table.utenti tr[hidden]{display:none}
#pwbox{margin-top:8px}

/* ---- preferenza per la composizione delle coppie ---- */
.pref{margin:6px 0 10px;padding:10px 12px;border:1px solid var(--bd);border-radius:10px;background:var(--ac-soft);display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.prefh{display:flex;align-items:center}
.prefr{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
@media (max-width:720px){.prefh{flex:1 1 100%}}
.prefr select{max-width:100%}
.prefiscr{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;flex:1 1 100%}   /* da iscritti: messaggio e «Annulla la mia iscrizione» dentro il box della preferenza, su una nuova riga a sinistra */
.prefiscr .okmsg{margin:0}
.prefbr{display:none}
.pref .prefnota{flex:1 1 100%;margin:0}   /* la spiegazione sta sempre sulla riga sotto */
@media (min-width:721px){      /* desktop: etichetta, scelte e pulsante (Partecipo / Salva) su una sola riga */
  .prefmia{flex-wrap:wrap}
  .prefmia.iscr{flex-wrap:wrap}      /* da iscritti c'e' anche il messaggio con «Annulla»: va a capo solo se manca lo spazio */
  .prefmia.iscr .prefr{flex:0 1 auto}
  .prefmia .prefh{flex:none}
  .prefmia .prefr{flex:1 1 0;flex-wrap:nowrap;min-width:0}
  .prefmia .prefr select{min-width:0;flex:0 1 auto}
  .prefmia .prefr button{flex:none;white-space:nowrap}
}
button.info{width:28px;height:28px;padding:0;border-radius:50%;font-weight:700;line-height:1}
.pm{color:var(--mut);font-size:12px}
.proposta{margin-top:8px}
.svela-az{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.sorteggio .sorte-box{display:flex;align-items:center;justify-content:center;min-height:64px;margin:12px 0;padding:10px;border:2px dashed var(--bd);border-radius:var(--radius);background:var(--ac-soft);font-size:1.5rem;font-weight:700;color:var(--ac);text-align:center;overflow-wrap:anywhere}
.sorteggio .sorte-box.fermo{border-style:solid;border-color:var(--ac)}
.sorteggio ol{margin:8px 0;padding-left:22px}
.sorteggio li{margin:4px 0}
ol.coppie{margin:6px 0 8px;padding-left:24px}
ol.coppie li{padding:3px 0}
dialog.infodlg{width:min(560px,94vw);padding:18px}
dialog.infodlg dl{margin:10px 0}
dialog.infodlg dt{font-family:var(--f-titoli);font-weight:700;color:var(--ac);margin-top:10px}
dialog.infodlg dd{margin:2px 0 0}

/* ---- accesso utenti ---- */
dialog.authdlg{width:min(420px,94vw);padding:18px}
.auth-popup h3{margin:0 0 6px}
.auth-popup h3.stog{margin:0 0 6px}
/* pagina «Mio account»: smartphone = una colonna; desktop = due colonne (password+email | foto e barcode), foto e barcode affiancati, azioni in fondo */
.account h3.stog{margin:0 0 8px}
.accgrid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:10px}
.accbox{min-width:0}
.accbox .stog + .sbody + .stog{margin-top:12px}
.accmail{display:flex;flex-direction:column;gap:4px;margin:4px 0}
.account #pwok{margin-bottom:12px}      /* spazio tra il pulsante e la nota sotto */
.account .accbox .stog + .sbody + .stog{margin-top:12px}
.accmail select,.accmail input{max-width:320px}
.accmail + .accmail{margin-top:14px}
.ppmeh{margin:14px 0 4px}
.accfoot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--bd)}
.accfoot .privlink{margin-left:auto}
.account .campi{max-width:380px}
.pwwrap{position:relative;display:block}
.pwwrap input{width:100%;box-sizing:border-box;padding-right:42px}
.pwocchio{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:34px;height:34px;padding:0;border:0;background:none;color:var(--mut);display:flex;align-items:center;justify-content:center;cursor:pointer}
.pwocchio:hover{color:var(--ac)}
@media (min-width:721px){.accgrid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:24px}}
@media (max-width:480px){.accfoot{flex-direction:column;align-items:stretch}.accfoot .s{width:100%}.accfoot .privlink{margin-left:0;text-align:center}.accmail select{max-width:none}.account .campi{max-width:none}}
td.ppcol{text-align:right}
td.ppcol .pplab,.ppmob .pplab{display:none}      /* desktop: i pulsanti PayPal e Satispay mostrano solo l'icona (il nome resta nel title e nell'aria-label); su smartphone hanno anche il testo */
td.ppcol button.ib{gap:0;padding-left:11px;padding-right:11px}      /* desktop: pulsante PayPal allineato a destra */
.ppmob{display:none}      /* MiCuenta, pulsante PayPal: su smartphone sta sotto il nome del destinatario, non nell'ultima colonna (fuori schermo) */
@media (max-width:720px){.ppmob{display:block;margin-top:6px}.ppcol{display:none}}
.ppcol button+button,.ppmob button+button{margin-left:6px}      /* PayPal e Satispay affiancati */

button.s[data-paypal]:hover,button.s[data-paypal]:focus-visible{background:#0070ba;border-color:#0070ba;color:#fff}      /* pulsante «PayPal»: al passaggio del mouse blu PayPal */
button.s[data-satispay]:hover,button.s[data-satispay]:focus-visible{background:#ff3d00;border-color:#ff3d00;color:#fff}      /* pulsante «Satispay»: al passaggio del mouse arancione Satispay */
.imgutente{margin:12px 0}
.imgutente > b{font-weight:400}      /* titoli «Foto profilo» e «Barcode PayPal» in «Mio account»: senza grassetto */
.mk{font-weight:700;color:var(--ac)}      /* «PayPal» e «Satispay» nelle etichette di Pagamenti: grassetto e colore del sito */
.pagam .imgutente{margin:4px 0}
.pagam .piccolo{text-align:left}      /* didascalie di Pagamenti allineate a sinistra come le etichette */
.pagam .imgutente > b{font-size:13px;color:var(--mut)}      /* «Barcode PayPal» come le altre etichette della sezione */
.pagrid{display:grid;grid-template-columns:1fr;gap:12px 28px;align-items:start}
@media (min-width:721px){.pagrid{grid-template-columns:1fr 1fr}}      /* desktop: nome PayPal.me e barcode affiancati */
.auth-popup .imgprev img{display:block;max-width:100%;max-height:60vh;margin:8px auto;border-radius:8px;border:1px solid var(--bd);background:#fff}      /* popup «Paga con PayPal» */
.imgutente .imgprev img{display:block;max-width:100%;max-height:220px;margin:6px 0;border-radius:8px;border:1px solid var(--bd)}
.auth{max-width:460px;margin:0 auto 16px}
.auth .campi,.account .campi{display:flex;flex-direction:column;gap:12px;margin:14px 0}
.auth label,.account label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--mut)}
.auth input,.account input{padding:9px 11px}
.okmsg{color:var(--up);font-weight:600;margin:0 0 10px}
ul.iscritti li.mio{background:var(--ac);color:var(--on-ac);border-color:var(--ac)}
ul.iscritti li.mio .mut,ul.iscritti li.mio .pm{color:var(--on-ac);opacity:.9}
ul.iscritti li b{font-weight:700}

/* ---- prossimo torneo / calendario ---- */
.avviso{margin:0;text-align:center}
.cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-family:var(--f-titoli);font-size:17px}
.cal-h button{width:38px;height:34px;font-size:20px;line-height:1;padding:0}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.cl-n{text-align:center;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--mut);padding:4px 0}
.cd{position:relative;aspect-ratio:1/0.62;min-height:42px;border:1px solid var(--bd);border-radius:10px;background:var(--bg);color:var(--tx);
  font:inherit;font-weight:600;cursor:default;padding:0}
.cd.vuoto{border:0;background:none}
.cd .gn{position:absolute;top:5px;left:8px;font-size:13px}
.cd.passato{opacity:.45}
.cd.oggi{border-color:var(--ac);box-shadow:inset 0 0 0 1px var(--ac)}
.cd.ev{cursor:pointer;background:var(--ac-soft);border-color:var(--ac);color:var(--ac)}
.cd.ev:hover,.cd.scelto{background:var(--ac);color:var(--on-ac)}
.cd.ev.scelto .badge,.cd.ev:hover .badge{background:var(--on-ac);color:var(--ac)}
.badge{position:absolute;right:6px;bottom:5px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--ac);color:var(--on-ac);
  font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
/* stato iscritti: 0 = rosso, dispari = arancione, pari = verde (colore di tema) */
.cd.ev.st0{--st:var(--err)}.cd.ev.stD{--st:#e07b00}
.cd.ev.st0,.cd.ev.stD{background:color-mix(in srgb,var(--st) 14%,var(--bg));border-color:var(--st);color:var(--st)}
.cd.ev.st0:hover,.cd.ev.st0.scelto,.cd.ev.stD:hover,.cd.ev.stD.scelto{background:var(--st);color:#fff}
.cd.ev.st0 .badge,.cd.ev.stD .badge{background:var(--st);color:#fff}
.cd.ev.st0.scelto .badge,.cd.ev.st0:hover .badge,.cd.ev.stD.scelto .badge,.cd.ev.stD:hover .badge{background:#fff;color:var(--st)}
.chip b.st0{color:var(--err)}.chip b.stD{color:#e07b00}
.chip.on b.st0,.chip.on b.stD{color:var(--on-ac)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.chip{border:1px solid var(--bd);background:var(--card);color:var(--tx);border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}
.chip b{color:var(--ac);margin-left:4px}
.chip:hover{border-color:var(--ac)}.chip.on{background:var(--ac);border-color:var(--ac);color:var(--on-ac)}.chip.on b{color:var(--on-ac)}
h4.isc{margin:14px 0 6px;font-size:15px}
ul.iscritti{margin:0 0 10px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
ul.iscritti li{background:var(--ac-soft);border:1px solid var(--bd);border-radius:999px;padding:5px 14px;font-size:13px}
button.x{padding:0 6px;margin-left:6px;font-size:11px;border-radius:999px}

/* ---- classifica ---- */
.come{text-align:center;margin:0 0 16px}
.come button[aria-expanded="true"]{background:var(--ac);border-color:var(--ac);color:var(--on-ac)}
.nota{text-align:center;margin:14px 0 2px}
th.num,td.num{text-align:right}
th.ctr,td.ctr{text-align:center}
th.trend,td.trend{text-align:center;width:54px}
.tri{font-size:15px;line-height:1}
th.med,td.med{text-align:center;width:46px}
th.med{font-size:16px}
td.med{font-weight:600}
td.med.zero{color:var(--mut);font-weight:400;opacity:.6}
.tri.su{color:var(--up)}.tri.giu{color:var(--dn)}.tri.uguale{color:var(--mut)}

/* ---- partite raggruppate per torneo ---- */
table.partite tr.grp td{background:var(--ac-soft);border-bottom:2px solid var(--ac);padding:10px 9px;font-family:var(--f-titoli)}
table.partite tr.cl + tr.grp td{border-top:14px solid var(--card)}
table.partite .gt{font-weight:700;font-size:15px}
table.partite .gt b{color:var(--ac)}
table.partite .gd{color:var(--mut);font-size:13px;margin-left:10px;font-weight:600}
/* partita di finale (turno F): testo verde tenue, senza grassetto */
table.partite tr.fin td,table.partite tr.fin td .mut{color:var(--tenue)}
.scroll-x{overflow-x:auto}
table.partite .tn{display:inline-block;min-width:2.6em;font-weight:700}   /* larghezza fissa: gli orari restano incolonnati */
table.partite .ora{font-size:12px}

/* ---- tornei ---- */
.ttl{margin:0;font-size:20px;font-weight:700}
.ttl b{color:var(--ac)}
.tsub{color:var(--mut);font-size:13px;margin:2px 0 14px}
.tbody{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:flex-start}
.tmedia{flex:0 1 auto;min-width:0;max-width:100%}
.tmedia img.timg{width:224px;max-width:100%;max-height:211px;object-fit:cover;margin-top:0}   /* 66% della misura originale */
.imgaz{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.tcorpo>.imgaz{flex-direction:row;flex-wrap:wrap;align-items:center;margin:8px 0}
.imgaz input[type=file]{max-width:100%;font-size:12px}
.imgbtn{display:flex;flex-wrap:wrap;gap:6px}
.imgbtn .s{padding:4px 9px;font-size:12px;white-space:nowrap}
.clastit{margin:0 0 10px;font-size:17px}
.pronostico{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:0 0 12px}
.pronostico select{max-width:100%;min-width:0;font-variant-numeric:tabular-nums}
.pronostico .pronote{font-size:12.5px}
.pronostico .quote{flex:1 1 100%}
.pronostico .quote summary{cursor:pointer;font-size:13px}
.pronostico .quote table{margin:6px 0}
.tclas{flex:1 1 260px;min-width:0}
.tclt{margin-top:14px}
@media (max-width:720px){.tbody .tmedia{order:-1;flex-basis:100%}}
.tclas h4{margin:0 0 8px;font-size:15px}
.tclas .medaglia{font-size:17px;margin-left:4px;vertical-align:-1px}
.tclas ol{margin:0 0 10px;padding-left:24px}.tclas li{padding:2px 0}

/* ---- selettore tema ---- */
.tema{display:flex;align-items:center;justify-content:center;gap:12px;margin:6px 0 4px;color:var(--mut);font-size:13px}
.seg{display:inline-flex;border:1px solid var(--bd);border-radius:999px;overflow:hidden;background:var(--card);box-shadow:var(--shadow)}
.seg button{border:0;background:none;color:var(--mut);cursor:pointer;font:inherit;font-family:var(--f-titoli);font-weight:600;font-size:13px;padding:7px 16px}
.seg a{display:flex;align-items:center;color:var(--mut);cursor:pointer;padding:7px 14px;text-decoration:none}
.seg a .ico{width:18px;height:18px}
.seg a:hover{color:var(--tx);background:var(--ac-soft)}
.seg a:focus-visible{outline:2px solid var(--ac2);outline-offset:-2px}
.tema{flex-wrap:wrap}
.guidasep{width:1px;height:20px;background:var(--bd);margin:0 6px}
@media (max-width:640px){.tema{row-gap:3px}.guidasep{flex-basis:100%;width:100%;height:0;margin:0;background:none}}
.seg button:hover{color:var(--tx);background:var(--ac-soft)}
.seg button[aria-pressed="true"]{background:var(--ac);color:var(--on-ac)}
.seg button:focus-visible{outline:2px solid var(--ac2);outline-offset:-2px}

/* ---- home ---- */
.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 28px;align-items:center;
  padding:0;overflow:hidden;background:linear-gradient(135deg,var(--card) 0%,var(--ac-soft) 100%)}
.hero-txt{padding:30px 0 30px 30px}
.hero-txt h2{font-size:clamp(28px,4.4vw,46px);font-weight:700;line-height:1.08;letter-spacing:-.5px;margin:0 0 14px}
.hero-txt h2 b{color:var(--ac)}
.hero-txt p{color:var(--mut);margin:0;max-width:46ch}
.hero-img{display:block;width:386px;height:386px;margin:0;border-radius:0;justify-self:end;object-fit:cover;object-position:center 22%}   /* desktop: il riquadro e' alto quanto l'immagine, che tocca i bordi alto, destro e basso */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:16px}
.tile{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;
  background:var(--card);border:1px solid var(--bd);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);border-top:4px solid var(--ac);
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease,color .12s ease}
.tile b{display:block;font-size:32px;font-weight:700;line-height:1.1;color:var(--ac);transition:color .12s ease}
.tile span{color:var(--mut);font-size:13px;transition:color .12s ease}
/* al passaggio del mouse (o con la tastiera) la casella si colora: segnala che e' un collegamento */
.tile:hover,.tile:focus-visible{transform:translateY(-2px);background:var(--ac);border-color:var(--ac);color:var(--on-ac);
  box-shadow:0 2px 4px rgba(16,40,32,.08),0 10px 26px rgba(16,40,32,.18)}
.tile:hover b,.tile:hover span,.tile:focus-visible b,.tile:focus-visible span{color:var(--on-ac)}
.tile:focus-visible{outline:3px solid var(--ac2);outline-offset:2px}
.sponsor{display:flex;align-items:center;gap:10px;justify-content:center;color:var(--mut);font-size:13px;margin-top:2px}      /* vicino al selettore del tema */
.sponsor img{height:22px;background:#fff;border-radius:6px;padding:4px 8px;border:1px solid var(--bd)}

/* intestazione desktop quando il menu non sta sulla riga (classe messa da adattaIntestazione in app.js): saluto e pulsanti restano sulla riga del titolo, il menu va sotto */
header.due-righe{gap:8px 12px}
header.due-righe .brand{order:1}
header.due-righe .dx{order:2;margin-left:auto}
header.due-righe .navwrap{order:3;width:100%}
/* intestazione su schermi stretti: riga 1 = logo + titolo (sinistra) e saluto/Login/Admin (destra); riga 2 = menu */
@media(max-width:900px){
  header{gap:8px 12px}
  header .brand{order:1}
  header .dx{order:2;margin-left:auto}
  header .navwrap{order:3;width:100%}
}
@media(max-width:480px){
  header{padding:8px 10px;gap:6px 6px}
  .brand{gap:6px}
  .brand h1{font-size:16px;letter-spacing:0}
  header .dx{gap:5px;min-width:0}
  header .dx button{padding:4px 7px;font-size:12.5px}
  #ciao{max-width:120px;overflow:hidden;text-overflow:ellipsis;font-size:12px}
  nav button{padding:7px 11px}
}
@media(max-width:820px){
  .hero{grid-template-columns:1fr}
  .hero-txt{padding:24px 22px 4px}
  .hero-media{justify-self:center;width:100%;justify-content:center;margin:4px 0 20px}
  .hero-img{width:66%;height:auto;aspect-ratio:1/1;justify-self:center;margin:0;border-radius:12px}
}
@media(max-width:640px){
  header{padding:8px 12px}
  /* riquadro del torneo: il pulsante Elimina sta a sinistra, sotto la riga delle iscrizioni; tutto allineato a sinistra */
  .dazioni{width:100%;justify-content:flex-start;margin-top:-4px}
  .rigaazioni{justify-content:flex-start}
  .nominativo{width:100%;margin-left:0;justify-content:flex-start}
  .nominativo input{flex:1 1 140px;min-width:0}
  .piccolo{text-align:left}
  /* calendario compatto */
  .cal{gap:3px}
  .cd{min-width:0;min-height:40px;aspect-ratio:1/0.9;border-radius:8px}
  .cd .gn{top:3px;left:5px;font-size:12px}
  .badge{min-width:18px;height:18px;padding:0 4px;font-size:11px;right:3px;bottom:3px}
  /* classifica su telefono: senza barra del punteggio, colonne piu' compatte */
  table.classifica:not(.prono) th:nth-child(5),table.classifica:not(.prono) td:nth-child(5){display:none}      /* barra: nascosta su telefono (non nella classifica pronostici, dove e' la medaglia d'argento) */
  table.classifica th,table.classifica td{padding:9px 4px}
  table.classifica th:first-child,table.classifica td:first-child{width:1%;padding-left:2px;color:var(--mut)}
  table.classifica th:nth-child(2),table.classifica td:nth-child(2){width:100%}
  table.classifica th.trend,table.classifica td.trend{display:none}   /* colonna Var. nascosta su telefono */
  table.classifica th{font-size:9.5px;letter-spacing:0}
  table.classifica th.trend,table.classifica td.trend{padding:9px 3px}
  table.classifica th.med,table.classifica td.med{width:1%;min-width:0;padding:9px 1px;font-size:13px}
  table.classifica th.med{font-size:13px}
  table.classifica th:first-child,table.classifica td:first-child{padding-right:0}
  .card .scroll-x{margin:0 -4px}
  .card{padding:12px}
}

/* luogo del torneo (modifica da amministratore) */
.luogo-ed{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:8px 0 22px;font-size:13px}
.luogo-ed label{display:flex;align-items:center;gap:6px;color:var(--mut)}
.luogo-ed input{width:min(260px,60vw)}

/* email libera dalle Impostazioni */
.mdest{margin:10px 0}
.mdest-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:6px}
.mlista{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 14px;max-height:240px;overflow:auto;padding:8px 10px;border:1px solid var(--bd);border-radius:10px;background:var(--bg)}
.mchk{display:flex;align-items:center;gap:6px;font-size:13px;min-width:0}
.mchk .mut{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* sezioni a comparsa nelle Impostazioni */
details.sezione{margin:0 0 14px}
details.sezione>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid var(--bd);border-radius:12px;background:var(--card);font-family:var(--f-titoli);font-weight:700;font-size:17px}
details.sezione>summary::-webkit-details-marker{display:none}
details.sezione>summary::before{content:'▸';color:var(--ac);transition:transform .15s}
details.sezione[open]>summary::before{transform:rotate(90deg)}
details.sezione[open]>summary{margin-bottom:12px}
details.sezione>summary:hover{border-color:var(--ac)}

/* scelta del compagno: iscritti gia' al torneo in verde */
#pcomp option.giaisc,#aic option.giaisc,#pcomp optgroup[label^="Già"]{color:var(--up);font-weight:600}


/* partite: gruppi-torneo a comparsa */
table.partite tr.grp{cursor:pointer}
table.partite tr.grp:hover td{background:color-mix(in srgb,var(--ac) 22%,var(--card))}
table.partite .frc{display:inline-block;color:var(--ac);transition:transform .15s;margin-right:4px}
table.partite tr.grp[aria-expanded="true"] .frc{transform:rotate(90deg)}
table.partite .gn{color:var(--mut);font-size:12px;margin-left:10px;font-weight:600}
table.partite tr.nasc{display:none}

/* le due combo di ogni coppia occupano tutta la larghezza del box */
.pair .row label{flex:1 1 140px;min-width:0}
.pair .row select{width:100%}


/* tornei: riquadro a comparsa (titolo + data/partite sempre visibili) */
.tcard>.tclk{cursor:pointer;border-radius:8px}
.tcard>.tclk .tsub{margin-bottom:2px}
.tcard>.tclk:hover .ttl b{text-decoration:underline}
.tcard .frc{display:inline-block;color:var(--ac);transition:transform .15s;margin-right:4px;font-size:.8em}
.tcard>.tclk[aria-expanded="true"] .frc{transform:rotate(90deg)}
.tcard>.tcorpo{margin-top:12px}
.tcorpo[hidden]{display:none}

/* icone Icons8 nei pulsanti (PNG nere: sui temi scuri si invertono) */
button.ic{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px}
.ico8{display:block;width:18px;height:18px}
:root[data-theme="dark"] .ico8{filter:invert(1)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ico8{filter:invert(1)}}
button.ic:hover .ico8{opacity:.75}
table.utenti td.ctr,table.utenti th.ctr{text-align:center}

/* crediti (Icons8) sopra la firma MEC Group, in fondo alla home */
.crediti{text-align:center;color:var(--mut);font-size:12px;margin:26px 0 -14px}
.crediti a{color:inherit}


/* box della home: numero + etichetta a sinistra, icona (Icons8) a destra, alta quanto numero + etichetta */
.tile{display:grid;grid-template-columns:1fr auto;column-gap:10px;align-items:start}
.tile b{grid-column:1;grid-row:1}
.tile span{grid-column:1;grid-row:2}
.tile .tico{grid-column:2;grid-row:1 / span 2;align-self:stretch;justify-self:end;width:48px;min-height:44px;
  background-color:var(--ac);-webkit-mask:var(--ic) right center/contain no-repeat;mask:var(--ic) right center/contain no-repeat;transition:background-color .12s ease}
.tile:hover .tico,.tile:focus-visible .tico{background-color:var(--on-ac)}

#adminIscr{margin-top:12px}

/* immagine della data in programma: miniatura nel riquadro + popup */
.miniatura{padding:0;border:1px solid var(--bd);border-radius:12px;background:var(--card);cursor:zoom-in;overflow:hidden;width:84px;height:84px;flex:none;margin-left:auto}
.miniatura img{display:block;width:100%;height:100%;object-fit:cover}
.miniatura:hover{border-color:var(--ac)}
dialog.imgpopup{border:0;padding:0;background:transparent;max-width:96vw;max-height:94vh;overflow:visible}
dialog.imgpopup::backdrop{background:rgba(0,0,0,.7)}
dialog.imgpopup img{display:block;max-width:min(94vw,900px);max-height:90vh;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
dialog.imgpopup .chiudi{position:absolute;top:-12px;right:-12px;width:32px;height:32px;padding:0;border-radius:50%;background:var(--card);z-index:1}

[hidden]{display:none!important}

.anteprima{margin:12px 0}
.anteprima pre.sp{max-height:260px;overflow:auto}
.anteprima label{display:block;margin:6px 0}
.anteprima input,.anteprima textarea{width:100%;box-sizing:border-box;font:13px/1.5 var(--f-testo)}
.anteprima textarea{resize:vertical}
dialog.confermadlg{width:min(440px,94vw)}
dialog.confermadlg h3{margin:0 0 8px;display:flex;align-items:center;gap:9px}
dialog.confermadlg h3 .ico{width:22px;height:22px;flex:none;color:var(--ac)}
dialog.confermadlg h3.pericolo .ico{color:var(--err)}
dialog.confermadlg p{margin:0 0 6px;line-height:1.5}
.mdest-b{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
input[type=file]{font:inherit;color:var(--tx)}
input[type=file]::file-selector-button{font:inherit;font-family:var(--f-testo);background:none;border:1px solid var(--bd);color:var(--tx);border-radius:8px;padding:5px 11px;margin-right:10px;cursor:pointer}
input[type=file]::file-selector-button:hover{border-color:var(--ac);color:var(--ac)}
.nota-luogo{margin:2px 0 6px;font-style:italic;text-align:left}
.row.nuovadata{align-items:flex-end}
.row.nuovadata label{justify-content:flex-end}                 /* le didascalie stanno tutte sulla stessa linea: i campi hanno la stessa altezza */
.row.nuovadata input{height:36px;box-sizing:border-box;line-height:1.2}
#data_ora,#torneo_id,#turno,#campo{height:38px;box-sizing:border-box}   /* modifica partita: i quattro controlli della prima riga, combo del torneo compresa, alti uguali */
#gpformato,#gpinizio{height:36px;box-sizing:border-box;line-height:1.2}   /* Genera partite: combo formato alta come l'ora di inizio */
.row.nuovadata input[type=file]{padding:3px 8px;width:190px}
.galleria{margin-top:14px;width:100%}
.tprg{width:100%;border-collapse:collapse;margin-top:6px}
.tprg th,.tprg td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--bd)}
.gfoto{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
.gfoto figure{margin:0;display:flex;flex-direction:column;gap:4px;align-items:center}
.gfoto img{display:block;width:150px;height:112px;object-fit:cover;border-radius:8px;border:1px solid var(--bd)}
.gaz{display:flex;gap:4px}
.gaz .s{padding:2px 8px;font-size:12px;min-width:34px;justify-content:center}
.tcard input[type=file]::file-selector-button{height:34px;box-sizing:border-box;padding-top:0;padding-bottom:0}      /* "Scegli file" alto 34 px come i pulsanti */
.tcard button.s,.tcard button.p,#addt{min-height:34px}      /* pagina Tornei: tutti i pulsanti almeno 34 px */
.gaz .ico{width:14px;height:14px}      /* pulsanti della foto: solo icona */
.gaz .s:disabled{opacity:.4;cursor:default}
.gcop{width:64px;height:48px;object-fit:cover;border-radius:8px;border:1px solid var(--bd);flex:0 0 auto}
.gnota{margin:4px 0;font-style:italic}
.gnotaed{margin:6px 0}
.gnotaed input{width:min(420px,100%)}
.gfoto figure{position:relative}
.gfoto figure[draggable=true]{cursor:grab}
.gfoto figure.gtrasc{opacity:.4}
.gfoto figure.gsopra img{outline:3px solid var(--ac,#2bb673);outline-offset:2px}
.gfoto figure.gcover img{border-color:var(--ac,#2bb673);border-width:2px}
.gbadge{position:absolute;top:4px;left:4px;background:rgba(0,0,0,.65);color:#fff;font-size:11px;padding:1px 6px;border-radius:6px}
dialog.imgpopup .gprec,dialog.imgpopup .gsucc{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;padding:0;border-radius:50%;background:var(--card);font-size:26px;line-height:1;z-index:1}
dialog.imgpopup .gprec{left:8px}
dialog.imgpopup .gsucc{right:8px}
dialog.imgpopup .gcont{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.65);color:#fff;font-size:12px;padding:2px 10px;border-radius:10px}
dialog.imgpopup .gscarica{position:absolute;top:-12px;right:28px;width:32px;height:32px;padding:0;border-radius:50%;background:var(--card);z-index:1}
#umod.on,#umod.on:hover{background:var(--ac);border-color:var(--ac);color:var(--on-ac)}

/* Calcolatrice: separa partecipanti e non partecipanti */
table.utenti tr.sep td { background: var(--ac-soft); border-bottom: 0; }
.stog { margin: 0; }      /* titolo richiudibile di una sottosezione delle Impostazioni: stessa fascia di «Non partecipanti» */
.stog .gtoggle { display: block; background: var(--ac-soft); padding: 8px 9px; font-size: 14.5px; font-weight: 600; line-height: 1.5; }
.sbody { margin-top: 8px; }
.sbody[hidden] { display: none; }
#iscrcorpo + .stog { margin-top: 8px; }      /* Calendario (admin): spazio tra i titoli «Iscrizioni» e «Calcola coppie e partite» */
.regnav { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.gtoggle { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--tx); cursor: pointer; width: 100%; text-align: left; }

.ccella { white-space: nowrap; text-align: right; }
.ccella input[type=checkbox] { vertical-align: middle; margin-right: 6px; }
.ccella .cimp { width: 78px; padding: 4px 6px; text-align: right; }

.ctc { text-align: center; }
.csub th { text-align: right; font-size: 11px; font-weight: 500; color: var(--mut); padding: 2px 9px 2px 4px; }
.ccheck { padding-right: 0; }
.ccella .cimp:disabled { opacity: .45; }
.ccella .cimp.cpag { background: #cdeedd; color: #0b3d2c; }
:root[data-theme="dark"] .ccella .cimp.cpag { background: #1f5a42; color: #e6efeb; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ccella .cimp.cpag { background: #1f5a42; color: #e6efeb; } }

.ccella .cimp.cdeb { background: #f8d9d5; color: #5b1a14; }
:root[data-theme="dark"] .ccella .cimp.cdeb { background: #5a2b27; color: #e6efeb; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ccella .cimp.cdeb { background: #5a2b27; color: #e6efeb; } }

/* Calcolatrice: linea verticale a sinistra di ogni voce; la linea sotto il nome della voce è spezzata al cambio di voce */
#ctab .cgr { border-left: 1px solid var(--mut); }
#ctab th.ctc { border-bottom: 0; padding-bottom: 0; }
#ctab .ctv { display: block; border-bottom: 1px solid var(--bd); padding-bottom: 4px; margin: 0 6px; }

@media (max-width: 720px) {   /* smartphone: la colonna dei nomi resta ferma, le altre scorrono in orizzontale */
  #ctab tr.sep td { padding-left: 0; padding-right: 0; }
  #ctab tr.sep .gtoggle { position: sticky; left: 0; width: calc(100vw - 46px); padding: 6px 9px; }   /* «Non partecipanti» non scorre: sta ferma quanto la colonna dei nomi */
  #ctab tr:not(.csub):not(.sep) > :first-child { position: sticky; left: 0; z-index: 1; background: var(--card); box-shadow: 1px 0 0 var(--bd); }
}
#ctab th.ctutti { white-space: nowrap; text-align: center; padding: 2px 4px; }
.cbtn { background: none; border: 0; padding: 0 2px; font-size: 16px; line-height: 1; color: var(--tx); cursor: pointer; display: inline-flex; vertical-align: middle; }
.cbtn .ico { width: 16px; height: 16px; }
.cbtn:hover { color: var(--ac); }

#cres ul.cres { margin: 6px 0; padding-left: 20px; }
#cres:focus { outline: none; }

#ctab .cnome { width: 100%; max-width: 160px; font: inherit; font-weight: inherit; text-align: center; text-transform: uppercase; background: transparent; color: inherit; border: 0; border-bottom: 1px dashed var(--mut); padding: 0 2px; }
#ctab .cnome:focus { outline: none; border-bottom-style: solid; border-bottom-color: var(--ac); }

.ctorrow { margin-bottom: 8px; align-items: center; }
.ctorrow button { font-size: 14.5px; font-weight: 600; }   /* "Calcola": stessa dimensione (e quindi altezza) degli altri pulsanti */
.ctorrow label.inl { display: flex; align-items: center; gap: 8px; flex-direction: row; }

.azioni-dx { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
table.partite td.cc{text-align:center}
table.partite th.cc,table.partite td.cc{width:1%;white-space:nowrap;padding-left:6px;padding-right:6px}      /* colonna del campo stretta (titolo FLD) anche su desktop */
.cardh{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.cardh h3{margin-top:0}
.azg{display:flex;gap:8px;flex-wrap:wrap}
.dazioni{flex-direction:column;align-items:stretch;gap:6px}
.dazioni .azt{width:100%;min-width:9.5em;justify-content:center;text-align:center}
.stampa-partite,.stampa-intest{display:none}
.stampa-tab{font-size:12px;border-collapse:collapse;width:100%}      /* stampa del torneo: ogni partita (dati + note) e' un blocco con bordo marcato; le regole stanno fuori da @media print per poter misurare l'altezza */
.stampa-partite .stampa-tab th,.stampa-partite .stampa-tab td{border:1px solid #999;padding:2px 6px;color:#000}
.stampa-tab thead,.stampa-tab tbody.part{border:2.5px solid #000;break-inside:avoid;page-break-inside:avoid}
.stampa-partite .stampa-tab tr.rnote td{padding:1px 6px 3px;text-align:left}
.stampa-tab .nt{font-size:9px;text-transform:uppercase;letter-spacing:.04em}
.stampa-tab .nx{min-height:1.2em;white-space:pre-wrap}
@media print{
  body{background:#fff;color:#000}
  body.stampa-uno header,body.stampa-uno main>*:not(.stampa-solo),body.stampa-uno .dazioni,body.stampa-uno .luogo-ed,body.stampa-uno .imgaz,body.stampa-uno .tclas select,body.stampa-uno .pronostico,body.stampa-uno .tclas,body.stampa-uno .tmedia,body.stampa-uno .galleria,body.stampa-uno .gcop,body.stampa-uno .frc{display:none!important}
  body.stampa-uno .stampa-partite{display:block;margin-top:14px}
  body.stampa-uno .stampa-intest{display:block;margin:2px 0}
  body.stampa-uno .card{box-shadow:none;border:0;background:#fff;color:#000}
  body.stampa-uno table{border-collapse:collapse;width:100%}
  body.stampa-uno th,body.stampa-uno td{border:1px solid #999;padding:3px 6px;color:#000}
}
button.icbtn{display:inline-flex;align-items:center;gap:7px}
button.icbtn .ico{flex:none}
@media print{@page{size:A4 landscape;margin:12mm}}
@media print{
  body.stampa-uno .dhead{justify-content:flex-start}
  body.stampa-uno .dtit,body.stampa-uno .ttl,body.stampa-uno .stampa-partite,body.stampa-uno .stampa-clas,body.stampa-uno .stampa-intest{text-align:left}
  body.stampa-uno .stampa-clas div{padding:1px 0}
}
table.partite td.note{color:var(--mut);font-size:13px}
/* ---- punteggio in diretta ---- */
body.in-diretta header{display:none}
.live{max-width:1200px;margin:0 auto}
.live-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.live-grid{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,2.4fr) minmax(120px,1fr);gap:12px;align-items:stretch}
.live{--lv-a:#e5484d;--lv-a-soft:rgba(229,72,77,.15);--lv-b:#5aa9e6;--lv-b-soft:rgba(90,169,230,.15)}   /* coppia 1 rossa, coppia 2 blu */
.lvpt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:min(69vh,510px);border-radius:16px;border:2px solid var(--lv-a);background:var(--lv-a-soft);color:var(--tx);font-family:var(--f-titoli);cursor:pointer;padding:12px}
.lvpt span{font-size:clamp(22px,4vw,44px);font-weight:800;color:var(--lv-a)}
.lvpt b{font-size:clamp(13px,1.8vw,20px);font-weight:600;text-align:center}
.lvpt.b{border-color:var(--lv-b);background:var(--lv-b-soft)}
.lvpt.b span{color:var(--lv-b)}
.lvpt:active:not(:disabled){transform:scale(.97)}
.lvpt:disabled{opacity:.45;cursor:not-allowed}
.live-centro{display:flex;flex-direction:column;justify-content:center;min-width:0}
table.lvtab{width:100%;border-collapse:separate;border-spacing:0 6px}
table.lvtab th{font-size:12px;color:var(--mut);font-weight:600;text-align:center;padding:0 6px}
table.lvtab td{background:var(--card);padding:8px 6px;text-align:center}
table.lvtab td.lvn{text-align:left;border-radius:12px 0 0 12px;vertical-align:middle}
table.lvtab td.lvn .lvnn{display:flex;flex-direction:column;gap:4px}
table.lvtab td:last-child{border-radius:0 12px 12px 0}
td.lvs{font-size:clamp(22px,4vw,40px);font-weight:700;font-family:var(--f-titoli)}
tr.lva td.lvs.vinto,tr.lva td.lvg{color:var(--lv-a)}
tr.lvb td.lvs.vinto,tr.lvb td.lvg{color:var(--lv-b)}
td.lvs sup{font-size:.4em;margin-left:2px;color:var(--mut)}
td.lvg{font-size:clamp(30px,6vw,64px);font-weight:800;font-family:var(--f-titoli);min-width:2.2em}
button.lvp{background:transparent;border:1px solid transparent;color:var(--tx);font-size:clamp(14px,2vw,20px);font-weight:600;text-align:left;padding:4px 8px;border-radius:8px;cursor:pointer}
tr.lva button.lvp.srv{border-color:var(--lv-a);background:var(--lv-a-soft)}
tr.lvb button.lvp.srv{border-color:var(--lv-b);background:var(--lv-b-soft)}
button.lvp.pri{border-color:#e6b422;background:rgba(230,180,34,.18)}
.lvinfo{text-align:center;min-height:1.6em;margin-top:8px;font-size:15px;color:var(--mut)}
.lvinfo.golden{color:#e6b422;font-weight:800;font-size:clamp(16px,2.4vw,24px);letter-spacing:.04em}
.lvmsg{text-align:center;min-height:1.2em}
.live-az{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:14px 0}
.live-az button{min-width:11em;padding:12px 16px;font-size:15px}
.lvcorr{margin-top:8px}
@media (orientation:portrait){
  .live-grid{grid-template-columns:1fr 1fr}
  .live-centro{grid-column:1 / -1;order:-1}
  .lvpt{min-height:45vh}
}
@media (orientation:landscape) and (min-height:521px){   /* desktop: i box "+ Punto" alti quanto la sezione centrale */
  .lvpt{min-height:0}
}
@media (max-height:520px) and (orientation:landscape){
  .lvpt{min-height:80vh}
  .live-az{margin:8px 0}
}
.livetag{color:#e6b422;font-size:13px;font-weight:600;white-space:nowrap}
.lvbloc{margin:8px 0;border-color:var(--err)}
td.lvs .lvtb{font-size:.5em;font-weight:600;color:var(--mut);font-family:var(--f-testo)}
button.lvannulla:hover:not(:disabled){border-color:var(--err);color:var(--err)}
.live-az{flex-direction:column;align-items:stretch;gap:10px}
.live-az .lvr{display:flex;gap:12px}
.live-az .lvr button{flex:1 1 0;min-width:0;height:48px;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(11px,2.2vw,15px)}   /* stessa altezza in tutte e tre le righe, testo su una riga */
@media (orientation:portrait) and (max-width:700px){   /* smartphone verticale: tutto deve stare nella schermata */
  .lvpt{min-height:105px;padding:8px;gap:2px}
  .lvpt span{font-size:20px}
  .lvpt b{font-size:13px}
  td.lvg{font-size:30px}
  td.lvs{font-size:22px}
  button.lvp{font-size:14px;padding:3px 6px}
  .live-top{margin-bottom:4px}
  .live-az{margin:8px 0;gap:8px}
  .live-az .lvr{gap:6px}
  .live-az .lvr button{height:42px;font-size:12px}
  .lvinfo{font-size:13px;margin-top:2px}
}
/* intestazione su smartphone: pulsanti solo icona, saluto in alto a destra, menu su una riga con scorrimento orizzontale */
header .dx .ico8{display:none}
@media(max-width:480px){
  header .dx .ico8{display:block;width:20px;height:20px}
  header .dx .tx{display:none}
  header .dx button{display:inline-flex;align-items:center;justify-content:center;padding:5px 7px}
  #ciao{max-width:110px}
  .navfr{display:block}
  .navfr[hidden]{display:none}
  header nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  header nav::-webkit-scrollbar{display:none}
  header nav button{flex:0 0 auto;white-space:nowrap}
}
@media(max-width:480px){ header,main{padding-left:10px;padding-right:10px} }
/* nessuno scorrimento orizzontale della pagina (le tabelle larghe scorrono nel loro contenitore) */
html{overflow-x:hidden;max-width:100%}
body{overflow-x:clip;max-width:100%}
img,video,canvas,svg{max-width:100%}
/* pagina Partite: su smartphone una sola colonna "Coppie", colonna campo stretta (FLD), niente note, pulsanti con icone */
table.partite .mb{display:none}
table.partite .azp button{display:inline-flex;align-items:center;gap:7px}   /* desktop: icona + testo (su smartphone solo icona, vedi sotto) */
table.partite .azp .ico8{display:block;width:16px;height:16px;flex:none}
@media(max-width:640px){
  table.partite .dk{display:none}
  table.partite td.mb,table.partite th.mb{display:table-cell}
  table.partite span.mb{display:inline}
  table.partite th.cc,table.partite td.cc{width:1%;padding-left:4px;padding-right:4px}
  table.partite{font-size:12.5px}
  table.partite th,table.partite td{padding-left:4px;padding-right:4px}
  table.partite td.mb{white-space:nowrap}
  table.partite .azp{white-space:nowrap}
  table.partite .azp .ico8{display:block;width:18px;height:18px;flex:none}
  table.partite .azp .tx{display:none}
  table.partite .azp button{display:flex;align-items:center;justify-content:center;padding:4px 5px;margin:2px 0;min-width:32px}   /* le due icone una sopra l'altra: risparmiano larghezza */
}
table.partite br.mbr{display:none}
@media(max-width:640px){   /* titolo del torneo: dopo il nome si va a capo (data e numero di partite sotto) */
  table.partite br.mbr{display:inline}
  table.partite .gd{margin-left:0}
}
/* note della partita (desktop): riga sotto la partita, sotto coppie e risultato, carattere piu' piccolo */
table.partite tr.nt td{padding-top:0;color:var(--mut);font-size:12px;line-height:1.4}
@media(min-width:641px){ table.partite tr.cl.cn td{border-bottom:0;padding-bottom:3px} }
/* ==== MAPPA (prova): inizio ==== */
.mprow1,.mprow2{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.mprow2{margin:10px 0}
.mphead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.mphead h3{margin:0}
.mptog{padding:9px 13px;line-height:1}
.mptog .chev{display:block;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.mptog .chev.su{transform:translateY(2px) rotate(225deg)}
.mpparam[hidden]{display:none}
.mprow2 button{height:36px;padding:0 16px}
.mpfoot{text-align:center}
#mpcitta,#mpraggio{height:36px;box-sizing:border-box}   /* casella della citta' alta come la lista del raggio */
.mprow1 label>input,.mprow1 label>select{margin-top:4px}   /* smartphone: il campo va sotto l'etichetta */
@media(min-width:481px){ .mprow1 label>input,.mprow1 label>select{margin-top:0;margin-left:8px} }   /* desktop: un po' di spazio tra l'etichetta e il suo campo */
@media(min-width:481px){   /* desktop: pulsanti sulla riga dei parametri, a destra, piu' bassi */
  .mpparam:not([hidden]){display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px 16px}
  .mpparam .mprow1{flex:1 1 auto}
  .mpparam .mprow2{margin:0 0 0 auto;flex-wrap:nowrap}
  .mprow2 button{height:34px;padding:0 14px}
}
@media(max-width:480px){   /* smartphone: località + raggio sulla prima riga, due pulsanti affiancati della stessa altezza sotto */
  .mprow1{flex-wrap:nowrap}
  .mprow1 label.mpcitta{flex:1 1 auto;min-width:0}
  .mprow1 label.mpcitta input{width:100%;box-sizing:border-box}
  .mprow2{flex-wrap:nowrap}
  .mprow2 button{flex:1 1 0;min-width:0;white-space:nowrap}
  .mpmsg{font-size:12px}
}
.mpframe{display:block;width:100%;height:min(70vh,620px);min-height:340px;border:1px solid var(--bd);border-radius:12px;background:var(--card)}
/* ==== MAPPA (prova): fine ==== */
/* home: a sinistra dell'immagine i pallini (bianco, nero, verde) e le due icone racchetta/fiamma (versione normale/hot) */
.hero-media{display:grid;grid-template-columns:auto auto;grid-template-rows:1fr 1fr 1fr;column-gap:12px;justify-self:end}
.hero-dots{grid-column:1;grid-row:1;align-self:start;margin-top:16px;display:flex;flex-direction:column;gap:12px}
.hero-var,.hero-eta{grid-column:1;display:flex;flex-direction:column;gap:10px}
.hero-var{grid-row:2;align-self:center}   /* desktop: normale/hot al centro, adulto/giovane in basso a sinistra */
.hero-eta{grid-row:3;align-self:end;margin-bottom:16px}
.hv .ico{width:20px;height:20px}
.hero-foto{position:relative;grid-column:2;grid-row:1 / span 3}
.hd{width:22px;height:22px;padding:0;border-radius:50%;border:2px solid #9aa3a0;cursor:pointer}
.hd.bianco{background:#fff}
.hd.nero{background:#111}
.hd.verde{background:#9fd1b4}
.hd[aria-pressed="true"]{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--ac)}
.hv{width:34px;height:34px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--bd);background:transparent;cursor:pointer}
.hv .ico8{width:20px;height:20px}
.hv[aria-pressed="true"]{box-shadow:0 0 0 2px var(--ac)}
@media(max-width:820px){   /* smartphone: pallini a sinistra, racchetta/fiamma a destra, tutti al centro dell'immagine */
  .hero-media{display:grid;grid-template-columns:auto 66% auto;grid-template-rows:1fr 1fr;align-items:center;justify-content:center;justify-self:center;width:100%;margin:4px 0 20px}
  .hero-dots{grid-column:1;grid-row:1 / span 2;margin-top:0}
  .hero .hero-colori{position:static;top:auto;left:auto;grid-column:1;grid-row:1;align-self:start}   /* selettore colore del sito (dopo i cinque click): a sinistra della foto, in alto; i pallini dell'immagine scendono sotto */
  .hero .hero-colori.nascosto{display:none}
  .hero .hero-colori:not(.nascosto) ~ .hero-dots{grid-row:2;align-self:center}
  .hero-foto{grid-column:2;grid-row:1 / span 2;width:100%}
  .hero-foto .hero-img{width:100%}
  .hero-var{grid-column:3;grid-row:1;align-self:start;margin-bottom:0}   /* a destra: normale/hot in alto, adulto/giovane in basso */
  .hero-eta{grid-column:3;grid-row:2;align-self:end;margin-bottom:0}
  .hero-var.nascosto ~ .hero-eta{grid-row:1 / span 2;align-self:center}   /* normale/hot non visibile: adulto/giovane al centro a destra */
}
@media(min-width:821px){ .hero-dots,.hero-var,.hero-eta{justify-self:center} }   /* desktop: pallini e icone centrati sulla stessa linea verticale */
@media(max-width:820px){ .hero-dots{align-self:center;justify-self:auto;margin-top:0;margin-bottom:0} .hero-var,.hero-eta{justify-self:center} }   /* smartphone: i due gruppi centrati in verticale rispetto alla foto */
/* rotella di caricamento al centro dell'immagine della home */
.hero-foto .spin{display:none;position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border:4px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;background:rgba(0,0,0,.35);box-shadow:0 0 0 3px rgba(0,0,0,.35);animation:gira .8s linear infinite}   /* visibile su immagini chiare e scure */
.hero-foto.carica .spin{display:block}
@keyframes gira{to{transform:rotate(360deg)}}
/* titolo della home centrato nello spazio accanto a foto e icone */
.hero-txt{text-align:center}
@media(min-width:821px){ .hero-txt{padding:30px} }
@media(max-width:820px){ .hero-txt{padding-top:1px} .hero-media{margin-bottom:4px} }   /* smartphone: meno spazio sopra il titolo e sotto la foto */
@media(max-width:480px){   /* smartphone: i tre riquadri (giocatori, partite, tornei) su una riga, senza etichetta (resta per gli screen reader) */
  .tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .tile{position:relative;padding:12px 10px;column-gap:4px}
  .tile b{font-size:28px}
  .tile span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .tile .tico{width:32px;min-height:32px}
}
/* piede della home: logo, MEC Group e crediti Icons8 sulla stessa riga */
.sponsor{flex-wrap:wrap;gap:6px 10px}
.sponsor .crediti{margin:0;font-size:13px}
/* selettore normale/hot nascosto finche' non si sblocca (spazio riservato, cosi' il layout non cambia) */
.hero-var.nascosto,.hero-colori.nascosto{visibility:hidden}
.hero-foto{user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
@media(max-width:820px){ .hero{row-gap:0} .hero-txt{padding-bottom:13px} .hero-txt h2{margin-bottom:0} .hero-media{margin-top:0} }   /* smartphone: spazio tra Divertiti e foto = spazio sopra Gioca */
/* tema scuro: logo MEC Group in negativo (colori invertiti, tonalita' mantenuta) senza il riquadro bianco */
:root[data-theme="dark"] .sponsor img{filter:invert(1) hue-rotate(180deg);background:transparent}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .sponsor img{filter:invert(1) hue-rotate(180deg);background:transparent}}
.sponsor img{border:0}   /* logo MEC Group senza bordo */
.sponsor img{position:relative;top:-3px}   /* logo 3 px piu' in alto: allineato alle scritte */
.piccolo.sx{text-align:left}   /* testo piccolo allineato a sinistra (coppie fisse) */
.live-top .mut{margin-left:auto;text-align:right}   /* partita live: torneo e turno allineati a destra */
@media(max-width:720px){   /* box "Come preferisci formare le coppie?": la lista si restringe e il "?" resta alla sua destra */
  .prefr #pmetodo{order:0;flex:1 1 0;min-width:0;width:auto}
  .prefr #infoPref{order:1;flex:none}
  .prefr #pcomp{order:2;flex:1 1 100%;min-width:0}
  .prefr #salvapref{order:3}
  .prefr .prefbr{display:block;order:3;flex:1 1 100%;height:0}      /* «Partecipo» va su una nuova riga, a sinistra */
  .prefr #partecipo{order:4}
}
@media(max-width:720px){   /* box "Iscrivi un altro utente": utente a tutta larghezza, sotto preferenza, "?" e Iscrivi sulla stessa riga */
  #adminIscr .prefr{flex:1 1 100%;min-width:0}
  #adminIscr .prefr select{min-width:0;max-width:100%}
  #adminIscr #aiu{order:0;flex:1 1 100%;width:100%}
  #adminIscr #aim{order:1;flex:1 1 0;width:auto}
  #adminIscr #aiinfo{order:2;flex:none}
  #adminIscr #aic{order:3;flex:1 1 100%;width:100%}
  #adminIscr #aiok{order:4;flex:none}
}
@media(max-width:720px){   /* ora e luogo: il pulsante Salva resta sulla stessa riga del campo (che si restringe) */
  .luogo-ed.unarig{flex-wrap:nowrap}
  .luogo-ed.unarig label{flex:1 1 auto;min-width:0}
  .luogo-ed.unarig input{flex:1 1 0;min-width:0;width:auto}
  .luogo-ed.unarig button{flex:none;white-space:nowrap}
}
@media(max-width:720px){ .luogo-ed.unarig input[type=number]{flex:none;width:4.2em !important} }   /* chiusura iscrizioni: la casella dei giorni resta stretta, il testo va a capo dentro l'etichetta */
@media(min-width:721px){   /* desktop: giorno+ora e luogo+chiusura affiancati; controlli a tutta larghezza, pulsanti tutti della stessa larghezza */
  .ced2{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
  .dettaglio .ced2 .luogo-ed{margin-bottom:14px;flex-wrap:nowrap}
  .dettaglio .ced2+.luogo-ed.imgrig{margin-top:0}
  .dettaglio .luogo-ed>label{flex:1 1 0;min-width:0}
  .dettaglio .luogo-ed>label input:not([type=number]){flex:1 1 0;min-width:0;width:auto}
  .dettaglio .luogo-ed input[type=number]{flex:none;width:5em}
  .dettaglio .luogo-ed.imgrig input[type=file]{flex:1 1 0;min-width:0;width:0}
  .dettaglio .luogo-ed.imgrig{flex-wrap:nowrap}
  .dettaglio .luogo-ed.imgrig .imgt{flex:none}
  .dettaglio .luogo-ed button.s{flex:none;width:9.5em;white-space:nowrap}
}
/* riga Immagine del Calendario: etichetta, selettore di file e pulsanti */
.imgrig .imgt{color:var(--mut)}
.imgrig .imgr{display:contents}
.coppie-az{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:720px){ .coppie-az{flex-wrap:nowrap} .coppie-az button{flex:0 1 auto;min-width:0;white-space:nowrap;padding-left:10px;padding-right:10px} }   /* smartphone: Ricalcola ed Elimina coppie sulla stessa riga */
.imgrig .imgbt{display:contents}
.imgrig .minia-r{display:none}
@media(max-width:720px){   /* smartphone: "Immagine" su una riga; sotto il selettore di file (con la miniatura a destra) e, ancora sotto, i pulsanti */
  .luogo-ed.imgrig{flex-direction:column;align-items:stretch;gap:4px}
  .imgrig .imgr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;max-width:100%}
  .imgrig .imgr input[type=file]{grid-column:1;min-width:0;width:100%;max-width:100%}
  .imgrig .imgbt{display:flex;gap:8px;grid-column:1}
  .imgrig .imgr button.s{flex:none;white-space:nowrap}
  .imgrig .minia-r{display:block;grid-column:2;grid-row:1 / span 2;width:64px;height:64px;margin:0}
  .miniatura.adm{display:none}
  .dhead.conmin{flex-wrap:nowrap;gap:10px}      /* utente: la miniatura sta a fianco del titolo, non sotto il messaggio del luogo */
  .dhead.conmin .dtit{flex:1 1 0}
  .dhead.conmin .miniatura{width:64px;height:64px;margin-left:0}
}
@media(max-width:720px){   /* smartphone: Salva le coppie a sinistra e Genera partite a destra; Invia invito sulla riga sotto, al centro */
  .azioni-dx{flex-direction:column;align-items:stretch}
  .azioni-dx .azg{width:100%;flex-wrap:nowrap;justify-content:space-between}
  .azioni-dx .azg [data-genpartite]{margin-left:auto}
}
@media(max-width:720px){   /* smartphone: titolo del torneo su due righe (Torneo del ... / nome) */
  .ttl .sepn{display:none}
  .ttl .nomet{display:block}
}
/* sulla riga del titolo (solo admin): "Invia invito" e "Elimina data"; su smartphone solo icone (busta e cestino) */
.ttlrow{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.ttlrow .ttl{flex:1 1 auto;min-width:0}
.ttlaz{display:flex;gap:8px;flex:none}
.ttlaz button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.ttlaz .tmb{display:inline-flex}
.ttlaz .elim .tmb{display:none}
@media(max-width:720px){
  .ttlaz button{padding:7px 9px;margin-top:2px}
  .ttlaz .tdk{display:none}
}
.informativa h4{margin:16px 0 4px}
.informativa ul{margin:4px 0 8px;padding-left:20px}
.informativa li{margin:4px 0}
.exu{font-size:11px;font-style:italic;color:var(--mut);margin-left:6px;white-space:nowrap}   /* classifica: account cancellato, resta lo storico */
table.classifica th.ctr,table.classifica td.ctr{white-space:nowrap}   /* W-L (vinte-perse) sempre su una riga */
/* classifica: linee verticali molto lievi dopo #, Nome, Punti e W-L; posizione centrata */
table.classifica th:nth-child(1),table.classifica td:nth-child(1),
table.classifica th:nth-child(2),table.classifica td:nth-child(2),
table.classifica th:nth-child(3),table.classifica td:nth-child(3),
table.classifica th:nth-child(6),table.classifica td:nth-child(6){border-right:1px solid color-mix(in srgb,var(--bd) 55%,transparent)}
table.classifica th:first-child,table.classifica td:first-child{text-align:center}
table.classifica th.ctr,table.classifica td.ctr{width:1%;text-align:center;padding-left:12px;padding-right:12px}   /* W-L: colonna stretta e centrata tra la barra e la linea */
/* classifica: dettaglio del giocatore, "Storia del punteggio" espandibile (parte chiusa) */
details.storia>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;font-weight:600;font-family:var(--f-titoli);padding:4px 0}
details.storia>summary::-webkit-details-marker{display:none}
details.storia>summary::before{content:'▸';color:var(--ac);transition:transform .15s}
details.storia[open]>summary::before{transform:rotate(90deg)}
details.storia[open]>summary{margin-bottom:8px}
/* dettaglio giocatore: elenco "In coppia con" (stesso aspetto della classifica) */
table.compagni{width:100%}
table.compagni th,table.compagni td{padding:7px 8px}
table.compagni th:nth-child(1),table.compagni td:nth-child(1),table.compagni th:nth-child(2),table.compagni td:nth-child(2){border-right:1px solid color-mix(in srgb,var(--bd) 55%,transparent)}
table.compagni th.ctr,table.compagni td.ctr{width:1%;white-space:nowrap;text-align:center}
table.compagni th.med,table.compagni td.med{width:1%;text-align:center}
/* ---- pagina del giocatore ---- */
.gtiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;margin-top:6px}
.gtile{background:var(--ac-soft);border-radius:10px;padding:9px 10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.gtile b{font-family:var(--f-titoli);font-size:18px;line-height:1.2;overflow-wrap:anywhere}
.gtile span{font-size:12px;color:var(--mut)}
.gchips{display:flex;flex-wrap:wrap;gap:5px}
.gchip{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-weight:700;font-size:13px;color:#fff;cursor:default}
.gchip.v{background:var(--up)}.gchip.s{background:var(--dn)}.gchip.p{background:var(--mut)}
:root[data-theme="dark"] .gchip{color:#06241a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .gchip{color:#06241a}}
p.gleg{text-align:left;margin:6px 0 10px}
table.grec td{vertical-align:top}table.grec td.nw,table.grec th.nw{white-space:nowrap}
button.gnome{background:none;border:0;padding:0;margin:0;font:inherit;color:var(--ac);cursor:pointer;text-align:left;text-decoration:underline;text-decoration-color:transparent}
button.gnome:hover{text-decoration-color:currentColor}
.gsvg{display:block;max-width:100%;height:auto;overflow:visible}
.ggrid{stroke:var(--bd);stroke-width:1}
.gline{fill:none;stroke:var(--ac);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.gpt{fill:var(--card);stroke:var(--ac);stroke-width:1.8}
.gpt.gbonus{fill:#ff9800;stroke:#e65100}      /* punto del bonus torneo */
.gtxt{fill:var(--mut);font-size:11px;font-family:var(--f-testo)}

/* classifica: pulsante "?" a sinistra del titolo Punti (apre la spiegazione del calcolo) */
table.classifica th button.info{width:20px;height:20px;font-size:12px;margin-right:4px;vertical-align:middle;text-transform:none;letter-spacing:0}
button.info[aria-expanded="true"]{background:var(--ac);border-color:var(--ac);color:var(--on-ac)}
table.classifica th.num{white-space:nowrap}
table.prono{table-layout:fixed;width:100%}      /* classifica pronostici: #, Nome (prende il resto), Punti e tre medaglie; riempie tutta la larghezza */
table.prono th:nth-child(1),table.prono td:nth-child(1){width:3.2em}
table.prono th:nth-child(2),table.prono td:nth-child(2){width:auto;overflow-wrap:anywhere}
table.prono th:nth-child(3),table.prono td:nth-child(3){width:5.6em}
table.prono th.med,table.prono td.med{width:4.6em}
table.prono th:nth-child(6),table.prono td:nth-child(6){border-right:0}
@media(max-width:640px){table.prono th.med,table.prono td.med{width:2.9em;padding-left:0;padding-right:0}table.prono th:nth-child(3),table.prono td:nth-child(3){width:4.3em}table.prono th:nth-child(1),table.prono td:nth-child(1){width:2.2em}}      /* telefono: piu' spazio al nome */   /* "?" e Punti sulla stessa riga */
/* Impostazioni: Utenti, Messaggi e Calcolatrice sono box unici, con il titolo che li espande o li comprime */
details.sezbox{padding:14px 16px;margin-bottom:16px}
details.sezione.sezbox>summary{padding:0;border:0;border-radius:0;background:none}
details.sezione.sezbox[open]>summary{margin-bottom:14px}
details.sezbox .sezc>h3:first-child{margin-top:0}
details.sezbox .sezsub{margin-top:8px}
/* account registrati: colonna ID nascosta (si mostra con doppio clic/tap su "Nome") */
table.senzaid th:first-child,table.senzaid td:first-child{display:none}
th.nomeh{user-select:none;-webkit-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
/* annunci: in home sotto i riquadri, e modulo/griglia nelle Impostazioni */
.sondaggio{margin-bottom:12px}
.sondaggio h3{margin:0 0 4px;font-size:16px;overflow-wrap:anywhere}
.sondaggio textarea{width:100%;box-sizing:border-box;margin-top:6px}
.sqopz{display:flex;align-items:center;gap:8px;padding:5px 0;cursor:pointer}
.sqopz span{overflow-wrap:anywhere}
.sqaz{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.sqbar{position:relative;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;margin:5px 0;border:1px solid var(--bd);border-radius:8px;overflow:hidden;background:var(--bg)}
.sqbar i{position:absolute;inset:0 auto 0 0;background:var(--ac);opacity:.2}
.sqbar span,.sqbar b{position:relative;overflow-wrap:anywhere}
.sqbar b{white-space:nowrap}
.sqbar.mia{border-color:var(--ac)}
.sqrisp{white-space:pre-wrap;overflow-wrap:anywhere}
.sqadm{margin:8px 0;border:1px solid var(--bd);border-radius:10px;padding:6px 10px}
.sqadm summary{cursor:pointer;overflow-wrap:anywhere}
.annuncio{background:var(--ac);color:#fff;border:0;border-radius:var(--radius);padding:12px 16px;margin-bottom:12px;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:var(--shadow)}
.row .anfull{flex:1 1 100%}
.row .anfull textarea{width:100%;box-sizing:border-box}
td.antxt{white-space:pre-wrap;overflow-wrap:anywhere;min-width:12em}
#angriglia td.dk,#angriglia td.mb{white-space:nowrap}   /* date e stato su una riga: la griglia scorre in orizzontale se serve */
/* annuncio in negativo: tema chiaro = sfondo verde e testo bianco; tema scuro = sfondo verde tenue e testo nero */
:root[data-theme="dark"] .annuncio{background:#9fd1b4;color:#111}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .annuncio{background:#9fd1b4;color:#111}}
/* griglia annunci: su smartphone Dal e Al insieme (una data sopra l'altra) e niente colonna Stato */
#angriglia .mb{display:none}
#angriglia tr.spento td:not(.ctr):not(.az){opacity:.55}
@media(max-width:720px){
  #angriglia .dk{display:none}
  #angriglia td.mb,#angriglia th.mb{display:table-cell;white-space:nowrap}
  #angriglia table{font-size:12.5px}
  #angriglia th,#angriglia td{padding:6px 4px}
  #angriglia td.antxt{min-width:0}
  #angriglia td.az{white-space:nowrap}
  #angriglia td.az button{display:flex;align-items:center;justify-content:center;margin:2px 0;padding:4px 5px;min-width:32px}   /* le due icone una sopra l'altra: risparmiano larghezza */
}
@media(max-width:720px){ .mdest-h .mdbtn{flex:1 1 100%} }   /* smartphone: Tutti e Nessuno vanno a capo, sotto il conteggio dei destinatari */

/* desktop, pagina Tornei: Elimina torneo e Stampa affiancati sulla riga del titolo (in quest'ordine) */
@media (min-width:721px){
  .dazioni{flex-direction:row;align-items:flex-start;gap:8px;flex:none}
  .dazioni .azt{width:auto;min-width:0}
  .dazioni .elim.azt{order:1}
  .dazioni [data-stampa]{order:2}
}

/* pagina Tornei: foto di copertina a destra del titolo (desktop) / a fianco dei pulsanti Elimina e Stampa (smartphone) */
@media (min-width:641px){
  .tcard>.dhead>.gcop{order:2;margin-left:auto}
  .tcard>.dhead>.dtit{flex:1 1 260px}
  .tcard>.dhead>.dazioni{order:3}
}
@media (max-width:640px){
  .tcard>.dhead>.dtit{flex:1 1 100%}
  .tcard>.dhead>.dazioni{order:2;width:auto;flex:1 1 0;min-width:0;margin-top:-4px}
  .tcard>.dhead>.dazioni .azt{min-width:0;padding-left:6px;padding-right:6px}
  .tcard>.dhead>.gcop{order:3;width:96px;height:72px;margin-top:-4px}
}

/* MyConto: rimborso ancora da pagare/ricevere, sfondo rosso tenue */
table.utenti tr.rimb-aperto td { background: #fbe9e7; }
:root[data-theme="dark"] table.utenti tr.rimb-aperto td { background: #3a2220; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) table.utenti tr.rimb-aperto td { background: #3a2220; } }

/* MyConto: differenza dovuta agli arrotondamenti delle quote */
.arrot { margin: 8px 0 0; padding: 8px 10px; border-radius: 8px; background: #fff3cd; color: #5c4400; border-left: 4px solid #e0a800; }
:root[data-theme="dark"] .arrot { background: #3d3315; color: #f3dfa0; border-left-color: #c9971c; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .arrot { background: #3d3315; color: #f3dfa0; border-left-color: #c9971c; } }

/* Home: se il saldo di MiCuenta non e' 0, invito sotto lo slogan */
.hero-txt p.hero-conto { margin: 10px 0 0; max-width: none; color: var(--ac); font-size: clamp(18px, 2.6vw, 28px); font-weight: 600; }

/* Sorteggio delle coppie: urna con le palline */
.sorteggio .urna { position: relative; height: 210px; margin: 10px 0; border: 3px solid var(--ac); border-radius: 18px; background: var(--ac-soft); overflow: hidden; }
.sorteggio .palla { position: absolute; left: 0; top: 0; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font-weight: 700; white-space: nowrap; overflow: hidden; pointer-events: none; will-change: transform;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,.28), inset 3px 3px 6px rgba(255,255,255,.35), 0 1px 3px rgba(0,0,0,.3); }
.sorteggio .palla.esce { z-index: 2; transition: transform .8s cubic-bezier(.2, .9, .3, 1.35); }
@media (prefers-reduced-motion: reduce) { .sorteggio .palla.esce { transition: none; } }
.sorteggio [hidden] { display: none !important; }
.sorteggio .sorte-imp { margin: 12px 0; align-items: end; }

/* Sorteggio: ruota della fortuna */
.sorteggio .ruota { position: relative; width: min(280px, 100%); aspect-ratio: 1; margin: 18px auto 12px; }
.sorteggio .ruota::before { content: ""; position: absolute; top: -12px; left: 50%; transform: translateX(-50%); z-index: 3; border-left: 12px solid transparent; border-right: 12px solid transparent; border-top: 24px solid var(--err); filter: drop-shadow(0 1px 1px rgba(0,0,0,.4)); }
.sorteggio .ruota-disco { width: 100%; height: 100%; border-radius: 50%; box-shadow: 0 0 0 4px var(--ac), 0 4px 12px rgba(0,0,0,.3); will-change: transform; }
.sorteggio .ruota-disco svg { display: block; border-radius: 50%; }
@media (prefers-reduced-motion: reduce) { .sorteggio .ruota-disco { transition-duration: .01s !important; } }

/* Calcolatrice: il nome (con l'eventuale spunta) non va a capo; sotto «Da pagare» la quota esatta in piccolo */
#ctab tr:not(.csub):not(.sep) > :first-child { white-space: nowrap; }
#ctab small.cesatto { display: block; min-height: 12px; margin-top: 3px; text-align: right; font-size: 10px; line-height: 12px; color: var(--mut); }      /* le celle senza etichetta hanno lo stesso spazio vuoto: tutte le caselle restano allineate */
/* Calcolatrice: caselle degli importi senza i pulsantini +/- del campo numerico */
#ctab input[type=number] { -moz-appearance: textfield; appearance: textfield; }
#ctab input[type=number]::-webkit-outer-spin-button, #ctab input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.live .lvestrai{display:flex;justify-content:center;margin-top:8px}
.hero-eta .hv{border-radius:50%}   /* adulto/giovane: pulsanti e evidenziazione rotondi come i pallini dei colori */
.hero-eta .hv[aria-pressed="true"]{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--ac)}
.hero-eta .hv{width:22px;height:22px;border:2px solid #9aa3a0}   /* stesse dimensioni dei pallini dei colori */
.hero-eta .hv .ico{width:14px;height:14px}
.hero-eta .hv{border:0}   /* adulto/giovane: niente cerchio attorno alla faccina non selezionata */
.hero-eta .hv .ico{width:20px;height:20px}
.hero-eta .hv .ico{stroke-width:1.6}
.hero-eta .hv .ico{width:26px;height:26px;max-width:none;flex:none}   /* la faccina puo' superare il pulsante (22px): il cerchio di selezione resta come quello dei colori */

/* popup «Scegli la nuova password»: ogni etichetta sopra la sua casella, con un po' di spazio */
dialog.reimposta .campi{display:flex;flex-direction:column;gap:14px;margin:14px 0}
dialog.reimposta label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--mut)}
dialog.reimposta input{padding:9px 11px}

/* Partite, desktop: Calcola, Elimina, Modifica; Modifica sempre allineato a destra e gli altri alla sua sinistra */
@media(min-width:641px){
  table.partite .azp .azpi{display:flex;justify-content:flex-end;align-items:center;gap:8px}
  table.partite .azp .azpi [data-calcp]{order:1}
  table.partite .azp .azpi [data-del]{order:2}
  table.partite .azp .azpi [data-ed]{order:3}
}
/* Partite, smartphone: Calcola (solo icona) a sinistra di Modifica; Elimina sotto Modifica; Modifica sempre al bordo destro */
@media(max-width:640px){
  table.partite .azp .azpi{display:grid;grid-template-columns:auto auto;justify-content:end;column-gap:4px}
  table.partite .azp .azpi [data-calcp]{grid-column:1;grid-row:1}
  table.partite .azp .azpi [data-ed]{grid-column:2;grid-row:1}
  table.partite .azp .azpi [data-del]{grid-column:2;grid-row:2}
}

/* «Dopo padel»: proposta e risposte nella pagina del calendario */
.dopo h3{margin:0 0 8px}
.dopo .dpdati{margin:0 0 8px;line-height:1.6}
.dopo .dpdati b{font-size:16px}
.dopo .dpnote,.dopo .dpchi,.dopo .dpconta,.dopo .dpnomi{margin:4px 0}
.dopo .dpchi,.dopo .dpnomi{font-size:13px}
.dprisp{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:10px 0}
.dpaz{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.dpcampi{display:flex;flex-direction:column;gap:12px;margin:12px 0}
.dpcampi label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--mut)}
.dpcampi input,.dpcampi textarea{width:100%;box-sizing:border-box;color:var(--tx)}
.dpcampi textarea{resize:vertical}
.dporiga{display:flex;align-items:flex-end;gap:10px}
.dporiga label{flex:0 0 auto}
.dporiga input{width:auto}

/* selettore del colore del sito: tre pallini in verticale, in alto a sinistra nella home */
.hero{position:relative}
.hero-colori{position:absolute;top:16px;left:12px;z-index:2;display:flex;flex-direction:column;gap:12px}
.hc{width:22px;height:22px;padding:0;border-radius:50%;border:2px solid #9aa3a0;cursor:pointer}
.hc.verde{background:#0b7a5b}
.hc.blu{background:#1d5fd0}
.hc.rosso{background:#b8203a}
.hc[aria-pressed="true"]{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--ac)}
.hc:focus-visible{outline:2px solid var(--tx);outline-offset:3px}
.aggcal{margin:6px 0;display:none}
.ttlaz .aggcal-b{white-space:nowrap}
@media(max-width:720px){ .aggcal{display:block} .ttlaz .aggcal-b{display:none} }   /* desktop: pulsante sulla riga del titolo; smartphone: sotto ora e luogo */
.tprg tr.indov td,.gpron tr.indov td{background:var(--ac-soft)}
.tprg td,.gpron td{vertical-align:top}
.gsint{text-align:left;margin:4px 0 8px}
@media(max-width:720px){ table.utenti .ccalc{display:none} }   /* MiCuenta su smartphone: niente colonna «Calcolato il» */
/* Home: pulsanti affiancati (oroscopo e centri padel vicini) */
.hbtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:0 0 6px;padding:7px 12px;border:1px solid var(--bd);border-radius:12px;background:var(--card);color:var(--tx);font:inherit;cursor:pointer}
.hbtn svg{width:22px;height:22px;flex:none;fill:none;stroke:var(--ac);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.homebtns{display:flex;gap:10px;margin:0 0 12px}   /* Home: oroscopo e centri padel vicini sulla stessa riga */
.homebtns .hbtn{flex:1 1 0;width:auto;min-width:0;margin:0}
@media(max-width:520px){ .homebtns .hbtn{font-size:13px;gap:6px;padding:7px 8px} .homebtns .hbtn svg{width:20px;height:20px} }
@media(max-width:820px){   /* smartphone: meno spazio tra Divertiti, «…e controlla MiCuenta» e la foto, per compensare la riga dell'oroscopo */
  .hero-txt h2{line-height:1.02}
  .hero-txt{padding-bottom:3px}
  .hero-txt p.hero-conto{margin-top:0;line-height:1.25}
}

/* partita fuori classifica (turno X): riga attenuata nell'elenco delle partite */
table.partite tr.fc td{opacity:.7}
table.partite tr.fc .tn{font-style:italic}

.posiz .ic{flex:none}
.azcl{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin:0 0 8px}
.azcl button{min-height:34px;box-sizing:border-box}
.posiz .ic:disabled{opacity:.35;cursor:default}

/* MiCuenta su smartphone, «Rimborsi da pagare»: ogni rimborso su due righe - 1) data e torneo (e, se pagato, lo stato); 2) destinatario, importo e pulsanti PayPal/Satispay (solo logo) */
@media (max-width:720px){
  table.rimbp{display:block}
  table.rimbp tbody{display:block}
  table.rimbp tr:first-child{display:none}      /* intestazioni di colonna: non servono, ogni voce e' autoesplicativa */
  table.rimbp tr{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;column-gap:10px;row-gap:6px;padding:8px 6px;border-bottom:1px solid var(--bd)}
  table.rimbp td{display:block;border:0;padding:0;background:none}
  table.rimbp tr.rimb-aperto td{background:none}
  table.rimbp tr.rimb-aperto{background:#fbe9e7}
  :root[data-theme="dark"] table.rimbp tr.rimb-aperto{background:#3a2220}
  table.rimbp td.rdata{grid-column:1;grid-row:1;white-space:nowrap}
  table.rimbp td.rtorneo{grid-column:2 / 5;grid-row:1;min-width:0}
  table.rimbp td.rstato{grid-column:4;grid-row:2;font-size:12px;text-align:right;white-space:nowrap}      /* rimborso gia' pagato: «✔ pagato» al posto dei pulsanti */
  table.rimbp td.rstato .rconf{display:none}
  table.rimbp td.rstato.rs-no{display:none}
  table.rimbp td.rdest{display:contents}
  table.rimbp .rnome{grid-column:1 / 3;grid-row:2;font-weight:600;min-width:0}
  table.rimbp td.rimp{grid-column:3;grid-row:2;white-space:nowrap;text-align:right}
  table.rimbp .ppmob{grid-column:4;grid-row:2;display:flex;gap:6px;margin:0}
  table.rimbp .ppmob button + button{margin:0}
  table.rimbp .ccalc,table.rimbp td.ppcol{display:none}
}
@media (max-width:720px) and (prefers-color-scheme:dark){:root:not([data-theme="light"]) table.rimbp tr.rimb-aperto{background:#3a2220}}

/* MiCuenta su smartphone, «Rimborsi da ricevere»: ogni rimborso su due righe - 1) data e torneo; 2) da chi, importo, stato e pulsante («Incassato» al posto di «Segna come pagato») */
.lbl-c{display:none}
@media (max-width:720px){
  .lbl-l{display:none}
  .lbl-c{display:inline}
  table.rimbr{display:block}
  table.rimbr tbody{display:block}
  table.rimbr tr:first-child{display:none}
  table.rimbr tr{display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;column-gap:6px;row-gap:6px;padding:8px 6px;border-bottom:1px solid var(--bd)}
  table.rimbr td{display:block;border:0;padding:0;background:none}
  table.rimbr tr.rimb-aperto td{background:none}
  table.rimbr tr.rimb-aperto{background:#fbe9e7}
  :root[data-theme="dark"] table.rimbr tr.rimb-aperto{background:#3a2220}
  table.rimbr td.rdata{grid-column:1;grid-row:1;white-space:nowrap}
  table.rimbr td.rtorneo{grid-column:2 / 6;grid-row:1;min-width:0}
  table.rimbr td.rnome{grid-column:1 / 3;grid-row:2;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  table.rimbr td.rimp{grid-column:3;grid-row:2;white-space:nowrap;text-align:right}
  table.rimbr td.rstato{grid-column:4;grid-row:2;font-size:12px;white-space:nowrap}
  table.rimbr td.rstato .rconf{display:none}
  table.rimbr td.razione{grid-column:5;grid-row:2}
  table.rimbr td.razione button{padding:5px 9px}
  table.rimbr td.razione button .ico{display:none}      /* su telefono il pulsante ha solo il testo, per lasciare spazio al nome */
  table.rimbr .ccalc{display:none}
}
@media (max-width:720px) and (prefers-color-scheme:dark){:root:not([data-theme="light"]) table.rimbr tr.rimb-aperto{background:#3a2220}}
#dsliv,#dsoro{margin-left:12px}   /* popup «Email automatiche»: distanza tra etichetta e scelta */
/* torneo a rotazione: scelta del formato (admin) e preferenza per le coppie non applicabile */
.rotrig{display:block;margin:6px 0}
label.rotchk{display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;gap:8px;text-align:left;width:100%}
label.rotchk input{margin:3px 0 0;flex:none}
.pref.rotaz #pmetodo,.pref.rotaz #pcomp,.pref.rotaz #infoPref{display:none}
/* chi riposa: quattro colonne (etichetta e tendina dei posti dispari a sinistra, dei pari a destra); la prima e l'ultima larghe quanto il contenuto */
.riposigrid{display:grid;grid-template-columns:max-content 1fr 1fr max-content;gap:8px 8px;align-items:center}
.riposigrid select{width:9.5em;max-width:100%}
.riposigrid>:nth-child(4n+1),.riposigrid>:nth-child(4n+2){justify-self:start}
.riposigrid>:nth-child(4n+3),.riposigrid>:nth-child(4n){justify-self:end}
/* Sorteggio delle coppie: una carta che gira attorno all'asse verticale (dorso classico delle carte da gioco, poi le foto dei giocatori) */
.sorteggio .mazzo{display:flex;align-items:center;justify-content:center;gap:22px;height:232px;margin:10px 0;border:3px solid var(--ac);border-radius:18px;background:var(--ac-soft);overflow:hidden}
.sorteggio .carta3d{width:132px;height:184px;perspective:900px;transition:transform .5s}
.sorteggio .carta3d.scelta{transform:scale(1.1)}
.sorteggio .carta-in{position:relative;width:100%;height:100%;transform-style:preserve-3d}
.sorteggio .carta-in>div{position:absolute;inset:0;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.sorteggio .fronte{transform:rotateY(180deg)}
.sorteggio .carta-in>div:not(.dorso){background:#222}
.sorteggio .carta-in>div .carta{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border:3px solid #fff;border-radius:12px;box-sizing:border-box;overflow:hidden}
.sorteggio .carta-in>div .carta img{width:100%;height:100%;object-fit:cover;display:block}
.sorteggio .carta-in>div .carta.senzafoto span{padding:6px;color:#fff;font-weight:700;line-height:1.15;text-align:center;overflow-wrap:anywhere}
.sorteggio .carta3d.scelta .carta-in>div:not(.dorso){box-shadow:0 0 0 3px var(--ac),0 0 20px var(--ac)}
/* dorso: bordo bianco, rete di rombi rossa e rombo centrale, come le carte da gioco classiche */
.sorteggio .dorso{background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.4)}
.sorteggio .dorso::before{content:"";position:absolute;inset:8px;border-radius:6px;border:2px solid #8e0f18;box-sizing:border-box;background:repeating-linear-gradient(45deg,rgba(255,255,255,.45) 0 2px,transparent 2px 11px),repeating-linear-gradient(-45deg,rgba(255,255,255,.45) 0 2px,transparent 2px 11px),#c1121f}
.sorteggio .dorso::after{content:"";position:absolute;left:50%;top:50%;width:34px;height:34px;transform:translate(-50%,-50%) rotate(45deg);background:#c1121f;border:3px solid #fff;box-shadow:0 0 0 3px #8e0f18}
@media (prefers-reduced-motion: reduce){.sorteggio .carta-in{transition-duration:.01s !important}}
