/* Gestionale Palestra — i colori. Ogni area ha il suo colore (Oggi blu,
   Iscritti viola, Cassa menta, Listino ambra, Corsi corallo, Schede ciano…):
   lo si ritrova nel menu, nei riquadri dei numeri e nei prodotti, così
   l'occhio sa dove si trova. Le superfici restano chiare e calme: il colore
   sta nei dettagli, non sugli sfondi interi. */
:root{
  --blu:#2448E0; --blu-soft:#E8EDFE; --viola:#6D4AE8; --viola-soft:#EFEAFE;
  --menta:#0C9467; --menta-soft:#DFF5EC; --ambra:#D17F00; --ambra-soft:#FFF1D9;
  --corallo:#E2483D; --corallo-soft:#FDE9E6; --ciano:#0A8BAE; --ciano-soft:#DEF3F9;
  --rosa:#D6407A; --rosa-soft:#FCE8F0;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --blu:#86A0FF; --blu-soft:rgba(134,160,255,.14); --viola:#A98CFF; --viola-soft:rgba(169,140,255,.14);
  --menta:#4FD1A0; --menta-soft:rgba(79,209,160,.13); --ambra:#F5B54A; --ambra-soft:rgba(245,181,74,.13);
  --corallo:#FF8C80; --corallo-soft:rgba(255,140,128,.13); --ciano:#5BCDEB; --ciano-soft:rgba(91,205,235,.13);
  --rosa:#FF8DB8; --rosa-soft:rgba(255,141,184,.13);
}}
:root[data-theme="dark"]{
  --blu:#86A0FF; --blu-soft:rgba(134,160,255,.14); --viola:#A98CFF; --viola-soft:rgba(169,140,255,.14);
  --menta:#4FD1A0; --menta-soft:rgba(79,209,160,.13); --ambra:#F5B54A; --ambra-soft:rgba(245,181,74,.13);
  --corallo:#FF8C80; --corallo-soft:rgba(255,140,128,.13); --ciano:#5BCDEB; --ciano-soft:rgba(91,205,235,.13);
  --rosa:#FF8DB8; --rosa-soft:rgba(255,141,184,.13);
}
[data-colore="blu"], .tile-blu, .prodotto-blu{--c:var(--blu); --cs:var(--blu-soft);}
[data-colore="viola"], .tile-viola, .prodotto-viola{--c:var(--viola); --cs:var(--viola-soft);}
[data-colore="menta"], .tile-menta, .prodotto-menta{--c:var(--menta); --cs:var(--menta-soft);}
[data-colore="ambra"], .tile-ambra, .prodotto-ambra{--c:var(--ambra); --cs:var(--ambra-soft);}
[data-colore="corallo"], .tile-corallo, .prodotto-corallo{--c:var(--corallo); --cs:var(--corallo-soft);}
[data-colore="ciano"], .tile-ciano, .prodotto-ciano{--c:var(--ciano); --cs:var(--ciano-soft);}
[data-colore="rosa"], .tile-rosa, .prodotto-rosa{--c:var(--rosa); --cs:var(--rosa-soft);}

