/* ==========================================================
   Joker Community v1.0.0, tornei
   ========================================================== */

/* Lista tornei */
.jcm-lista{display:grid;gap:8px}
.jcm-voce{display:grid;grid-template-columns:62px 1fr auto;gap:14px;align-items:center;width:100%;text-align:left;border:1px solid var(--j-linea);background:var(--j-grafite-2);border-radius:14px;padding:12px 14px;color:var(--j-testo);cursor:pointer}
div.jcm-voce{cursor:default}
button.jcm-voce:hover{border-color:var(--j-muto)}
.jcm-voce-data{display:grid;justify-items:center;line-height:1;font-family:var(--j-display)}
.jcm-voce-data b{font-size:26px;font-weight:900}
.jcm-voce-data small{font-size:11px;font-weight:700;text-transform:lowercase;color:var(--j-muto);margin-top:3px}
.jcm-voce-testo b{display:block;font-size:16px}
.jcm-voce-testo small,.jcm-voce-stato small{display:block;color:var(--j-muto);font-size:13.5px}
.jcm-voce-stato{display:grid;justify-items:end;gap:4px;text-align:right}

/* Modulo torneo */
.jcm-form{display:grid;gap:12px;margin-top:12px}
.jcm-cerca-cliente{position:relative}

/* Da giocare */
.jcm-da-giocare{display:grid;gap:8px}
.jcm-sfida{display:grid;grid-template-columns:auto 1fr auto 1fr auto;gap:10px;align-items:center;padding:12px 14px;border-radius:14px;background:var(--j-grafite-2)}
.jcm-sfida b{font-size:16px}
.jcm-sfida em{font-style:normal;color:var(--j-muto);font-size:13px}

