/*! Fischio – stile: nero, giallo, crema; Barlow Condensed per i titoli. Solo movimento CSS.
   Fischio è un prodotto di Alberto Nicoletti. © 2026 Alberto Nicoletti. Tutti i diritti riservati. */
@font-face{font-family:'Barlow';font-weight:400;font-display:swap;src:url(fonts/barlow-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:500;font-display:swap;src:url(fonts/barlow-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:600;font-display:swap;src:url(fonts/barlow-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:700;font-display:swap;src:url(fonts/barlow-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-weight:700;font-display:swap;src:url(fonts/barlow-condensed-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-weight:800;font-display:swap;src:url(fonts/barlow-condensed-latin-800-normal.woff2) format('woff2')}

:root{
  --ink:#0A0A0A; --yellow:#FFD800; --yellow-soft:#FFF4B8; --cream:#F7F4EA; --cream-2:#ECE7D6; --line:#D6D1C0; --mute:#55524A; --white:#fff;
  --ease:cubic-bezier(.2,.8,.2,1);
  --f-head:'Barlow Condensed',system-ui,sans-serif; --f-body:'Barlow',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:500 16px/1.45 var(--f-body)}
h1,h2,h3{margin:0;font-family:var(--f-head);font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:1}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 5px var(--yellow)}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- barra in alto ---------- */
.top{background:var(--ink);color:var(--white);display:flex;align-items:center;gap:16px;padding:10px 16px;position:sticky;top:0;z-index:30}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand img{height:34px;width:auto}
.brand b{font:800 24px/1 var(--f-head);text-transform:uppercase;letter-spacing:.04em}
.brand small{display:none;color:#BDB7A3;font-weight:500}
.nav{display:flex;gap:4px;margin-left:8px}
.nav a{color:#E8E3D0;text-decoration:none;padding:8px 12px;font:700 17px/1 var(--f-head);text-transform:uppercase;letter-spacing:.04em;border-bottom:3px solid transparent}
.nav a[aria-current=page]{color:var(--yellow);border-bottom-color:var(--yellow)}
.top .grow{flex:1}
.who{position:relative}
.who>button{background:none;border:2px solid #3A3A36;color:var(--white);padding:7px 12px;border-radius:2px;font-weight:600}
.menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--white);color:var(--ink);border:2px solid var(--ink);min-width:230px;box-shadow:6px 6px 0 var(--yellow);z-index:40;animation:pop .18s var(--ease)}
.menu button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:12px 14px;font-weight:600}
.menu button:hover{background:var(--yellow-soft)}
.menu .who-i{padding:12px 14px;border-bottom:2px solid var(--ink);background:var(--cream)}
.menu .who-i span{display:block;color:var(--mute);font-size:14px}

/* ---------- pagina ---------- */
.page{max-width:1500px;margin:0 auto;padding:20px 16px 90px}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;margin-bottom:16px}
.head h1{font-size:44px}
.head .sub{color:var(--mute);font-weight:600}
.head .grow{flex:1}

.btn{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--ink);background:var(--white);padding:10px 16px;font-weight:700;border-radius:2px;transition:transform .15s var(--ease),box-shadow .15s var(--ease);min-height:44px}
.btn:hover{transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--ink)}
.btn:active{transform:none;box-shadow:none}
.btn.pri{background:var(--yellow)}
.btn.dark{background:var(--ink);color:var(--white)}
.btn.dark:hover{box-shadow:3px 3px 0 var(--yellow)}
.btn.sm{padding:6px 12px;min-height:36px;font-size:15px}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn.danger{border-color:var(--ink)}

/* striscia numeri */
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
.kpi{background:var(--white);border:2px solid var(--ink);padding:10px 14px;text-align:left;display:flex;flex-direction:column;gap:2px;border-radius:2px;transition:transform .15s var(--ease)}
button.kpi:hover{transform:translateY(-2px)}
.kpi b{font:800 38px/1 var(--f-head)}
.kpi span{color:var(--mute);font-weight:600;font-size:14px}
.kpi.hot{background:var(--yellow)}
.kpi.hot span{color:var(--ink)}
.kpi[aria-pressed=true]{outline:3px solid var(--ink);outline-offset:2px}

/* filtri */
.tools{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.search{position:relative}
.search input{width:100%;height:50px;padding:0 14px 0 14px;border:2px solid var(--ink);background:var(--white);border-radius:2px;font-size:17px}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.chip{flex:0 0 auto;border:2px solid var(--ink);background:var(--white);padding:6px 12px;border-radius:2px;font:700 16px/1 var(--f-head);text-transform:uppercase;letter-spacing:.03em;display:flex;gap:8px;align-items:center;min-height:38px}
.chip i{font-style:normal;background:var(--cream-2);padding:2px 6px;font:700 14px/1 var(--f-body)}
.chip[aria-pressed=true]{background:var(--ink);color:var(--yellow)}
.chip[aria-pressed=true] i{background:var(--yellow);color:var(--ink)}
.sel{display:flex;flex-wrap:wrap;gap:8px}
.sel label{display:flex;flex-direction:column;font-size:13px;font-weight:700;color:var(--mute);gap:2px}
.sel select{height:42px;border:2px solid var(--ink);background:var(--white);padding:0 10px;border-radius:2px;min-width:150px;font-weight:600;color:var(--ink)}

/* elenco */
.split{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.card{background:var(--white);border:2px solid var(--ink);border-radius:2px}
.row{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 10px;padding:12px 12px;border-bottom:1px solid var(--line);align-items:center;cursor:pointer;position:relative;transition:background .12s}
.row:hover{background:var(--yellow-soft)}
.row[aria-selected=true]{background:var(--yellow);}
.row .ck{grid-row:1/3;display:flex;align-items:center;justify-content:center;height:100%;min-height:44px}
.row .ck input{width:22px;height:22px;accent-color:var(--ink)}
.nm{font:800 22px/1.05 var(--f-head);text-transform:uppercase;letter-spacing:.01em}
.nm span{font-weight:700;opacity:.85;text-transform:none;font-family:var(--f-body);font-size:17px;margin-left:6px}
.meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--mute);font-weight:600;font-size:14px}
.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:2px solid var(--ink);font:700 13px/1.1 var(--f-body);border-radius:2px;background:var(--white);white-space:nowrap}
.tag.team{font-family:var(--f-head);font-size:15px;letter-spacing:.03em;text-transform:uppercase;background:var(--cream-2)}
.tag.warn{background:var(--yellow)}
.tag.bad{background:var(--ink);color:var(--white)}
.tag.none{border-style:dashed;color:var(--mute);background:transparent}
.tag.ok{background:var(--white)}
.th{display:none}
.more{padding:14px;text-align:center}
.empty{padding:36px 18px;text-align:center}
.empty h3{font-size:28px;margin-bottom:6px}
.empty p{margin:0 0 14px;color:var(--mute)}
.count{padding:10px 14px;border-bottom:2px solid var(--ink);display:flex;justify-content:space-between;gap:10px;font-weight:700;background:var(--cream)}

@media (min-width:760px){
  .page{padding:24px 24px 90px}
  .kpis{grid-template-columns:repeat(4,1fr)}
  .tools{flex-direction:row;flex-wrap:wrap;align-items:flex-end}
  .search{flex:1 1 300px}
  .row{grid-template-columns:44px minmax(190px,1.3fr) minmax(130px,1fr) 130px 190px;gap:10px 14px;padding:10px 14px}
  .row .ck{grid-row:auto}
  .row .meta.teams{grid-column:3}
  .th{display:grid;grid-template-columns:44px minmax(190px,1.3fr) minmax(130px,1fr) 130px 190px;gap:10px 14px;padding:8px 14px;background:var(--ink);color:var(--yellow);font:700 15px/1 var(--f-head);text-transform:uppercase;letter-spacing:.06em}
}
@media (min-width:1100px){
  .split.has-sheet{grid-template-columns:minmax(0,1fr) 430px}
  .split.has-sheet .row{grid-template-columns:44px minmax(160px,1fr) 150px}
  .split.has-sheet .row .c-fig,.split.has-sheet .row .c-med,.split.has-sheet .th .c-fig,.split.has-sheet .th .c-med{display:none}
  .split.has-sheet .th{grid-template-columns:44px minmax(160px,1fr) 150px}
  .split.has-sheet .row .nm{grid-column:2}
}

/* barra azioni di gruppo */
.bulk{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);background:var(--ink);color:var(--white);padding:10px 14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;z-index:35;max-width:calc(100vw - 24px);box-shadow:6px 6px 0 var(--yellow);animation:rise .25s var(--ease)}
.bulk b{font:800 20px/1 var(--f-head);text-transform:uppercase;margin-right:6px}
.bulk .btn{background:var(--white);color:var(--ink);border-color:var(--white)}
.bulk .btn.pri{background:var(--yellow);border-color:var(--yellow)}
.bulk select{height:36px;padding:0 8px;border:2px solid var(--white);background:var(--ink);color:var(--white);border-radius:2px}