/* ---------- menu: ogni voce col suo colore ---------- */
.nav-btn[data-colore] .ic{width:28px; height:28px; border-radius:8px; align-items:center; justify-content:center; background:color-mix(in srgb, var(--c) 22%, transparent); color:color-mix(in srgb, var(--c) 55%, #fff); transition:background .15s;}
.nav-btn[data-colore] .ic svg{width:16px; height:16px;}
.nav-btn[data-colore]:hover .ic{background:color-mix(in srgb, var(--c) 34%, transparent);}
.nav-btn[data-colore].active{background:color-mix(in srgb, var(--c) 18%, var(--notte));}
.nav-btn[data-colore].active .ic{background:var(--c); color:#fff;}
.nav-btn[data-colore].active::before{background:color-mix(in srgb, var(--c) 70%, #fff);}
.nav-btn{display:flex; align-items:center; gap:10px;}
.nav-btn.con-punto::after{content:''; width:8px; height:8px; border-radius:50%; background:var(--menta); margin-left:auto; box-shadow:0 0 0 3px color-mix(in srgb, var(--menta) 25%, transparent);}

/* ---------- casella d'ingresso in alto ---------- */
.topbar{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
.topbar-left{flex:1; min-width:180px;}
.checkin{flex:0 1 380px;}
.checkin-campo{position:relative; display:block;}
.checkin-campo svg{position:absolute; left:12px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--menta);}
.checkin-campo input{height:42px; padding-left:40px; border-radius:12px; border:1.5px solid color-mix(in srgb, var(--menta) 40%, var(--border)); background:var(--bg-elev); font-size:14.5px;}
.checkin-campo input:focus{border-color:var(--menta); box-shadow:0 0 0 4px color-mix(in srgb, var(--menta) 18%, transparent); outline:none;}
@media (max-width:700px){ .checkin{flex:1 1 100%; order:3;} }

/* ---------- Oggi ---------- */
.hero{position:relative; overflow:hidden; display:flex; gap:24px; align-items:flex-end; justify-content:space-between; flex-wrap:wrap;
  padding:28px 30px; border-radius:20px; margin:8px 0 18px; color:#fff;
  background:radial-gradient(120% 160% at 100% 0%, #6D4AE8 0%, transparent 52%), radial-gradient(90% 120% at 85% 120%, #0A8BAE 0%, transparent 55%), linear-gradient(120deg, #0E1B3D 0%, #1C34A8 70%, #2448E0 100%);}
.hero::after{content:''; position:absolute; right:-60px; top:-80px; width:280px; height:280px; border-radius:50%; border:28px solid rgba(255,255,255,.06);}
.hero h1{font-size:clamp(26px,3.2vw,36px); font-weight:780; letter-spacing:-.015em; margin:2px 0 6px; font-stretch:108%;}
.hero p{margin:0; color:rgba(255,255,255,.82); max-width:520px; font-size:14.5px;}
.hero-data{text-transform:capitalize; font-size:13px; font-weight:600; color:rgba(255,255,255,.7);}
.hero-azioni{display:flex; gap:8px; flex-wrap:wrap; position:relative; z-index:1;}
.btn-chiaro{background:#fff; color:#0E1B3D; border:none; font-weight:650;}
.btn-chiaro:hover{background:#F0F3FF;}
.btn-chiaro-2{background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.25); font-weight:600;}
.btn-chiaro-2:hover{background:rgba(255,255,255,.2);}

.tiles{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; margin:0 0 18px;}
.tiles-3{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));}
.tile{position:relative; display:flex; flex-direction:column; text-align:left; padding:16px 18px 18px; border-radius:16px; background:var(--surface); border:1px solid var(--border); font:inherit; color:inherit; overflow:hidden;}
.tile::before{content:''; position:absolute; inset:0 0 auto 0; height:4px; background:var(--c);}
button.tile{cursor:pointer; transition:transform .12s, box-shadow .12s;}
button.tile:hover{transform:translateY(-1px); box-shadow:0 8px 22px -14px color-mix(in srgb, var(--c) 70%, transparent); border-color:color-mix(in srgb, var(--c) 35%, var(--border));}
.tile .l{font-size:13px; font-weight:620; color:var(--text-2);}
.tile .n{font-size:40px; line-height:1.05; font-weight:680; letter-spacing:-.02em; color:var(--c); margin:8px 0 6px; font-variant-numeric:tabular-nums; font-stretch:80%;}
.tile .n-testo{font-size:30px;}
.tile .s{font-size:12.5px; color:var(--text-muted);}
.tile-metodi .metodo-riga{display:flex; justify-content:space-between; font-size:13.5px; padding:3px 0; border-bottom:1px dashed var(--border);}
.tile-metodi .metodo-riga:last-child{border-bottom:0;}
.tile-metodi .l{margin-bottom:8px;}

.griglia-oggi{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:18px; align-items:start;}
.griglia-oggi .colonna{display:flex; flex-direction:column; gap:0;}
@media (max-width:1000px){ .griglia-oggi{grid-template-columns:1fr;} }
svg.ore{width:100%; height:110px; display:block;}
svg.ore rect{fill:color-mix(in srgb, var(--blu) 30%, transparent);}
svg.ore rect.ora-ora{fill:var(--blu);}
.ore-assi{display:flex; justify-content:space-between; font-size:11.5px; color:var(--text-muted); margin:4px 0 12px;}
.ingressi-lista{display:flex; flex-direction:column; max-height:420px; overflow:auto;}
.ingr{display:flex; align-items:center; gap:12px; padding:9px 8px; border:0; border-top:1px solid var(--border); background:none; text-align:left; font:inherit; color:inherit; cursor:pointer;}
.ingr:hover{background:var(--surface-2);}
.ingr-ora{font-variant-numeric:tabular-nums; color:var(--text-muted); font-size:13px; width:42px;}
.ingr-nome{flex:1; font-weight:600;}
.ingr::before{content:''; width:8px; height:8px; border-radius:50%; background:var(--menta); flex:none;}
.ingr-respinto::before{background:var(--corallo);} .ingr-forzato::before{background:var(--ambra);}
.riga-link{display:flex; align-items:center; gap:10px; width:100%; padding:9px 4px; border:0; border-top:1px solid var(--border); background:none; text-align:left; font:inherit; color:inherit; cursor:pointer;}
.riga-link:first-of-type{border-top:0;}
.riga-link:hover{background:var(--surface-2);}
.riga-nome{font-weight:600; flex:1; min-width:0;}
.riga-sotto{color:var(--text-muted); font-size:13px;}
.empty-state.piccolo{padding:14px 0; font-size:13.5px;}
.card-festa{background:linear-gradient(135deg, var(--rosa-soft), var(--ambra-soft)); border-color:transparent;}

/* ---------- esito dell'ingresso ---------- */
.esito{display:flex; gap:18px; align-items:center; padding:20px; border-radius:16px; margin:-4px 0 14px;}
.esito-icona{width:58px; height:58px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; color:#fff;}
.esito-icona svg{width:30px; height:30px; stroke-width:2.6;}
.esito-ok{background:var(--menta-soft);} .esito-ok .esito-icona{background:var(--menta);}
.esito-no{background:var(--corallo-soft);} .esito-no .esito-icona{background:var(--corallo);}
.esito-warn{background:var(--ambra-soft);} .esito-warn .esito-icona{background:var(--ambra);}
.esito-titolo{font-size:22px; font-weight:780; letter-spacing:-.01em;}
.esito-ok .esito-titolo{color:var(--menta);} .esito-no .esito-titolo{color:var(--corallo);} .esito-warn .esito-titolo{color:var(--ambra);}
.esito-nome{font-size:16px; font-weight:600; margin-top:2px;} .esito-nome span{font-weight:500; color:var(--text-2);}
.esito-motivo{margin-top:4px; font-size:14.5px; color:var(--text-2);}
ul.controlli{list-style:none; padding:0; margin:0 0 6px; display:flex; flex-direction:column; gap:6px;}
ul.controlli li{display:flex; gap:10px; align-items:flex-start; font-size:14px;}
ul.controlli svg{width:18px; height:18px; flex:none; stroke-width:2.4; margin-top:1px;}
ul.controlli .ok svg{color:var(--menta);} ul.controlli .no svg{color:var(--corallo);} ul.controlli .warn svg{color:var(--ambra);}
.avviso.warn{background:var(--ambra-soft); color:color-mix(in srgb, var(--ambra) 80%, var(--text));}
.scegli-chi{max-height:380px; overflow:auto;}

/* ---------- vendita ---------- */
.modal.modal-largo{max-width:980px; width:calc(100vw - 32px);}
.vendita{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr); gap:22px;}
@media (max-width:820px){ .vendita{grid-template-columns:1fr;} }
.vendita-prodotti{max-height:72vh; overflow:auto; padding-right:4px;}
.gp-titolo, .titolo-gruppo{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); margin:14px 0 8px;}
.prodotti{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px;}
.prodotto{display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:12px 12px 11px; border-radius:12px; border:1px solid color-mix(in srgb, var(--c) 28%, var(--border)); background:var(--cs); font:inherit; color:inherit; text-align:left; cursor:pointer; transition:transform .1s;}
.prodotto:hover{transform:translateY(-1px); border-color:var(--c);}
.prodotto:active{transform:scale(.98);}
.prodotto .pn{font-weight:650; font-size:14px;} .prodotto .pd{font-size:12px; color:var(--text-2);}
.prodotto b{color:var(--c); font-size:16px; margin-top:4px;}
.vendita-conto{background:var(--surface-2); border-radius:14px; padding:16px; display:flex; flex-direction:column;}
.scelto{display:flex; align-items:center; gap:10px; padding:6px 0;}
.suggeriti{display:flex; flex-direction:column; border:1px solid var(--border); border-radius:10px; margin-top:4px; background:var(--bg-elev); overflow:hidden;}
.suggeriti button{border:0; background:none; text-align:left; padding:8px 10px; font:inherit; cursor:pointer; color:inherit;}
.suggeriti button:hover{background:var(--accent-soft);} .suggeriti span{color:var(--text-muted);}
.conto-righe{margin:6px 0; min-height:40px;}
.conto-riga{display:flex; align-items:center; gap:10px; padding:7px 0; border-bottom:1px solid var(--border);}
.cr-nome{flex:1; font-weight:600;}
.qta{display:inline-flex; align-items:center; gap:6px;}
.qta button{width:26px; height:26px; border-radius:8px; border:1px solid var(--border-strong); background:var(--bg-elev); cursor:pointer; font-size:15px; line-height:1; color:inherit;}
.conto-vuoto{padding:10px 0;}
.conto-totale{display:flex; justify-content:space-between; align-items:baseline; padding:10px 0 12px; font-weight:650;}
.conto-totale b{font-size:28px; letter-spacing:-.01em; font-variant-numeric:tabular-nums;}
.pagamenti{display:flex; flex-direction:column; gap:10px; margin:6px 0 8px;}
.pagamento{display:flex; flex-direction:column; gap:6px;}
.metodi{display:flex; flex-wrap:wrap; gap:5px;}
.metodi button, .giorni button{border:1px solid var(--border-strong); background:var(--bg-elev); padding:5px 10px; border-radius:99px; font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; color:var(--text-2);}
.metodi button.on, .giorni button.on{background:var(--menta); border-color:var(--menta); color:#fff;}
.metodi-larghi button{padding:7px 13px; font-size:13px;}
.metodi-larghi button.on{background:var(--accent); border-color:var(--accent);}
.importo{display:flex; align-items:center; gap:6px; font-weight:650;}
.importo input{max-width:140px; font-size:16px; font-weight:650;}
.check{display:flex; align-items:center; gap:8px; font-size:14px; margin:8px 0; cursor:pointer;}
.check input{width:18px; height:18px; margin:0; accent-color:var(--accent);}
.rate{display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap;}
.rate .field{margin:0;} .rate-resto{padding-bottom:9px; font-size:14px;}
.btn-grande{padding:12px 20px; font-size:15px;}
.field-inline{display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:8px 0;}
.field-inline label{font-weight:600; font-size:13.5px;}
.field-inline input{width:auto;}
.riga-campi{display:flex; gap:12px; flex-wrap:wrap;}
.riga-campi > .field{flex:1; min-width:140px;}
.fascia{display:flex; gap:12px; align-items:center; flex-wrap:wrap; padding:10px 12px; border-radius:12px; background:var(--surface-2); margin:0 0 12px;}
.fascia .giorni{display:flex; gap:4px;}
.fascia label{display:flex; gap:6px; align-items:center; font-size:13.5px;} .fascia input{width:auto;}

/* ---------- cassa ---------- */
.apri-turno{display:flex; gap:20px; align-items:flex-start;}
.apri-icona{width:64px; height:64px; border-radius:18px; background:var(--menta-soft); color:var(--menta); display:flex; align-items:center; justify-content:center; flex:none;}
.apri-icona svg{width:32px; height:32px;}
.azioni-testa{display:flex; gap:8px;}
.tabella-scorre{overflow-x:auto;}
.content table{width:100%; border-collapse:collapse; font-size:14px;}
.content th{font-size:12px; font-weight:650; color:var(--text-muted); text-align:left; padding:8px 10px; border-bottom:1px solid var(--border);}
.content td{padding:10px; border-bottom:1px solid var(--border); vertical-align:top;}
.content td.num, .content th.num{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap;}
td.neg{color:var(--corallo);}
.sotto{font-size:12.5px; color:var(--text-muted); margin-top:2px;}
.azioni-riga{white-space:nowrap; text-align:right;}
.azioni-riga .btn{margin-left:4px;}
tr.mov-storno td{background:color-mix(in srgb, var(--corallo-soft) 60%, transparent);}

/* ---------- listino ---------- */
.intro-listino{display:flex; gap:18px; align-items:center; justify-content:space-between; flex-wrap:wrap;}
.intro-listino p{margin:4px 0 0; max-width:640px;}
.listino{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; margin-bottom:8px;}
.voce-listino{position:relative; display:flex; flex-direction:column; gap:4px; text-align:left; padding:16px 16px 14px 20px; border-radius:14px; border:1px solid var(--border); background:var(--surface); font:inherit; color:inherit; cursor:pointer; overflow:hidden;}
.voce-listino::before{content:''; position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--c);}
.voce-listino:hover{border-color:color-mix(in srgb, var(--c) 45%, var(--border)); background:color-mix(in srgb, var(--cs) 50%, var(--surface));}
.vl-nome{font-weight:680; font-size:15px;} .vl-prezzo{font-size:24px; font-weight:720; color:var(--c); letter-spacing:-.01em;} .vl-desc{font-size:12.5px; color:var(--text-2);}
.voce-listino.spento{opacity:.55;}

/* ---------- scheda iscritto: abbonamenti ---------- */
.griglia-abb{display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:18px; align-items:start;}
@media (max-width:900px){ .griglia-abb{grid-template-columns:1fr;} }
.verdetto{display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:14px; margin:0 0 14px;}
.verdetto > svg{width:28px; height:28px; flex:none; stroke-width:2.5;}
.verdetto div{flex:1;} .verdetto b{display:block; font-size:15.5px;} .verdetto span{font-size:13.5px; color:var(--text-2);}
.verdetto-ok{background:var(--menta-soft);} .verdetto-ok > svg, .verdetto-ok b{color:var(--menta);}
.verdetto-no{background:var(--corallo-soft);} .verdetto-no > svg, .verdetto-no b{color:var(--corallo);}
.abb{border:1px solid var(--border); border-radius:12px; padding:12px 14px; margin-top:10px; border-left:5px solid var(--border-strong);}
.abb-ok{border-left-color:var(--menta);} .abb-warn{border-left-color:var(--ambra);} .abb-no{border-left-color:var(--corallo);} .abb-blu{border-left-color:var(--blu);} .abb-muted{opacity:.6;}
.abb-testa{display:flex; justify-content:space-between; gap:10px; align-items:center;}
.abb-dati{font-size:13.5px; color:var(--text-2); margin-top:4px;}
.abb-nota{font-size:12.5px; color:var(--text-muted); margin-top:4px;}
.abb-azioni{display:flex; gap:10px; margin-top:6px;}
.link-danger{color:var(--danger);}
.barra{height:6px; border-radius:6px; background:var(--surface-2); margin-top:8px; overflow:hidden;}
.barra span{display:block; height:100%; background:linear-gradient(90deg, var(--viola), var(--blu)); border-radius:6px;}
.tessera-card .tessera-viva{border-radius:16px; padding:16px; color:#fff; background:linear-gradient(135deg, #0E1B3D, #2448E0 60%, #6D4AE8); display:grid; grid-template-columns:1fr 92px; grid-template-rows:auto 1fr; gap:6px 10px; margin-bottom:10px; aspect-ratio:1.586;}
.tv-nome{font-weight:720; font-size:16px;} .tv-num{align-self:end; font-size:20px; font-weight:700; letter-spacing:.08em; font-variant-numeric:tabular-nums;}
.tv-qr{grid-row:1 / 3; grid-column:2; background:#fff; border-radius:10px; padding:4px; align-self:center;}
.tv-qr svg{width:100%; height:auto; display:block;}
.vendita-iscr{padding:12px 0; border-top:1px solid var(--border);} .vendita-iscr:first-of-type{border-top:0;}
.vendita-iscr.spento{opacity:.6;}
.vi-testa{display:flex; justify-content:space-between; gap:10px;} .vi-sotto{font-size:13px; color:var(--text-muted); margin:3px 0 6px;}
.vi-azioni{display:flex; gap:6px; flex-wrap:wrap;}
.pill-muted{background:var(--surface-2); color:var(--text-2);}

/* ---------- stampa: ricevuta e tessera ---------- */
.ricevuta{font-family:var(--font-body); color:#111; font-size:12.5pt; max-width:180mm;}
.ric-testa{display:flex; justify-content:space-between; gap:20px; border-bottom:2px solid #111; padding-bottom:10px; margin-bottom:14px;}
.ric-testa img.logo{max-height:48px; max-width:160px; display:block; margin-bottom:6px;}
.ric-palestra{font-size:10.5pt; line-height:1.4;}
.ric-num{text-align:right;} .ric-num b{font-size:16pt; display:block;}
.ric-storno{border:2px solid #b00; color:#b00; font-weight:700; text-align:center; padding:6px; margin-bottom:12px;}
.ric-a{margin-bottom:12px; line-height:1.5;}
.ric-righe{width:100%; border-collapse:collapse; margin-bottom:10px;}
.ric-righe th, .ric-righe td{border-bottom:1px solid #999; padding:6px 4px; text-align:left;}
.ric-righe .num{text-align:right;}
.ric-totale{text-align:right; font-size:14pt; margin:8px 0;} .ric-totale b{margin-left:10px;}
.ric-pag{font-size:10.5pt; margin-bottom:10px;}
.ric-nota{font-size:9.5pt; color:#333; margin:4px 0; line-height:1.4;}
.ric-firma{display:flex; justify-content:space-between; margin-top:28px; font-size:10.5pt;}
.tessera-stampa{width:85.6mm; height:54mm; border-radius:3mm; border:0.3mm solid #999; padding:4mm; box-sizing:border-box; font-family:var(--font-body); display:flex; flex-direction:column; justify-content:space-between;}
.ts-testa{display:flex; align-items:center; gap:3mm; font-weight:700; font-size:10pt;} .ts-testa img{max-height:9mm; max-width:30mm;}
.ts-corpo{display:flex; justify-content:space-between; align-items:flex-end;}
.ts-nome{font-size:12pt; font-weight:700;} .ts-num{font-size:10pt; letter-spacing:.05em;}
.ts-qr{width:26mm;} .ts-qr svg{width:100%; height:auto; display:block;}
.field.field-inline{flex-direction:row; align-items:center; text-align:left;}
.field.field-inline .hint{flex-basis:100%;}
.hero h1{color:#fff;}
.vendita-prodotti h3{margin-bottom:4px;}
.ora-cella{font-variant-numeric:tabular-nums; color:var(--text-2); white-space:nowrap;}
@media (max-width:600px){ .tiles{grid-template-columns:1fr 1fr; gap:10px;} .tile{padding:12px 12px 14px;} .tile .n{font-size:30px;} .hero{padding:22px 20px;} }
.varco-link{display:flex; gap:14px; align-items:center;} .varco-link .tv-qr{width:120px; flex:none; border:1px solid var(--border);} .varco-link input{flex:1; font-size:12px;}

/* ---------- corsi ---------- */
.cal-barra{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin:6px 0 14px;}
.cal-nav{display:flex; align-items:center; gap:6px;} .cal-nav b{margin-left:8px; font-size:15px;}
.cal-avanti svg{transform:rotate(180deg);}
.calendario{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px;}
@media (max-width:1000px){ .calendario{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));} }
.cal-giorno{background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:10px; display:flex; flex-direction:column; gap:8px; min-height:180px;}
.cal-giorno.oggi{border-color:var(--corallo); box-shadow:0 0 0 2px color-mix(in srgb, var(--corallo) 22%, transparent);}
.cal-giorno.passato{opacity:.62;}
.cal-testa{display:flex; align-items:baseline; justify-content:space-between; padding:2px 4px 4px;} .cal-testa span{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted);} .cal-testa b{font-size:22px; font-weight:700;}
.cal-giorno.oggi .cal-testa b{color:var(--corallo);}
.cal-vuoto{color:var(--text-muted); text-align:center; padding:12px 0;}
.lezione{display:flex; flex-direction:column; gap:2px; text-align:left; padding:9px 10px 9px 12px; border-radius:10px; border:0; border-left:4px solid var(--c); background:var(--cs); font:inherit; color:inherit; cursor:pointer;}
.lezione:hover{filter:brightness(.97);}
.lezione.annullata{opacity:.55; text-decoration:line-through;}
.lz-ora{font-size:12px; font-weight:700; color:var(--c);} .lz-nome{font-weight:680; font-size:14px;} .lz-sotto{font-size:12px; color:var(--text-2);}
.lz-posti{display:flex; align-items:center; gap:6px; font-size:12px; font-weight:650; margin-top:4px; color:var(--text-2);} .lz-posti.pieno{color:var(--corallo);}
.lz-barra{flex:1; height:4px; border-radius:4px; background:color-mix(in srgb, var(--c) 18%, transparent); overflow:hidden;} .lz-barra i{display:block; height:100%; background:var(--c);}
.lz-intesta{display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:16px; margin:-6px -6px 14px; border-radius:14px; background:var(--cs); border-left:6px solid var(--c);}
.lz-intesta h3{margin:2px 0 2px; font-size:20px;} .lz-quando{font-size:13px; font-weight:650; color:var(--c); text-transform:capitalize;} .lz-info{font-size:13px; color:var(--text-2);}
.lz-conta{text-align:right; font-size:15px;} .lz-conta b{font-size:28px; color:var(--c);} .lz-conta span{display:block; font-size:11.5px; color:var(--text-muted);}
.lz-persona{display:flex; justify-content:space-between; align-items:center; padding:4px 0; border-bottom:1px solid var(--border);}
.lz-persona .check{margin:4px 0;}
.lezioni-oggi{display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:8px;}
.pallino{width:14px; height:14px; border-radius:50%; background:var(--c); flex:none; border:0; padding:0;}
.pallino.grande{width:30px; height:30px; cursor:pointer;} .pallino.on{box-shadow:0 0 0 3px var(--bg-elev), 0 0 0 5px var(--c);}
.colori{display:flex; gap:10px;}
.orario{display:flex; gap:8px; align-items:center; margin-bottom:6px;} .orario select{width:auto;} .orario input{width:auto;}

/* ---------- schede ---------- */
.giorni-scheda{display:flex; gap:6px; flex-wrap:wrap; margin:4px 0 12px;}
.giorni-scheda button{border:1px solid var(--border-strong); background:var(--bg-elev); border-radius:10px; padding:7px 14px; font:inherit; font-weight:650; cursor:pointer; color:var(--text-2);}
.giorni-scheda button span{display:inline-block; min-width:20px; margin-left:4px; padding:0 6px; border-radius:99px; background:var(--surface-2); font-size:12px;}
.giorni-scheda button.on{background:var(--ciano); border-color:var(--ciano); color:#fff;} .giorni-scheda button.on span{background:rgba(255,255,255,.25);}
.giorni-scheda .aggiungi{border-style:dashed;}
.tab-esercizi td{padding:5px 4px; vertical-align:middle;} .tab-esercizi input{padding:7px 8px;} .tab-esercizi input.corto{max-width:84px;}
.num-es{color:var(--ciano); font-weight:700; text-align:center; width:24px;}
.riga-azioni{display:flex; justify-content:space-between; align-items:center; margin:8px 0 14px;}
.esercizi{display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px;}
.esercizio{display:flex; flex-direction:column; text-align:left; gap:2px; padding:10px 12px; border-radius:10px; border:1px solid var(--border); border-left:4px solid var(--ciano); background:var(--surface); font:inherit; color:inherit; cursor:pointer;}
.esercizio span{font-size:12.5px; color:var(--text-muted);} .esercizio:hover{background:var(--ciano-soft);}
.scheda-riga{display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px 0; border-top:1px solid var(--border); flex-wrap:wrap;} .scheda-riga:first-of-type{border-top:0;}
.stampa-scheda{font-family:var(--font-body); color:#111;} .stampa-scheda h2{font-size:18pt; margin:6px 0;} .stampa-scheda h3{font-size:13pt; margin:14px 0 4px;}
#sc-da-modello{width:auto;}

/* ---------- promemoria ---------- */
.promemoria{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; margin-bottom:18px;}
.pm{background:var(--surface); border:1px solid var(--border); border-top:4px solid var(--c); border-radius:14px; padding:14px 16px; display:flex; flex-direction:column; gap:6px;}
.pm-testa{display:flex; justify-content:space-between; align-items:center;} .pm-tipo{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--c);}
.pm-nome{font-size:16px; padding:0; text-align:left;} .pm-msg{margin:0; font-size:13.5px; color:var(--text-2); line-height:1.45; background:var(--surface-2); padding:9px 11px; border-radius:10px;}
.btn-wa{background:#25D366; color:#0B3D20; border-color:#25D366; font-weight:650;} .btn-wa:hover{background:#1FBF5B;}
a.btn{text-decoration:none; display:inline-flex; align-items:center;}

/* ---------- statistiche ---------- */
.griglia-stat{display:grid; grid-template-columns:repeat(auto-fit,minmax(420px,1fr)); gap:0 18px;}
@media (max-width:600px){ .griglia-stat{grid-template-columns:1fr;} }
.grafico svg{width:100%; height:150px; display:block;}
.assi{display:flex; font-size:11.5px; color:var(--text-muted); margin-top:4px;} .assi span{flex:1; text-align:center;}
.orizz{display:flex; flex-direction:column; gap:8px;}
.orizz-riga{display:grid; grid-template-columns:130px 1fr 90px; gap:10px; align-items:center; font-size:13.5px;}
.orizz-riga b{text-align:right; font-variant-numeric:tabular-nums;}
.ob{height:10px; border-radius:6px; background:var(--surface-2); overflow:hidden;} .ob i{display:block; height:100%; border-radius:6px;}
.mappa{display:grid; grid-template-columns:34px repeat(17,1fr); gap:3px; align-items:center; font-size:11px; color:var(--text-muted);}
.mappa i{display:block; aspect-ratio:1; border-radius:4px; background:var(--blu);}
.mh{text-align:center;} .mg{font-weight:600;}
@media (min-width:861px){ .sidebar{position:sticky; top:0; height:100vh; overflow-y:auto; align-self:flex-start;} }
.mappa-import{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:8px 14px; margin:10px 0;}
.mappa-import label{display:flex; flex-direction:column; gap:3px; font-size:12.5px; font-weight:600; color:var(--text-2);}
.file-btn{cursor:pointer; display:inline-flex; gap:8px; align-items:center;}
.codice-grande{font-size:22px; letter-spacing:.08em; color:var(--blu);}
.portale-card{margin-top:0;}

/* ---------- guida dentro il programma ---------- */
.guida-app{display:grid; grid-template-columns:250px minmax(0,1fr); gap:24px; align-items:start;}
@media (max-width:900px){ .guida-app{grid-template-columns:1fr;} .gu-indice{position:static !important; max-height:none !important;} }
.gu-indice{position:sticky; top:12px; max-height:calc(100vh - 110px); overflow:auto; display:flex; flex-direction:column; gap:2px; padding-bottom:12px;}
.gu-indice .cerca{margin-bottom:8px;} .gu-indice .cerca input{height:40px;}
.gu-grp{font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ambra); margin:12px 8px 4px;}
.gu-voce{text-align:left; border:0; background:none; padding:6px 10px; border-radius:8px; font:inherit; font-size:14px; color:var(--text-2); cursor:pointer;}
.gu-voce:hover{background:var(--surface-2); color:var(--text);} .gu-voce.on{background:var(--ambra-soft); color:var(--text); font-weight:650;}
.gu-stampa{margin:12px 8px 0; text-align:left;}
.gu-sez{background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:22px 26px; margin-bottom:14px; line-height:1.6; font-size:15px; scroll-margin-top:16px; transition:box-shadow .3s;}
.gu-sez.lampo{box-shadow:0 0 0 3px color-mix(in srgb, var(--ambra) 55%, transparent);}
.gu-sez h2{font-size:21px; margin:0 0 10px; letter-spacing:-.01em;} .gu-sez h2 .num{display:none;}
.gu-sez p{margin:0 0 10px;} .gu-sez .lead{font-size:16.5px; color:var(--text-2);}
.gu-sez ul.plain{padding-left:20px; margin:0 0 10px;} .gu-sez ul.plain li{margin-bottom:6px;}
.gu-sez ol.steps{list-style:none; counter-reset:passo; padding:0; margin:0 0 12px;}
.gu-sez ol.steps li{counter-increment:passo; display:flex; gap:12px; margin-bottom:10px;}
.gu-sez ol.steps li::before{content:counter(passo); flex:none; width:28px; height:28px; border-radius:50%; background:var(--ambra-soft); color:var(--ambra); font-weight:800; display:flex; align-items:center; justify-content:center; font-size:14px;}
.gu-sez ol.steps p{margin:2px 0 0;}
.gu-sez .chip{display:inline-block; background:var(--surface-2); border:1px solid var(--border); border-radius:7px; padding:0 7px; font-size:13px; font-weight:600; white-space:nowrap;}
.gu-sez .callout{border-radius:12px; padding:12px 14px; background:var(--blu-soft); margin:10px 0; font-size:14.5px;}
.gu-sez .callout-label{display:block; font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--blu); margin-bottom:3px;}
.gu-sez table.cmp{width:100%; border-collapse:collapse; font-size:14px; margin:6px 0 12px;} .gu-sez table.cmp th, .gu-sez table.cmp td{border-bottom:1px solid var(--border); padding:8px 10px; text-align:left; vertical-align:top;}
.gu-sez details.faq{border:1px solid var(--border); border-radius:10px; padding:10px 14px; margin-bottom:8px;} .gu-sez details.faq summary{font-weight:650; cursor:pointer;} .gu-sez details.faq p{margin:8px 0 0;}
.gu-sez .nota{font-size:13px; color:var(--text-muted);}
.aiuto{margin-left:4px;} .aiuto svg{color:var(--ambra);}
@media (max-width:900px){ .guida-app{grid-template-columns:minmax(0,1fr);} .gu-indice .gu-voce, .gu-indice .gu-grp, .gu-stampa{display:none;} .gu-sez{padding:16px; font-size:14.5px;} .gu-sez table.cmp{display:block; overflow-x:auto;} }
.gu-sez .chip{white-space:normal;} .gu-sez ol.steps .stxt{min-width:0;} .gu-sez{overflow-wrap:anywhere;}
/* zone e braccialetti */
.zone-chip{display:flex; flex-wrap:wrap; gap:4px; margin-top:4px;} .zone-chip i{font-style:normal; font-size:11.5px; font-weight:650; padding:1px 8px; border-radius:99px; background:var(--cs); color:var(--c);}
.zone-elenco{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:6px;}
.zona{display:inline-flex; align-items:center; gap:6px; padding:6px 10px 6px 12px; border-radius:99px; background:var(--cs); border-left:4px solid var(--c);} .zona b{color:var(--c); font-size:13.5px;}
.cred{display:flex; justify-content:space-between; align-items:center; gap:8px; padding:6px 0; border-bottom:1px solid var(--border);} .cred > span{display:flex; align-items:center; gap:8px;} .cred svg{width:18px; height:18px; color:var(--ciano);} .cred.spento{opacity:.55;}
.cred .sotto{font-family:var(--font-mono); font-size:11.5px;}
#card-varchi select{width:auto; padding:4px 8px;}
.cred-t{display:flex; flex-direction:column; min-width:0;} .cred-t .sotto{overflow-wrap:anywhere;}

/* ---------- analisi ---------- */
.preset{display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 12px;}
.preset button{border:1px solid color-mix(in srgb, var(--viola) 35%, var(--border)); background:var(--viola-soft); color:var(--viola); border-radius:99px; padding:6px 13px; font:inherit; font-size:13px; font-weight:650; cursor:pointer;}
.preset button:hover{background:var(--viola); color:#fff;}
.filtri-an{display:flex; flex-direction:column; gap:10px;}
.fa-gruppo{display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; padding-bottom:10px; border-bottom:1px dashed var(--border);}
.fa-tit{width:96px; font-size:12px; font-weight:750; text-transform:uppercase; letter-spacing:.05em; color:var(--viola);}
.fa-gruppo label{display:inline-flex; gap:6px; align-items:center; font-size:13.5px; color:var(--text-2);}
.fa-gruppo input, .fa-gruppo select{width:auto; padding:6px 8px;} .fa-gruppo .corto, .azioni-testa .corto{width:70px;} .medio{width:150px !important;}
.fa-azioni{display:flex; justify-content:flex-end;}
.tab-an td{white-space:nowrap;} .sotto.neg{color:var(--corallo);}
.imbuto{display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin-bottom:16px;}
.imbuto .tile.on{box-shadow:0 0 0 2px var(--c);} .imbuto .tile .n{font-size:34px;}
.contatto{display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px 0; border-top:1px solid var(--border); flex-wrap:wrap;} .contatto:first-of-type{border-top:0;}
.ct-main{flex:1; min-width:220px;} .ct-main b{margin-right:8px;}
.ob.piccola{height:5px; margin-top:4px; max-width:160px;}
.tab-coorti td.coorte{text-align:center; font-weight:650; background:color-mix(in srgb, var(--menta) calc(var(--p) * 1%), transparent); color:var(--text);}
.tab-coorti td.vuota{color:var(--text-muted); text-align:center;}
.rischio{max-height:420px; overflow:auto;}
.wa-elenco{display:flex; flex-wrap:wrap; gap:6px; max-height:300px; overflow:auto;}
.wa-voce{padding:6px 12px; border-radius:99px; background:#E7F8EE; color:#0B5D2E; text-decoration:none; font-size:13.5px; font-weight:600; border:1px solid #BDE8CF;}
.wa-voce.fatto{background:#25D366; color:#fff;} .wa-voce.fatto::before{content:'✓ ';}
.sconto-riga{display:flex; gap:6px; align-items:center; margin:8px 0 0;} .sconto-riga input{max-width:160px; padding:6px 8px;}

/* ---------- contratti ---------- */
.contratto-riga{display:flex; align-items:center; gap:12px; width:100%; padding:11px 6px; border:0; border-top:1px solid var(--border); background:none; text-align:left; font:inherit; color:inherit; cursor:pointer;}
.contratto-riga:first-of-type{border-top:0;} .contratto-riga:hover{background:var(--surface-2);}
.contratto-riga > svg{width:22px; height:22px; color:var(--ambra); flex:none;} .kr-testo{flex:1; display:flex; flex-direction:column;}
.nuovo-contratto{align-items:flex-end; padding-bottom:12px; border-bottom:1px solid var(--border); margin-bottom:6px;} .nuovo-contratto .field{margin:0;} .nuovo-contratto .btn{margin-bottom:2px;}
.kt-testo{white-space:pre-wrap; font-family:Georgia, 'Times New Roman', serif; font-size:14.5px; line-height:1.6; background:var(--surface-2); border-radius:12px; padding:18px 20px; max-height:46vh; overflow:auto; margin:10px 0 14px;}
.kt-testo.stampa{background:none; max-height:none; overflow:visible; padding:0; font-size:11pt; color:#111;}
.kt-firma img{max-width:340px; height:auto; display:block; border-bottom:1px solid var(--border-strong); margin-bottom:6px; background:#fff;}
.kt-firma-box{border:2px dashed color-mix(in srgb, var(--ambra) 50%, var(--border)); border-radius:14px; padding:12px; background:var(--ambra-soft);}
#kt-pad{width:100%; height:auto; aspect-ratio:900/260; background:#fff; border-radius:10px; touch-action:none; cursor:crosshair; display:block;}
.kt-pad-azioni{display:flex; justify-content:space-between; margin-top:6px;}
.testo-contratto{font-family:Georgia, serif; font-size:14px; line-height:1.55;}
.segnaposto{display:flex; flex-wrap:wrap; gap:5px; margin:-4px 0 12px;} .segnaposto button{border:1px solid var(--border-strong); background:var(--bg-elev); border-radius:7px; padding:3px 8px; font-family:var(--font-mono); font-size:12px; cursor:pointer; color:var(--text-2);} .segnaposto button:hover{border-color:var(--ambra); color:var(--ambra);}

/* 1.3 — listino completo */
.compresi{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px;}
.compreso{font-size:12.5px; padding:3px 10px; border-radius:99px; background:var(--menta-soft); color:var(--text);} .compreso b{color:var(--menta); font-size:13.5px;}
.compreso.finito{background:var(--corallo-soft);} .compreso.finito b{color:var(--corallo);}
.conto-meno .num{color:var(--menta);} .conto-meno .cr-nome{font-size:13px;}
.piu-opzioni{border:1px solid var(--border); border-radius:12px; padding:4px 14px 10px; margin:12px 0 4px;}
.piu-opzioni summary{cursor:pointer; font-weight:650; padding:8px 0; color:var(--blu);}
.compreso-riga{display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-bottom:6px;}
.compreso-riga input[type=number]{width:72px;} .compreso-riga select{flex:1; min-width:110px;}
.elemento{display:flex; gap:8px; align-items:center; padding:6px 0; border-bottom:1px dashed var(--border);} .elemento .hint{flex:1;} .elemento input{width:64px;}
.famiglia{display:flex; flex-wrap:wrap; gap:6px; align-items:center;}
.chip-persona{border:1px solid var(--border); background:var(--viola-soft); color:var(--text); border-radius:99px; padding:4px 12px; font:inherit; font-size:13px; cursor:pointer;}

/* 1.4 — borsellino, magazzino, armadietti */
.saldo-vendita{display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:13.5px; padding:8px 10px; border-radius:10px; background:var(--menta-soft); margin:6px 0;} .saldo-vendita svg{width:18px; height:18px;}
.saldo-vendita.meno{background:var(--corallo-soft);}
.codice-veloce{margin:4px 0 12px;} .codice-veloce input{border-style:dashed;}
.card-borsellino h3{display:flex; align-items:center; gap:6px;} .card-borsellino h3 svg{width:20px; height:20px; color:var(--menta);}
.saldo-grande{font-size:30px; font-weight:800; color:var(--menta); letter-spacing:-.5px; margin:2px 0 8px;} .saldo-grande.meno{color:var(--corallo);}
.bo-movimenti{display:flex; flex-direction:column;} .bo-mov{display:flex; justify-content:space-between; gap:8px; font-size:13px; padding:6px 0; border-top:1px solid var(--border);} .bo-mov span{color:var(--text-muted);}
.piu{color:var(--menta);} .meno{color:var(--corallo);}
.importi-rapidi{display:flex; gap:8px; margin:6px 0 10px;} .importi-rapidi button{flex:1; padding:12px; border-radius:12px; border:1.5px solid var(--border); background:var(--surface, transparent); color:var(--text); font:inherit; font-weight:700; cursor:pointer;} .importi-rapidi button.on{border-color:var(--menta); background:var(--menta-soft);}
.tab-magazzino td.num, .tab-magazzino th.num{text-align:right;} .riga-sotto td{background:var(--corallo-soft);} .azioni-mag{display:flex; gap:6px; justify-content:flex-end; flex-wrap:wrap;}
.griglia-risorse{display:grid; grid-template-columns:repeat(auto-fill, minmax(72px, 1fr)); gap:8px; margin:8px 0;}
.risorsa-btn{display:flex; flex-direction:column; align-items:center; gap:2px; padding:10px 4px; border-radius:10px; border:1.5px solid var(--border); background:var(--menta-soft); color:var(--text); font:inherit; cursor:pointer;} .risorsa-btn.occ{background:var(--ambra-soft); border-color:var(--ambra);} .risorsa-btn.on{border-color:var(--blu);} .risorsa-btn small{font-size:11px; color:var(--text-muted);}
.abb-nota.risorsa{display:flex; align-items:center; gap:6px;} .abb-nota.risorsa svg{width:16px; height:16px;}
.coppia{display:flex; gap:6px;} .coppia input:last-child{width:70px;}
.tab-scroll{overflow-x:auto; max-width:100%;}

/* 1.5 — documenti */
.filtri-doc{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.azioni-documenti{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; padding:14px 18px;}
.ric-riepilogo{width:100%; margin-top:8px; font-size:12px; border-collapse:collapse;} .ric-riepilogo td{padding:3px 6px; border-top:1px solid #ddd;} .ric-riepilogo .num{text-align:right; white-space:nowrap;}
.doc-emessi{display:flex; flex-direction:column; gap:8px; margin:12px 0;} .doc-emesso{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; padding:10px 12px; border:1px solid var(--border); border-radius:12px;}

/* 1.6 — addebiti SEPA */
.piu-opzioni-card summary{cursor:pointer; list-style:revert;} .piu-opzioni-card[open] summary{margin-bottom:12px;}
.campo-inline{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-muted);} .campo-inline input{width:auto;}
.prepara-distinta{display:flex; align-items:center; justify-content:flex-end; gap:14px; flex-wrap:wrap; margin-top:14px; padding-top:12px; border-top:1px solid var(--border);} .prepara-distinta b{font-size:20px;} .prepara-distinta input{width:auto;}
.distinta details summary{cursor:pointer; color:var(--blu); font-weight:600; margin-top:6px;}
.file-btn{cursor:pointer;}
.card-sepa h3{display:flex; align-items:center; gap:6px;} .card-sepa h3 svg{width:20px; height:20px; color:var(--menta);}

/* ---------- 1.7 agenda appuntamenti ---------- */
.ag-titolo{text-transform:capitalize;}
#ag-data{width:auto; padding:6px 8px;}
.ag-card{padding:0; overflow:hidden;}
.ag-scorri{overflow-x:auto; -webkit-overflow-scrolling:touch;}
.ag-griglia{display:grid; grid-template-columns:56px repeat(var(--n), minmax(150px, 1fr)); min-width:calc(56px + var(--n) * 150px);}
.ag-col{border-left:1px solid var(--border);}
.ag-testa{height:50px; box-sizing:border-box; padding:6px 10px; display:flex; flex-direction:column; justify-content:center; border-bottom:1px solid var(--border); background:var(--surface-2); position:sticky; top:0;}
.ag-testa b{display:block; line-height:1.3; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} .ag-testa span{font-size:11.5px; color:var(--text-muted);}
.ag-corpo{position:relative; background:color-mix(in srgb, var(--surface-2) 70%, transparent);}
.ag-ore .ag-corpo{background:none;} .ag-ore span{position:absolute; right:8px; transform:translateY(-50%); font-size:11.5px; color:var(--text-muted); font-variant-numeric:tabular-nums;} .ag-ore span:first-child{transform:none;}
.ag-riga{position:absolute; left:0; right:0; border-top:1px solid var(--border);}
.ag-turno{position:absolute; left:0; right:0; background:var(--surface);}
.ag-slot{position:absolute; left:0; right:0; border:0; background:transparent; cursor:pointer; padding:0;}
.ag-slot:hover, .ag-slot:focus-visible{background:color-mix(in srgb, var(--viola) 12%, transparent); outline:none;}
.ag-app{position:absolute; left:4px; right:4px; z-index:1; display:flex; flex-direction:column; gap:1px; text-align:left; overflow:hidden; padding:5px 8px; border-radius:8px; border:0; border-left:4px solid var(--c); background:var(--cs); font:inherit; font-size:12.5px; color:inherit; cursor:pointer; box-shadow:0 1px 2px rgba(0,0,0,.06);}
.ag-app b{font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} .ag-ora{font-size:11.5px; font-weight:700; color:var(--c);} .ag-serv{color:var(--text-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ag-app.st-fatto{opacity:.6;} .ag-app.st-mancato{opacity:.6; text-decoration:line-through;} .ag-app.st-arrivato{box-shadow:0 0 0 2px var(--c);}
.ag-piede{padding:10px 14px; border-top:1px solid var(--border);}
.ag-stati{display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 4px;}
.an-cliente{display:flex; gap:10px; align-items:baseline; padding:8px 0;}
.an-liberi{display:flex; flex-wrap:wrap; gap:8px; margin:-4px 0 12px;}
.an-liberi .chip{display:flex; flex-direction:column; align-items:flex-start; padding:7px 11px; border-radius:10px; border:1px solid var(--border); background:var(--surface); font:inherit; font-weight:650; font-size:13px; cursor:pointer; color:inherit;}
.an-liberi .chip span{font-weight:400; font-size:11.5px; color:var(--text-2);} .an-liberi .chip.on{border-color:var(--viola); box-shadow:0 0 0 2px color-mix(in srgb, var(--viola) 25%, transparent);}
.sv-gruppo{display:flex; flex-wrap:wrap; gap:4px 14px; align-items:center; padding:8px 10px; margin-bottom:8px; border:1px solid var(--border); border-radius:10px;} .sv-gruppo .sotto{width:100%;}
.lz-ripeti{display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:8px; font-size:13.5px;} .lz-ripeti input[type=date]{width:auto; padding:4px 6px;}
.lz-sost{color:var(--ambra); font-weight:650;} .lz-tardive{margin-top:8px;}

/* ---------- 1.8 CRM, azioni, automazioni ---------- */
.fa-altri{margin-top:6px;} .fa-altri summary{cursor:pointer; font-weight:650; font-size:13.5px; color:var(--text-2); padding:4px 0;}
.preset .lista-salvata{border-color:color-mix(in srgb, var(--ambra) 55%, var(--border)); background:color-mix(in srgb, var(--ambra) 10%, var(--surface));}
.crm-nuovo{padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); margin:10px 0 14px;}
.crm-nuovo .riga-campi{align-items:flex-end;}
.crm-elenco{display:flex; flex-direction:column; gap:8px;}
.crm-riga{padding:9px 12px; border:1px solid var(--border); border-radius:10px; background:var(--surface);}
.crm-riga.att-aperta{border-left:4px solid var(--ambra);} .crm-riga.att-chiusa{border-left:4px solid var(--menta); opacity:.85;}
.crm-testa{display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px;} .crm-testo{margin:5px 0 2px; white-space:pre-wrap;}
.dafare{padding:8px 0; border-bottom:1px solid var(--border); gap:10px; flex-wrap:wrap;} .dafare:last-child{border-bottom:0;}
.dafare .vi-azioni{display:flex; gap:6px; flex-wrap:wrap;}
.email-esempio{border:1px solid var(--border); border-radius:10px; padding:10px 12px; margin:10px 0; background:var(--surface-2);}
.email-esempio pre{white-space:pre-wrap; font:inherit; margin:6px 0 0;}
.au-riga{align-items:center; gap:12px; flex-wrap:wrap;} .au-riga .vi-azioni{display:flex; gap:10px; align-items:center;}
.interruttore{display:inline-flex; gap:6px; align-items:center; font-size:13px; white-space:nowrap;}
.avviso.ok{background:color-mix(in srgb, var(--menta) 14%, var(--surface)); border-color:color-mix(in srgb, var(--menta) 40%, var(--border));}

/* ---------- 1.9 app e chiosco ---------- */
.ra-foto{display:block; max-width:100%; max-height:65vh; margin:8px auto; border-radius:10px; border:1px solid var(--border);}

/* ---------- 2.0 numeri e API ---------- */
.nu-scelte .riga-campi{flex-wrap:wrap;} .nu-scelte .field{min-width:150px; flex:1;}
.tab-numeri th, .tab-numeri td{white-space:nowrap;} .tab-numeri tbody th{font-weight:600; text-align:left;}
.tab-numeri tfoot th, .tab-numeri tfoot td{border-top:2px solid var(--border);}
.nu-cella{background:color-mix(in srgb, var(--viola) calc(var(--p) * 0.28%), transparent);}
.nu-nota{margin-top:10px;}
.wh{border:1px solid var(--border); border-radius:12px; padding:10px 12px; margin-bottom:8px;}
.wh-testa{display:flex; gap:10px; align-items:center; flex-wrap:wrap;} .wh-url{flex:1; min-width:180px; word-break:break-all;}
.wh-log{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px;}
.segreto{display:flex; gap:8px;} .segreto input{flex:1; min-width:0; font-family:ui-monospace,monospace; font-size:13px;}
#card-api table td{vertical-align:top;}
.foglio-numeri table{width:100%; border-collapse:collapse; font-size:11px;} .foglio-numeri th, .foglio-numeri td{border:1px solid #ccc; padding:3px 6px;}

/* ---------- rubrica degli esercizi animati ---------- */
.anim{position:relative; display:block; flex:none; width:100%; aspect-ratio:3/2; border-radius:10px; overflow:hidden; background:#fff; border:1px solid var(--border);}
.anim img, .anim video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.anim.due img:last-child{animation:fase-es 1.6s steps(1) infinite;}
@keyframes fase-es{0%{opacity:0;} 50%{opacity:1;}}
.anim.vuota{display:flex; align-items:center; justify-content:center; background:var(--surface-2); color:var(--text-muted);} .anim.vuota svg{width:28px; height:28px;}
.anim.mini{width:46px; aspect-ratio:3/2; border-radius:6px;} .anim.mini.vuota svg{width:16px; height:16px;}
.anim.grande{width:260px; max-width:100%;} .anim.grande img, .anim.grande video{object-fit:contain;}
.esercizi.con-anim{grid-template-columns:repeat(auto-fill, minmax(170px, 1fr));}
.esercizi.con-anim .esercizio{display:flex; flex-direction:column; gap:4px; align-items:stretch; text-align:left;}
.cella-es{display:flex; gap:8px; align-items:center; min-width:220px;} .cella-es input{flex:1; min-width:0;}
.es-anim-box{display:flex; gap:16px; align-items:flex-start; flex-wrap:wrap; margin-bottom:6px;} .es-anim-scelte{flex:1; min-width:220px;}
.rb-filtri{display:flex; flex-direction:column; gap:8px; margin-bottom:10px;}
.rb-elenco{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:8px; max-height:52vh; overflow:auto; padding:2px;}
.rb-voce{display:flex; gap:10px; align-items:center; padding:6px; border:1px solid var(--border); border-radius:10px; cursor:pointer;} .rb-voce .anim{width:72px;}
.rb-voce.gia{opacity:.6; cursor:default;} .rb-testo{flex:1; min-width:0; display:flex; flex-direction:column;} .rb-testo span{font-size:12.5px; color:var(--text-muted);}
.rb-voce input{width:20px; height:20px; flex:none;}
.stampa-anim{width:64px; height:43px; object-fit:cover; float:left; margin-right:8px; border:1px solid #ddd; border-radius:4px;} .stampa-come{font-size:9px; color:#555; margin-top:2px;}
@media (prefers-reduced-motion: reduce){ .anim.due img:last-child{animation:none;} }
