﻿/* Area iscrizioni atleti: si appoggia ai token di site.css e ai campi/pulsanti di admin.css */
.isc-nav{background:#fff; border-bottom:1px solid var(--grey-200); padding:0 24px;}
.isc-nav-in{max-width:960px; margin:0 auto; display:flex; align-items:center; gap:16px;}
.isc-nav a{display:inline-block; padding:12px 16px; font-family:var(--font-head); font-weight:700; font-size:13.5px; color:var(--navy-700); text-decoration:none; border-bottom:2px solid var(--accent);}
.isc-nav .isc-who{margin-left:auto; font-size:13px; color:var(--grey-600);}
.isc-nav button{background:none; border:none; padding:12px 8px; font-family:var(--font-head); font-weight:700; font-size:13.5px; color:var(--grey-600); cursor:pointer;}

.isc-card{max-width:960px;}
.isc-card .back{display:inline-block; margin-bottom:14px; color:var(--accent); font-size:13px; font-weight:600;}
.table-scroll{overflow-x:auto; border:1px solid var(--grey-200); border-radius:12px;}
.isc-table{width:100%; border-collapse:collapse; min-width:680px;}
.isc-table th{background:var(--navy-700); color:#fff; text-align:left; padding:9px 14px; font:600 12px var(--font-head);}
.isc-table td{padding:11px 14px; border-bottom:1px solid var(--grey-200); font-size:13.5px;}
.isc-table tbody tr:nth-child(even){background:#E7F6FB;}
.isc-table tbody tr:last-child td{border-bottom:0;}
.isc-table tr.click{cursor:pointer;}
.isc-table tr.click:hover{outline:2px solid var(--accent); outline-offset:-2px;}
.isc-table .city{font-weight:700; color:var(--navy-900); text-decoration:none;}

.pill{display:inline-block; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:20px;}
.pill.ok{background:#E3F5E9; color:var(--flag-green);}
.pill.warn{background:#FFF4D6; color:#B7791F;}
.pill.bad{background:#FBE2E4; color:var(--flag-red);}
.pill.neutral{background:var(--navy-100); color:var(--navy-700);}
.ex{font-size:11px; font-weight:700; color:var(--grey-600); letter-spacing:.06em; text-transform:uppercase;}

.info-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; margin:18px 0 22px;}
.info{border:1px solid var(--grey-200); border-radius:12px; padding:14px 16px;}
.info .k{font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--grey-600);}
.info .v{font:700 18px var(--font-head); color:var(--navy-900); margin-top:4px;}
.info .h{font-size:12px; color:var(--grey-600); margin-top:3px;}
.info.deadline{background:#FFF4D6; border-color:transparent;}
.info.deadline .v{color:#B7791F;}
.prog{background:#E7F6FB; border-radius:12px; padding:14px 16px; margin-bottom:22px;}
.prog b{font-family:var(--font-head); font-size:13px; color:var(--navy-900);}
.prog p{margin:6px 0 0; color:var(--grey-600);}

.i-btn{font:700 14px var(--font-head); background:var(--navy-700); color:#fff; border:0; border-radius:10px; padding:12px 24px; cursor:pointer;}
.i-btn:hover{background:var(--navy-900);}
.i-btn.big{font-size:15px; padding:13px 34px; letter-spacing:.04em;}
.i-btn.ghost{background:transparent; color:var(--navy-700); border:1px solid var(--grey-200);}
.i-btn.danger{background:transparent; color:var(--flag-red); border:1px solid var(--grey-200);}
.i-btn.sm{font-size:12.5px; padding:7px 13px; border-radius:8px;}
.i-btn:disabled{opacity:.45; cursor:not-allowed;}
.cta{display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:16px;}
.limit{color:var(--grey-600); font-size:13px;}
.foot{display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:14px;}
.opt{font-weight:500; color:var(--grey-600);}
.sub.ok{color:var(--flag-green); font-weight:600;}
.sub.err{color:var(--flag-red); font-weight:600;}

.banner{border-radius:12px; padding:12px 16px; margin-bottom:18px; font-weight:600;}
.banner.ok{background:#E3F5E9; color:var(--flag-green);}
.banner.lock{background:#FBE2E4; color:var(--flag-red);}
.banner.warn{background:#FFF4D6; color:#B7791F;}

.saved{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; border:1px solid var(--grey-200); border-radius:12px; padding:14px 16px; margin-bottom:10px;}
.saved .l{display:flex; align-items:center; gap:4px; flex-wrap:wrap;}
.saved .n{font:700 15px var(--font-head); color:var(--navy-900);}
.saved .t{font:600 18px var(--font-head); color:var(--navy-700); font-variant-numeric:tabular-nums; margin-inline:14px;}
.saved .t.none{font:italic 500 14px var(--font-body); color:var(--grey-600);}
.saved .a{display:flex; gap:8px;}
.ath{margin-bottom:18px;}
.ath-h{display:flex; align-items:center; gap:8px; margin-bottom:8px; color:var(--navy-900);}
.h2s{font-size:15px; margin-bottom:12px; display:flex; align-items:center; gap:8px;}

.formbox{border:1px solid var(--grey-200); border-radius:12px; padding:18px; margin-top:16px;}
.slot{border:1px solid var(--grey-200); border-radius:12px; padding:16px; margin-bottom:12px;}
.slot h3{font-size:14px; margin-bottom:12px;}
.slot-row{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:12px;}
.slot-row .field{margin:0;}
@media (max-width:640px){.slot-row{grid-template-columns:1fr 1fr 1fr;} .slot-row .field:first-child{grid-column:1/-1;}}

.coachbar{display:flex; gap:12px; align-items:end; flex-wrap:wrap; border:1px solid var(--grey-200); border-radius:12px; padding:14px 16px; margin-bottom:22px;}
.coachbar .field{margin:0; flex:1 1 240px;}
.combo{position:relative;}
.sug{position:absolute; top:100%; left:0; right:0; z-index:4; margin:4px 0 0; padding:4px; list-style:none; background:#fff; border:1px solid var(--grey-200); border-radius:10px; box-shadow:0 8px 20px rgba(0,0,0,.14); max-height:220px; overflow-y:auto;}
.sug li{padding:9px 10px; border-radius:7px; cursor:pointer; font-size:13.5px;}
.sug li:hover{background:var(--navy-100);}
.sug li mark{background:none; color:var(--accent); font-weight:700;}
.sug li.none{color:var(--grey-600); cursor:default;}
.hint{font-size:12px; color:var(--grey-600);}
.hint.ok{color:var(--flag-green); font-weight:600;}
.empty-note{color:var(--grey-600);}

/* Griglia allenatore: riepilogo per sezione */
.isc-table .tot{font-size:14px; color:var(--navy-900);}
.isc-table .tot b{font:800 18px var(--font-head); color:var(--navy-700);}
.isc-table .secs{display:flex; flex-wrap:wrap; gap:4px 6px; margin-top:6px;}
.isc-table .sec{font-size:11.5px; color:var(--grey-600); background:var(--navy-100); border-radius:14px; padding:2px 9px; white-space:nowrap;}
.isc-table .sec b{color:var(--navy-700);}

/* Pagina atleti di una gara: filtri reattivi */
.filters{display:grid; gap:16px; margin:6px 0 18px; padding:18px; border:1px solid var(--grey-200); border-radius:14px; background:#F8F9FB;}
.filter-title{display:block; font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--grey-600); margin-bottom:8px;}
.tog-row{display:flex; flex-wrap:wrap; gap:10px;}
.tog{font:700 14px var(--font-head); padding:14px 22px; min-height:48px; border-radius:12px; cursor:pointer; background:#fff; color:var(--navy-700); border:2px solid var(--grey-200); transition:background .12s ease, color .12s ease, border-color .12s ease;}
.tog:hover{border-color:var(--navy-500);}
.tog[aria-pressed="true"]{background:var(--navy-700); color:#fff; border-color:var(--navy-700);}
.tog[aria-pressed="true"]::before{content:"\2713\00a0";}
.tog .tog-n{font-weight:500; font-size:12px; opacity:.75; margin-left:4px;}
.tog:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.q-input{width:100%; font:14px var(--font-body); padding:12px 14px; border-radius:10px; border:1px solid var(--grey-200); background:#fff;}
.result-line{font-size:13px; color:var(--grey-600); font-weight:600; margin:0 0 12px;}
.saved .specs{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; width:100%;}
.chipspec{font-size:12px; background:var(--navy-100); color:var(--navy-700); border-radius:14px; padding:3px 10px; font-variant-numeric:tabular-nums;}
.chipspec b{color:var(--navy-900);}
a.i-btn{text-decoration:none; display:inline-block;}

/* Elenco atleti compatto con colore per stato: verde = max specialita', giallo = parziale, rosso = non iscritto */
.arow{display:grid; grid-template-columns:minmax(150px,1.3fr) 74px 40px minmax(0,2.6fr) auto; align-items:center; gap:4px 12px; padding:6px 12px; border-radius:8px; margin-bottom:4px; font-size:13px;}
.arow.st-full{background:#DDF3E4;}
.arow.st-part{background:#FFF2C7;}
.arow.st-out{background:#FBE0E3;}
.arow .an{font-weight:700; color:var(--navy-900);}
.arow .asec{font-size:12px; color:var(--grey-600);}
.arow .acount{font:700 12px var(--font-head); color:var(--navy-700); text-align:center;}
.arow .aspecs{display:flex; flex-wrap:wrap; gap:4px; min-width:0;}
.arow .aspecs .none{font-size:12px; color:var(--grey-600); font-style:italic;}
.arow .chipspec{background:rgba(255,255,255,.7); padding:1px 8px; font-size:12px;}
.arow .i-btn.sm{padding:4px 12px; font-size:12px; background:rgba(255,255,255,.7);}
@media (max-width:640px){.arow{grid-template-columns:1fr auto; } .arow .asec,.arow .acount{display:inline;} .arow .aspecs{grid-column:1/-1;}}
.tot .sep{color:var(--grey-200); margin:0 6px;}

/* righe ancora piu' basse */
.arow{padding:3px 10px; margin-bottom:2px; gap:2px 10px; font-size:12.5px; line-height:1.25; border-radius:6px;}
.arow .chipspec{padding:0 7px; font-size:11.5px; line-height:1.5;}
.arow .i-btn.sm{padding:2px 10px; font-size:11.5px; border-radius:6px; line-height:1.5;}
.result-line{margin-bottom:8px;}

/* righe un poco piu' alte, pulsanti piu' grandi */
.arow{padding:6px 10px; margin-bottom:3px;}
.arow .abtns{display:flex; gap:6px; align-items:center;}
.arow .i-btn.sm{padding:6px 14px; font-size:12.5px; border-radius:7px; line-height:1.3; font-weight:700;}
.arow .i-btn.danger{background:rgba(255,255,255,.7);}
.arow{grid-template-columns:minmax(150px,1.3fr) 74px 40px minmax(0,2.4fr) auto;}

/* Assente: azzurro chiaro (riga elenco atleti, pillola, avviso e pulsante) */
.arow.st-abs{background:#C9E6F8;}
.pill.abs{background:#C9E6F8; color:#175F8F;}
.banner.abs{background:#C9E6F8; color:#124E75;}
.i-btn.abs{background:#2F8FCB; color:#fff; border:1px solid #2F8FCB;}
.i-btn.abs:hover{filter:brightness(.92);}
.arow .i-btn.abs.sm{background:rgba(255,255,255,.7); color:#175F8F; border:1px solid #8EC5E8;}
.arow .i-btn.abs.sm:hover{background:#2F8FCB; color:#fff; filter:none;}
.arow .i-btn.abs.sm[disabled]{opacity:.6;}

/* Intestazione gara con il pulsante di esportazione a destra */
.head-row{display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap;}
.head-row .sub{margin-bottom:14px;}
.i-btn.export{background:var(--flag-green); white-space:nowrap; padding:11px 20px;}
.i-btn.export:hover{filter:brightness(.92);}

/* Elenco atleti in colonne allineate: larghezze fisse per sezione, conteggio e pulsanti, cosi' le righe con
   piu' specialita' o piu' pulsanti non spostano le altre colonne */
.arow{grid-template-columns:minmax(150px,1.1fr) 70px 40px minmax(0,2.6fr) 252px; column-gap:12px;}
.arow .abtns{justify-content:flex-start; gap:5px; flex-wrap:nowrap;}
.arow .abtns .i-btn.sm{padding:6px 10px; white-space:nowrap;}
.arow .chipspec{min-width:142px; box-sizing:border-box;}
.arow .aspecs{align-self:center;}
@media (max-width:640px){.arow{grid-template-columns:1fr auto;} .arow .asec,.arow .acount{display:inline;} .arow .aspecs{grid-column:1/-1;} .arow .abtns{justify-content:flex-end;}}

.foot-back{margin-top:22px; padding-top:16px; border-top:1px solid var(--grey-200);}
.foot-back .i-btn{background:var(--flag-red); color:#fff; border-color:var(--flag-red);}
.foot-back .i-btn:hover{filter:brightness(.9);}

/* Filtri sempre visibili: restano fissi in alto mentre si scorre l'elenco, in versione compatta */
.filters{position:sticky; top:0; z-index:30; grid-template-columns:auto auto minmax(220px,1fr); align-items:end; gap:8px 22px; padding:10px 14px; margin:6px 0 10px; box-shadow:0 6px 14px rgba(31,36,48,.12);}
.filters .filter-title{margin-bottom:5px;}
.filters .tog-row{gap:6px;}
.filters .tog{padding:7px 13px; min-height:36px; font-size:13px; border-radius:9px; border-width:2px;}
.filters .q-input{padding:8px 12px;}
.filters .result-line{grid-column:1/-1; margin:0;}
@media (max-width:900px){.filters{grid-template-columns:1fr 1fr;} .filters .filter-search{grid-column:1/-1;}}
@media (max-width:640px){.filters{position:static; grid-template-columns:1fr; box-shadow:none;}}

/* Accordion programma gara */
.acc{border:1px solid var(--grey-200); border-radius:12px; margin-bottom:18px; background:#fff;}
.acc summary{cursor:pointer; list-style:none; padding:13px 16px; font:700 14px var(--font-head); color:var(--navy-700); display:flex; justify-content:space-between; align-items:center; gap:12px; border-radius:12px;}
.acc summary::-webkit-details-marker{display:none;}
.acc summary::after{content:""; width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .15s ease; margin-top:-4px;}
.acc[open] summary::after{transform:rotate(225deg); margin-top:3px;}
.acc summary:hover{background:var(--navy-100);}
.acc summary:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.acc-body{padding:4px 16px 16px; border-top:1px solid var(--grey-200);}
.acc-body .info-grid{margin-top:14px;}
.acc-prog{white-space:pre-line; color:var(--grey-900); background:#E7F6FB; border-radius:10px; padding:12px 14px; margin:0 0 12px;}

/* Le classi con display esplicito (.cta, .foot, ...) non devono annullare l'attributo hidden */
[hidden]{display:none !important;}

/* Griglia gare (atleta): specialita' e tempi a cui e' iscritto */
.isc-table .mine{display:flex; flex-wrap:wrap; gap:4px 6px; margin-top:6px;}
.isc-table .mine .chipspec{white-space:nowrap;}

/* Frasi dei contatori: non si spezzano a meta' (a capo solo tra una frase e l'altra) */
.seg{white-space:nowrap;}

/* ===== Telefono: tutte le informazioni visibili, in forma compatta ===== */
@media (max-width:640px){
  main{padding:14px 10px !important;}
  .admin-card{padding:16px 14px;}
  .isc-card h1{font-size:18px;}
  .isc-card .sub{margin-bottom:12px;}

  /* barra di navigazione: una riga sola */
  .isc-nav{padding:0 8px;}
  .isc-nav-in{gap:4px;}
  .isc-nav a{padding:10px 8px; font-size:12.5px; white-space:nowrap;}
  .isc-nav .isc-who{flex:1 1 0; min-width:0; text-align:right; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .isc-nav button{padding:10px 6px; font-size:12.5px;}

  /* schede informative della gara: due per riga */
  .info-grid{grid-template-columns:1fr 1fr; gap:8px; margin:12px 0 14px;}
  .info{padding:9px 11px;}
  .info .k{font-size:10.5px; letter-spacing:.04em;}
  .info .v{font-size:16px; margin-top:2px;}
  .info .h{font-size:11px; line-height:1.3;}
  .acc-body{padding:4px 10px 12px;}
  .prog{padding:10px 12px; margin-bottom:14px;}
  .prog p, .acc-prog{font-size:12.5px; line-height:1.4;}
  .formbox{padding:12px;}
  .slot{padding:12px;}
  .saved{padding:10px 12px;}
  .cta .i-btn.big{flex:1 1 40%; padding:12px 10px;}
  .head-row{gap:8px;}
  .head-row .i-btn.export{width:100%; text-align:center;}

  /* griglia gare: una scheda per gara invece della tabella che scorre di lato */
  .table-scroll{border:0; border-radius:0; overflow:visible;}
  .isc-table{min-width:0; display:block;}
  .isc-table thead{display:none;}
  .isc-table tbody{display:grid; gap:10px;}
  .isc-table tbody tr, .isc-table tbody tr:nth-child(even){display:flex; flex-direction:column; background:#fff; border:1px solid var(--grey-200); border-radius:12px; padding:10px 12px;}
  .isc-table tbody tr:nth-child(even){background:#F3FAFD;}
  .isc-table td{display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:3px 0; border:0; font-size:13px;}
  .isc-table td::before{content:attr(data-label); flex:0 0 auto; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--grey-600);}
  .isc-table td.gara{order:-1; display:block; font-size:14px; padding:0 0 6px; margin-bottom:4px; border-bottom:1px solid var(--grey-200);}
  .isc-table td.gara::before{content:none;}
  .isc-table td.stat{display:block; padding-top:6px; margin-top:4px; border-top:1px solid var(--grey-200);}
  .isc-table td.stat::before{display:block; margin-bottom:3px;}
  .isc-table .tot{font-size:13px; display:flex; flex-wrap:wrap; gap:2px 14px;}
  .isc-table .tot .sep{display:none;}
  .isc-table .tot b{font-size:16px;}

  /* elenco atleti di una gara: riga a tre livelli (nome/sezione/conteggio, specialita', pulsanti) */
  .arow{grid-template-columns:1fr auto auto; grid-template-areas:"an asec acount" "specs specs specs" "btns btns btns"; gap:4px 10px; padding:8px 10px; align-items:baseline;}
  .arow .an{grid-area:an; min-width:0;}
  .arow .asec{grid-area:asec; display:inline; text-align:right;}
  .arow .acount{grid-area:acount; display:inline; min-width:26px;}
  .arow .aspecs{grid-area:specs; grid-column:auto;}
  .arow .abtns{grid-area:btns; gap:6px; flex-wrap:nowrap;}
  .arow .abtns > *{flex:1 1 0; min-width:0; text-align:center;}
  .arow .abtns .i-btn.sm{padding:8px 4px;}
  .arow .chipspec{min-width:0;}
  .filters .tog{padding:8px 12px; min-height:38px; font-size:12.5px;}
  .filters{padding:10px 12px; gap:10px;}
  .result-line{font-size:12.5px;}
}