/* scheda laterale / a tutto schermo */
.sheet{background:var(--white);border:2px solid var(--ink);border-radius:2px;animation:slide .28s var(--ease)}
.sheet .bar{display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--white);padding:10px 14px;position:sticky;top:0;z-index:2}
.sheet .bar h2{font-size:26px;flex:1}
.sheet .bar .btn{border-color:var(--white)}
.sheet .body{padding:14px;display:flex;flex-direction:column;gap:16px}
.sheet .foot{display:flex;gap:10px;flex-wrap:wrap;padding:12px 14px;border-top:2px solid var(--ink);background:var(--cream);position:sticky;bottom:0}
.grp{display:flex;flex-direction:column;gap:10px}
.grp>h3{font-size:20px;border-bottom:2px solid var(--ink);padding-bottom:4px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.grp>h3 small{font:600 13px var(--f-body);text-transform:none;color:var(--mute)}
.fld{display:flex;flex-direction:column;gap:4px}
.fld label{font-weight:700;font-size:14px}
.fld input,.fld select,.fld textarea{height:46px;border:2px solid var(--ink);background:var(--white);padding:0 12px;border-radius:2px;width:100%}
.fld textarea{height:90px;padding:10px 12px;resize:vertical}
.fld input[aria-invalid=true]{border-color:#B3261E;background:#FFF1EF}
.fld .hint{color:var(--mute);font-size:13px;font-weight:500}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pills{display:flex;flex-wrap:wrap;gap:6px}
.pill{border:2px solid var(--ink);background:var(--white);padding:7px 12px;border-radius:2px;font-weight:700;min-height:40px}
.pill[aria-pressed=true]{background:var(--ink);color:var(--yellow)}
.mem{display:grid;grid-template-columns:minmax(0,1fr) 84px 40px;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);background:var(--cream)}
.mem .t{grid-column:1/-1}
.mem .fld input,.mem .fld select{height:42px}
.xbtn{height:42px;width:40px;border:2px solid var(--ink);background:var(--white);font-weight:800;border-radius:2px}
.note{background:var(--yellow-soft);border:2px solid var(--ink);padding:10px 12px;font-weight:600}
.note.err{background:#FFF1EF;border-color:#B3261E}
.note a,.note button.lnk{font-weight:700}
button.lnk{background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
.list-simple{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.list-simple li{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);padding:8px 10px;background:var(--cream)}
.ro{color:var(--mute);font-size:14px}

@media (max-width:1099px){
  .split.has-sheet .listcol{display:none}
  .sheet{border-width:0;position:fixed;inset:0;z-index:50;overflow:auto;overscroll-behavior:contain}
}

/* finestre (cambio password, 2FA, cestino) */
.modal-bg{position:fixed;inset:0;background:rgba(10,10,10,.6);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:5vh 12px;overflow:auto;animation:fade .2s}
.modal{background:var(--white);border:2px solid var(--ink);width:100%;max-width:520px;box-shadow:8px 8px 0 var(--yellow);animation:pop .22s var(--ease)}
.modal .bar{display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--white);padding:10px 14px}
.modal .bar h2{font-size:26px;flex:1}
.modal .body{padding:14px;display:flex;flex-direction:column;gap:12px}
.codes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.codes code{font:700 18px/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;background:var(--cream);border:2px solid var(--ink);padding:10px 8px;text-align:center}
.chk{display:flex;gap:10px;align-items:flex-start;font-weight:600}
.chk input{width:22px;height:22px;margin-top:2px;flex:none}
.secret{font:700 20px/1.3 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em;background:var(--cream);border:2px dashed var(--ink);padding:10px;word-break:break-all}

/* avvisi */
#toasts{position:fixed;left:12px;right:12px;bottom:12px;z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{pointer-events:auto;background:var(--ink);color:var(--white);padding:12px 14px;display:flex;gap:14px;align-items:center;border-left:8px solid var(--yellow);max-width:560px;width:100%;animation:rise .25s var(--ease);box-shadow:4px 4px 0 rgba(0,0,0,.25)}
.toast span{flex:1;font-weight:600}
.toast button{background:var(--yellow);color:var(--ink);border:0;padding:8px 12px;font-weight:800;border-radius:2px}
.toast button.q{background:none;color:var(--white);padding:8px}
.toast.err{border-left-color:#FF6B5E}

/* accesso */
.auth{min-height:100vh;background:var(--ink);color:var(--white);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:24px 16px}
.auth .logo{display:flex;flex-direction:column;align-items:center;gap:12px;animation:rise .5s var(--ease)}
.auth .logo img{height:84px}
.auth .logo h1{font-size:44px;letter-spacing:.05em;color:var(--white)}
.auth .logo p{margin:0;color:#BDB7A3;font-weight:600}
.auth .box{background:var(--white);color:var(--ink);width:100%;max-width:400px;padding:22px 20px;display:flex;flex-direction:column;gap:14px;border:2px solid var(--yellow);box-shadow:8px 8px 0 var(--yellow);animation:rise .55s var(--ease) .08s both}
.auth .box h2{font-size:32px}
.auth .note{font-size:15px}
.pw{display:flex;gap:8px}
.pw input{flex:1;min-width:0}

@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes slide{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes rowin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.enter .row{animation:rowin .35s var(--ease) both;animation-delay:calc(var(--i,0) * 22ms)}
.skel{height:64px;margin:8px;background:linear-gradient(90deg,var(--cream-2),var(--cream),var(--cream-2));background-size:200% 100%;animation:sh 1.2s linear infinite}
@keyframes sh{to{background-position:-200% 0}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;transition-duration:.001ms!important}
}
@media print{
  .top,.tools,.kpis,.bulk,#toasts,.btn,.sheet{display:none!important}
  body{background:#fff}
}

button.nm{background:none;border:0;padding:0;text-align:left;color:inherit;cursor:pointer}
button.nm:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:3px}
.sheet .bar .btn,.modal .bar .btn{background:transparent;color:var(--white);border-color:var(--white)}
.sheet .bar .btn:hover,.modal .bar .btn:hover{background:var(--yellow);color:var(--ink);box-shadow:none;transform:none}
@media (min-width:1100px){
  .split.has-sheet .sheetcol{position:sticky;top:72px}
  .sheetcol .sheet{max-height:calc(100vh - 92px);overflow:auto}
}

@keyframes drop{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.badges{display:flex;flex-wrap:wrap;gap:6px;grid-column:2}
.badges>span{display:inline-flex}
.who>button{white-space:nowrap}
.sel label{flex:1 1 140px}
.sel select{width:100%;min-width:0}
@media (max-width:759px){
  .top{gap:8px;padding:8px 12px}
  .brand b{font-size:21px}
  .nav{margin-left:0}
  .nav a{padding:8px 8px;font-size:16px}
  .kpi b{font-size:30px}
  .kpis{display:flex;overflow-x:auto;gap:8px;margin-right:-16px;padding-right:16px;scrollbar-width:none}
  .kpis .kpi{flex:0 0 150px}
  .head h1{font-size:38px}
  .row .ck{grid-row:1/span 4}
  .row .meta.teams,.row>div:nth-child(2){grid-column:2}
}
@media (min-width:760px){
  .badges{display:contents}
  .badges>.c-fig{grid-column:4}
  .badges>.c-med{grid-column:5}
}
.sheet,.sheet *{min-width:0}
.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.fld input[type=date]{max-width:100%;-webkit-appearance:none;appearance:none;background:var(--white)}
.sheet .body{overflow-x:hidden}
@media (max-width:1099px){.sheet{height:100dvh}}

body.has-bulk #toasts{bottom:96px}
@media (min-width:1100px){
  #toasts{left:24px;right:auto;align-items:flex-start;width:min(560px,40vw)}
  body.has-bulk #toasts{bottom:24px}
  .bulk{left:auto;right:24px;transform:none}
}

/* ---------- Anagrafiche ---------- */
.anag{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.anag-nav .grp{margin-bottom:18px}
.anag-nav .grp>h3{font-size:22px}
.tlist{display:flex;flex-direction:column;gap:8px}
.tcard{display:flex;flex-direction:column;gap:2px;background:var(--white);border:2px solid var(--ink);padding:10px 12px;text-decoration:none;border-radius:2px;transition:transform .15s var(--ease),box-shadow .15s var(--ease)}
.tcard:hover{transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--ink)}
.tcard[aria-current=page]{background:var(--ink);color:var(--white);box-shadow:4px 4px 0 var(--yellow)}
.tcard .tn{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tcard .tn b{font:800 21px/1.05 var(--f-head);text-transform:uppercase;letter-spacing:.01em}
.tcard .tn i{font-style:normal;font:700 14px/1 var(--f-body);background:var(--cream-2);color:var(--ink);padding:3px 7px}
.tcard[aria-current=page] .tn i{background:var(--yellow)}
.tcard .td{font-size:14px;color:var(--mute);font-weight:500}
.tcard[aria-current=page] .td{color:#D8D3C0}
.anag-main{min-width:0;display:flex;flex-direction:column;gap:12px}
.anag-main .back{font-weight:700;text-decoration:none;display:inline-block;padding:4px 0}
.ahead{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 14px}
.ahead h2{font-size:36px}
.ahead p{margin:4px 0 0}
.alist .arow{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);animation:rowin .3s var(--ease) both;animation-delay:calc(var(--i,0) * 20ms)}
.alist .arow:last-child{border-bottom:0}
.alist .arow.off{background:repeating-linear-gradient(135deg,var(--cream),var(--cream) 8px,var(--cream-2) 8px,var(--cream-2) 16px)}
.alist .arow.off .aname{opacity:.65}
.aname{font:800 22px/1.1 var(--f-head);text-transform:uppercase;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.atags{display:inline-flex;flex-wrap:wrap;gap:6px}
.atags .tag{text-transform:none}
.aacts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ib{width:40px;height:36px;border:2px solid var(--ink);background:var(--white);font-weight:800;border-radius:2px}
.ib[disabled]{opacity:.3;cursor:default}
.ib:not([disabled]):hover{background:var(--yellow)}
.btn.dim{opacity:.55}
.sw{width:18px;height:18px;border:2px solid var(--ink);display:inline-block;flex:0 0 auto}
.chk{display:flex;align-items:center;gap:10px;font-weight:600;min-height:40px}
.chk input{width:22px;height:22px;accent-color:var(--ink)}
.colr{display:flex;align-items:center;gap:14px}
.colr input[type=color]{width:64px;height:44px;border:2px solid var(--ink);padding:2px;background:var(--white)}
.anag.has-table .anag-nav{display:none}
.anag:not(.has-table) .anag-main{display:none}
.anag .anag-main .back{display:inline-block}
@media (min-width:900px){
  .anag{grid-template-columns:320px minmax(0,1fr);gap:24px}
  .anag.has-table .anag-nav,.anag:not(.has-table) .anag-nav{display:block;position:sticky;top:72px;max-height:calc(100vh - 90px);overflow:auto;padding-right:4px}
  .anag:not(.has-table) .anag-main{display:flex}
  .anag-main .back{display:none}
  .alist .arow{flex-direction:row;align-items:center;justify-content:space-between}
  .aacts{justify-content:flex-end;flex:0 0 auto}
}
@media (max-width:759px){
  .top{flex-wrap:wrap;row-gap:0}
  .top .grow{display:block}
  .nav{order:3;flex:0 0 100%;overflow-x:auto;margin:0 -12px;padding:0 4px;scrollbar-width:none}
  .nav a{white-space:nowrap}
}
.box a.btn,.modal a.btn{display:flex;justify-content:center;text-decoration:none}

/* ---------- gare (dal sito) ---------- */
.gsec{font-size:22px;padding:14px 14px 4px}
.gmonth{padding:6px 14px;background:var(--cream-2);font:700 14px/1.2 var(--f-body);text-transform:capitalize;color:var(--mute);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.grow-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:4px 12px;padding:12px 14px;border-bottom:1px solid var(--line);align-items:center}
.gwhen{display:flex;flex-direction:column;line-height:1.1}
.gwhen b{font:800 18px/1 var(--f-head);text-transform:uppercase}
.gwhen span{color:var(--mute);font-weight:700;font-size:14px;margin-top:3px}
.gline{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.gopp{font-size:17px}
.gres{grid-column:2;display:flex;gap:12px;align-items:center}
.gscore{font:800 22px/1 var(--f-head);padding:2px 8px;border:2px solid var(--ink)}
.gscore.win{background:var(--yellow)}
.glink{font-weight:700;font-size:14px}
@media (min-width:760px){.grow-row{grid-template-columns:92px minmax(0,1fr) auto}.gres{grid-column:auto;justify-content:flex-end}}

/* ---------- collegamento al sito ---------- */
.sito{display:grid;gap:14px}
.card.pad{padding:14px 16px}
.card.pad h2{font-size:24px;margin-bottom:8px}
.card.pad p{margin:6px 0}
.acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.linkrow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.linkrow select{grid-column:1/-1;min-height:44px;border:2px solid var(--ink);background:var(--white);padding:6px 8px;max-width:100%}
.linkrow .ln{font-weight:700}
@media (min-width:760px){.linkrow{grid-template-columns:80px minmax(0,1fr) minmax(0,320px)}.linkrow select{grid-column:auto}}
.checks{list-style:none;margin:0;padding:0}
.checks li{padding:8px 0;border-top:1px solid var(--line)}
.plist{border-top:1px solid var(--line)}
.prow{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:10px 0;border-bottom:1px solid var(--line)}
.prow b{margin-right:8px}
.prow select{min-height:44px;border:2px solid var(--ink);background:var(--white);padding:6px 8px;max-width:100%}
@media (min-width:760px){.prow{grid-template-columns:minmax(0,1fr) minmax(0,360px);align-items:center}}
ul.plain{margin:8px 0 0;padding-left:18px}
details summary{cursor:pointer;font-weight:700;margin-top:10px}
.page > .back{font-weight:700;text-decoration:none;display:inline-block;padding:4px 0;margin-bottom:6px}

/* ---------- albero delle sezioni (dal mockup) ---------- */
.shell{min-height:100vh}
.side{display:none}
.mainwrap{min-width:0}
.who .ini{display:inline-grid;place-items:center;width:26px;height:26px;background:var(--yellow);color:var(--ink);font:800 13px/1 var(--f-head);margin-right:6px;border-radius:50%}
.bottom{position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--ink);display:grid;border-top:3px solid var(--yellow);padding-bottom:env(safe-area-inset-bottom)}
.bl{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px 9px;color:#BDB7A3;text-decoration:none;font:700 13px/1 var(--f-head);text-transform:uppercase;letter-spacing:.04em;min-height:58px;justify-content:center}
.bl[aria-current=page]{color:var(--yellow)}
.bl .bi{display:grid;place-items:center;width:44px;height:28px;border-radius:14px}
.bl[aria-current=page] .bi{background:rgba(255,216,0,.16)}
.page{padding-bottom:110px}
.bulk{bottom:78px}
#toasts{bottom:80px}
.soon{font-style:normal;font:700 11px/1 var(--f-head);text-transform:uppercase;letter-spacing:.05em;padding:3px 6px;border:1px solid currentColor;opacity:.7;white-space:nowrap;margin-left:auto}
/* pagina Altro */
.altro-g{margin-top:18px}
.altro-g h2{font-size:22px;margin:0 0 8px}
.altro-l{display:flex;flex-direction:column;border:2px solid var(--ink);background:var(--white)}
.al{display:flex;align-items:center;gap:12px;padding:0 14px;min-height:54px;text-decoration:none;color:var(--ink);font-weight:600;border-bottom:1px solid var(--line)}
.al:last-child{border-bottom:0}
.al:active,.al:hover{background:var(--yellow-soft)}
.al .soon{color:var(--mute)}
.soonbox{max-width:640px;display:flex;flex-direction:column;gap:8px}
.soonbox svg{color:var(--ink)}
.soonbox h2{font-size:26px;margin:0}
.soonbox p{margin:0;line-height:1.5}
@media (min-width:1100px){
  .shell{display:grid;grid-template-columns:264px minmax(0,1fr)}
  .side{display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto;background:var(--ink);color:var(--white);scrollbar-width:thin;scrollbar-color:#3A3A36 transparent}
  .mainwrap>.top,.bottom{display:none}
  .page{padding-bottom:60px}
  .bulk{bottom:16px;left:calc(50% + 132px)}
  #toasts{bottom:12px;left:276px}
  .side-brand{display:flex;align-items:center;gap:10px;padding:16px 18px 14px;text-decoration:none;color:var(--white);border-bottom:1px solid #2A2A27}
  .side-brand img{height:40px;width:auto}
  .side-brand b{display:block;font:800 19px/1.05 var(--f-head);text-transform:uppercase;letter-spacing:.03em}
  .side-brand small{display:block;color:#9D978A;font-size:13px;margin-top:3px}
  .side-nav{flex:1;padding:6px 10px 14px}
  .sg h3{font:700 13px/1 var(--f-head);color:#8E897C;text-transform:uppercase;letter-spacing:.08em;margin:16px 10px 6px}
  .sl{display:flex;align-items:center;gap:11px;padding:8px 10px;color:#DCD7C6;text-decoration:none;font-weight:600;font-size:15px;border-left:3px solid transparent}
  .sl svg{flex:none;color:#9D978A}
  .sl:hover{background:#1C1C1A;color:var(--white)}
  .sl[aria-current=page]{background:var(--yellow);color:var(--ink);border-left-color:var(--yellow)}
  .sl[aria-current=page] svg{color:var(--ink)}
  .sl .soon{color:#8E897C}
  .side-foot{border-top:1px solid #2A2A27;padding:12px 14px;display:flex;align-items:center;gap:10px}
  .side-foot .who>button{border-color:#3A3A36}
  .side-foot .menu{top:auto;bottom:calc(100% + 6px);left:0;right:auto}
  .side-word{margin-left:auto;font:800 18px/1 var(--f-head);text-transform:uppercase;color:var(--yellow);letter-spacing:.06em}
  .split.has-sheet .sheetcol{top:16px}
  .sheetcol .sheet{max-height:calc(100vh - 32px)}
}
@media print{.side,.bottom,.top{display:none!important}.shell{display:block}}

/* ---------- utenti e permessi ---------- */
.utenti{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.utenti>.acts{margin:0}
.ulist{display:flex;flex-direction:column;border:2px solid var(--ink);background:var(--white)}
.urow{all:unset;box-sizing:border-box;display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 12px;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer;align-items:center}
.urow:last-child{border-bottom:0}
.urow:hover,.urow:focus-visible{background:var(--yellow-soft)}
.urow:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
.urow[disabled]{cursor:default}
.urow.off{opacity:.6}
.urow .ini{grid-row:1/span 3;width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--yellow);display:grid;place-items:center;font:800 16px/1 var(--f-head)}
.urow .uw,.urow .ur,.urow .us{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0}
.urow .uw b{font-size:17px}
.urow .meta{font-size:14px;overflow-wrap:anywhere}
.tpicker{border:2px solid var(--ink);padding:10px 12px;margin:0;display:flex;flex-direction:column;gap:6px}
.tpicker legend{font-weight:700;font-size:14px;padding:0 4px}
.tpicker .hint{color:var(--mute);font-size:13px}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 12px}
.tpick{display:flex;align-items:center;gap:8px;min-height:40px;font-weight:600}
.tpick input{width:22px;height:22px;flex:none}
.uacts{border-top:2px solid var(--ink);padding-top:12px;display:flex;flex-direction:column;gap:8px}
.uacts h3{margin:0;font-size:18px}
.role summary{display:flex;gap:10px;align-items:baseline;cursor:pointer;list-style:none;font-size:20px}
.role summary::before{content:'▸';font-size:16px}
.role[open] summary::before{content:'▾'}
.role>*+*{margin-top:10px}
.prms{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.prm{display:grid;grid-template-columns:minmax(0,1fr) 170px 100px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.prm select{height:40px;border:2px solid var(--ink);background:var(--white);padding:0 8px;border-radius:2px}
.prm select[disabled]{opacity:.6}
.prm .pe{display:flex;gap:6px;align-items:center;font-size:14px;font-weight:600}
.prm .pe input{width:20px;height:20px}
.mailbox{display:flex;flex-direction:column;gap:12px;max-width:640px}
.mailbox h2{margin:0}
.adv summary{cursor:pointer;font-weight:700}
.adv[open]{display:flex;flex-direction:column;gap:10px}
.lnk-forgot{align-self:center;font-weight:700;color:var(--ink);padding:8px}
button.lnk{background:none;border:0;padding:0;text-decoration:underline;cursor:pointer;font:inherit;font-weight:700}
@media (min-width:760px){
  .urow{grid-template-columns:40px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.2fr)}
  .urow .ini{grid-row:auto}
  .urow .uw{flex-direction:column;align-items:flex-start;gap:2px}
}
@media (max-width:759px){
  .prm{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}
  .prm .pa{grid-column:1/-1;font-weight:600}
}

/* =====================================================================
   SKIN CHIARA – sfondo chiaro, bordi sottili, nero solo per i testi,
   giallo solo come accento (voce attiva, azione principale, avvisi).
   ===================================================================== */
:root{
  --bg:#FAF9F5; --surface:#fff; --soft:#F3F1EA; --bd:#E4E0D5; --bd-strong:#CFCABD;
  --yellow-ink:#8A6D00; --yellow-line:#F0CC00; --r:10px; --r-sm:7px;
  --shadow:0 1px 2px rgba(20,18,10,.05),0 4px 14px rgba(20,18,10,.05);
  --shadow-lg:0 18px 48px rgba(20,18,10,.16);
}
body{background:var(--bg)}
h1,h2,h3{font-weight:700;letter-spacing:.015em}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 4px rgba(255,216,0,.55)}

/* barra in alto (telefono) e menu laterale */
.top{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--bd)}
.brand b{color:var(--ink)}
.who>button{border:1px solid var(--bd);color:var(--ink);border-radius:999px;padding:5px 12px 5px 5px;background:var(--surface)}
.who>button:hover{background:var(--soft)}
.menu{border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--shadow-lg);overflow:hidden}
.menu .who-i{border-bottom:1px solid var(--bd);background:var(--soft)}
.bottom{background:var(--surface);border-top:1px solid var(--bd);box-shadow:0 -4px 16px rgba(20,18,10,.05)}
.bl{color:#77736A}
.bl[aria-current=page]{color:var(--ink)}
.bl[aria-current=page] .bi{background:var(--yellow)}
@media (min-width:1100px){
  .side{background:var(--surface);color:var(--ink);border-right:1px solid var(--bd);scrollbar-color:var(--bd) transparent}
  .side-brand{color:var(--ink);border-bottom:1px solid var(--bd)}
  .side-brand small{color:var(--mute)}
  .sg h3{color:#8F8A7E}
  .sl{color:#2B2A26;border-radius:var(--r-sm);border-left:0;position:relative}
  .sl svg{color:#8F8A7E}
  .sl:hover{background:var(--soft);color:var(--ink)}
  .sl[aria-current=page]{background:#FFF6C7;color:var(--ink)}
  .sl[aria-current=page]::before{content:'';position:absolute;left:-10px;top:6px;bottom:6px;width:4px;border-radius:0 3px 3px 0;background:var(--yellow)}
  .sl[aria-current=page] svg{color:var(--ink)}
  .sl .soon{color:#A29D90;border-color:var(--bd);opacity:1}
  .side-foot{border-top:1px solid var(--bd)}
  .side-foot .who>button{border-color:var(--bd)}
  .side-word{color:var(--ink);opacity:.25}
}

/* pagina */
.head h1{font-size:40px}
@media (max-width:759px){.head h1{font-size:32px}}

/* bottoni */
.btn{border:1px solid var(--bd-strong);border-radius:var(--r-sm);font-weight:700;box-shadow:none}
.btn:hover{transform:none;box-shadow:none;background:var(--soft)}
.btn.pri{background:var(--yellow);border-color:var(--yellow-line)}
.btn.pri:hover{background:#FFE033}
.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.dark:hover{background:#2A2A2A;box-shadow:none}

/* numeri in alto */
.kpi{border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--shadow);position:relative;overflow:hidden}
button.kpi:hover{transform:none;border-color:var(--bd-strong)}
.kpi.hot{background:var(--surface)}
.kpi.hot::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--yellow)}
.kpi.hot span{color:var(--mute)}
.kpi[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:-2px}

/* filtri e chip */
.search input{border:1px solid var(--bd-strong);border-radius:var(--r)}
.chip{border:1px solid var(--bd-strong);border-radius:999px;font-weight:700;padding:6px 14px}
.chip i{background:var(--soft);border-radius:999px;padding:2px 7px}
.chip[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip[aria-pressed=true] i{background:var(--yellow);color:var(--ink)}
.sel select,.prm select{border:1px solid var(--bd-strong);border-radius:var(--r-sm)}

/* schede, righe, intestazioni */
.card{border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.row:hover{background:#FFFBE6}
.row[aria-selected=true]{background:#FFF6C7}
.row .ck input{accent-color:var(--ink)}
.nm{font-weight:700}
.count{border-bottom:1px solid var(--bd);background:var(--soft)}
@media (min-width:760px){.th{background:var(--soft);color:var(--mute);border-bottom:1px solid var(--bd);font-weight:700}}

/* etichette */
.tag{border:1px solid var(--bd-strong);border-radius:6px;font-weight:700}
.tag.team{background:var(--soft);border-color:transparent;font-weight:700}
.tag.warn{background:#FFF3B0;border-color:#EBCB2E;color:#5E4A00}
.tag.bad{background:#FDECEA;border-color:#F2B8B2;color:#8E1B12}
.tag.ok{background:#EEF6EC;border-color:#C5DFC0;color:#24532A}
.tag.none{border-color:var(--bd-strong)}

/* barra azioni di gruppo */
.bulk{background:var(--surface);color:var(--ink);border:1px solid var(--bd);border-left:5px solid var(--yellow);border-radius:var(--r);box-shadow:var(--shadow-lg)}
.bulk .btn{background:var(--surface);border-color:var(--bd-strong)}
.bulk .btn.pri{background:var(--yellow);border-color:var(--yellow-line)}
.bulk select{background:var(--surface);color:var(--ink);border:1px solid var(--bd-strong);border-radius:var(--r-sm)}

/* scheda persona e finestre */
.sheet{border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--shadow)}
.sheet .bar,.modal .bar{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--bd)}
.sheet .bar .btn,.modal .bar .btn{background:var(--surface);color:var(--ink);border-color:var(--bd-strong)}
.sheet .bar .btn:hover,.modal .bar .btn:hover{background:var(--soft);color:var(--ink)}
.sheet .foot{border-top:1px solid var(--bd);background:var(--soft)}
.grp>h3{border-bottom:1px solid var(--bd)}
.fld input,.fld select,.fld textarea{border:1px solid var(--bd-strong);border-radius:var(--r-sm)}
.fld input:focus,.fld select:focus,.fld textarea:focus,.search input:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px rgba(255,216,0,.5)}
.pill,.xbtn,.ib{border:1px solid var(--bd-strong);border-radius:var(--r-sm)}
.pill[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.mem{border:1px solid var(--bd);border-radius:var(--r-sm);background:var(--soft)}
.note{background:#FFF8D6;border:1px solid #F0D860;border-radius:var(--r-sm)}
.note.err{background:#FDECEA;border-color:#F2B8B2}
.list-simple li{border-color:var(--bd);background:var(--soft);border-radius:var(--r-sm)}
.modal-bg{background:rgba(30,28,22,.35)}
.modal{border:1px solid var(--bd);border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden}
.codes code,.secret{border:1px solid var(--bd-strong);border-radius:var(--r-sm)}
.toast{border-radius:var(--r);border-left-width:6px;box-shadow:var(--shadow-lg)}
@media (max-width:1099px){.sheet{border-radius:0;border:0}}

/* accesso */
.auth{background:var(--bg);color:var(--ink)}
.auth .logo h1{color:var(--ink)}
.auth .logo p{color:var(--mute)}
.auth .box{border:1px solid var(--bd);border-top:5px solid var(--yellow);border-radius:12px;box-shadow:var(--shadow-lg)}

/* impostazioni, gare, utenti, sito */
.tcard{border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--shadow)}
.tcard:hover{transform:none;box-shadow:var(--shadow);border-color:var(--bd-strong)}
.tcard[aria-current=page]{background:#FFF6C7;color:var(--ink);border-color:#EBCB2E;box-shadow:none}
.tcard .tn i{background:var(--soft);border-radius:999px}
.tcard[aria-current=page] .tn i{background:var(--yellow)}
.tcard[aria-current=page] .td{color:var(--mute)}
.alist .arow.off{background:repeating-linear-gradient(135deg,var(--surface),var(--surface) 8px,var(--soft) 8px,var(--soft) 16px)}
.aname{font-weight:700}
.sw,.colr input[type=color]{border:1px solid var(--bd-strong)}
.gmonth{background:var(--soft);border-color:var(--bd)}
.gscore{border:1px solid var(--bd-strong);border-radius:6px}
.gscore.win{background:var(--yellow);border-color:var(--yellow-line)}
.ulist,.altro-l{border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.urow{border-bottom-color:var(--bd)}
.urow:hover{background:#FFFBE6}
.urow .ini{background:#FFF3B0;color:var(--ink)}
.al{border-bottom-color:var(--bd)}
.al:hover,.al:active{background:#FFFBE6}
.tpicker{border:1px solid var(--bd);border-radius:var(--r-sm)}
.uacts{border-top:1px solid var(--bd)}
.prms,.prm{border-color:var(--bd)}
.soonbox svg{color:var(--yellow-ink)}

/* ---------- stampe ed export ---------- */
.stampe{display:flex;flex-direction:column;gap:18px}
.pgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.pcard{display:flex;flex-direction:column;gap:12px}
.pcard h2{font-size:24px}
.pcard p.meta{margin:0}
.pcard .acts{margin-top:auto}
.pcard.private{border-top:4px solid var(--yellow)}
.cbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.clist{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 14px;max-height:340px;overflow:auto;border:1px solid var(--bd);border-radius:var(--r-sm);padding:6px 10px}
.citem{display:flex;align-items:center;gap:8px;min-height:40px;font-weight:600}
.citem input{width:20px;height:20px;flex:none;accent-color:var(--ink)}
.citem .cn{flex:1;min-width:0}
.citem .cn b{display:inline-block;min-width:26px;color:var(--mute)}
.xls{display:flex;flex-direction:column;gap:6px}
.xls h2{font-size:24px}
.xrow{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:12px 0;border-top:1px solid var(--bd);align-items:end}
.xrow p{margin:2px 0 0}
@media (min-width:760px){
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pcard.wide{grid-column:1/-1}
  .xrow{grid-template-columns:minmax(0,1fr) 260px auto}
}
@media (min-width:1300px){.pgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* il foglio A4 */
.printwrap{min-height:100vh;background:#E9E7E1;padding:0 0 40px}
.ptools{position:sticky;top:0;z-index:5;display:flex;gap:10px;align-items:center;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--bd)}
.ptools .grow{flex:1}
.doc{background:#fff;color:#111;width:min(210mm,100% - 24px);margin:20px auto;padding:14mm 14mm 12mm;box-shadow:0 4px 24px rgba(0,0,0,.12);font:400 11pt/1.35 var(--f-body)}
.dh{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding-bottom:10px;border-bottom:2px solid #111;margin-bottom:12px;position:relative}
.dh::after{content:'';position:absolute;left:0;bottom:-2px;width:60px;height:2px;background:var(--yellow)}
.dh img{height:46px}
.dt .ds{font:600 9.5pt/1 var(--f-body);color:#555;text-transform:uppercase;letter-spacing:.06em}
.dt h1{font:700 21pt/1.05 var(--f-head);text-transform:uppercase;margin:3px 0 2px}
.dt p{margin:0;color:#444}
.dm{font-size:8.5pt;color:#666;text-align:right;line-height:1.3}
.doc h2{font:700 13pt/1 var(--f-head);text-transform:uppercase;margin:14px 0 6px}
.dgame{margin:0 0 6px;font-size:11.5pt}
.dgame b{text-transform:capitalize}
.pt{width:100%;border-collapse:collapse;font-size:10pt}
.pt th{text-align:left;font:700 9pt/1.1 var(--f-body);text-transform:uppercase;letter-spacing:.03em;color:#555;border-bottom:1.5px solid #111;padding:5px 6px}
.pt td{border-bottom:1px solid #D9D6CE;padding:5px 6px;vertical-align:top}
.pt tr{break-inside:avoid}
.pt td.num{width:30px;font-weight:700;text-align:right}
.pt td.nm{font-weight:700}
.pt td.w{background:#FFF3B0}
.pt td.x{color:#8E1B12;font-weight:600}
.pt td.win{font-weight:700;background:#FFF3B0}
.pt.roster td{padding:6px}
.pt.pres{table-layout:fixed;font-size:9pt}
.pt.pres th{text-align:center;padding:3px 1px;font-size:7.5pt}
.pt.pres th:nth-child(1){width:26px}
.pt.pres th:nth-child(2){width:38mm;text-align:left}
.pt.pres td{height:7.5mm;padding:2px 4px}
.pt.pres td.box{border-left:1px solid #D9D6CE}
.pt.pres td.nm{font-size:9pt;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legend{font-size:8.5pt;color:#555;margin:6px 0 0}
.sign{display:grid;grid-template-columns:1fr 1fr;gap:30mm;margin-top:18mm}
.sign span{border-top:1px solid #111;padding-top:4px;font-size:9pt;color:#555}
.df{margin-top:14px;padding-top:8px;border-top:1px solid #D9D6CE;font-size:8.5pt;color:#555}
/* firma del prodotto in fondo a ogni stampa */
.doc::after{content:'Fischio · un prodotto di Alberto Nicoletti';display:block;margin-top:10mm;text-align:right;font:500 7.5pt/1 var(--f-body);color:#8A867C;letter-spacing:.02em}
@media (max-width:759px){.doc{padding:16px 12px;overflow-x:auto}.dh{grid-template-columns:auto 1fr}.dm{grid-column:1/-1;text-align:left}}
@page{size:A4;margin:12mm}
@media print{
  .ptools{display:none!important}
  .printwrap{background:#fff;padding:0}
  .doc{width:auto;margin:0;padding:0;box-shadow:none}
  .doc *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .shell,.bottom{display:none!important}
}
.doc .pt td.nm{font:700 10pt/1.3 var(--f-body);letter-spacing:0}
.doc .pt.pres td.nm{font-size:9pt}

/* ---------- privacy ---------- */
.privacy{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.privacy .kpis{margin-bottom:0}
.privacy p.meta{margin:0;display:block}
.clist2{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.clist2 li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--bd)}
.clist2 li:last-child{border-bottom:0}
.ck2{display:flex;flex-direction:column;min-width:0}
.ck2 .ro{font-size:13px}
.chist summary{cursor:pointer;font-weight:700;font-size:14px}
.chist ul{font-size:14px;color:var(--mute);margin:6px 0 0;padding-left:18px}
.ctable{overflow:auto}
.ctable table{border-collapse:collapse;width:100%;font-size:14px}
.ctable th{text-align:left;background:var(--soft);color:var(--mute);font:700 13px/1.2 var(--f-body);padding:8px 10px;border-bottom:1px solid var(--bd);white-space:nowrap;position:sticky;top:0}
.ctable td{padding:8px 10px;border-bottom:1px solid var(--bd);white-space:nowrap}
.ctable tr:hover td{background:#FFFBE6}
.ctable input[type=checkbox]{width:20px;height:20px;accent-color:var(--ink)}
.ctable .pn{font-weight:700;color:var(--ink);text-decoration:none;margin-right:6px}
.ctable .pn:hover{text-decoration:underline}
.cbulk{position:sticky;top:8px;z-index:4;display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--surface);border:1px solid var(--bd);border-left:5px solid var(--yellow);border-radius:var(--r);padding:10px 12px;box-shadow:var(--shadow)}
.cbulk select,.cbulk input{height:36px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px;background:var(--surface)}
.rqlist{display:flex;flex-direction:column}
.rq{padding:12px 14px;border-bottom:1px solid var(--bd);display:flex;flex-direction:column;gap:6px}
.rq:last-child{border-bottom:0}
.rq1{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rq1 b{font-size:17px}
.rq .acts select{height:36px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px;background:var(--surface)}
.rqn{margin:0;font-size:14px;white-space:pre-wrap;background:var(--soft);border-radius:var(--r-sm);padding:8px 10px}
.rqres{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.trow{flex-direction:row;justify-content:space-between;align-items:center}

/* ---------- genitori e qualifiche ---------- */
.flist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.flist li{border:1px solid var(--bd);border-radius:var(--r-sm);padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:var(--surface)}
.fl1{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.fl2{display:flex;flex-wrap:wrap;gap:4px 14px;font-weight:600}
.fl2 a{color:var(--ink)}
.flist .acts{gap:6px}

/* ---------- oggi ---------- */
.ogrid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.ocard{display:flex;flex-direction:column;gap:10px}
.ocard .oh{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ocard h2{font-size:22px}
.ocard p{margin:0}
.ocard.setup{border-left:5px solid var(--yellow)}
.ocard.alert{border-left:5px solid #B42318}
.olink{font-weight:700;color:var(--ink);white-space:nowrap}
.olist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.olist li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--bd)}
.olist li:last-child{border-bottom:0}
.olist a{color:var(--ink);font-weight:600}
.tg{display:grid!important;grid-template-columns:86px minmax(0,1fr) auto}
.tgw{display:flex;flex-direction:column;line-height:1.15}
.tgw b{text-transform:capitalize}
.tgw span{color:var(--mute);font-size:14px}
.tgo{min-width:0}
.obuck{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ob{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:var(--r-sm);background:var(--soft);text-decoration:none;color:var(--ink)}
.ob b{font:700 26px/1 var(--f-head)}
.ob span{font-size:12px;color:var(--mute);font-weight:600;line-height:1.2}
.ob.scaduto{background:#FDECEA}
.ob.sette{background:#FFF3B0}
@media (min-width:900px){.ogrid{grid-template-columns:repeat(2,minmax(0,1fr))}.ocard.setup{grid-column:1/-1}}
@media (max-width:480px){.obuck{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- scadenze ---------- */
.stools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.stools select{height:40px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 10px;background:var(--surface)}
.scad{display:flex;flex-direction:column;gap:14px}
.sgroup h2{display:flex;align-items:center;gap:10px;font-size:20px;padding:12px 14px;border-bottom:1px solid var(--bd);background:var(--soft)}
.sgroup h2 span{font:700 13px/1 var(--f-body);background:var(--surface);border:1px solid var(--bd);border-radius:999px;padding:3px 8px}
.sgroup.scaduto h2{background:#FDECEA}
.sgroup.sette h2{background:#FFF8D6}
.sgroup ul{list-style:none;margin:0;padding:0}
.srow{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:10px 14px;border-bottom:1px solid var(--bd);align-items:center}
.srow:last-child{border-bottom:0}
.sw1,.sw2{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.srow .pn{font-weight:700;color:var(--ink);text-decoration:none}
.srow .pn:hover{text-decoration:underline}
@media (min-width:900px){.srow{grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) auto}.srow .acts{justify-content:flex-end}}

/* ---------- gare e turni ---------- */
.turni{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.turni .kpis{margin-bottom:0}
.turni>p.meta{margin:0;display:block}
.tlist{display:flex;flex-direction:column}
.trow{all:unset;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr);gap:4px 14px;padding:12px 14px;border-bottom:1px solid var(--bd);cursor:pointer;align-items:center}
.trow:last-child{border-bottom:0}
.trow:hover,.trow:focus-visible{background:#FFFBE6}
.trow:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
.tw b{text-transform:capitalize}
.tc{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cov{display:flex;gap:3px}
.cov i,.lg{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px}
.cov i.ok,.lg.ok{background:#2E7D4F}
.cov i.wait,.lg.wait{background:#9BB8D3}
.cov i.prop,.lg.prop{background:var(--yellow)}
.cov i.no,.lg.no{background:#B42318}
.cov i.vu,.lg.vu{background:transparent;border:1.5px dashed var(--bd-strong)}
@media (min-width:900px){.trow{grid-template-columns:200px minmax(0,1fr) auto}}
.ghead{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-end}
.ghead h2{font-size:28px;margin:6px 0 2px}
.ghead p{margin:0}
.vans{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}
.vin{width:64px;height:40px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px;text-align:center;font-weight:700}
.slots{list-style:none;margin:0;padding:0}
.slot{padding:12px 14px;border-bottom:1px solid var(--bd);display:flex;flex-direction:column;gap:8px;border-left:4px solid transparent}
.slot:last-child{border-bottom:0}
.slot.vuoto{border-left-color:var(--bd-strong)}
.slot.proposto{border-left-color:var(--yellow)}
.slot.rifiutato{border-left-color:#B42318}
.slot.confermato{border-left-color:#2E7D4F}
.slot.in_attesa{border-left-color:#9BB8D3}
.sl1{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sl2{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sl2 select{height:40px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px;background:var(--surface);min-width:0;flex:1 1 240px;max-width:420px}
table.rules td,table.rules th{text-align:center}
table.rules td:first-child,table.rules th:first-child{text-align:left}
.step{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bd);border-radius:999px;padding:2px;background:var(--surface)}
.step.on{border-color:#EBCB2E;background:#FFF8D6}
.step button{width:30px;height:30px;border-radius:50%;border:0;background:var(--soft);font-weight:800}
.step button[disabled]{opacity:.35}
.step b{min-width:16px;text-align:center}
.vlist{list-style:none;margin:0;padding:0}
.vlist li{padding:12px 14px;border-bottom:1px solid var(--bd);display:flex;flex-direction:column;gap:6px}
.vlist li:last-child{border-bottom:0}
.vload{font:700 12px/1 var(--f-body);background:var(--soft);border-radius:999px;padding:4px 8px}
.vrow{flex-direction:row!important;justify-content:space-between;align-items:center}
.vrow b{text-transform:capitalize}
/* pagina pubblica del turno */
.box.turno{gap:10px}
.trole{font:700 30px/1.05 var(--f-head);text-transform:uppercase;background:#FFF6C7;border-left:5px solid var(--yellow);padding:10px 12px;border-radius:var(--r-sm)}
.tgame{display:flex;flex-direction:column;gap:2px}
.tgame b{font-size:18px}
.tbtns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tbtns .btn{justify-content:center;min-height:54px;font-size:18px}

/* ---------- palestre e custodia ---------- */
.palestre{display:flex;flex-direction:column;gap:12px}
.palestre .chips.sub .chip{font-size:14px;min-height:34px}
.pbody{display:flex;flex-direction:column;gap:12px}
.pbody>p.meta{margin:0;display:block}
.wbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wbar>b{font-size:17px}
.wbar .grow{flex:1}
.wgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.wday{padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.wday.today{border-top:4px solid var(--yellow)}
.wday h3{display:flex;gap:8px;align-items:baseline;font-size:18px}
.wday h3 span{font:600 13px var(--f-body);color:var(--mute);text-transform:none}
.wday ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.citem2{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;padding:8px 10px;border:1px solid var(--bd);border-left:4px solid var(--bd-strong);border-radius:var(--r-sm);background:var(--surface)}
.citem2.proposto{border-left-color:var(--yellow)}
.citem2.in_attesa{border-left-color:#9BB8D3}
.citem2.confermato{border-left-color:#2E7D4F}
.citem2.rifiutato{border-left-color:#B42318}
.citem2.gara{background:#FFFBE6}
.citem2.off{opacity:.55;border-left-style:dashed}
.citem2 .ct{font:700 14px/1 var(--f-body);min-width:92px}
.citem2 .cl{display:flex;flex-direction:column;flex:1 1 140px;min-width:0}
.citem2 select{height:36px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 6px;background:var(--surface);max-width:100%}
.addone{align-self:flex-start;font-size:14px;color:var(--mute)}
.sday{padding:10px 14px;border-bottom:1px solid var(--bd)}
.sday:last-child{border-bottom:0}
.sday h3{font-size:17px;margin-bottom:6px}
.sday ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sday li{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sday .ct{font-weight:700;min-width:96px}
.sday .acts{margin-left:auto}
@media (min-width:1100px){.wgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- giorno gara ---------- */
.giorno{display:flex;flex-direction:column;gap:12px}
.giorno>p.meta{margin:0;display:block}
.gstat{display:flex;flex-wrap:wrap;gap:10px;align-items:center;border-left:5px solid var(--bd-strong)}
.gstat.ok{border-left-color:#2E7D4F}
.gstat.bad{border-left-color:#B42318}
.gs1{display:flex;align-items:baseline;gap:8px;flex:1}
.gnum{font:700 40px/1 var(--f-head)}
.checks2{list-style:none;margin:0;padding:6px 0}
.checks2 li{padding:6px 14px;font-size:15px}
.csec{font-size:20px;padding:12px 14px;border-bottom:1px solid var(--bd);background:var(--soft)}
.clist3{list-style:none;margin:0;padding:0}
.crow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 10px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--bd)}
.crow:last-child{border-bottom:0}
.crow.on{background:#FFFBE6}
.cn2{display:flex;gap:10px;align-items:center;min-width:0;cursor:pointer}
.cn2 input{width:22px;height:22px;flex:none;accent-color:var(--ink)}
.cn2>span{display:flex;flex-direction:column;min-width:0}
.ctags{grid-column:1/-1;order:3;display:flex;flex-wrap:wrap;gap:4px;padding-left:32px}
@media (max-width:899px){.ctags:empty{display:none}}
.nin{width:62px;height:38px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);text-align:center;font-weight:700}
.nin[disabled]{opacity:.4}
.capt{width:34px;height:34px;border-radius:50%;border:1px solid var(--bd-strong);background:var(--surface);font-weight:800}
.capt.on{background:var(--yellow);border-color:var(--yellow-line)}
.pad2{padding:10px 14px}
@media (min-width:900px){.crow{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 62px 34px}.ctags{grid-column:2;order:0;padding-left:0}}

/* ---- importa dal Crono */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.crono .card{margin-bottom:14px}
.crono h2{font-size:17px;margin:0 0 6px}
.crpick{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.crpick label.btn{cursor:pointer}
.crpick input:focus-visible + label,.crpick label:focus-within{outline:2px solid var(--yellow-line)}
.crlast{margin-bottom:14px}
.crsum{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.crps,.crgs,.crrs{list-style:none;margin:0;padding:0}
.crp{padding:10px 0;border-top:1px solid var(--bd)}
.crp:first-child{border-top:0}
.crp.off{opacity:.55}
.crp1{display:flex;flex-wrap:wrap;gap:4px 14px;margin-bottom:6px}
.crctl{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.crctl input{width:150px;min-height:36px;padding:6px 9px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);font:inherit;background:var(--surface)}
.crctl select{min-height:36px}
.crw{margin:6px 0 0;padding:6px 9px;background:#FFF8D6;border-left:3px solid var(--yellow-line);border-radius:4px;font-size:14px}
.crrad{display:flex;gap:10px;align-items:flex-start;padding:8px 0;cursor:pointer}
.crrad input{margin-top:4px;accent-color:#1a1a1a}
.crrad > span{display:flex;flex-direction:column}
.crh{font-size:17px;margin:22px 0 8px}
.crg{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r);padding:12px 14px;margin-bottom:10px;box-shadow:var(--shadow)}
.crg1{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}
.crr{display:grid;grid-template-columns:120px 1fr auto;gap:4px 10px;align-items:center;padding:5px 0;border-top:1px dashed var(--bd)}
.crr .ro{grid-column:2 / -1;font-size:13px}
.crr.uguale,.crr.saltato{opacity:.6}
.crl{color:var(--mute);font-size:14px}
@media (max-width:560px){
  .crr{grid-template-columns:1fr auto}
  .crl{grid-column:1 / -1}
  .crr .ro{grid-column:1 / -1}
  .crctl input{width:calc(50% - 4px)}
}
/* stampe dentro le pagine */
.stampe.inmodal{gap:14px}
.stampe.inmodal .pgrid{grid-template-columns:minmax(0,1fr)}
.stampe.inmodal .pcard{box-shadow:none}

/* ---- scheda persona a schermata intera */
.personpage{display:flex;flex-direction:column;gap:10px}
.personpage .sheet{position:static;height:auto;max-height:none;overflow:visible;animation:none;border:1px solid var(--bd);border-radius:var(--r)}
.personpage .sheet .bar{position:static;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding:18px 20px}
.personpage .sheet .bar h1{margin:0;font-size:clamp(26px,4vw,36px);line-height:1.05}
.personpage .sheet .bar .sub{color:var(--mute);font-weight:600}
.personpage .sheet .body{padding:18px 20px;display:grid;grid-template-columns:minmax(0,1fr);gap:22px;overflow:visible}
.personpage .sheet .body > .note{grid-column:1 / -1}
.personpage .pcol{display:flex;flex-direction:column;gap:20px;min-width:0}
.personpage .pcol > .grp{padding-bottom:18px;border-bottom:1px solid var(--bd)}
.personpage .pcol > .grp:last-child{border-bottom:0}
.personpage .sheet .foot{position:sticky;bottom:0;z-index:3;padding:12px 20px;border-radius:0 0 var(--r) var(--r)}
@media (min-width:1000px){
  .personpage .sheet .body{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:36px}
}
@media (max-width:1099px){
  .personpage .sheet{position:static;height:auto;border-radius:var(--r);border:1px solid var(--bd)}
  .personpage .sheet .foot{bottom:64px}
}
@media (max-width:640px){
  .personpage .sheet .bar,.personpage .sheet .body,.personpage .sheet .foot{padding-left:14px;padding-right:14px}
}
/* pulsanti di stampa dedicati */
.pbtns{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 14px}
.tpick{display:flex;flex-direction:column;gap:12px}
.tpick-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.tpick-l .btn{justify-content:center;width:100%}
.tpick{align-items:stretch;width:100%}

/* ---- collaudo 17/10: ritocchi */
/* Chi serve: tabella sul computer, una scheda per tipo di gara sul telefono e sul tablet */
.rcards{display:none}
@media (max-width:999px){
  .rtab{display:none}
  .rcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
  .rcard h3{margin:0 0 8px;font-size:16px}
  .rcard ul{list-style:none;margin:0;padding:0}
  .rcard li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--bd)}
  .rcard li:first-child{border-top:0}
}
/* Registro: una riga per modifica, leggibile anche sul telefono */
.arow{padding:10px 14px;border-top:1px solid var(--bd)}
.arow:first-child{border-top:0}
.arow b{display:block;overflow-wrap:anywhere}
/* Anteprima di stampa sul telefono: il foglio scorre di lato come una pagina */
@media (max-width:759px){
  .doc .pt{min-width:600px}
  .doc .pt.pres{min-width:760px}
}
.cfm{margin:0 0 6px;font-size:16px}
/* contatti da Excel */
.ctlist{list-style:none;margin:10px 0;padding:0;max-height:50vh;overflow:auto;border:1px solid var(--bd);border-radius:var(--r-sm)}
.ctlist li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:8px 10px;border-top:1px solid var(--bd)}
.ctlist li:first-child{border-top:0}
.ctlist li.same{opacity:.6}
.ctlist li.nf b{color:var(--mute)}
/* Giorno gara: sistemare subito */
.itag{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.fixb{font:600 12px/1 var(--f-body);padding:5px 8px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap}
.fixb:hover,.fixb:focus-visible{border-color:var(--yellow-line);background:#FFF8D6}
.tag.team.dupn{background:#FFF3B0;border-color:#EBCB2E;color:#5E4A00}
/* Tutte le persone */
.phead{padding:12px 16px;font-weight:700;border-bottom:1px solid var(--bd);background:var(--soft)}
.plist{list-style:none;margin:0;padding:0}
.plist li{border-top:1px solid var(--bd)}
.plist li:first-child{border-top:0}
.plist a{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:4px 16px;align-items:center;padding:11px 16px;color:inherit;text-decoration:none}
.plist a:hover,.plist a:focus-visible{background:#FFFBE6}
.plist .pk{display:flex;flex-wrap:wrap;gap:4px}
.plist .pc{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
@media (max-width:760px){.plist a{grid-template-columns:1fr}}
.plist .pc{align-items:flex-start}
/* Medico e DAE */
.mprob{list-style:none;margin:0;padding:0}
.mprob li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 0;border-top:1px solid var(--bd)}
.mprob li:first-child{border-top:0}
.mprob li > span:nth-child(2){flex:1 1 260px}
.mprob .acts{margin:0}
.mslot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px}
.mslot .btn{margin-left:auto}
/* ---------- Comunicazioni ---------- */
.chips.wrap{flex-wrap:wrap;overflow:visible}
.cm-bar{display:inline-block;position:relative;width:120px;height:8px;border-radius:99px;background:var(--soft);overflow:hidden;vertical-align:middle}
.cm-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--yellow-line);border-radius:99px;transition:width .3s var(--ease)}
.cm-bar.big{display:block;width:100%;height:12px;margin-top:6px}
.cm-meter{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--mute)}
.cm-meter b{color:var(--ink)}
.cm-list{list-style:none;margin:0;padding:0}
.cm-list li{border-top:1px solid var(--bd)}
.cm-list li:first-child{border-top:0}
.cm-list a{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;grid-template-areas:"t m at" "to tags tags";gap:4px 18px;align-items:center;padding:12px 16px;color:inherit;text-decoration:none}
.cm-list a:hover,.cm-list a:focus-visible{background:#FFFBE6}
.cm-t{grid-area:t;display:flex;gap:8px;align-items:center;min-width:0}
.cm-t b{overflow-wrap:anywhere;font-size:17px}
.cm-to{grid-area:to;color:var(--mute);font-size:14px;min-width:0}
.cm-at{grid-area:at;text-align:right;white-space:nowrap}
.cm-list .cm-meter{grid-area:m}
.cm-tags{grid-area:tags;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
@media (max-width:760px){
  .cm-list a{grid-template-columns:1fr;grid-template-areas:"t" "to" "m" "tags" "at"}
  .cm-at{text-align:left}.cm-tags{justify-content:flex-start}
}
/* nuovo messaggio */
.cm-cols{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.cm-left{display:flex;flex-direction:column;gap:16px;min-width:0}
.cm-right{position:sticky;top:76px}
@media (max-width:999px){.cm-cols{grid-template-columns:1fr}.cm-right{position:static}}
.cm-step{display:flex;flex-direction:column;gap:12px}
.cm-step h2,.cm-sum h2{display:flex;align-items:center;gap:10px;margin:0!important}
.cm-n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--yellow);font:700 16px/1 var(--f-body)}
.cm-who{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.cm-tick{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--bd);border-radius:var(--r-sm);cursor:pointer;background:var(--surface)}
.cm-tick:has(input:checked){border-color:var(--yellow-line);background:#FFFBE6}
.cm-tick input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--ink);flex:0 0 auto}
.cm-tick span{display:flex;flex-direction:column;gap:2px}
.cm-kind{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:560px){.cm-kind{grid-template-columns:1fr}}
.cm-opt{display:flex;flex-direction:column;gap:3px;text-align:left;padding:10px 12px;border:1px solid var(--bd);border-radius:var(--r-sm);background:var(--surface)}
.cm-opt span{color:var(--mute);font-size:14px}
.cm-opt[aria-checked=true]{border:2px solid var(--ink);background:#FFFBE6;padding:9px 11px}
.cm-step .fld textarea{height:auto;min-height:150px;line-height:1.45}
.cm-sum{display:flex;flex-direction:column;gap:12px}
.cm-sum > .btn{justify-content:center;width:100%;font-size:17px}
.cm-prev{display:flex;flex-direction:column;gap:8px}
.cm-big{margin:0!important;font-size:18px}
.cm-big b{font-size:24px;font-family:var(--f-head)}
.cm-split{display:flex;flex-direction:column;gap:2px;font-size:15px}
.cm-split .bad{color:#8E1B12}
.cm-plist{list-style:none;margin:0;padding:0;max-height:45vh;overflow:auto;border:1px solid var(--bd);border-radius:var(--r-sm)}
.cm-plist li{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;padding:7px 10px;border-top:1px solid var(--bd)}
.cm-plist li:first-child{border-top:0}
.cm-plist li .ro{flex:1 1 100%;font-size:13px}
.cm-det{border:1px solid var(--bd);border-radius:var(--r-sm);padding:8px 10px;background:var(--soft)}
.cm-det summary{font-weight:700;cursor:pointer}
.cm-det ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:14px}
/* dettaglio */
.cm-detail{display:flex;flex-direction:column;gap:14px}
.cm-msg{display:flex;flex-direction:column;gap:10px}
.cm-mh{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cm-mh h1{font-size:32px;overflow-wrap:anywhere}
.cm-body{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--soft);border-radius:var(--r-sm);padding:12px 14px;font-size:16px;line-height:1.5;max-width:70ch}
.cm-acts{display:flex;flex-wrap:wrap;gap:8px}
.cm-rlist{list-style:none;margin:0;padding:0}
.cm-rlist li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:10px 16px;border-top:1px solid var(--bd)}
.cm-rlist li:first-child{border-top:0}
.cm-rlist li.rd{background:#FBFAF6}
.cm-pn{display:flex;flex-direction:column;min-width:0}
.cm-pn .ro{font-size:13px;overflow-wrap:anywhere}
.cm-ps{display:flex;flex-wrap:wrap;gap:5px}
.cm-pa{display:flex;gap:6px;justify-content:flex-end}
@media (max-width:760px){.cm-rlist li{grid-template-columns:1fr}.cm-pa{justify-content:flex-start}}
.cm-pub .cm-body{max-width:none}
.cm-pub .btn.pri{justify-content:center;font-size:18px;min-height:52px}
.cm-minor{border-color:var(--yellow-line);background:#FFFBE6}
/* ---------- Safeguarding ---------- */
.mod{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.sg-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:14px}
@media (max-width:899px){.sg-top{grid-template-columns:1fr}}
.sg-off{display:flex;flex-direction:column;gap:2px}
.sg-off p{margin:2px 0!important}
.sg-name{font:800 26px/1.1 var(--f-head);text-transform:uppercase}
.sg-c{display:flex;flex-wrap:wrap;gap:4px 14px;font-weight:600}
.sg-off .acts{margin-top:8px}
.sg-nums{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.sg-num{display:flex;flex-direction:column;gap:6px;padding:14px 16px;text-decoration:none;color:inherit;align-items:flex-start}
.sg-num:hover,.sg-num:focus-visible{background:#FFFBE6}
.sg-num b{font:800 34px/1 var(--f-head)}
.sg-num span:not(.tag){color:var(--mute);font-size:14px;font-weight:600}
.sg-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.sg-h h2{margin:0!important}
.sg-docs{list-style:none;margin:0;padding:0}
.sg-docs li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding:10px 0;border-top:1px solid var(--bd)}
.sg-docs li:first-child{border-top:0}
.sg-dt{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0}
.sg-docs .acts{margin:0;display:flex;flex-wrap:wrap;gap:6px}
.sg-doc{display:flex;flex-direction:column;gap:10px}
.sg-doc .acts{margin:0;display:flex;flex-wrap:wrap;gap:8px}
.sg-seg{display:inline-flex;border:1px solid var(--bd-strong);border-radius:var(--r-sm);overflow:hidden;justify-self:start}
.sg-seg button{border:0;background:var(--surface);padding:8px 14px;font-weight:700;min-height:40px}
.sg-seg button+button{border-left:1px solid var(--bd-strong)}
.sg-seg button[aria-pressed=true]:first-child{background:#EEF6EC;color:#24532A}
.sg-seg button[aria-pressed=true]:last-child{background:#FDECEA;color:#8E1B12}
.sg-seg button[disabled]{cursor:default}
.sg-test{display:inline-flex;gap:6px;align-items:center;font-weight:600;font-size:14px}
.sg-test input{width:18px;height:18px;accent-color:var(--ink)}
.sg-secret{background:#F3F1EA;border-color:var(--bd-strong)}
.sg-diary h3{font-size:18px;margin:6px 0}
.sg-diary ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sg-diary .cm-body{font-size:14px;padding:8px 10px}
.mod .acts{display:flex;flex-wrap:wrap;gap:8px}
.cm-rlist.sg-att li{grid-template-columns:minmax(0,1fr) auto 150px}
@media (max-width:760px){.cm-rlist.sg-att li{grid-template-columns:1fr}}
.sg-num .tag{white-space:normal}
/* ---------- Divise e numeri ---------- */
.kit-free{display:flex;flex-wrap:wrap;gap:4px}
.kit-free span{min-width:30px;text-align:center;padding:3px 6px;border:1px solid var(--bd);border-radius:6px;background:var(--surface);font-weight:700;font-size:14px}
.kit-free span.ro{border:0;background:none}
.cm-rlist.kit-num li{grid-template-columns:64px minmax(0,1fr) auto}
.kit-num input,.kit-nr{width:58px;height:44px;text-align:center;font:800 22px/1 var(--f-head);border:1px solid var(--bd-strong);border-radius:var(--r-sm);background:var(--surface)}
.kit-num input.bad{border-color:#E2847B;background:#FDECEA;color:#8E1B12}
@media (max-width:760px){.cm-rlist.kit-num li{grid-template-columns:64px minmax(0,1fr)}.kit-num .cm-ps{grid-column:2}}
.cm-rlist.kit-del li{grid-template-columns:32px minmax(0,1fr) minmax(0,1.1fr) auto}
@media (max-width:760px){.cm-rlist.kit-del li{grid-template-columns:32px minmax(0,1fr)}.kit-del li>*:nth-child(n+3){grid-column:2}}
.kit-cb input,.kit-all input{width:22px;height:22px;accent-color:var(--ink)}
.kit-all{display:inline-flex;gap:8px;align-items:center;font-weight:700;margin-right:auto}
.kit-in{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kit-in select{height:44px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 10px;background:var(--surface);font-weight:600}
.kit-pick{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.kit-pick label{display:inline-flex;gap:8px;align-items:center;font-weight:700}
.kit-pick select{height:44px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 10px;background:var(--surface);font-weight:600;max-width:60vw}
.kit-sign{width:100%;height:auto;aspect-ratio:600/220;border:2px dashed var(--bd-strong);border-radius:var(--r-sm);background:#fff;touch-action:none;cursor:crosshair}
.kit-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.kit-stock{width:100%;border-collapse:collapse}
.kit-stock th{text-align:left;font-size:13px;color:var(--mute);padding:4px 6px;border-bottom:1px solid var(--bd)}
.kit-stock td{padding:4px 6px;border-bottom:1px solid var(--bd);font-weight:600}
.kit-stock td.bad{color:#8E1B12}
.kit-stock input{width:70px;height:36px;text-align:center;border:1px solid var(--bd-strong);border-radius:var(--r-sm);font-weight:700}
.kit-sig{max-height:46px;max-width:160px;display:block}
.doc .kit-row td{height:40px;vertical-align:middle}
/* ---------- Quote ---------- */
.fee-bad b{color:#8E1B12}
.cm-rlist.fee-list li{grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) auto}
.fee-list a.cm-pn{text-decoration:none;color:inherit}
.fee-list a.cm-pn:hover b{text-decoration:underline}
.fee-list .cm-ps{align-items:center}
@media (max-width:760px){.cm-rlist.fee-list li{grid-template-columns:1fr}}
.fee-rates{display:flex;flex-direction:column;gap:6px}
.fee-rate{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 90px 36px;gap:6px}
.fee-rate input{height:40px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px;background:var(--surface);min-width:0}
@media (max-width:520px){.fee-rate{grid-template-columns:1fr 1fr}.fee-rate input:first-child{grid-column:1/-1}}
.fee-rl{list-style:none;margin:0;padding:0}
.fee-rl li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 0;border-top:1px solid var(--bd)}
.fee-rl li:first-child{border-top:0}
.fee-rl li>span:first-child{flex:1 1 140px;font-weight:600}
.fee-amt{font:800 24px/1 var(--f-head)}
.fee-h{font-size:30px}
.cm-rlist.fee-pays li{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto}
@media (max-width:760px){.cm-rlist.fee-pays li{grid-template-columns:1fr}}
/* ricevuta */
.fee-doc{position:relative}
.fee-rt{width:100%;border-collapse:collapse;margin:18px 0}
.fee-rt th{text-align:left;width:130px;padding:10px 8px;vertical-align:top;font-weight:700;border-bottom:1px solid #ddd;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:#555}
.fee-rt td{padding:10px 8px;border-bottom:1px solid #ddd;font-size:15px}
.fee-sign{display:flex;justify-content:space-between;align-items:flex-end;margin-top:30px;gap:20px}
.fee-stamp{width:110px;height:130px;border:1px dashed #999;display:grid;place-items:center;text-align:center;font-size:12px;color:#777}
.fee-line{width:240px;border-bottom:1px solid #333;height:50px}
.fee-void{position:absolute;top:40%;left:5%;right:5%;text-align:center;transform:rotate(-12deg);font:800 40px/1 var(--f-head);color:rgba(179,38,30,.35);border:4px solid rgba(179,38,30,.35);padding:10px;pointer-events:none}
/* ---------- Libro soci e assemblee ---------- */
.cm-rlist.soc-list li{grid-template-columns:32px minmax(0,1fr) minmax(0,1.2fr)}
@media (max-width:760px){.cm-rlist.soc-list li{grid-template-columns:32px minmax(0,1fr)}.soc-list li>*:nth-child(3){grid-column:2}}
.soc-n{font:800 15px/1 var(--f-head);color:var(--mute);text-align:center}
.soc-nm{all:unset;cursor:pointer;display:flex;flex-direction:column;min-width:0}
.soc-nm:hover b,.soc-nm:focus-visible b{text-decoration:underline}
.soc-nm:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.odg{margin:2px 0;padding-left:22px}
.odg li{padding:2px 0}
.res-form{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--bd)}
.res-form textarea{min-height:60px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:8px 10px;font:inherit;background:var(--surface)}
.res-votes{display:flex;gap:6px}
.res-votes input{width:90px;height:40px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px}
.res-form select,.kit-pick input:not([type=checkbox]){height:40px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px;background:var(--surface);font:inherit}
.min-text{width:100%;min-height:320px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:12px;font:15px/1.5 var(--f-body);background:var(--surface);resize:vertical}
.min-print{white-space:pre-wrap;font-size:14px;line-height:1.6}
.deleg{margin-top:28px;padding-top:14px;border-top:1px dashed #999}
.doc.doc-wide{max-width:1150px}
.cm-rlist.sg-att li .cm-pa select{height:40px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px;background:var(--surface);max-width:150px}
.soc-search input{width:100%;max-width:420px;height:44px;padding:0 12px;border:1px solid var(--bd-strong);border-radius:var(--r);background:var(--surface);font:inherit}
/* ---- certificato FIGH */
.fg{display:flex;flex-direction:column;gap:14px;max-width:960px}
.fg .card h2{margin:0 0 6px}
.fg-pick{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.fg-pick label.btn{cursor:pointer}
.fg-pick label:focus-within{outline:2px solid var(--yellow-line)}
.fg-kind h3{margin:14px 0 4px;font-size:15px}
.fg-groups,.fg-rows,.fg-miss{list-style:none;margin:0;padding:0}
.fg-groups li{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--bd)}
.fg-groups li.off label b{color:var(--mute)}
.fg-sel{display:flex;gap:8px;flex-wrap:wrap}
.fg-sel select,.fg-season select{height:42px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px;background:var(--surface);font:inherit;max-width:260px}
.fg-season{display:inline-flex;align-items:center;gap:8px;margin:4px 0 8px}
.fg .chips{margin:6px 0 4px}
.fg-rows li{padding:9px 0;border-top:1px solid var(--bd)}
.fg-r1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fg-r1 .tag{margin-left:auto}
.fg-r2{display:flex;gap:10px;flex-wrap:wrap;color:var(--mute);font-size:14px;margin-top:2px}
.fg-msg{margin:4px 0 0;font-size:14px}
.fg-miss li{padding:5px 0}
.fg-hist li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:5px 0}
@media (max-width:600px){.fg-sel,.fg-sel select{width:100%;max-width:none}.fg-r1 .tag{margin-left:0}}
.fg-missing summary{cursor:pointer;padding:2px 0}
.fg-miss{columns:2 240px;margin-top:6px}
.fg-miss li{break-inside:avoid}
/* ---- giorno gara: possono giocare anche */
.gfq h2{margin:0 0 4px}
.gfq-t{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--bd)}
.gfq-t .tag{flex:0 0 auto;margin-top:4px}
.gfq-p{display:flex;flex-wrap:wrap;gap:6px}
/* ---- turni: griglia */
.gtools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:6px}
.gtools select{height:40px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 10px;background:var(--surface);font:inherit}
.dgrid-wrap{overflow:auto;max-height:calc(100vh - 230px);border:1px solid var(--bd);border-radius:var(--r);background:var(--surface)}
.dgrid-wrap:focus-visible{outline:2px solid var(--yellow-line)}
.dgrid{border-collapse:separate;border-spacing:0;font-size:14px;min-width:100%}
.dgrid th,.dgrid td{padding:4px 6px;border-bottom:1px solid var(--bd);border-right:1px solid var(--bd);white-space:nowrap;vertical-align:middle}
.dgrid thead th{position:sticky;top:0;z-index:2;background:var(--soft);font:700 12px/1.2 var(--f-body);text-align:left;padding:8px 6px}
.dgrid .gfirst{position:sticky;left:0;z-index:1;background:var(--surface);min-width:190px;max-width:230px;white-space:normal;text-align:left}
.dgrid thead .gfirst{z-index:3;background:var(--soft)}
.dgrid .gfirst a{display:flex;flex-direction:column;gap:2px;color:inherit;text-decoration:none;font-weight:400}
.dgrid .gfirst a:hover b{text-decoration:underline}
.dgrid .gfirst span{font-size:13px;color:var(--mute)}
.dgrid tr.past td,.dgrid tr.past .gfirst{opacity:.65}
.dgrid td.na{color:var(--bd-strong);text-align:center;background:repeating-linear-gradient(135deg,transparent,transparent 6px,var(--soft) 6px,var(--soft) 12px)}
.dgrid td.gc{box-shadow:inset 4px 0 0 transparent}
.dgrid td.gc.ok{box-shadow:inset 4px 0 0 #2E7D4F}
.dgrid td.gc.wait{box-shadow:inset 4px 0 0 #9BB8D3}
.dgrid td.gc.prop{box-shadow:inset 4px 0 0 var(--yellow)}
.dgrid td.gc.no{box-shadow:inset 4px 0 0 #B42318;background:#FFF1EF}
.dgrid td.gc.vu{background:#FFFBEA}
.dgrid td.gc.extra{outline:1px dashed var(--bd-strong);outline-offset:-3px}
.gsel{width:150px;height:34px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;font:inherit;padding:0 4px;cursor:pointer}
.gsel:hover,.gsel:focus{border-color:var(--bd-strong);background:var(--surface)}
.gvan{width:56px;height:34px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 6px;font:inherit}
@media (max-width:600px){.dgrid .gfirst{min-width:140px;max-width:150px}.gsel{width:128px}.dgrid-wrap{max-height:none}}
/* ---- giorno gara: ufficiali in panchina */
.goff-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.goff h2{margin:0}
.goff-l{list-style:none;margin:6px 0 0;padding:0}
.goff-l li{display:grid;grid-template-columns:36px 110px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--bd)}
.goff-L{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:2px solid var(--bd-strong);font:700 16px/1 var(--f-head)}
.goff-l li.on .goff-L{background:var(--yellow);border-color:var(--yellow-line)}
.goff-t{font-size:14px;color:var(--mute)}
.goff-l select{height:40px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px;background:var(--surface);font:inherit;width:100%;min-width:0}
@media (max-width:600px){.goff-l li{grid-template-columns:36px minmax(0,1fr)}.goff-t{display:none}.goff-l li .tag{grid-column:2}}
.dgrid td.gbar{text-align:center}
.gbar-l{display:inline-flex;gap:6px;align-items:center;font-size:13px}
/* ---- storico */
.hbtn{margin-left:auto;font:600 13px/1 var(--f-body);text-transform:none;letter-spacing:0}
.hist .hsec{margin-top:12px}
.hist h3{margin:0 0 4px;font-size:15px}
.hlist{list-style:none;margin:0;padding:0}
.hlist li{padding:8px 0;border-top:1px solid var(--bd)}
.hlist .h1{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.hlist .h2{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:13px;margin-top:2px}
.dgrid td.gc.set{box-shadow:inset 4px 0 0 var(--ink)}
.dgrid td.gc.opt{background:transparent}
.dgrid th.thoff{background:var(--cream-2,#EFEADF)}
.gbar-p{display:block;font-size:12px;margin-top:2px}
/* ---- griglia: ogni cella si compila */
.dgrid td.gc.opt .gsel{border-style:dashed;color:var(--mute)}
.dgrid td.gc.more{outline:1px dotted var(--ink);outline-offset:-3px}
.linkbtn{background:none;border:0;padding:4px 2px;font:inherit;font-size:12px;color:var(--ink);text-decoration:underline;cursor:pointer;min-height:28px}
.linkbtn:focus-visible{outline:2px solid var(--yellow-line)}
.gbar-row{padding:6px 8px;border-radius:var(--r-sm);box-shadow:inset 4px 0 0 transparent}
.gbar-row.ok{box-shadow:inset 4px 0 0 #2E7D4F}.gbar-row.wait{box-shadow:inset 4px 0 0 #9BB8D3}.gbar-row.prop{box-shadow:inset 4px 0 0 var(--yellow)}
.gbar-row.no{box-shadow:inset 4px 0 0 #B42318;background:#FFF1EF}.gbar-row.vu{background:#FFFBEA}
.gbar-row>span{font-weight:700;font-size:14px}
/* ---- squadre come la FIGH */
.ft{display:flex;flex-direction:column;gap:14px}
.ft-cats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ft-cats li{display:flex;flex-direction:column;padding:6px 10px;border:1px solid var(--bd);border-radius:var(--r-sm);background:var(--surface);min-width:92px}
.ft-cats li span{font-size:13px;color:var(--mute)}
.ft-teams,.ft-moves{list-style:none;margin:0;padding:0}
.ft-teams li{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--bd)}
.ft-teams li.chg{box-shadow:inset 4px 0 0 var(--yellow);padding-left:10px}
.ft-to{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ft-to select{height:40px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);padding:0 8px;background:var(--surface);font:inherit}
.ft-moves li{padding:6px 0;border-top:1px solid var(--bd)}
.ft-moves .chk{display:flex;gap:10px;align-items:flex-start}
.ft-moves input{width:22px;height:22px;flex:none;margin-top:1px}
.ft-new{margin-top:12px}.ft-new h3{margin:0 0 4px;font-size:15px}
.ft-go{display:flex;flex-wrap:wrap;gap:10px}
/* ---- rosa sul sito */
.sp-pub h3{margin:14px 0 6px;font-size:16px}
.sp-conn{border:1px solid var(--bd);border-radius:var(--r-sm);padding:12px;margin:8px 0;background:var(--soft)}
.sp-conn.ok{background:var(--surface)}
.sp-conn h3{margin:0 0 6px}
.sp-steps{margin:0 0 10px;padding-left:20px;line-height:1.5}
.sp-form{display:grid;gap:10px;max-width:460px}
.sp-ht{margin-top:8px;font-weight:500}.sp-ht code{display:block;margin-top:6px;padding:6px 8px;background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-sm);font-size:13px;word-break:break-all}
.sp-list{list-style:none;margin:0;padding:0}
.sp-it{padding:8px 0;border-top:1px solid var(--bd)}
.sp-it .chk{display:flex;gap:10px;align-items:flex-start}
.sp-it input{width:22px;height:22px;flex:none;margin-top:1px}
.sp-it .tag{margin-left:4px}
.sp-why{display:block;margin-top:2px}
.sp-it.skip{opacity:.8}
.sp-runs li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:6px 0;border-top:1px solid var(--bd)}
.sp-teams{list-style:none;margin:8px 0 0;padding:0}
.sp-teams>li{padding:10px 0;border-top:1px solid var(--bd)}
.sp-th{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.sp-staff{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.sp-staff .chk{display:flex;gap:10px;align-items:center}
.sp-staff input{width:22px;height:22px;flex:none}
.sp-staff li.off b{text-decoration:line-through;color:var(--mute)}
.sp-url code{word-break:break-all}
/* ---- controllo tesseramenti */
.fc{display:flex;flex-direction:column;gap:14px}
.fc-list{list-style:none;margin:0;padding:0}
.fc-it{padding:10px 0;border-top:1px solid var(--bd);display:flex;flex-direction:column;gap:4px}
.fc-h{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.fc-h a{color:inherit}
.fc-t{margin:0;font-size:14px}
.fc-p{display:flex;gap:8px;align-items:center;font-size:14px}
.fc-p input,.chk.paper input{width:22px;height:22px;flex:none}
.chk.paper{display:flex;gap:10px;align-items:flex-start;margin-top:4px}
/* ---- accesso sul telefono: la pagina non salta quando si apre o chiude la tastiera */
.auth{min-height:100dvh}
@media (max-width:600px),(max-height:700px){.auth{justify-content:flex-start;padding-top:20px}.auth .logo img{height:56px}.auth .logo h1{font-size:34px}.auth .box{animation:none}}
.auth .box .btn{touch-action:manipulation}
/* salute di Fischio */
.salute{display:grid;gap:14px}
.salute .note ul{margin:6px 0 0;padding-left:18px}
.note.ok{background:#EEF7EF;border-color:#A7D3AC}
.slist{list-style:none;margin:8px 0 0;padding:0}
.slist .sl{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:10px 0;border-top:1px solid var(--bd)}
.slist .sl:first-child{border-top:0}
.slist .sl>span:not(.tag){flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.slist .sl .tag{flex:none;order:2}
.slist .sl .meta{overflow-wrap:anywhere}
/* sul telefono: ogni cosa da toccare è alta almeno 44 px (anche i pulsanti piccoli, le schede e i link nel testo) */
@media (pointer: coarse){
  .btn.sm,.chip,.pill,.kpi,.toast button{min-height:44px}
  button.lnk{padding:12px 2px;margin:-12px -2px}
  .xbtn{min-width:44px;min-height:44px}
}

/* ---------- accessi senza email: password provvisorie da consegnare ---------- */
.fld .lab{font-weight:700;font-size:14px}
.creds{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:2px solid var(--ink);background:var(--white)}
.creds li{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:6px 14px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}
.creds li:last-child{border-bottom:0}
.creds li>span{display:flex;flex-direction:column;min-width:0}
.creds code{font:700 16px/1.3 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.5px;white-space:nowrap}
@media (max-width:760px){.creds li{grid-template-columns:auto auto;justify-content:start;column-gap:22px}.creds code{font-size:15px}.creds li>span:first-child,.creds li .btn{grid-column:1/-1}}

/* ---------- la partita in un posto solo (dal Calendario) ---------- */
.grow-row.open{cursor:pointer}
.grow-row.open:hover,.grow-row.open:focus-visible{background:var(--yellow-soft)}
.grow-row.open:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
.gcard{display:flex;flex-direction:column;gap:14px}
.gnav{margin:2px 0 0}
.gnav a.chip{text-decoration:none}
.gscore.big{font:800 30px/1 var(--f-head);margin:8px 0 0}
.gextra{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.gpart h3{margin:0;font-size:20px}
.gph{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.gpart .meta{margin:0 0 10px}
.gpart .acts{margin:0}
.gslots{list-style:none;margin:0 0 12px;padding:0;border-top:1px solid var(--line)}
.gslots li{display:grid;grid-template-columns:minmax(110px,auto) minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.gslots .gsl{color:var(--mute);font-size:14px}
@media (max-width:520px){.gslots li{grid-template-columns:minmax(0,1fr) auto}.gslots .gsl{grid-column:1/-1}}
.olist li.open{cursor:pointer}
.olist li.open:hover,.olist li.open:focus-visible{background:var(--yellow-soft)}
.olist li.open:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
a.plink{color:inherit;text-decoration:none}
a.plink:hover b,a.plink:focus-visible b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.qcall{margin:0}
.flash{animation:flash 2.4s ease-out}
@keyframes flash{0%,30%{background:var(--yellow-soft);box-shadow:0 0 0 3px var(--yellow)}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.flash{animation:none;background:var(--yellow-soft)}}

/* ---------- scheda persona: in breve ---------- */
.sumbox{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:0 0 14px}
.sumbox:empty{display:none}
.sum{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:2px solid var(--line);border-left-width:6px;border-radius:4px;background:var(--white);min-height:44px}
button.sum{cursor:pointer}
button.sum:hover,button.sum:focus-visible{background:var(--yellow-soft)}
button.sum:focus-visible{outline:3px solid var(--ink);outline-offset:1px}
.sum .sl{font-size:12px;color:var(--mute);font-weight:600}
.sum b{font-size:14px;line-height:1.3}
.sum.ok{border-left-color:#2E7D32}
.sum.warn{border-left-color:#E0A800}
.sum.bad{border-left-color:#B3261E}
@media (max-width:520px){.sumbox{grid-template-columns:1fr 1fr}}
.gres{flex-wrap:wrap;gap:6px 10px}
.gres .tag{font-size:12px}

/* ---------- squadre ---------- */
.tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:14px}
.tcard{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit}
.tcard:hover,.tcard:focus-visible{background:var(--yellow-soft)}
.tcard:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.tcard h2{margin:0;font-size:22px}
.tc1{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tcard .meta,.tnext{margin:0}
a.tag.tlink{text-decoration:none}
a.tag.tlink:hover,a.tag.tlink:focus-visible{text-decoration:underline}
.tacts{flex-wrap:wrap}
.pad0{padding:14px 16px 6px}
.gpart .grow-row:last-child{border-bottom:0}
.troster{list-style:none;margin:0;padding:0}
.troster li{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 16px;border-top:1px solid var(--line)}
.tnum{width:36px;height:36px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:4px;font:800 16px/1 var(--f-head)}
.tnm{display:flex;flex-direction:column;min-width:0}
.ttags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.tstaff{padding:8px 16px 14px;border-top:1px solid var(--line)}
.tstaff h4{margin:6px 0}
.tstaff ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
@media (max-width:520px){.troster li{grid-template-columns:36px minmax(0,1fr)}.ttags{grid-column:2;justify-content:flex-start}}
/* il riquadro "In breve" sta sopra le colonne della scheda, a tutta larghezza, e non si allunga */
.personpage .sheet .body > .sumbox{grid-column:1 / -1;align-self:start;align-items:start;margin:0}
.sumbox .sum{align-self:start}
.gcall{margin:0 0 12px}
.gcall summary{cursor:pointer;font-weight:700;min-height:32px;display:flex;align-items:center}
.gcall ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.gcall li{display:flex;align-items:center;gap:8px}
.gcn{width:30px;height:30px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:4px;font:800 14px/1 var(--f-head);flex:none}
.pbtns a.btn{text-decoration:none;background:var(--white)}

/* ---------- presenze ---------- */
.pres{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.pmonth{display:flex;align-items:center;gap:12px}
.pmonth b{font:800 20px/1 var(--f-head);text-transform:capitalize;min-width:150px;text-align:center}
.pstrip{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
.pday{all:unset;box-sizing:border-box;flex:none;width:76px;min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:2px solid var(--line);border-radius:6px;background:var(--white);cursor:pointer}
.pday b{font:800 22px/1 var(--f-head)}
.pday .pd1{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--mute)}
.pday .pd2{font-size:11px;color:var(--mute)}
.pday.today{border-color:var(--ink)}
.pday[aria-selected=true]{background:var(--ink);color:var(--yellow);border-color:var(--ink)}
.pday[aria-selected=true] .pd1,.pday[aria-selected=true] .pd2{color:var(--yellow)}
.pday.off{opacity:.55}
.pday:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.psh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.psh h2{margin:0;font-size:22px;text-transform:capitalize}
.attlist{list-style:none;margin:8px 0 0;padding:0}
.prow{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 16px;border-top:1px solid var(--line)}
.pseg{display:flex;gap:6px}
.pb{all:unset;box-sizing:border-box;min-width:44px;min-height:44px;padding:0 12px;display:grid;place-items:center;border:2px solid var(--line);border-radius:6px;font-weight:700;cursor:pointer;background:var(--white)}
.pb .ps{display:none}
.pb:disabled{cursor:default;opacity:.5}
.pb:focus-visible{outline:3px solid var(--ink);outline-offset:1px}
.pb.ok[aria-pressed=true]{background:#1E6B3C;border-color:#1E6B3C;color:#fff}
.pb.bad[aria-pressed=true]{background:#B42318;border-color:#B42318;color:#fff}
.pb.warn[aria-pressed=true]{background:#8A5300;border-color:#8A5300;color:#fff}
@media (max-width:640px){
  .prow{grid-template-columns:40px minmax(0,1fr);padding:8px 12px}
  .pseg{grid-column:1/-1}
  .pb{flex:1;padding:0 6px;font-size:14px}
}
@media (max-width:340px){.pb .pl{display:none}.pb .ps{display:inline}}
.pseason summary,.ptable summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
.ppct{display:flex;align-items:center;gap:8px;min-width:120px}
.pbar{flex:1;height:8px;border-radius:4px;background:var(--line);overflow:hidden}
.pbar i{display:block;height:100%;background:#1E6B3C}
.ppct b.low{color:#B42318}
.ptwrap{overflow-x:auto;padding:0 0 12px}
.ptable table{border-collapse:collapse;font-size:13px;margin:0 16px}
.ptable th,.ptable td{border:1px solid var(--line);padding:4px 6px;text-align:center;min-width:26px}
.ptable tbody th{text-align:left;white-space:nowrap;font-weight:600}
.ptable td.ok{background:#E6F2EA;color:#1E6B3C;font-weight:700}
.ptable td.bad{background:#FBE9E7;color:#B42318;font-weight:700}
.ptable td.warn{background:#FFF4E0;color:#8A5300;font-weight:700}
.ptable .off{color:var(--mute)}
.pslots{display:flex;flex-direction:column;gap:8px}
.pslot{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.4fr auto;gap:6px;align-items:center}
.pslot select,.pslot input{height:44px;border:2px solid var(--ink);border-radius:2px;padding:0 8px;background:var(--white);min-width:0}
@media (max-width:640px){.pslot{grid-template-columns:1fr 1fr 1fr}.pslot select:last-of-type{grid-column:1/3}}

/* ---------- calendario: vista a mese ---------- */
.gtop{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gtop .chips{flex:1;min-width:0}
.vseg{display:inline-flex;border:2px solid var(--ink);border-radius:999px;overflow:hidden;flex:none}
.vseg button{all:unset;box-sizing:border-box;padding:0 16px;min-height:40px;display:grid;place-items:center;font:800 14px/1 var(--f-head);text-transform:uppercase;cursor:pointer}
.vseg button[aria-pressed=true]{background:var(--ink);color:var(--yellow)}
.vseg button:focus-visible{outline:3px solid var(--ink);outline-offset:-5px}
.mcal{padding:14px}
.mcal .pmonth{margin-bottom:10px}
.mrow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.mhead span{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--mute);padding:4px 6px}
.mgrid{border-top:1px solid var(--line);border-left:1px solid var(--line)}
.mday{min-height:112px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:3px;cursor:pointer;min-width:0;background:var(--white)}
.mday.out{background:transparent;opacity:.55}
.mday.today .mn{background:var(--ink);color:var(--yellow);border-radius:999px;padding:0 6px}
.mday.sel{box-shadow:inset 0 0 0 2px var(--ink)}
.mday:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
.mn{font-weight:800;font-size:13px;align-self:flex-start}
.mev{display:flex;flex-direction:column;gap:3px;min-width:0}
.mg,.mtr{all:unset;box-sizing:border-box;display:block;font-size:12px;line-height:1.25;padding:3px 5px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.mg{background:var(--yellow-soft);border-left:3px solid var(--ink)}
.mg.warn{border-left-color:#E0A800;background:#FFF4E0}
.mg.bad{border-left-color:#B42318;background:#FBE9E7}
.mg .mt{font-weight:700;margin-right:4px}
.mg .ms{font-weight:800}
.mtr{color:var(--mute);border:1px dashed var(--line)}
.mtr.off{text-decoration:line-through}
.mg:hover,.mtr:hover{filter:brightness(.95)}
.mg:focus-visible,.mtr:focus-visible{outline:2px solid var(--ink)}
.mdots{display:none}
.mdots i,.mleg i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ink);margin:0 1px;vertical-align:middle}
.mdots i.warn,.mleg i.warn{background:#E0A800}
.mdots i.bad,.mleg i.bad{background:#B42318}
.mdots i.dt,.mleg i.dt{background:transparent;border:2px solid var(--mute);width:6px;height:6px}
.mdots i.dt.off{opacity:.4}
.mleg{margin:10px 0 0}
.mlist{display:none}
.mtrow{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:8px;width:100%;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer;min-height:48px}
@media (max-width:640px){
  .mcal{padding:10px}
  .mday{min-height:52px;align-items:center;padding:4px 2px}
  .mn{align-self:center}
  .mev{display:none}
  .mdots{display:flex;flex-wrap:wrap;justify-content:center;gap:1px}
  .mlist{display:block;margin-top:12px;border-top:2px solid var(--ink)}
  .mlist h3{margin:10px 0;text-transform:capitalize}
}
.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}

/* ---------- prepara la nuova stagione ---------- */
.snew{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.sstep .sh{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.sstep .sh h2{margin:0;font-size:22px}
.sn{width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--yellow);display:grid;place-items:center;font:800 16px/1 var(--f-head);flex:none}
.sstep.done .sn{background:#1E6B3C;color:#fff}
.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
@media (max-width:640px){.three{grid-template-columns:1fr}}
.chip.static{cursor:default}
.ssum{display:flex;flex-wrap:wrap;gap:6px}
.slist2{list-style:none;margin:0 0 12px;padding:0;border-top:1px solid var(--line)}
.slist2 .sgrp{font:800 14px/1 var(--f-head);text-transform:uppercase;padding:14px 0 6px;color:var(--mute)}
.srow2{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,220px);gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.srow2 .tnm{gap:2px}
.srow2 .tnm .tag{align-self:flex-start}
.srow2 select{height:44px;border:2px solid var(--ink);border-radius:2px;padding:0 8px;background:var(--white);min-width:0}
@media (max-width:640px){.srow2{grid-template-columns:1fr}}
/* Premio di formazione */
.prem{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.pdead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:center}
.pdead.soon{border-left:6px solid #EBCB2E}
.pdead.late{border-left:6px solid #B42318}
.pdl{display:flex;flex-direction:column;gap:2px}
.pdl .sl{font-size:14px;color:var(--mute)}
.pdl b{font:800 26px/1.1 var(--f-head)}
.pdd{font-weight:700}
.pdc{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.prule{grid-column:1/-1;margin:4px 0 0}
.prl{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--line)}
.prr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.prr .tnm{gap:2px}
.prr .lnk{min-height:32px;padding:0;text-align:left}
.prt{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.pra{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.prem details>summary{cursor:pointer;padding-top:14px;padding-bottom:14px}
@media (max-width:640px){.pdead{grid-template-columns:1fr}.pdc{justify-content:flex-start}.prr{grid-template-columns:1fr}.pra{justify-content:flex-start}}
.prg{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.prgs{height:40px;border:2px solid var(--ink);border-radius:2px;padding:0 8px;background:var(--yellow);font:700 14px/1 var(--f-body);text-transform:none;color:var(--ink);max-width:100%}
/* Iscrizione online: modulo per le famiglie */
.auth .box.enr{max-width:560px}
.enrf{display:flex;flex-direction:column;gap:18px}
.enrs{display:flex;flex-direction:column;gap:12px;border-top:2px solid var(--line);padding-top:14px}
.enrs[hidden]{display:none}
.enrs h3{margin:0;font:800 22px/1.1 var(--f-head);text-transform:uppercase}
.enrf select,.enrf textarea{width:100%;min-height:48px;border:2px solid var(--ink);border-radius:2px;padding:8px 10px;background:var(--white);font:inherit}
.enrf .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:420px){.enrf .two{grid-template-columns:1fr}}
.yn{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.yn legend{font-weight:700;padding:0}
.ynb{display:flex;gap:18px}
.ynb .chk{min-height:44px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.enrf .chk a{color:inherit;font-weight:700}
/* Iscrizioni online: pagina della segreteria */
.enrb{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.enrlh{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.enrlh h2{margin:0}
.enrlink code{display:block;padding:10px 12px;background:var(--cream-2,#F4F1EA);border:1px dashed var(--line);word-break:break-all;font-size:14px;margin-bottom:10px}
.enrlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.enrch{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:8px}
.enrch h2{margin:0;font-size:22px}
.enrd{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:8px 0 12px}
.enrd dt{color:var(--mute);font-weight:600}
.enrd dd{margin:0;overflow-wrap:anywhere}
.enrd dd select{height:44px;border:2px solid var(--ink);border-radius:2px;padding:0 8px;background:var(--white);max-width:100%}
.enrd a{font-weight:700;color:inherit}
@media (max-width:640px){.enrd{grid-template-columns:1fr;gap:2px}.enrd dd{margin-bottom:8px}}
/* Date e ore all'italiana (campo di testo con icona del calendario) */
input[data-it]{padding-right:42px;background:var(--white) no-repeat right 11px center/20px 20px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");cursor:text;font-variant-numeric:tabular-nums}
input[data-it=time]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E")}
.itpick{position:absolute;width:1px;height:1px;opacity:0;border:0;padding:0;margin:0;pointer-events:none}
/* Moduli */
.mods{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.modl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.modr{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.modr.off{background:transparent;border-style:dashed}
.modr.off h2{color:var(--mute)}
.modt h2{margin:0 0 4px;font-size:21px}
.modt p{margin:0;color:var(--mute);font-size:15px}
.swt{flex:none;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;background:none;border:0;cursor:pointer;font:700 14px/1 var(--f-body);color:var(--ink)}
.swk{width:46px;height:26px;border-radius:13px;background:#C9C3B3;position:relative;transition:background .15s}
.swk::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s}
.swt[aria-checked=true] .swk{background:#1E6B3C}
.swt[aria-checked=true] .swk::after{transform:translateX(20px)}
.swt:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
@media (max-width:640px){.modl{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.swk,.swk::after{transition:none}}
/* Convocati sul sito */
.modal .mh{margin:6px 0 0;font:800 18px/1.1 var(--f-head);text-transform:uppercase}
.modal .gcall.plain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.modal .gcall.plain li{display:flex;align-items:baseline;gap:8px}
.modal .gcall.plain .gcn{min-width:28px;text-align:right;font-weight:700;color:var(--mute)}
.modal .gcall.plain li{align-items:flex-start}
.modal .gcall.plain .gcw{display:flex;flex-direction:column;gap:1px;min-width:0}
.modal .gcall.plain .gcw .ro{font-size:14px}
/* Crono: associazione delle colonne */
.crcl2{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--line)}
.crc{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:4px 14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.crc.off .crch b{color:var(--mute);font-weight:600}
.crch{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.crcl{min-width:26px;height:26px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:4px;font:700 13px/1 var(--f-body);color:var(--mute)}
.crcx{grid-column:1;font-size:14px;overflow-wrap:anywhere}
.crc>select,.crcper{grid-column:2;grid-row:1/span 2}
.crc select{width:100%;height:44px;border:2px solid var(--ink);border-radius:2px;padding:0 8px;background:var(--white)}
.crcper{display:flex;flex-direction:column;gap:6px}
.crcs{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px;align-items:center;font-size:13px;font-weight:600}
.crsh{margin:16px 0 0;font:800 18px/1.1 var(--f-head);text-transform:uppercase}
.crcsum{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
@media (max-width:640px){.crc{grid-template-columns:1fr}.crc>select,.crcper{grid-column:1;grid-row:auto}.crcs{grid-template-columns:1fr}}
.crc{align-items:start}
.crc .crch{min-height:44px}

/* ---------- firma del prodotto ---------- */
.credit{margin:0;font-size:12px;line-height:1.4;color:var(--mute);text-align:center}
.credit b{font-weight:600;color:inherit}
.auth-credit{margin-top:22px;opacity:.85}
.altro-credit{margin:28px 0 8px}
.side-word{text-align:right}
.side-word small{display:block;margin-top:4px;font:500 10.5px/1.2 var(--f-body);text-transform:none;letter-spacing:0;opacity:.9}

/* ---------- salute: copia su Drive e ripristino ---------- */
.drvsteps{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:14px}
.drvstep{padding:12px 14px;border:1px solid var(--line);border-radius:10px}
.drvstep p{margin:4px 0 0;color:var(--mute)}
.drvstep .acts{margin-top:10px}
.drvstep form{margin-top:10px}
.salute .sl .acts{margin-top:8px}
.salute .slist .sl > span:last-child{min-width:0}
.pt.rst{width:100%;border-collapse:collapse;margin:8px 0}
.pt.rst th,.pt.rst td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left}
.pt.rst .num{text-align:right;width:auto}
.btn.danger{background:#B3261E;border-color:#B3261E;color:#fff}
.btn.danger:disabled{opacity:.6}
.salute label.btn{cursor:pointer}
.slist .sl-acts{display:flex;gap:8px;flex:none;align-items:center}

/* presenze: tocco subito, invio in coda */
.prow.pending .pseg{opacity:.85}
.prow.pending .pb[aria-pressed=true]{box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)}
.pwait{display:block;font-size:12px;font-weight:600;color:#8A5300}
.pnet{margin:8px 16px 0}

/* registro modifiche: filtri */
.regf{display:grid;gap:10px}
.regf input[type=search]{width:100%}
.regf2{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.regf2 select{min-height:40px}
.regd{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--mute)}
.regf3{display:flex;align-items:center;gap:10px}
.regf3 .grow{flex:1}
.regch{margin-top:6px}
.regch summary{cursor:pointer;font-size:13px;font-weight:600}
.regch .pt{width:100%;border-collapse:collapse;margin-top:6px;font-size:13px}
.regch .pt th,.regch .pt td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.feeq{width:100%;margin:4px 0 2px}
.cm-q input{width:100%}

/* importa da Excel */
.imp{display:grid;gap:14px}
.impcols{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.impcols li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,260px);gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.impcols li.on{border-color:var(--ink)}
.impcol{display:flex;flex-direction:column;min-width:0}
.impcol .meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.impcols select{min-height:40px;width:100%}
.impopts{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:12px}
.impopts label{display:flex;align-items:center;gap:6px;font-size:14px}
.impnew{display:inline-flex;align-items:center;gap:6px;margin-left:6px}
.imptab tr.off td{opacity:.45}
.imptab td,.imptab th{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.impmsg{max-width:320px;color:var(--mute)}
@media (max-width:600px){.impcols li{grid-template-columns:1fr}}

/* calendario sul telefono */
.calbox{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.calbox .meta{margin:0 0 8px}
.calist .tbtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.calist .sl{flex-direction:column;align-items:stretch}

/* ---------- conferme discrete (al posto dei riquadri in basso a sinistra) ---------- */
#toasts{position:fixed;left:16px!important;right:16px!important;transform:none;bottom:20px;width:auto!important;max-width:none;z-index:80;display:flex;flex-direction:column;gap:6px;align-items:center!important;pointer-events:none}
@media (max-width:899px){#toasts{bottom:calc(76px + env(safe-area-inset-bottom,0px))}}
body.has-bulk #toasts{bottom:96px}
.toast{pointer-events:auto;display:inline-flex;align-items:center;gap:10px;max-width:460px;width:auto!important;padding:7px 14px;border:0!important;border-radius:999px!important;
  background:rgba(24,24,22,.86);color:#fff;font:500 14px/1.3 var(--f-body);box-shadow:0 2px 10px rgba(0,0,0,.14)!important;animation:tin .18s ease-out both}
.toast.ok{cursor:default}
.toast.ok .tmsg::before{content:'✓';margin-right:7px;color:#9BE3A7;font-weight:700}
.toast .tmsg{flex:1;font-weight:500}
.toast button{min-height:0!important;background:none!important;border:0;padding:2px 4px!important;font:700 14px/1.3 var(--f-body);color:var(--yellow)!important;cursor:pointer;border-radius:4px}
.toast button:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.toast .tx{color:#fff!important;font-size:18px;line-height:1;opacity:.8}
.toast.err{background:rgba(150,28,20,.94)}
.toast.out{opacity:0;transform:translateY(4px);transition:opacity .18s,transform .18s}
@keyframes tin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.toast{animation:none}.toast.out{transition:none}}
@media (min-width:900px){#toasts{left:276px!important}}

/* ---------------------------------------------------------------- Fase 3: obblighi della società */
.ob-sec h2,.ob-tpl h2{margin:0 0 8px}
.ob-list,.rb-list{list-style:none;margin:0;padding:0}
.ob-row,.rb-row{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-top:1px solid var(--bd)}
.ob-row:first-child,.rb-row:first-child{border-top:0;padding-top:4px}
.ob-h,.rb-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.ob-h b,.rb-h b{font-size:16px}
.ob-w,.rb-w{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.ob-n{margin:0;max-width:70ch}
.ob-row .acts,.rb-row .acts{margin-top:2px}
.ob-tl{list-style:none;margin:8px 0 0;padding:0}
.ob-tl li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--bd)}
.ob-tl li>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.ob-hist li{padding:10px 0}
.rb-w .fee-amt{font-size:20px}
.rb-det summary{cursor:pointer;color:var(--mute);font-size:14px}
.rb-det ul{margin:6px 0 0;padding-left:18px;font-size:14px}
.rb-det li{padding:2px 0}
.rb-m{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.rb-qt{width:100%;border-collapse:collapse;font-size:14px}
.rb-qt th,.rb-qt td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--bd)}
@media (max-width:640px){.rb-qt thead{display:none}.rb-qt tr{display:grid;grid-template-columns:1fr auto;padding:8px 0;border-bottom:1px solid var(--bd)}.rb-qt td{border:0;padding:2px 0}}
.legal{max-width:78ch}
.linkbox{display:flex;gap:8px;align-items:center;margin:8px 0}
.linkbox input{flex:1;min-width:0}
.rg-open{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:4px;width:100%;padding:12px 4px;cursor:pointer}
.rg-open:hover,.rg-open:focus-visible{background:#FFFBE6}
.rg-open .cm-t{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rg-item{border-top:1px solid var(--bd);padding:10px 0}
.rg-item:first-child{border-top:0}
.rg-item summary{cursor:pointer;padding:2px 0}
.rg-dl{display:grid;grid-template-columns:minmax(110px,160px) minmax(0,1fr);gap:6px 14px;margin:10px 0}
.rg-dl dt{color:var(--mute);font-weight:600}
.rg-dl dd{margin:0}
@media (max-width:640px){.rg-dl{grid-template-columns:1fr}.rg-dl dd{margin-bottom:6px}}
.rg-pt{width:100%;border-collapse:collapse;font-size:11.5px;margin:6px 0 18px;page-break-inside:auto}
.rg-pt th,.rg-pt td{border:1px solid #bbb;padding:5px 6px;text-align:left;vertical-align:top}
.rg-pt th{background:#f2f0ea}
.rg-pt tr{page-break-inside:avoid}
.doc h2{font-size:15px;margin:18px 0 6px}
.rb-auto{font-size:13px;line-height:1.55;text-align:justify}
.sgp-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 12px}
.sgp-off{margin:10px 0}
.sg-form h2{margin:0 0 6px}
.fee-exempt{font-style:italic}
.rg-open .tag{white-space:normal;text-align:left}
.rb-zero{margin-top:10px}

/* ---------------------------------------------------------------- grafici */
:root{--ch-ok:#3F8F4E;--ch-bad:#C4473A;--ch-warn:#F0CC00;--ch-mute:#D9D4C6;--ch-main:#F0CC00}
.ch-box{margin-bottom:14px}
.ch-box>summary{cursor:pointer;font:700 15px/1.2 var(--f-head);letter-spacing:.04em;text-transform:uppercase;list-style-position:inside}
.ch-body h3{font-size:14px;margin:14px 0 8px;color:var(--ink)}
.ch-body>h3:first-child{margin-top:8px}
.ch-row h3{margin-top:14px}
.ch-o .ch-body>h3:first-child{margin-top:0}
.ch-empty{margin:6px 0}
.ch-h{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ch-h li{display:grid;grid-template-columns:minmax(64px,120px) minmax(0,1fr) 56px;gap:10px;align-items:center;font-size:14px}
.ch-h li.open{cursor:pointer;border-radius:6px}
.ch-h li.open:hover{background:#FFFBE6}
.ch-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-t{height:14px;background:var(--soft);border-radius:4px;overflow:hidden}
.ch-t i{display:block;height:100%;background:var(--ch-main);border-radius:4px}
.ch-t i.low{background:var(--ch-bad)}
.ch-v{text-align:right;font-variant-numeric:tabular-nums}
.ch-c{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:4px;overflow-x:auto}
.ch-col{flex:1 1 0;min-width:28px;display:flex;flex-direction:column;align-items:center;height:100%;gap:3px}
.ch-cv{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.ch-bar{flex:1;width:100%;max-width:42px;display:flex;align-items:flex-end;background:var(--soft);border-radius:4px 4px 0 0}
.ch-bar i{display:block;width:100%;background:var(--ch-main);border-radius:4px 4px 0 0}
.ch-bar i.low{background:var(--ch-bad)}
.ch-col.none .ch-cv{color:var(--mute)}
.ch-cl{font-size:12px;color:var(--mute);white-space:nowrap}
.ch-s{display:flex;flex-direction:column;gap:6px}
.ch-st{display:flex;height:16px;border-radius:5px;overflow:hidden;background:var(--soft)}
.ch-st i,.ch-leg i{display:block}
.ch-st i+i{border-left:2px solid var(--surface)}
.ch-leg{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--mute)}
.ch-leg li{display:flex;align-items:center;gap:6px}
.ch-leg i{width:10px;height:10px;border-radius:3px}
.ch-leg b{color:var(--ink)}
.ch-st i.ok,.ch-leg i.ok{background:var(--ch-ok)}
.ch-st i.bad,.ch-leg i.bad{background:var(--ch-bad)}
.ch-st i.warn,.ch-leg i.warn{background:var(--ch-warn)}
.ch-st i.mute,.ch-leg i.mute{background:var(--ch-mute)}
.ch-st i.ink,.ch-leg i.ink{background:var(--ink)}
.ch-st i.yel,.ch-leg i.yel{background:var(--ch-main)}
.ch-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 24px}
.ch-team{padding:6px 0 10px;border-top:1px solid var(--bd)}
.ch-team:first-child{border-top:0}
.ch-g{display:flex;align-items:flex-end;gap:6px;height:110px;margin-top:8px;overflow-x:auto}
.ch-gm{flex:1 1 0;min-width:22px;max-width:40px;display:flex;flex-direction:column;align-items:center;height:100%;gap:3px}
.ch-gb{flex:1;width:100%;display:flex;align-items:flex-end;gap:2px}
.ch-gb i{flex:1;display:block;border-radius:3px 3px 0 0}
.ch-gb i.us{background:var(--ch-main)}
.ch-gb i.them{background:var(--ch-mute)}
.ch-gr{font:700 11px/1 var(--f-body);padding:3px 0;width:100%;text-align:center;border-radius:3px}
.ch-gr.w{background:#EEF6EC;color:#24532A}.ch-gr.l{background:#FDECEA;color:#8E1B12}.ch-gr.d{background:var(--soft);color:var(--mute)}
.ch-turn{display:flex;flex-direction:column;gap:4px;padding:8px 4px;border-top:1px solid var(--bd);cursor:pointer;font-size:14px}
.ch-turn:hover{background:#FFFBE6}
.ch-o .ch-c{height:110px}
@media (max-width:640px){.ch-h li{grid-template-columns:minmax(56px,90px) minmax(0,1fr) 48px}}

/* ---------------------------------------------------------------- guida */
.helpb{width:34px;height:34px;padding:0;border-radius:999px;font:800 16px/1 var(--f-head);flex:0 0 auto}
.head .helpb{margin-left:auto}
.head .grow ~ .helpb{margin-left:0}
.helprow{display:flex;justify-content:flex-end;margin-bottom:8px}
.hp-p{margin:0 0 10px;color:var(--mute)}
.hp-s{margin:0 0 10px;padding-left:22px;display:flex;flex-direction:column;gap:8px}
.hp-s li{padding-left:4px;line-height:1.45}
.hp-k{margin:6px 0 0;padding:10px 12px 10px 28px;background:var(--soft);border-radius:var(--r-sm);display:flex;flex-direction:column;gap:6px;font-size:14px}
.hp-words dl{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr);gap:8px 16px;margin:8px 0 0}
.hp-words dt{font-weight:700}
.hp-words dd{margin:0}
@media (max-width:640px){.hp-words dl{grid-template-columns:1fr}.hp-words dd{margin-bottom:6px}}
.hp-g h2{margin:22px 0 10px}
.hp-item{margin-bottom:10px}
.hp-item summary{cursor:pointer;line-height:1.4}
.hp-item[open] summary{margin-bottom:10px}

.mtest{margin-top:14px;padding-top:12px;border-top:1px solid var(--bd)}

/* ---------- testi delle email ---------- */
.etlist{list-style:none;margin:0;padding:0}
.etlist li+li{border-top:1px solid var(--bd)}
.etlist a{display:flex;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;min-height:64px}
.etlist a:hover{background:var(--soft)}
.ett{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.ett b{font-size:17px}
.ett small{color:var(--mute);font-size:14px}
.etlist .chev{font-size:24px;color:var(--mute);line-height:1}
.etgrid{display:grid;gap:16px;align-items:start}
@media (min-width:1000px){.etgrid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.etprev{position:sticky;top:76px}}
.etedit,.etprev{display:flex;flex-direction:column;gap:12px}
.etedit h2,.etprev h2{margin:0}
.ete .fld textarea#et_body{height:auto;min-height:220px;line-height:1.5;font-size:16px}
.etparts{display:flex;flex-direction:column;gap:8px}
.etph{margin:0;font-size:14px;color:var(--mute)}
.etpill{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;font-size:14px;min-height:44px;padding:6px 10px}
.etpill code{font:600 12px/1.2 ui-monospace,Menlo,monospace;color:var(--mute)}
.etmail{border:1px solid var(--bd);border-radius:var(--r-sm);background:var(--white);padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.etrow{display:flex;gap:8px;align-items:baseline;padding-bottom:10px;border-bottom:1px solid var(--bd)}
.etrow span{color:var(--mute);font-size:14px}
.etps{font-weight:700;overflow-wrap:anywhere}
.etpb{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
.etfoot{white-space:pre-wrap;color:var(--mute);font-size:13px;border-top:1px dashed var(--bd);padding-top:8px}
.ete>.back{font-weight:700;text-decoration:none;display:inline-block;padding:4px 0}

/* ---------- area tecnica: programma della stagione ---------- */
.tprg{display:flex;flex-direction:column;gap:12px}
.tprgnums{display:flex;flex-direction:column;gap:4px}
.tprgbig{margin:0;font-size:17px}
.tprgbig b{font:800 30px/1 var(--f-head);margin-right:4px}
.tprgm>summary{cursor:pointer;padding-top:14px;padding-bottom:14px;text-transform:capitalize}
.tprgm>summary .meta{display:inline;text-transform:none}
.tprgl{list-style:none;margin:0;padding:0 0 6px}
.tprgl li+li{border-top:1px solid var(--bd)}
.tprgr{display:grid;grid-template-columns:58px 92px 1fr auto;gap:8px;align-items:center;width:100%;min-height:52px;padding:8px 16px;background:none;border:0;text-align:left;text-decoration:none;color:inherit;font:inherit}
.tprgr:hover{background:var(--soft)}
.tprgd{font-weight:700;text-transform:capitalize}
.tprgt{color:var(--mute);font-size:14px;font-variant-numeric:tabular-nums}
.tprgw{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}
.tprgn{font-size:14px;overflow-wrap:anywhere}
.tprgp{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.tprgp.todo{color:var(--mute);font-weight:600;font-size:13px}
.tprgr.pausa{color:var(--mute)}
.tprgr.gara{background:#FFFBE6}
.tprgr.gara:hover{background:var(--yellow-soft)}
@media (max-width:520px){.tprgr{grid-template-columns:52px 1fr auto;grid-template-areas:'d w p' 'd t p'}.tprgd{grid-area:d}.tprgw{grid-area:w}.tprgt{grid-area:t}.tprgp{grid-area:p}}
.tprgs td.pct{font-weight:700}
.tprgimp{display:flex;flex-direction:column;gap:6px}
.tprgli{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.tprgli .warn{color:#8A5300}
/* ---- Area tecnica: test fisici (v62) */
.tf .chips{margin-bottom:10px}
.tflist{list-style:none;margin:0;padding:0}
.tflist li + li{border-top:1px solid var(--line)}
.tflist a{display:flex;align-items:center;gap:12px;padding:14px 16px;color:inherit;text-decoration:none;min-height:48px}
.tflist a b{font-size:17px}
.tflist .meta{flex:1}
.tfgo{font-size:22px;color:var(--mute)}
.tf .tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tftable{border-collapse:collapse;width:100%;min-width:620px;font-variant-numeric:tabular-nums}
.tftable th,.tftable td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;vertical-align:top}
.tftable thead th{font-size:13px;color:var(--mute);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}
.tftable th[scope=row],.tftable thead th:first-child{text-align:left}
.tftable th[scope=row] small{display:block;font-weight:600}
.tftable td small.tfd{display:block;font-size:12px;font-weight:700;color:var(--mute)}
.tftable td small.tfd.up{color:#1f6b3a}
.tftable td small.tfd.down{color:#b4321e}
.tftable tr.tot th,.tftable tr.tot td{font-weight:800;border-top:2px solid var(--ink)}
.tftable.means{min-width:540px}
.tfb.da_lavorarci{background:#f7c9bd}
.tfb.accettabile{background:#fde7b0}
.tfb.buono{background:#d4ecd0}
.tfb.ottimo{background:#a9dba3}
.tfb.basso{background:#fbd2a8}
.tfb.alto{background:#fff2a0}
.tflegend span.tfb{padding:1px 6px;border-radius:4px;color:var(--ink)}
.linkish{background:none;border:0;padding:0;font:inherit;font-weight:700;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:left}
.tfentry{list-style:none;margin:12px 0 0;padding:0}
.tfentry li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 0;border-top:1px solid var(--line)}
.tfname{flex:1 1 180px;font-weight:700}
.tfname small{display:block;font-weight:600}
.tfin{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tfin input.tfnum{width:84px;font-size:18px;padding:8px;text-align:center;font-variant-numeric:tabular-nums}
.tfin input.tfnote{width:min(320px,70vw);font-size:16px;padding:8px}
.tfok{min-width:16px;font-weight:800;color:#1f6b3a}
.tfband{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tfband .lab{flex:1 1 180px;font-weight:600}
.tfband input{width:72px;text-align:center}
.tfchartbox h3{margin:8px 0 2px;font-size:15px}
.tfchart{width:100%;max-width:420px;height:auto}
.tfchart .line{fill:none;stroke:var(--ink);stroke-width:2}
.tfchart .dot{fill:var(--yellow);stroke:var(--ink);stroke-width:2}
.tfchart .lbl{font:700 11px/1 sans-serif;fill:var(--ink)}
@media print{.tf .pbtns,.tf .chips{display:none}.tftable{min-width:0}}
/* v63: squadre senza presenze */
.chip.muted:not([aria-pressed=true]){opacity:.55}
/* v65: anagrafica unica — ruoli in società e chi ha smesso */
.proles{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.prole{font-size:.85rem;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid var(--line,#d8d3c4);background:var(--card,#fff)}
.prole.k-atleta{background:var(--ink,#111);color:var(--yellow,#ffd400);border-color:var(--ink,#111)}
.prole.k-socio{border-color:var(--yellow,#ffd400);box-shadow:inset 3px 0 0 var(--yellow,#ffd400)}
.prole.ended{opacity:.6;text-decoration:line-through}
.note.pclosed{margin-bottom:12px}
details.athonly>summary{cursor:pointer;padding:6px 0}
details.athonly[open]>summary{margin-bottom:8px}
.soc-groups{align-items:center}
.impsheet select{margin-left:6px}

/* =====================================================================
   v66 · revisione grafica: testata unica, campi uguali ovunque, numeri, chip, barre
   ===================================================================== */
/* testata: titolo e «?» sulla prima riga, sottotitolo sotto, poi gli strumenti */
.head{align-items:center}
.head>h1{order:0;min-width:0}
.head>.helpb{order:1;margin-left:auto}
.head>.sub{order:2;flex:1 1 100%;min-width:0}
.head>.grow{display:none}
.head>:not(h1):not(.helpb):not(.sub){order:3}
.helpb{width:44px;height:44px;min-height:44px;flex:none}
.helprow{position:relative;height:0;margin:0}
.helprow .helpb{position:absolute;right:0;top:0;z-index:2}
a.back{display:inline-block;font-weight:700;text-decoration:none;margin-bottom:6px}
a.back:hover{text-decoration:underline}
a.btn{text-decoration:none}
/* campi: un solo stile (anche dove era rimasto il bordo nero o quello del browser) */
:where(main,.modal,.sheet) :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]),select,textarea){min-height:44px;padding:8px 12px;border:1px solid var(--bd-strong);border-radius:var(--r-sm);background:var(--white);color:var(--ink);max-width:100%;font:inherit}
:where(main,.modal,.sheet) :where(input,select,textarea):focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px rgba(255,216,0,.5)}
.linkrow select,.prow select,.pslot select,.pslot input,.srow2 select,.enrf select,.enrf textarea,.prgs,.regd input,.regf input,.feeq{border:1px solid var(--bd-strong);border-radius:var(--r-sm)}
.prgs{background:var(--white);color:var(--ink)}
/* numeri in alto: due per riga sul telefono, quattro sul computer */
.sg-nums{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:760px){.sg-nums{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ogrid{align-items:start}
/* righe di chip: spazio sotto e, sul telefono, sfumatura che dice «scorri» */
.chips{margin-bottom:12px}
@media (max-width:759px){.chips:not(.wrap){margin-right:-16px;padding-right:24px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}}
.palestre .chips.sub .chip{min-height:44px}
/* scelta Elenco/Mese come le altre */
.vseg{border:1px solid var(--bd-strong)}
.vseg button[aria-pressed=true]{background:var(--ink);color:var(--white)}
/* pulsanti secondari sul telefono: una riga che scorre, non un muro */
@media (max-width:759px){.pbtns{flex-wrap:nowrap;overflow-x:auto;margin-right:-16px;padding-right:16px;scrollbar-width:none}.pbtns::-webkit-scrollbar{display:none}.pbtns .btn{flex:none}}
/* barra delle azioni di gruppo sul telefono: larga, a due colonne */
@media (max-width:759px){.bulk{left:8px;right:8px;transform:none;max-width:none;bottom:70px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.bulk b{grid-column:1/-1}.bulk select,.bulk .btn{width:100%;min-height:44px;justify-content:center}}
/* scheda persona: il piede fisso solo con Salva e Torna */
@media (max-width:759px){.personpage .sheet .foot{flex-wrap:nowrap;padding:8px 14px}}
.pleave{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
/* nomi nelle liste: come nel resto dell'app */
.row .nm{font:700 18px/1.25 var(--f-body);text-transform:none;letter-spacing:0}
/* consensi: la prima colonna resta ferma quando si scorre */
.ctable th:first-child,.ctable td:first-child{position:sticky;left:0;background:var(--surface);z-index:1;box-shadow:2px 0 0 var(--bd)}
.ctable th:first-child{z-index:2}
.pleavegrp{grid-column:1/-1}
.morewrap{position:relative;display:inline-flex}
.morewrap .moremenu{left:auto;right:0;top:calc(100% + 6px);min-width:240px}
.morewrap .moremenu button{display:block;width:100%;text-align:left}
.head>.grow~.helpb,.head .grow ~ .helpb{margin-left:auto}
.dteam-h{font:800 16px/1.2 var(--f-head);text-transform:uppercase;margin:14px 0 6px}
@media print{.dteam.pbreak{break-before:page;page-break-before:always}}
/* v67: dati da controllare e mappa dell'indirizzo */
.anlist{list-style:none;margin:0;padding:0}
.anlist li{padding:12px 16px;border-top:1px solid var(--bd)}
.anlist li:first-child{border-top:0}
.an1{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-weight:700}
.an2 code{font-size:13px;background:var(--soft);padding:2px 6px;border-radius:var(--r-sm);word-break:break-all}
.an3{margin:4px 0 0;color:var(--mute)}
.note.warn{background:var(--yellow-soft);border-color:var(--yellow-line)}
.pcfwarn{margin:-6px 0 10px}
.geobox{margin:-4px 0 12px}
.osm{position:relative;height:200px;overflow:hidden;border:1px solid var(--bd);border-radius:var(--r-sm);background:#e8e4da;margin-top:6px}
.osm-in{position:absolute;left:50%;top:50%;width:0;height:0}
.osm-in img{position:absolute;width:256px;height:256px;max-width:none;user-select:none}
.osm-pin{position:absolute;left:-11px;top:-30px;width:22px;height:30px;background:var(--ink);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 0 0 3px var(--yellow)}
.osm-attr{position:absolute;right:4px;bottom:4px;font-size:11px;background:rgba(255,255,255,.85);padding:1px 5px;border-radius:3px;color:var(--ink)}
.osm-pin{left:-9px;top:-9px;width:18px;height:18px;border-radius:50%;transform:none;box-shadow:0 0 0 4px var(--yellow),0 2px 8px rgba(0,0,0,.45)}