/* Tabellone */
.jcm-tabellone{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);gap:22px;overflow-x:auto;padding:4px 2px 12px;scrollbar-width:thin}
.jcm-turno{display:flex;flex-direction:column;min-width:0}
.jcm-turno h4{font-family:var(--j-corpo);font-size:13.5px;font-weight:700;color:var(--j-muto);margin:0 0 10px;letter-spacing:0}
.jcm-turno-partite{display:flex;flex-direction:column;justify-content:space-around;flex:1;gap:14px}
.jcm-partita{position:relative;border:1px solid var(--j-linea);border-radius:12px;background:var(--j-grafite);overflow:hidden}
.jcm-partita.is-da_giocare{border-color:color-mix(in srgb,var(--j-rosso) 60%,var(--j-linea))}
.jcm-riga{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;font-size:14.5px}
.jcm-riga+.jcm-riga{border-top:1px solid var(--j-linea)}
.jcm-riga span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jcm-riga b{font-family:var(--j-display);font-weight:800;white-space:nowrap}
.jcm-riga b small{font-family:var(--j-corpo);font-size:12px;font-weight:600;color:var(--j-muto);margin-left:4px}
.jcm-riga.is-vince{color:var(--j-acido);font-weight:800}
.jcm-riga.is-vuota span{color:var(--j-muto);font-style:italic}
.jcm-partita.is-bye .jcm-riga.is-vuota span{font-style:normal;font-size:13px}
.jcm-segna{display:block;width:100%;border:0;border-top:1px solid var(--j-linea);background:var(--j-grafite-2);color:var(--j-testo);font-weight:700;font-size:13px;padding:7px;cursor:pointer}
.jcm-segna:hover{background:var(--j-rosso);color:#fff}
.jcm-campione .jcm-turno-partite{justify-content:center}
.jcm-coppa{border-radius:14px;padding:18px 14px;text-align:center;background:var(--j-viola);color:#fff;font-family:var(--j-display);font-weight:900;font-size:20px;overflow-wrap:anywhere}

/* Vincitore */
.jcm-vinto{display:grid;justify-items:center;gap:4px;text-align:center;padding:22px;border-radius:18px;background:var(--j-viola);color:#fff}
.jcm-vinto small{font-weight:700}
.jcm-vinto b{font-family:var(--j-display);font-weight:900;font-size:clamp(28px,5vw,44px);line-height:1.05;overflow-wrap:anywhere}
.jcm-vinto span{font-size:14px;max-width:48ch}

/* Finestra risultato */
.jcm-punteggio{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end}
.jcm-punteggio label{display:grid;gap:6px;text-align:center}
.jcm-punteggio label span{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jcm-punteggio em{font-style:normal;font-family:var(--display,system-ui);font-size:26px;padding-bottom:8px}
.jcm-dialog input[type=number]{text-align:center;font-family:var(--display,system-ui);font-size:26px;font-weight:800;background:#000;color:#fff;border:1.5px solid #2F2B38;border-radius:12px;padding:10px;width:100%}
.jcm-rigori label span{color:var(--muto,#A29DAE);font-weight:600}

/* Area cliente */
.jcm-cliente{display:grid;gap:12px}
.jcm-mio{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:14px;border-radius:14px;background:var(--j-grafite-2)}
.jcm-mio b{display:block}
.jcm-mio small{display:block;color:var(--j-muto);font-size:13.5px}
.jcm-mio p{margin-top:6px;font-size:15px}
.jcm-mio.is-vinto{box-shadow:inset 0 0 0 1.5px var(--j-viola)}
.jcm-ok{color:var(--j-acido)}
.jcm-aperto{display:grid;gap:10px;padding:14px;border-radius:14px;border:1.5px solid var(--j-acido);background:color-mix(in srgb,var(--j-acido) 5%,var(--j-grafite))}
.jcm-aperto-testa{display:grid;grid-template-columns:62px 1fr;gap:12px;align-items:center}
.jcm-aperto-testa b{display:block;font-size:16px}
.jcm-aperto-testa small{display:block;color:var(--j-muto);font-size:13.5px}
.jcm-aperto-riga{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}

/* Pagina pubblica */
.jcm-pubblico{display:grid;gap:16px;max-width:1180px;margin:0 auto}
.jcm-principale{display:grid;gap:16px;background:var(--j-grafite);border:1px solid var(--j-linea);border-radius:20px;padding:22px}
.jcm-principale-testa{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center}
.jcm-principale-testa h2{font-size:clamp(26px,4vw,40px);margin:8px 0 6px}
.jcm-data-grande b{font-size:48px}
.jcm-data-grande small{font-size:13px}
.jcm-posti{display:grid;gap:8px}
.jcm-posti-barra{height:10px;border-radius:9px;background:var(--j-grafite-2);overflow:hidden;max-width:420px}
.jcm-posti-barra i{display:block;height:100%;background:var(--j-acido);border-radius:9px}
.jcm-note{white-space:pre-line;color:var(--j-muto)}
.jcm-albo{list-style:none;margin:0;padding:0}
.jcm-albo li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--j-linea)}
.jcm-albo li:first-child{border-top:0}
.jcm-albo small{display:block;color:var(--j-muto);font-size:13px}
.jcm-albo b{font-family:var(--j-display);color:var(--j-acido)}
.jcm-vuoto-pubblico h2{font-size:26px;margin-bottom:8px}

@media (max-width:640px){
	.jcm-voce{grid-template-columns:52px 1fr}
	.jcm-voce-stato{grid-column:1/-1;justify-items:start;text-align:left}
	.jcm-sfida{grid-template-columns:1fr auto 1fr}
	.jcm-sfida>.jcr-piccolo{grid-column:1/-1}
	.jcm-sfida .jcr-btn{grid-column:1/-1}
	.jcm-aperto-riga{grid-template-columns:1fr}
	.jcm-principale-testa{grid-template-columns:1fr}
}

/* ================= v1.0: gironi, iscrizione pubblica, barber, recensioni ================= */
.jcm-gironi{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.jcm-girone{border:1px solid var(--j-linea);border-radius:14px;padding:14px;background:var(--j-grafite-2)}
.jcm-girone h4{font-family:var(--j-display);font-size:17px;margin:0 0 10px}
.jcm-classifica{font-size:14px}
.jcm-classifica th,.jcm-classifica td{padding:6px 6px}
.jcm-classifica tr.is-passa td{color:var(--j-acido)}
.jcm-classifica tr.is-passa td:first-child{box-shadow:inset 3px 0 0 var(--j-acido)}
.jcm-girone-partite{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}
.jcm-girone-partite li{display:grid;grid-template-columns:1fr auto 1fr auto;gap:8px;align-items:center;font-size:14px;padding:6px 8px;border-radius:10px;background:var(--j-grafite)}
.jcm-girone-partite li span:nth-of-type(2){text-align:right}
.jcm-girone-partite li b{font-family:var(--j-display);font-weight:800;color:var(--j-muto);white-space:nowrap}
.jcm-girone-partite li.is-giocata b{color:var(--j-testo)}
.jcm-girone-partite li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jcm-legenda{margin-top:10px}

.jcm-iscrizione{display:grid;gap:12px;margin:18px 0;padding:18px;border-radius:16px;border:1.5px solid var(--j-rosso);background:var(--j-grafite)}
.jcm-iscrizione h3{font-size:20px}
.jcm-iscrizione .jcr-btn{justify-self:start}
.jcm-nascosto{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.jcm-esito{display:grid;gap:4px;margin:18px 0;padding:18px;border-radius:16px;background:color-mix(in srgb,var(--j-acido) 12%,var(--j-grafite));border:1.5px solid var(--j-acido)}
.jcm-esito b{font-family:var(--j-display);font-size:20px}
.jcm-iscritti{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.jcm-iscritti small{color:var(--j-muto);margin-right:4px}
.jcm-iscritti span{padding:4px 10px;border-radius:999px;background:var(--j-grafite-2);font-size:13.5px}

.jcm-staff h3{margin-bottom:2px}
.jcm-sottotitolo{font-family:var(--j-corpo);font-size:14px;color:var(--j-muto);margin:14px 0 8px;font-weight:700;letter-spacing:0}
.jcm-dettagli{margin-top:14px}
.jcm-dettagli summary{cursor:pointer;font-weight:700;padding:8px 0}
.jcm-dettagli[open] summary{margin-bottom:10px}
.jcm-staff .jcm-sfida{grid-template-columns:1fr auto 1fr;grid-template-areas:"turno turno turno" "a vs b" "btn btn btn"}
.jcm-staff .jcm-sfida>span{grid-area:turno}
.jcm-staff .jcm-sfida>b:nth-of-type(1){grid-area:a}
.jcm-staff .jcm-sfida>em{grid-area:vs}
.jcm-staff .jcm-sfida>b:nth-of-type(2){grid-area:b;text-align:right}
.jcm-staff .jcm-sfida>button{grid-area:btn;width:100%;padding:12px}

.jcm-recensione{padding:14px;border-radius:14px;background:var(--j-grafite-2);margin-bottom:10px}
.jcm-recensione p{margin:8px 0}
.jcm-recensione-testa{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.jcm-recensione-testa small{color:var(--j-muto)}
.jcm-stelle{color:var(--j-acido);letter-spacing:2px}
.jcm-stelle i{font-style:normal;color:var(--j-linea)}
.jcm-cliente-recensione form{display:grid;gap:12px}
.jcm-cliente-recensione .jcr-btn{justify-self:start}
.jcm-scegli-stelle{display:flex;gap:6px}
.jcm-scegli-stelle button{border:0;background:none;font-size:34px;line-height:1;color:var(--j-linea);cursor:pointer;padding:2px}
.jcm-scegli-stelle button.is-accesa{color:var(--j-acido)}

@media (max-width:640px){
	.jcm-sfida{grid-template-columns:1fr auto 1fr}
	.jcm-sfida>span{grid-column:1/-1}
	.jcm-sfida>button{grid-column:1/-1;width:100%}
}

/* ================= v1.1: Google Maps e "Dì la tua" ================= */
.jcm-google .jcm-g-sedi{display:grid;gap:14px}
.jcm-google .jcm-g-sedi.is-doppia{grid-template-columns:1fr 1fr}
.jcm-g-sede{border:1px solid var(--j-linea);border-radius:18px;padding:18px;background:var(--j-grafite);min-width:0}
.jcm-g-testa{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.jcm-g-testa h3{font-size:19px}
.jcm-g-attribuzione{font-family:Roboto,"Segoe UI",Arial,sans-serif;font-weight:400;font-style:normal;font-size:14px;letter-spacing:normal;white-space:nowrap;color:#fff}
.jcm-g-media{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.jcm-g-media>b{font-family:var(--j-display);font-size:44px;line-height:1}
.jcm-g-media small{display:block;color:var(--j-muto);font-size:14px}
.jcm-g-stelle{color:#FBBC04;letter-spacing:1px}
.jcm-g-stelle i{font-style:normal;color:var(--j-linea)}
.jcm-g-lista{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;margin:0 -2px}
.jcm-g-recensione{flex:0 0 min(290px,82%);scroll-snap-align:start;background:var(--j-grafite-2);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px}
.jcm-g-recensione header{display:flex;gap:10px;align-items:center}
.jcm-g-recensione header img,.jcm-g-iniziale{width:36px;height:36px;border-radius:50%;flex:none;object-fit:cover}
.jcm-g-iniziale{display:grid;place-items:center;background:var(--j-linea);font-weight:800}
.jcm-g-recensione header b{display:block;font-size:15px}
.jcm-g-recensione header b a{text-decoration:none}
.jcm-g-recensione header small{color:var(--j-muto);font-size:13px}
.jcm-g-recensione p{font-size:15px;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.jcm-g-recensione footer{display:flex;gap:14px;margin-top:auto;font-size:13px}
.jcm-g-recensione footer a{color:var(--j-muto)}
.jcm-g-azioni{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.jcm-g-nota{margin-top:12px}
.jcm-feedback-invito{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:26px;border-radius:18px;border:1.5px dashed var(--j-viola);background:var(--j-grafite)}
.jcm-feedback-invito h2{font-size:clamp(22px,2.6vw,30px);margin-bottom:6px}
.jcm-feedback-invito p{color:var(--j-muto);max-width:56ch;margin:0}
.jcm-feedback{max-width:620px;margin:0 auto}
.jcm-fb-form{display:grid;gap:14px}
.jcm-fb-form h2{font-size:clamp(28px,4vw,40px)}
.jcm-fb-form .jcr-btn{justify-self:start}
.jcm-fb-tipi button[aria-checked=true]{background:var(--j-rosso);color:#fff}
.jcm-fb-voce{padding:14px;border-radius:14px;background:var(--j-grafite-2);margin-bottom:10px;border-left:3px solid transparent}
.jcm-fb-voce.is-nuovo{border-left-color:var(--j-rosso)}
.jcm-fb-voce p{margin:10px 0}
.jcm-fb-testa{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.jcm-fb-nuovo{color:var(--j-rosso);font-size:13px}
.jcm-fb-contatto b{color:var(--j-acido)}
@media (max-width:860px){.jcm-google .jcm-g-sedi.is-doppia{grid-template-columns:1fr}}

/* ================= v1.2: tornei su più giorni ================= */
.jcm-quando{font-size:12px;color:var(--j-acido);padding:4px 10px 0;font-weight:700}
.jcm-calendario{display:grid;gap:12px}
.jcm-cal-giorno h4{font-family:var(--j-corpo);font-size:14px;font-weight:800;color:var(--j-acido);margin:0 0 6px;text-transform:capitalize;letter-spacing:0}
.jcm-cal-giorno ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.jcm-cal-giorno li{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--j-grafite-2)}
.jcm-cal-ora{font-family:var(--j-display);font-weight:800;font-size:14px}
.jcm-cal-sfida small{display:block;color:var(--j-muto);font-size:12.5px}
.jcm-cal-riga{display:grid;grid-template-columns:1fr 150px 110px auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--j-linea)}
.jcm-cal-riga small{display:block;color:var(--j-muto);font-size:13px}
.jcm-titoletto{font-size:20px;margin:24px 0 10px}
@media (max-width:640px){.jcm-cal-riga{grid-template-columns:1fr 1fr}.jcm-cal-riga>div{grid-column:1/-1}.jcm-cal-riga button{grid-column:1/-1}}

.jcm-google-esterno{color:var(--testo,#F2F0F5)}
.jcm-google-esterno a{color:inherit}

.jcm-elimina{color:#ff6b7a!important;margin-left:auto}

/* ================= v1.3.1: data gg/mm/aaaa e ora leggibile ================= */
.jcm-data{position:relative;display:flex;align-items:stretch}
.jcm-data input[data-jcm-data]{padding-right:46px;width:100%}
.jcm-data-apri{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:var(--j-testo,#F2F0F5);cursor:pointer;display:grid;place-items:center}
.jcm-data-apri:hover{background:var(--j-grafite-2,#211E28);color:var(--j-acido,#B8FF2C)}
.jcm-data-nativo{position:absolute;right:4px;bottom:0;width:38px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}
input[data-jcm-data],input[data-jcm-ora]{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:16px}
.jcr input[type=date],.jcr input[type=time],.jcm-dialog input{color-scheme:dark}
.jcm-dialog input[type=text],.jcm-dialog input[type=number]{width:100%;background:#000;color:#F2F0F5;border:1.5px solid #2F2B38;border-radius:12px;padding:11px 13px;min-height:46px;font:inherit;font-size:16px}
.jcm-dialog .jcr-campo{display:grid;gap:6px}
.jcm-dialog .jcr-campo>span{font-size:14px;color:#A29DAE}
.jcm-quando{font-size:13px;color:#F2F0F5;background:color-mix(in srgb,var(--j-acido,#B8FF2C) 16%,transparent);border-radius:8px;margin:6px 8px 0;padding:3px 8px;display:inline-block}
.jcm-cal-ora{color:var(--j-acido,#B8FF2C);font-size:15px}
.jcm-cal-riga{grid-template-columns:1fr 170px 100px auto}

/* ================= v1.3.2: data dei tornei senza sovrapposizioni ================= */
.jcm-voce-data{min-width:0;overflow:hidden}
.jcm-aperto-testa .jcm-voce-data small,.jcm-voce .jcm-voce-data small{display:block;font-family:var(--j-display);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--j-rosso,#E3122A);margin-top:4px}
.jcm-aperto-testa .jcm-voce-data b{display:block;font-size:28px;line-height:1}
.jcm-aperto-testa{grid-template-columns:64px 1fr}
.jcm-aperto-testa .jcm-voce-data{align-self:start;padding:8px 0;border-radius:12px;background:var(--j-grafite,#16141B);border:1px solid var(--j-linea,#2F2B38)}
