/* Gestionale ASD Tennis — stili (COD-08: spostati da index.html senza modifiche) */
/* Pulizia 08/10 (2026-10-08.2, patch_49): tolte le regole del vecchio aspetto che nessuna pagina usa più. */
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
/* ═══════════════════════════════════════════════════════════════
   PALETTE OKLCH «Campo vivo» (Fase 1, 2026-10-05.5)
   - Predefinita: A · TERRA VIVA (nessun data-palette)
   - data-palette="pallina" → B · PALLINA (giallo pallina come evidenza)
   - data-theme="dark"      → modalità scura
   Token nuovi: --brand/--brand2/--brand-ink (blocchi scuri con testo chiaro),
   --accent (terra rossa), --hi (evidenza), --live (dal vivo).
   --forest resta il colore dei TESTI verdi (in scuro diventa chiaro): mai come sfondo dei blocchi.
   ═══════════════════════════════════════════════════════════════ */
:root{
  /* CAMPO VIVO — blocchi, accento, evidenza */
  --brand:         oklch(0.37 0.06 154);   /* blocchi scuri: saldo, «oggi sui campi», card verdi */
  --brand2:        oklch(0.47 0.07 150);
  --brand-ink:     oklch(0.965 0.022 88);  /* testo sui blocchi */
  --brand-ink-2:   oklch(0.965 0.022 88 / .75);
  --brand-ink-3:   oklch(0.965 0.022 88 / .58);
  --accent:        oklch(0.57 0.13 38);    /* terra rossa, testo bianco */
  --accent-ink:    #fff;
  --hi:            oklch(0.78 0.1 58);
  --live:          oklch(0.67 0.14 38);
  --pos-on-brand:  oklch(0.86 0.12 155);   /* entrate scritte sui blocchi scuri */
  --neg-on-brand:  oklch(0.82 0.09 28);    /* uscite scritte sui blocchi scuri */

  /* PALETTE PRINCIPALE */
  --forest:        oklch(0.32 0.052 152);  /* testi verdi (titoli, valori) */
  --forest-mid:    oklch(0.42 0.06 150);
  --forest-light:  oklch(0.55 0.075 145);
  --moss:          oklch(0.52 0.075 140);

  --clay:          oklch(0.57 0.13 38);    /* = --accent */
  --clay-light:    oklch(0.63 0.13 40);
  --clay-pale:     oklch(0.955 0.022 45);
  --clay-deep:     oklch(0.48 0.13 35);

  --sand:          oklch(0.958 0.016 84);  /* sfondo */
  --sand-mid:      oklch(0.928 0.019 80);  /* superficie 2 */
  --sand-dark:     oklch(0.875 0.022 78);  /* bordi */
  --linen:         oklch(0.993 0.006 85);  /* superficie (card) */

  --gold:          oklch(0.74 0.1 62);
  --gold-pale:     oklch(0.955 0.045 75);

  /* ALIAS SEMANTICI (compat. con classi esistenti) */
  --navy:          var(--forest);
  --navy-mid:      var(--forest-mid);
  --clay-orig:     var(--clay);
  --green:         oklch(0.52 0.13 150);
  --green-bg:      oklch(0.94 0.045 150);
  --red:           oklch(0.54 0.19 28);
  --red-bg:        oklch(0.95 0.035 28);
  --amber:         oklch(0.6 0.14 68);
  --amber-bg:      oklch(0.95 0.055 80);
  --amber-ink:     oklch(0.5 0.12 62);     /* testo ambra leggibile su sfondo chiaro */
  --blue:          oklch(0.5 0.12 245);
  --blue-bg:       oklch(0.94 0.035 245);
  --purple:        oklch(0.5 0.13 290);
  --purple-bg:     oklch(0.94 0.04 290);

  /* LAYOUT */
  --bg:            var(--sand);
  --surface:       var(--linen);
  --surface2:      var(--sand-mid);
  --border:        var(--sand-dark);
  --border-soft:   oklch(0.9 0.02 80);
  --text:          oklch(0.21 0.035 152);
  --text2:         oklch(0.4 0.03 150);
  --text3:         oklch(0.5 0.022 120);

  /* TIPOGRAFIA */
  --font:'Plus Jakarta Sans',system-ui,sans-serif;
  --font-ui:'Plus Jakarta Sans',system-ui,sans-serif;
  --mono:'JetBrains Mono',monospace;
  --radius:var(--r);
  /* Campo vivo · Fase 2: angoli e risposta al tocco (telefono; il computer è più sobrio, vedi @media sotto) */
  --r:20px;
  --r-sm:13px;
  --k:1;                                   /* moltiplicatore delle durate */
  --spring:cubic-bezier(.34,1.56,.64,1);  /* rimbalzo */
  --out:cubic-bezier(.16,1,.3,1);
  --shadow:0 1px 3px oklch(0.32 0.052 152 / .07), 0 4px 14px oklch(0.32 0.052 152 / .06);
  --sidebar-w:248px;
  --bottomnav-h:64px;
  /* Blocchi scuri FISSI (meteo, saldo, hero): seguono --brand, restano scuri anche nel tema scuro */
  --card-green:     var(--brand);
  --card-green-mid: var(--brand2);
  --card-green-ink: var(--brand-ink);
  /* Font display per titoli editoriali (Newsreader primario, Instrument Serif fallback) */
  --font-display: 'Newsreader', 'Instrument Serif', 'Iowan Old Style', Georgia, serif;
  --ink-3: oklch(0.5 0.022 120);   /* testo terziario - mono labels */
  --line-2: oklch(0.9 0.02 80);    /* linea più chiara per dividers interni */
}

/* ─── DARK MODE (A · Terra viva) ─── */
[data-theme="dark"] {
  --brand:         oklch(0.34 0.055 155);
  --brand2:        oklch(0.43 0.066 150);
  --accent:        oklch(0.66 0.13 40);
  --hi:            oklch(0.8 0.1 58);
  --live:          oklch(0.73 0.14 40);

  --forest:        oklch(0.85 0.04 152);
  --forest-mid:    oklch(0.72 0.045 152);
  --forest-light:  oklch(0.65 0.06 145);
  --moss:          oklch(0.6 0.07 145);

  --clay:          oklch(0.66 0.13 40);
  --clay-light:    oklch(0.72 0.12 40);
  --clay-pale:     oklch(0.3 0.04 40);
  --clay-deep:     oklch(0.55 0.13 35);

  --sand:          oklch(0.18 0.02 155);
  --sand-mid:      oklch(0.27 0.025 155);
  --sand-dark:     oklch(0.335 0.025 155);
  --linen:         oklch(0.225 0.022 155);

  --gold:          oklch(0.8 0.1 62);
  --gold-pale:     oklch(0.32 0.05 70);

  --green:         oklch(0.76 0.15 150);
  --green-bg:      oklch(0.3 0.05 150);
  --red:           oklch(0.72 0.17 28);
  --red-bg:        oklch(0.3 0.06 28);
  --amber:         oklch(0.82 0.14 80);
  --amber-bg:      oklch(0.32 0.06 75);
  --amber-ink:     oklch(0.85 0.12 75);
  --blue:          oklch(0.76 0.11 240);
  --blue-bg:       oklch(0.3 0.05 240);
  --purple:        oklch(0.7 0.09 290);
  --purple-bg:     oklch(0.3 0.05 290);

  --surface2:      oklch(0.27 0.025 155);
  --border:        oklch(0.335 0.025 155);
  --border-soft:   oklch(0.3 0.022 155);
  --text:          oklch(0.96 0.012 90);
  --text2:         oklch(0.8 0.018 95);
  --text3:         oklch(0.66 0.02 110);
  --ink-3:         oklch(0.66 0.02 110);
  --line-2:        oklch(0.3 0.022 155);
}

/* ─── B · PALLINA (chiaro) ─── stesse proprietà del blocco scuro qui sotto, che deve sovrascriverle tutte */
[data-palette="pallina"] {
  --brand:         oklch(0.32 0.046 156);
  --brand2:        oklch(0.42 0.062 152);
  --brand-ink:     oklch(0.97 0.018 110);
  --brand-ink-2:   oklch(0.97 0.018 110 / .75);
  --brand-ink-3:   oklch(0.97 0.018 110 / .58);
  --hi:            oklch(0.9 0.14 112);
  --live:          oklch(0.86 0.15 116);
  --sand:          oklch(0.96 0.011 110);
  --sand-mid:      oklch(0.928 0.016 115);
  --sand-dark:     oklch(0.872 0.02 115);
  --linen:         oklch(0.995 0.004 110);
  --border-soft:   oklch(0.9 0.018 115);
  --line-2:        oklch(0.9 0.018 115);
  --text:          oklch(0.2 0.03 155);
  --text2:         oklch(0.4 0.028 155);
  --text3:         oklch(0.5 0.02 140);
  --ink-3:         oklch(0.5 0.02 140);
}
/* ─── B · PALLINA (scuro) ─── */
[data-palette="pallina"][data-theme="dark"] {
  --brand:         oklch(0.3 0.045 155);
  --brand2:        oklch(0.39 0.058 152);
  --brand-ink:     oklch(0.97 0.018 110);
  --brand-ink-2:   oklch(0.97 0.018 110 / .75);
  --brand-ink-3:   oklch(0.97 0.018 110 / .58);
  --hi:            oklch(0.9 0.14 112);
  --live:          oklch(0.88 0.15 116);
  --sand:          oklch(0.16 0.012 150);
  --sand-mid:      oklch(0.26 0.018 150);
  --sand-dark:     oklch(0.325 0.02 150);
  --linen:         oklch(0.21 0.015 150);
  --border-soft:   oklch(0.29 0.017 150);
  --line-2:        oklch(0.29 0.017 150);
  --text:          oklch(0.97 0.01 110);
  --text2:         oklch(0.8 0.016 115);
  --text3:         oklch(0.66 0.02 120);
  --ink-3:         oklch(0.66 0.02 120);
  --surface2:      oklch(0.26 0.018 150);
  --border:        oklch(0.325 0.02 150);
}
@media(min-width:768px){:root{--r:16px;--r-sm:11px;--k:.6;--spring:cubic-bezier(.2,.8,.2,1)}}
@media(prefers-reduced-motion:reduce){:root{--k:0}}
html,body{height:100%;overflow:hidden}
body{color:var(--text)}
#app{display:flex;height:100vh;overflow:hidden}
#sidebar{display:flex}
/* nav-item base — stilizzato nel blocco sidebar design più in basso */
.nav-item i{font-size:17px;line-height:1;}
.nav-item.active i{}
#main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
#menu-toggle{width:36px;height:36px;border-radius:9px;border:none;background:var(--surface2);cursor:pointer;align-items:center;justify-content:center;font-size:20px;color:var(--text2);flex-shrink:0}
#content{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px;-webkit-overflow-scrolling:touch}
#bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:var(--bottomnav-h);z-index:200}
.bnav-item{gap:3px;}
.bnav-item i{font-size:22px;display:block}
#drawer.open{transform:translateX(0)}
#drawer-overlay.open{opacity:1}
#loader{position:fixed;inset:0;background:var(--brand);display:flex;flex-direction:column;align-items:center;justify-content:center;}
#loader.hidden{opacity:0;pointer-events:none}
.loader-icon{font-size:48px;margin-bottom:16px;animation:pulse 1.5s infinite}
.loader-text{color:rgba(255,255,255,.7);font-size:14px;font-weight:500}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
@keyframes loadanim{0%{width:0;margin-left:0}50%{width:60%;margin-left:20%}100%{width:0;margin-left:100%}}
@keyframes spin{to{transform:rotate(360deg)}}
#toast{position:fixed;bottom:calc(var(--bottomnav-h) + 24px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:var(--brand);color:var(--brand-ink);font-size:13px;z-index:5000;opacity:0;pointer-events:none;white-space:normal;max-width:calc(100vw - 32px);width:max-content;line-height:1.4;box-shadow:0 4px 20px rgba(0,0,0,.3)}
.card+.card{margin-top:14px}
/* Finanza fase B (2026-10-02.2): sul telefono entrate e uscite una sotto l'altra, riga intera per ogni movimento; schede senza icone */
@media(max-width:480px){.fin-schede i{display:none}}
/* C5 (2026-10-05.4): con 5 schede (Budget) sul telefono le etichette devono entrare tutte */
@media(max-width:480px){.fin-schede{gap:4px!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}.fin-schede button{flex:1 1 auto!important;font-size:12px!important;padding:0 6px!important;letter-spacing:-0.01em}}
/* Navigazione 2026-10-02.3: schede delle sezioni (Soci, Corsi, Struttura, Segreteria); sul telefono scorrono di lato */
.sez-schede{display:flex;margin-bottom:16px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sez-schede::-webkit-scrollbar{display:none}
.sez-schede button{cursor:pointer;}
.sez-schede button.active{font-weight:700;}
/* Pannello «Altro» della barra in basso */
.altro-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:900;display:none;align-items:flex-end;justify-content:center}
.altro-overlay.open{display:flex}
.altro-sheet{background:var(--surface);width:100%;max-width:520px;padding:12px 14px calc(18px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 30px rgba(0,0,0,.2)}
.altro-head{display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:700;color:var(--text);margin:0 2px 10px}
.altro-griglia{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.altro-tile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;background:var(--surface2);color:var(--text);font-family:var(--font-ui);font-size:12.5px;font-weight:600;cursor:pointer;min-width:0}
.altro-tile i{font-size:24px;color:var(--clay)}
.altro-tile span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.altro-tile.active{border-color:var(--clay);}
/* Sul telefono niente hamburger: si naviga con la barra in basso e «Altro» */
#menu-toggle{display:none!important}
.tbl{width:100%;border-collapse:collapse;min-width:560px}
.tbl th{padding:10px 14px}
.tbl td{padding:11px 14px;color:var(--text)}
.tbl tr:last-child td{border-bottom:none}

/* SIDEBAR CAMPI: nascosta di default sempre (sia portrait che desktop) */
#campi-sidebar-panel{
  visibility:hidden;
}
#campi-sidebar-overlay{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);
  z-index:179;
}

/* LANDSCAPE MOBILE: attiva il toggle e abilita il pannello */
@media(max-height:500px) and (orientation:landscape){
  #campi-sidebar-panel{visibility:visible}
  #campi-sidebar-panel.open{transform:translateX(0)}
  #campi-sidebar-overlay.open{display:block}
}
.form-group{margin-bottom:14px}
.form-row{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:480px){.form-row{grid-template-columns:1fr 1fr}}
input,select,textarea{width:100%;padding:11px 13px;}
input[type=checkbox]{width:18px!important;height:18px!important;padding:0!important;border-radius:4px!important;cursor:pointer;flex-shrink:0;-webkit-appearance:checkbox!important;appearance:checkbox!important;accent-color:var(--forest)}
input[type=color]{width:100%;height:42px;padding:2px;cursor:pointer;border-radius:8px}
textarea{resize:vertical;min-height:80px;line-height:1.5}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%2394a3b8' d='M7 10l5 5 5-5H7z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}
.btn{padding:10px 18px;border:1.5px solid transparent;}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-ghost{background:transparent;color:var(--text2);border-color:transparent}
.btn-danger{background:var(--red-bg);color:var(--red);border-color:var(--red)}
.btn-sm{padding:6px 12px;font-size:12px;}

.alert{padding:13px 15px;border-radius:10px;font-size:13px;margin-bottom:14px;display:flex;align-items:flex-start;gap:10px;border:1px solid;line-height:1.5}
.alert i{font-size:18px;flex-shrink:0;margin-top:1px}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;z-index:1000;padding:0}
@media(min-width:600px){.modal-overlay{align-items:center;padding:20px}}
.modal-handle{width:40px;height:4px;border-radius:2px;background:var(--border);margin:10px auto 0;flex-shrink:0}
@media(min-width:600px){.modal-handle{display:none}}
.modal-body{padding:18px 20px;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}
.modal-footer .btn{flex:1}
/* SLOT GRID */
.slot-time{padding:10px 8px;font-size:11px;font-weight:700;color:var(--text3);text-align:center;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface2)}
/* CASSA BAR */
::-webkit-scrollbar{width:4px;height:4px}
@media(max-width:767px){
  #sidebar{display:none}
  #menu-toggle{display:flex}
  /* Bottom nav: torna fissa in basso, il content ha padding-bottom adeguato */
  #bottom-nav{
    display:block;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    top:auto;
    height:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px));
    padding-bottom:env(safe-area-inset-bottom,0px);
    z-index:200;
    border-top:1px solid var(--border);
    border-bottom:none;
    box-shadow:0 -4px 20px rgba(0,0,0,.08);
  }
  .bnav-items{height:var(--bottomnav-h);}
  .bnav-item{font-size:10px;gap:2px;letter-spacing:0;}
  .bnav-item i{font-size:19px;}
  /* Padding-bottom = altezza nav + safe area + margine extra: niente viene coperto */
  #content{
    padding:12px 12px 0;
    padding-bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px) + 56px);
    scroll-padding-bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px) + 16px);
  }
  #content > *:last-child{margin-bottom:0}
  /* Dashboard mobile: hero = benvenuto + saldo affiancati; sotto riepilogo poi meteo */
  /* stats-row: 2 colonne su mobile (saldo è nel hero) */
  .stats-row{grid-template-columns:1fr 1fr;gap:10px;}
  /* hero: 2 colonne affiancate su mobile (benvenuto + saldo) */
  /* dash-grid: colonna singola su mobile */
}
/* LANDSCAPE MOBILE/TABLET */
@media(max-height:500px) and (orientation:landscape){
  #sidebar{display:none}
  #menu-toggle{display:flex}
  #bottom-nav{
    display:block;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    top:auto;
    height:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px));
    padding-bottom:env(safe-area-inset-bottom,0px);
    border-top:1px solid var(--border);
    border-bottom:none;
  }
  .bnav-items{height:var(--bottomnav-h);}
  #content{
    padding:10px 12px 0;
    padding-bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px) + 40px);
    scroll-padding-bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px) + 16px);
  }
}

/* ===== LOGIN ===== */
#login-screen.hidden{display:none}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.login-field{margin-bottom:16px}
.login-field label{display:block;text-transform:uppercase}
.login-field input{border:1.5px solid var(--border);color:var(--text)}
.login-btn:disabled{opacity:.6;cursor:not-allowed}
.login-error{background:var(--red-bg);color:var(--text);border:1px solid var(--red);border-radius:10px;padding:12px 14px;font-size:13px;margin-bottom:14px;display:none}
.login-error.show{display:block}

/* ===== RESTYLING TENNIS CLUB ===== */

/* Body e background */
body{
  font-family:var(--font-ui);
  background:var(--sand);
  background-image:
    radial-gradient(ellipse at 20% 0%, rgba(27,58,45,.04) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 100%, rgba(193,68,14,.03) 0%, transparent 60%);
}

/* ── SIDEBAR design dal mockup ── */
#sidebar{
  width:var(--sidebar-w);
  min-width:var(--sidebar-w);
  flex-direction:column;
  overflow-y:auto;
  z-index:100;
  box-shadow:none;
}

.logo-wrap{
  padding:22px 22px 18px;
  border-bottom:1px solid var(--sand-dark);
  position:relative;
  background:transparent;
}
.logo-mark{display:flex;align-items:center;gap:12px;margin-bottom:0;}
.logo-mark h1{
  font-family:var(--font-display);
  font-size:19px;font-weight:500;
  color:var(--text);
  letter-spacing:-0.015em;line-height:1.05;
  font-style:normal;
}
.logo-wrap p{
  font-family:var(--mono);
  font-size:9.5px;color:var(--text3);
  letter-spacing:0.08em;text-transform:uppercase;
  margin-top:4px;
}

#sidebar-nav,#drawer-nav{padding:10px 10px 24px;}

/* Nav labels e items */
.nav-group{padding:8px 0 4px;margin-top:14px;}
.nav-group:first-child{margin-top:6px;}
.nav-label{
  font-family:var(--mono);
  font-size:9.5px;text-transform:uppercase;
  letter-spacing:0.09em;
  color:var(--text3);
  padding:8px 12px 4px;
  font-weight:400;
}
.nav-item{
  display:flex;align-items:center;
  padding:9px 14px;
  border-radius:8px;
  font-family:var(--font-display);
  font-size:14px;font-weight:400;
  font-style:normal;
  color:var(--text2);
  border-left:3px solid transparent;
  margin-bottom:1px;
  letter-spacing:-0.01em;
  transition:background .12s,color .12s;
}
.nav-item:hover{background:var(--clay-pale,oklch(0.97 0.01 50));color:var(--text);}
.nav-item.active{
  background:var(--clay-pale,oklch(0.97 0.01 50));
  color:var(--clay-deep,oklch(0.38 0.12 38));
  border-left-color:var(--clay);
  font-weight:500;
}
[data-theme="dark"] .nav-item.active{color:var(--text);}

/* Icona nav — span contenitore + i tabler */
.nav-ti{
  width:18px;height:18px;
  display:grid;place-items:center;
  font-size:17px;
  color:var(--text3);
  flex-shrink:0;margin-right:10px;
}
.nav-item.active .nav-ti{color:var(--clay);}

/* TOPBAR */

/* CARDS */
.card{
  padding:18px;
  background:var(--linen);
  border:1px solid var(--sand-dark);
  box-shadow:var(--shadow);
}

/* BADGES */
.badge-green{background:var(--green-bg);color:var(--forest-mid)}
.badge-red{background:var(--red-bg);color:var(--red)}
.badge-amber{background:var(--gold-pale);color:var(--amber-ink)}
.badge-blue{background:var(--blue-bg);color:var(--blue)}
.badge-gray{background:var(--sand-mid);color:var(--text2)}

/* BOTTONI */
.btn-primary{
  background:var(--brand);
  color:var(--brand-ink);
  border-color:var(--brand);
  box-shadow:0 1px 3px rgba(27,58,45,.2);
}
.btn-primary:hover:not(:disabled){
  background:var(--brand2);
  border-color:var(--brand2);
  box-shadow:0 2px 8px rgba(27,58,45,.3);
}
[data-theme="dark"] .btn-primary{
  background:var(--brand2);
  color:var(--brand-ink);
  border-color:var(--brand2);
}
[data-theme="dark"] .btn-primary:hover:not(:disabled){
  background:oklch(0.50 0.075 150);
  border-color:oklch(0.50 0.075 150);
}
.btn-secondary{
  background:var(--linen);
  color:var(--text);
  border-color:var(--sand-dark);
}
.btn-secondary:hover:not(:disabled){background:var(--sand-mid)}

/* TABELLE */
.tbl th{
  text-transform:uppercase;
  color:var(--text2);
  background:var(--sand-mid);
  border-bottom:1px solid var(--sand-dark);
}
.tbl td{
  font-family:var(--font-ui);
  border-bottom:1px solid var(--line-2);
}

/* DATA LIST */

/* ALERTS */
.alert-warn{background:var(--amber-bg);color:var(--text);border-color:var(--amber);font-family:var(--font-ui)}
.alert-info{background:var(--blue-bg);color:var(--text);border-color:var(--blue)}
.alert-danger{background:var(--red-bg);color:var(--text);border-color:var(--red)}

/* MODAL */
.modal{
  width:100%;
  max-width:640px;
  display:flex;
  max-height:92vh;
  box-shadow:0 -8px 40px rgba(0,0,0,.15);
  flex-direction:column;
  background:var(--linen);
  border-radius:16px 16px 0 0;
}
@media(min-width:600px){.modal{max-height:88vh;border-radius:14px}}
.modal-header{
  padding:16px 20px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-shrink:0;
  border-bottom:1px solid var(--sand-dark);
  background:linear-gradient(135deg,var(--sand) 0%,var(--linen) 100%);
}
.modal-header h3{
  font-family:var(--font-ui);
  font-size:16px;
  font-weight:700;
  color:var(--forest);
}
.modal-footer{
  padding:14px 20px;
  display:flex;
  gap:10px;
  flex-shrink:0;
  border-top:1px solid var(--sand-dark);
  background:var(--sand);
}

/* FORM */
input,select,textarea{
  background:var(--linen);
  color:var(--text);
  font-family:var(--font-ui);
}
input:focus,select:focus,textarea:focus{
  box-shadow:0 0 0 3px rgba(45,122,88,.1);
}

/* SECTION HEADER */
.section-header h3{
  font-family:var(--font-ui);
  color:var(--forest);
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
}
.section-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
  gap:10px;
  min-width:0;
}

/* SCADENZARIO */
.scad-dot-r{background:var(--red)}
.scad-dot-a{background:var(--amber)}
.scad-dot-g{background:var(--green)}

/* BOTTOM NAV */
#bottom-nav{
  background:var(--linen);
  border-top:1px solid var(--sand-dark);
  box-shadow:0 -2px 16px rgba(27,58,45,.08);
}
.bnav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;text-transform:uppercase;border:none;background:none;}

/* ============================================
   ===== CAMPI DESIGN (MG-F3e v2) =====
   CSS Grid giorno singolo — dal mockup
   ============================================ */
.slot{border-top:1px dashed var(--sand-dark);min-height:52px;padding:5px;display:flex;cursor:pointer;transition:background 0.12s;position:relative;}
.slot:hover{background:var(--surface2);}
/* Dark mode: Gratuito e Manutenzione slot leggibili */
/* Dark mode: testo slot-inner colori fissi sempre leggibili su fondi scuri */
/* Dark mode: court-head — gradienti leggermente più chiari per leggibilità */
/* Dark mode: campi-summary card testi */

/* ─── DARK MODE: DASHBOARD ─── */
/* Card neutre (hero-greeting, stat, dash-card) con superficie scura coerente */
[data-theme="dark"] .stat, [data-theme="dark"] .dash-card {
  background:var(--linen);
  border-color:var(--border);
}
/* Glow terracotta più tenue su sfondo scuro */
/* Titoli e valori: in dark --forest è chiaro, va benissimo come testo. Solo refinement contrasto */
[data-theme="dark"] .stat-value {
  color:oklch(0.92 0.03 152);
}
[data-theme="dark"] .stat-eyebrow i {
  color:var(--clay);
}
/* Card finanziarie: testo chiaro */
/* Le card verdi fisse (saldo/meteo) restano scure: forziamo l'ink chiaro indipendente dal tema */
/* Dark mode: sidebar panel campi */
[data-theme="dark"] #campi-sidebar-panel{background:var(--linen);border-color:var(--border);}
/* Sidebar mobile campi */
#campi-sidebar-panel{position:fixed;top:0;left:0;bottom:0;border-right:1px solid var(--sand-dark);z-index:180;overflow-y:auto;padding:14px;box-shadow:4px 0 16px rgba(0,0,0,.18);width:240px;transform:translateX(-100%);transition:transform .22s ease;background:var(--linen);border-color:var(--sand-dark);}

/* Responsive campi */
@media(max-width:680px){
  /* Toolbar: riga 1 = toggle + prenota, riga 2 = daypicker scorrevole */
  /* Daypicker va in seconda riga, scorrevole orizzontalmente */
  /* Griglia campi mobile: colonna orario fissa + 3 campi con minimo garantito */
  .slot{min-height:44px;}
  /* Bottoni modifica/elimina: icone senza testo su mobile */
  /* Card summary: stessa altezza, font importo ridotto per evitare a-capo */
}

/* RIEPILOGATIVO */
.tbl-wrap{
  overflow-x:auto;
  box-shadow:var(--shadow);
  background:var(--linen);
  border:1px solid var(--sand-dark);
}

/* LOGIN SCREEN restyling */
#login-screen{
  position:fixed;
  inset:0;
  display:flex;
  z-index:10000;
}
.login-card{
  position:relative;
  box-shadow:0 32px 80px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.1);
}
.login-field label{
  margin-bottom:6px;
}
.login-field input{
  width:100%;
  outline:none;
  transition:border-color .15s;
  font-family:var(--font-ui);
}
.login-field input:focus{box-shadow:0 0 0 3px rgba(45,122,88,.1)}
.login-btn{
  width:100%;
  padding:13px;
  border:none;
  font-weight:700;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-family:var(--font-ui);
  letter-spacing:.3px;
}
.login-footer{text-align:center;text-transform:uppercase;}

/* DECORAZIONE login — linea clay (position absolute per non sforare mai) */
.login-card::before{
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:linear-gradient(90deg,var(--clay),var(--clay-light),var(--gold));
}

/* AVATAR e chip utente */
.avatar{
  width:28px;
  height:28px;
  border-radius:50%;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  font-weight:700;
  background:linear-gradient(135deg,var(--forest),var(--forest-mid));
  font-family:var(--font-ui);
}

/* SCROLLBAR */
::-webkit-scrollbar-thumb{border-radius:2px;background:var(--sand-dark)}

/* LINK */
a{color:var(--forest-light)}

/* Tipografia headings nei contenuti */
h2,h3,h4{font-family:var(--font-ui)}

/* DRAWER */
#drawer{position:fixed;top:0;left:0;bottom:0;width:260px;z-index:160;transform:translateX(-100%);transition:transform .25s;overflow-y:auto;display:flex;flex-direction:column;}
#drawer-overlay{display:none;position:fixed;inset:0;z-index:150;opacity:0;transition:opacity .25s;background:rgba(27,58,45,.5)}

/* ===== LEGGIBILITÀ EXTRA ===== */
body{font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
.tbl td{font-size:13px;line-height:1.4}
.tbl th{white-space:nowrap;text-align:left;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;white-space:nowrap;font-family:var(--font-ui);letter-spacing:.2px;font-size:13px;}
.form-label{display:block;margin-bottom:6px;text-transform:uppercase;color:var(--text2);}
input,select,textarea{border:1.5px solid var(--border);outline:none;-webkit-appearance:none;appearance:none;border-color:var(--sand-dark);font-size:14px}
/* nav-item sizing già in sidebar CSS */
.badge{display:inline-flex;align-items:center;gap:3px;text-transform:uppercase;font-size:10.5px;}
.section-header h3{white-space:nowrap;font-size:15px;font-weight:700}
/* nav spaziatura gestita da sidebar CSS */
/* Migliora leggibilità tabelle */
.tbl tr:hover td{background:var(--surface2)}
/* Testo secondario più leggibile */
/* Scadenzario */
/* ── TOPBAR editoriale (mockup design MG-3) ── */
#topbar{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:10;box-shadow:0 1px 0 var(--sand-dark),0 2px 8px rgba(27,58,45,.04);height:68px;padding:0 24px;background:var(--linen);border-bottom:1px solid var(--sand-dark);gap:16px;}
#topbar-left{display:flex;align-items:center;gap:14px;flex:1;min-width:0;overflow:hidden;}
#page-title{
  max-width:55vw;
  font-family:var(--font-display);
  font-size:24px;
  line-height:1;
  letter-spacing:-0.015em;
  color:var(--forest);
  font-weight:400;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
}
#page-title em{font-style:italic;color:var(--clay);font-weight:400;}
#topbar-date{
  font-family:var(--mono);
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:0.1em;
  color:var(--ink-3);
  padding-left:14px;
  border-left:1px solid var(--sand-dark);
  align-self:center;
}
.topbar-actions{
  margin-left:auto;
  display:flex;align-items:center;gap:8px;
  flex-shrink:0;
}
.icon-btn{
  width:36px;height:36px;
  border-radius:50%;
  display:grid;place-items:center;
  color:var(--text2);
  background:transparent;
  border:none;cursor:pointer;
  position:relative;
}
.icon-btn:hover{background:var(--sand-mid);color:var(--forest);}
.icon-btn .ti{font-size:19px;}
.icon-btn-dot{
  position:absolute;top:8px;right:9px;
  width:7px;height:7px;border-radius:50%;
  background:var(--clay);border:2px solid var(--linen);
}
.user-pill{
  display:flex;align-items:center;gap:9px;
  padding:4px 12px 4px 4px;
  background:var(--sand-mid);
  border-radius:99px;
  font-size:13px;
  font-weight:500;
  color:var(--forest);
  cursor:pointer;
  transition:background 0.15s;
  border:none;
}
.user-pill:hover{background:var(--sand-dark);}
.user-pill .avatar{
  width:30px;height:30px;
  background:var(--forest);
  color:var(--sand);
  font-size:11px;font-weight:700;
}

/* ── Palette picker dropdown ── */
.palette-picker{position:relative;}
.palette-menu{
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  min-width:160px;
  background:var(--linen);
  border:1px solid var(--sand-dark);
  border-radius:12px;
  padding:8px;
  box-shadow:0 6px 24px oklch(0.22 0.018 80 / .15);
  display:none;
  z-index:100;
}
.palette-menu.open{display:block;}
.palette-opt{
  width:100%;
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;
  background:transparent;
  border:none;
  border-radius:8px;
  cursor:pointer;
  font-family:inherit;
  font-size:13px;color:var(--text);
  transition:background 0.15s;
  text-align:left;
}
.palette-opt:hover{background:var(--sand-mid);}
.palette-opt.active{background:var(--clay-pale);color:var(--clay-deep);font-weight:600;}
/* Swatch preview - colori in HEX di riferimento per indicare visivamente la palette */
.palette-sw-terra{background:linear-gradient(135deg,#b6583a 50%,#244931 50%);}
.palette-sw-pallina{background:linear-gradient(135deg,#e0e773 50%,#1e3a29 50%);}

/* Responsive topbar */
@media(max-width:720px){
  #topbar{padding:0 14px;height:60px;}
  #page-title{font-size:20px;}
  #topbar-date{display:none;}
  .user-pill span{display:none;}
  .user-pill{padding:4px;}
  .user-pill i{display:none;}
}
@media(max-width:480px){
  .icon-btn{width:32px;height:32px;}
  .icon-btn .ti{font-size:17px;}
}

/* ── HERO greeting ── */

/* ── HERO "in questo momento" ── */

/* ── STAT TILES (4 in riga) ── */
.stats-row{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
  margin-bottom:16px;
}
/* Desktop (default): meteo nel hero + saldo come tile verde; nasconde versioni mobile */
.stat{
  background:var(--linen);
  border:1px solid var(--sand-dark);
  padding:18px 20px;
}
.stat-eyebrow{
  display:flex;align-items:center;gap:7px;
  font-family:var(--mono);
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:0.1em;
  color:var(--text3);
  margin-bottom:10px;
}
.stat-eyebrow i{color:var(--clay);font-size:14px;}
.stat-value{
  font-family:var(--font-display);
  line-height:1;
  letter-spacing:-0.025em;
  color:var(--forest);
  font-weight:500;
}

/* ── DASH GRID 2 colonne (scadenze + bar) ── */

/* ── CARD versione editoriale ── */
.dash-card{
  background:var(--linen);
  border:1px solid var(--sand-dark);
  padding:22px;
}

/* ── SCAD list editoriale ── */

/* ── TAG pillole (ok/warn/danger) ── */
.tag-pill{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 9px;
  border-radius:99px;
  font-size:11.5px;font-weight:500;
}
.tag-pill-ok{background:var(--green-bg);color:var(--green);}
.tag-pill-warn{background:var(--amber-bg, #fef6e7);color:var(--amber);}
.tag-pill-danger{background:var(--red-bg);color:var(--red);}

/* ── SPARK bar chart ── */
.spark{
  display:flex;align-items:flex-end;gap:3px;
  height:48px;
  margin-top:14px;
}

/* ── Dashboard headline number (big € amount) ── */

/* ── Divider sottile dentro le card ── */

/* ============================================
   ===== BAR EDITORIALE (mockup design MG-3) =====
   ============================================ */

/* ── Layout cassa + scontrino ── */

/* ── Filtri categoria ── */

/* ── Sezione titolo Bar ── */
/* NOR-10: elenco prodotti (modale Prodotti del bar) */
.bp-nota{font-size:12.5px;color:var(--text3);margin-bottom:10px;line-height:1.45;}
.bp-lista{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.bp-riga{display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;background:var(--linen);border:none;border-bottom:1px solid var(--border);text-align:left;font-family:inherit;color:var(--text);cursor:pointer;}
.bp-riga:last-child{border-bottom:none;}
.bp-riga:hover{background:var(--sand-mid);}
.bp-riga.off{opacity:.62;}
.bp-riga-nome{flex:1;min-width:0;font-size:13.5px;font-weight:600;}
.bp-riga-nome small,.bp-riga-num small{display:block;font-size:11.5px;font-weight:400;color:var(--text3);margin-top:2px;}
.bp-riga-num{text-align:right;font-size:13.5px;font-weight:600;white-space:nowrap;}
.bp-riga .ti-pencil{color:var(--text3);font-size:16px;}
.bp-riga-badge{display:inline-block;font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:99px;background:var(--sand-mid);color:var(--text2);margin-left:4px;vertical-align:1px;}
.bp-check{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text);cursor:pointer;}

/* ── Stat row Bar ── */

/* ── Card cassa prodotti ── */

/* ── Griglia prodotti ── */

/* ── Scontrino editoriale ── */
.receipt{
  background:var(--linen);
  border:1px solid var(--sand-dark);
  overflow:hidden;
  display:flex;flex-direction:column;
  position:sticky;top:0;
  align-self:flex-start;
  max-height:calc(100vh - 110px);
}

/* ── Footer scontrino: totale + pagamento ── */

/* ── Bottoni pagamento ── */

/* ── Bottoni azione scontrino ── */

/* ── Vendite di oggi (scontrini list) ── */

/* ── Responsive Bar ── */
@media(max-width:1024px){
  .receipt{position:static;max-height:none;}
}

/* ============================================
   ===== SOCI EDITORIALE (mockup design MG-3) =====
   ============================================ */

/* ── Layout split ── */

/* ── Toolbar (ricerca + filtri) ── */
.chip{
  font-size:12px;
  color:var(--text2);
  border-radius:99px;
  cursor:pointer;
  font-family:inherit;
}

/* ── Row socio nella lista ── */

/* ── Scheda dettaglio socio (colonna destra) ── */

/* ── Status strip (3 pillole sotto l'header) ── */

/* ── Corpo dettaglio (sezioni) ── */
.member-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:7px 0;
  font-size:13px;
  border-bottom:1px solid var(--line-2);
  gap:8px;
}
.member-row:last-child{border-bottom:none;}
.member-row .l{color:var(--text3);flex-shrink:0;}
.member-row .v{
  font-weight:600;
  color:var(--text);
  text-align:right;
  word-break:break-word;
}

/* ── Bottoni azione dettaglio ── */

/* ── Empty state lista soci ── */

/* ── Header sezione Soci (titolo + bottone nuovo) ── */
.btn-add-socio{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 16px;
  background:var(--clay);
  color:var(--linen);
  font-size:13px;font-weight:600;
  border:none;cursor:pointer;
  font-family:inherit;
}
.btn-add-socio:hover{background:var(--clay-light);}

/* ── Responsive Soci ── */

@media(max-width:520px){
  .stats-row{grid-template-columns:1fr;}
  .dash-card{padding:18px;}
}

/* ============================================
   ===== TESSERE EDITORIALE (MG-F3a) =====
   Riusa pattern .soci-* (master-detail)
   ============================================ */

/* Toolbar specifica per filtri stato tessera */

/* Row tessera (simile a socio-row ma 5 colonne) */

/* Scheda dettaglio Tessera (riusa .member-detail di Soci) */

/* Empty state Tessere (riusa .soci-empty) */

/* ============================================
   ===== QUOTE EDITORIALE (MG-F3c) =====
   ============================================ */

/* Selettore anno prominente */

/* Progress bar completamento quote */

/* Row quota nella lista */

/* Sezione dettaglio quota - storico quote del socio */

/* Responsive Quote */

/* ============================================
   ===== LAVORATORI EDITORIALE (MG-F3d) =====
   ============================================ */

/* Dati card */

/* Progress bar compenso (limite 15k) */

/* Azioni card */

/* ===== Fase 3 blocco A (2026-09-29.2) — leggibilita ===== */
/* UX-08: campi a 16px sul telefono (evita lo zoom automatico di iPhone ora che lo zoom e' sbloccato) */
@media(max-width:768px){input,select,textarea{font-size:16px}}
/* UX-12: pulsanti terracotta a tinta piena piu' scura, testo bianco leggibile */
/* UX-06: focus visibile per chi usa la tastiera */
[role="button"]:focus-visible,[data-kbd]:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--clay);outline-offset:2px;border-radius:6px}
[role="button"][aria-disabled="true"]{cursor:not-allowed}

/* ═══════════════════════════════════════════════════════════════
   Campo vivo · Fase 2 (2026-10-05.5): gerarchia e componenti
   Regole aggiunte in coda: sovrascrivono quelle precedenti senza toccarle.
   ═══════════════════════════════════════════════════════════════ */

/* ── Blocchi brand con le linee del campo (saldo, meteo) ── */
/* vince su [data-theme=dark] .stat */

/* ── Numeri: cifre incolonnate ── */
.stat-value {font-variant-numeric:lining-nums tabular-nums}
.stat-value{font-size:36px}
@media(max-width:520px){.stat-value{font-size:30px}}

/* ── Etichette in mono ── */
.tbl th{font-family:var(--mono);font-weight:500;font-size:10px;letter-spacing:.1em}
.form-label{font-family:var(--mono);font-weight:500;font-size:10.5px;letter-spacing:.1em}

/* ── Schede a pillola (sezioni con schede e Finanza) ── */
.sez-schede{border:none;border-radius:0;gap:7px}
.sez-schede button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:5px;height:38px;padding:0 16px;border-radius:99px;
  background:var(--surface);border:1px solid var(--border);color:var(--text2);font-family:var(--font-ui);font-size:13px;font-weight:700;white-space:nowrap;
  transition:background .2s,color .2s,border-color .2s,transform calc(.3s*var(--k)) var(--spring)}
.sez-schede button i{font-size:15px;flex-shrink:0}
.sez-schede button:hover{color:var(--text)}
.sez-schede button.active{background:var(--text);color:var(--bg);border-color:var(--text);box-shadow:none}
.sez-schede button:active{transform:scale(.93)}
@media(max-width:767px){.sez-schede{padding-left:12px;padding-right:12px}}

/* ── Chip e badge a pillola ── */
.chip{min-height:34px;padding:6px 13px;font-weight:700;background:var(--surface2);border:1.5px solid transparent;
  transition:background .2s,color .2s,border-color .2s,transform calc(.25s*var(--k)) var(--spring)}
.chip:hover{color:var(--text)}
.chip.active{background:var(--surface);color:var(--text);border-color:var(--text)}
.chip:active{transform:scale(.94)}
.badge{border-radius:99px;padding:3px 9px;font-weight:800;letter-spacing:.02em}

/* ── Bottoni: più grandi, angoli più tondi, risposta al tocco ── */
.btn{min-height:44px;border-radius:12px;font-weight:700;
  transition:background .15s,border-color .15s,box-shadow .15s,color .15s,filter .15s,transform calc(.25s*var(--k)) var(--spring)}
.btn:active:not(:disabled){transform:scale(.95)}
.btn-sm{min-height:34px;border-radius:10px}
.btn-add-socio, .icon-btn {
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform calc(.25s*var(--k)) var(--spring)}
.bar-cat-btn:active,.pay-btn:active,.btn-incassa:active,.btn-add-socio:active,.receipt-actions .btn-checkout:active:not(:disabled),
.member-actions .btn:active,.lav-actions button:active,.product-tile:active:not(.out),.icon-btn:active{transform:scale(.93)}
.btn-add-socio {border-radius:12px}

/* ── Card e riquadri: angoli 20 (telefono) / 16 (computer), bordi più leggeri ── */
.card, .dash-card, .stat, .tbl-wrap, .receipt, .altro-sheet {border-radius:var(--r)}
.altro-sheet{border-bottom-left-radius:0;border-bottom-right-radius:0}
.card, .dash-card, .stat, .tbl-wrap {border-color:var(--border-soft)}
.altro-tile {border-radius:var(--r-sm)}

/* ── Campi dei moduli ── */
input,select,textarea{border-radius:12px}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px oklch(0.57 0.13 38 / .16)}

/* ── Home sul telefono: difetto trovato in Fase 2 ──
   le regole per il telefono di .dash-grid/.stats-row stavano PRIMA di quelle generali, che le annullavano:
   la card «Incasso bar» usciva a destra dello schermo (tagliata). */
@media(min-width:521px) and (max-width:767px){.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ═══════════════════════════════════════════════════════════════
   Campo vivo · Fase 3 (2026-10-06.1): navigazione
   ═══════════════════════════════════════════════════════════════ */

/* ── Barra in basso del telefono: galleggiante, verde brand ── */
@media(max-width:767px),(max-height:500px) and (orientation:landscape){
  #bottom-nav{left:12px;right:12px;height:var(--bottomnav-h);padding:0 6px;
    border:none;border-radius:26px;background:var(--brand);color:var(--brand-ink);box-shadow:0 14px 30px -12px oklch(0 0 0 / .55)}
  #content{padding-bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px) + 72px);
    scroll-padding-bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px) + 32px)}
}
.bnav-items{position:relative;display:flex;align-items:center;height:100%}
.bnav-item{flex:1;height:52px;color:var(--brand-ink);opacity:.72;font-family:var(--font-ui);font-size:10px;font-weight:700;letter-spacing:.04em;
  position:relative;z-index:1;transition:opacity .2s,color .2s,transform calc(.3s*var(--k)) var(--spring)}
.bnav-item i{color:inherit}
.bnav-item.active,.bnav-item.active i{color:var(--brand-ink);opacity:1}
[data-palette="pallina"] .bnav-item.active,[data-palette="pallina"] .bnav-item.active i{color:var(--hi)}
.bnav-item:active{transform:scale(.86)}
.bnav-pill{position:absolute;left:0;top:50%;height:52px;margin-top:-26px;border-radius:20px;background:oklch(1 0 0 / .14);opacity:0;pointer-events:none;z-index:0;
  transition:transform calc(.5s*var(--k)) var(--spring),width calc(.5s*var(--k)) var(--spring),opacity .2s}
[data-palette="pallina"] .bnav-pill{background:oklch(0.9 0.14 112 / .17)}
/* Campi: pulsante tondo al centro che sporge sopra la barra */
.bnav-mid{flex:1;display:flex;justify-content:center;position:relative;z-index:2}
.bnav-item.bnav-ball{flex:none;opacity:1;display:flex;flex-direction:column;align-items:center;padding:0 4px}
.bnav-item.bnav-ball:active{transform:none}
.bnav-ball-in{border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;transition:transform calc(.35s*var(--k)) var(--spring),background .2s,color .2s}
.bnav-item.bnav-ball .bnav-ball-in i{font-size:24px;color:inherit}
.bnav-item.bnav-ball:active .bnav-ball-in{transform:scale(.88) rotate(-20deg)}
.bnav-item.bnav-ball.active .bnav-ball-in{background:var(--brand-ink);color:var(--accent)}
[data-palette="pallina"] .bnav-item.bnav-ball.active .bnav-ball-in{background:var(--hi);color:var(--brand)}

/* ── Menu laterale (computer) e cassetto: verde brand ── */
#sidebar,#drawer,[data-theme="dark"] #sidebar,[data-theme="dark"] #drawer{background:var(--brand);color:var(--brand-ink);border-right:none}
#sidebar .logo-wrap,#drawer .logo-wrap{border-bottom-color:oklch(1 0 0 / .12)}
#sidebar .logo-mark h1,#drawer .logo-mark h1{color:var(--brand-ink)}
#sidebar .logo-wrap p,#drawer .logo-wrap p,#sidebar .nav-label,#drawer .nav-label{color:var(--brand-ink-3)}
#sidebar .nav-item,#drawer .nav-item{color:var(--brand-ink-2);border-left:none;border-radius:12px;padding:9px 12px;margin-bottom:2px;font-size:15px;
  transition:background .18s,color .18s,transform calc(.25s*var(--k)) var(--spring)}
#sidebar .nav-item:hover,#drawer .nav-item:hover{background:oklch(1 0 0 / .08);color:var(--brand-ink)}
#sidebar .nav-item:active,#drawer .nav-item:active{transform:scale(.97)}
#sidebar .nav-ti,#drawer .nav-ti{color:inherit;opacity:.85}
#sidebar .nav-item.active,#drawer .nav-item.active{background:var(--accent);color:var(--accent-ink);font-weight:600}
#sidebar .nav-item.active .nav-ti,#drawer .nav-item.active .nav-ti{color:inherit;opacity:1}
[data-palette="pallina"] #sidebar .nav-item.active,[data-palette="pallina"] #drawer .nav-item.active{background:var(--hi);color:var(--brand)}
#sidebar::-webkit-scrollbar-thumb{background:oklch(1 0 0 / .2)}

/* ── Pannello «Altro» ── */
.altro-sheet{border-radius:28px 28px 0 0}
.altro-tile{border:none;transition:background .15s,color .15s,transform calc(.25s*var(--k)) var(--spring)}
.altro-tile:active{transform:scale(.92)}
.altro-tile.active{background:var(--accent);color:var(--accent-ink)}
.altro-tile.active i{color:var(--accent-ink)}

/* ═══════════════════════════════════════════════════════════════
   Campo vivo · Fase 4 (2026-10-06.2): movimento di base
   Durate moltiplicate per --k (telefono 1, computer 0,6, «riduci movimento» 0).
   ═══════════════════════════════════════════════════════════════ */
html[data-motion="ridotte"]{--k:0}
html[data-motion="ridotte"] *:not(.ti-loader-2),html[data-motion="ridotte"] *::before,html[data-motion="ridotte"] *::after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){*:not(.ti-loader-2),*::before,*::after{animation:none!important;transition:none!important}}

@keyframes cv-rise{from{opacity:0;transform:translateY(22px) scale(.985)}}
@keyframes cv-fade{from{opacity:0}}
@keyframes cv-sheetUp{from{transform:translateY(100%)}}
@keyframes cv-sheetIn{from{transform:translateX(100%)}}
@keyframes cv-pop{from{opacity:0;transform:scale(.9)}}
@keyframes cv-popin{from{opacity:0;transform:scale(.6) translateY(20px)}}
@keyframes cv-fillx{from{transform:scaleX(0)}}
@keyframes cv-growy{from{transform:scaleY(0)}}
@keyframes cv-toast{from{opacity:0;transform:translateX(-50%) translateY(40px) scale(.9)}}
@keyframes cv-toastD{from{opacity:0;transform:translateY(40px) scale(.9)}}

/* ── Entrata a cascata della pagina (classe .entra messa da setContent solo dopo navTo, tolta dopo 1,1 s) ── */
#content.entra>*{animation:cv-rise calc(.55s*var(--k)) var(--out) backwards}
#content.entra>*:nth-child(2){animation-delay:calc(.06s*var(--k))}
#content.entra>*:nth-child(3){animation-delay:calc(.12s*var(--k))}
#content.entra>*:nth-child(4){animation-delay:calc(.18s*var(--k))}
#content.entra>*:nth-child(5){animation-delay:calc(.24s*var(--k))}
#content.entra>*:nth-child(6){animation-delay:calc(.3s*var(--k))}
#content.entra>*:nth-child(n+7){animation-delay:calc(.36s*var(--k))}
/* barre che si riempiono all'ingresso */

/* ── Finestre: foglio che sale (telefono), finestra al centro (tablet), pannello da destra (computer) ── */
.modal-overlay{background:oklch(0.1 0.02 150 / .48);animation:cv-fade calc(.3s*var(--k)) backwards}
.modal{animation:cv-sheetUp calc(.55s*var(--k)) var(--spring) backwards}
@media(max-width:599px){.modal{border-radius:28px 28px 0 0}.modal-handle{width:46px;height:5px;border-radius:9px}}
@media(min-width:600px) and (max-width:767px){.modal{animation-name:cv-pop;border-radius:var(--r)}}
@media(min-width:768px){
  .modal-overlay{align-items:stretch;justify-content:flex-end;padding:0}
  .modal{max-width:560px;max-height:none;height:100%;border-radius:0;animation-name:cv-sheetIn;box-shadow:-20px 0 40px -20px oklch(0 0 0 / .4)}
  .modal-header{padding:22px 26px 14px}.modal-body{padding:20px 26px}.modal-footer{padding:16px 26px}
}
/* conferme («Sei sicuro?»): foglio al telefono, finestra al centro al computer */
#confirm-overlay{background:oklch(0.1 0.02 150 / .48)!important;animation:cv-fade calc(.3s*var(--k)) backwards}
#confirm-overlay>div{border-radius:28px 28px 0 0!important;animation:cv-sheetUp calc(.5s*var(--k)) var(--spring) backwards}
@media(min-width:768px){#confirm-overlay{align-items:center!important}#confirm-overlay>div{border-radius:var(--r)!important;animation-name:cv-pop}}
/* pannello «Altro» */
.altro-overlay.open{animation:cv-fade calc(.3s*var(--k)) backwards}
.altro-overlay.open .altro-sheet{animation:cv-sheetUp calc(.5s*var(--k)) var(--spring) backwards}
.altro-overlay.open .altro-tile{animation:cv-popin calc(.5s*var(--k)) var(--spring) backwards}
.altro-overlay.open .altro-tile:nth-child(2){animation-delay:calc(.03s*var(--k))}
.altro-overlay.open .altro-tile:nth-child(3){animation-delay:calc(.06s*var(--k))}
.altro-overlay.open .altro-tile:nth-child(4){animation-delay:calc(.09s*var(--k))}
.altro-overlay.open .altro-tile:nth-child(5){animation-delay:calc(.12s*var(--k))}
.altro-overlay.open .altro-tile:nth-child(6){animation-delay:calc(.15s*var(--k))}
.altro-overlay.open .altro-tile:nth-child(n+7){animation-delay:calc(.18s*var(--k))}
.altro-tile:focus:not(:focus-visible){outline:none}

/* ── Messaggio a comparsa: icona tonda e molla ── */
#toast{display:flex;align-items:center;gap:10px;padding:10px 16px 10px 10px;border-radius:18px;font-weight:600;text-align:left;
  box-shadow:0 16px 30px -14px oklch(0 0 0 / .6);transition:opacity calc(.3s*var(--k)) ease}
#toast .tk{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:oklch(0.6 0.14 150);color:#fff}
#toast.err .tk{background:oklch(0.58 0.19 28)}
#toast .tk i{font-size:16px}
#toast.show{animation:cv-toast calc(.55s*var(--k)) var(--spring) backwards} /* backwards: dopo l'animazione torna a valere l'opacità scritta da showToast */
@media(min-width:768px){#toast{left:auto;right:28px;bottom:28px;transform:none;max-width:380px}#toast.show{animation-name:cv-toastD}}

/* ═══ Campo vivo · Ritocchi 06/10 (2026-10-06.3), scelti da Paolo ═══ */
/* blocchi verdi pieni: niente linee del campo */
/* tasto Campi come nel prototipo: cerchio da 62 px che sporge, campo da tennis stilizzato, senza scritta */
.bnav-item.bnav-ball{gap:0}
.bnav-ball-in{margin-top:-30px;}
.bnav-campo{display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ═══════════════════════════════════════════════════════════════
   Campo vivo · Fase 5A (2026-10-06.4): momenti firma
   ═══════════════════════════════════════════════════════════════ */
/* ── 5.1 Apertura: la pallina rimbalza sul campo ── */
#loader{gap:26px;color:var(--brand-ink);overflow:hidden;transition:opacity .45s ease,transform .45s ease}
#loader.hidden{transform:scale(1.04)}
.sp-court{position:absolute;inset:34px 26px;border:2px solid color-mix(in oklch,var(--brand-ink) 12%,transparent);border-radius:6px;pointer-events:none}
.sp-court::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px solid color-mix(in oklch,var(--brand-ink) 12%,transparent)}
.sp-court::after{content:"";position:absolute;left:18%;right:18%;top:22%;bottom:22%;border:2px solid color-mix(in oklch,var(--brand-ink) 9%,transparent);border-top:0;border-bottom:0}
@media(min-width:768px){.sp-court{inset:48px max(26px,calc(50% - 320px))}}
.sp-zone{position:relative;height:120px;width:80px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
.sp-ball{width:56px;height:56px;border-radius:50%;background:oklch(0.9 0.16 114);position:relative;overflow:hidden;animation:cv-bounce .62s infinite;box-shadow:inset -7px -8px 0 oklch(0.8 0.16 112)}
.sp-ball::before,.sp-ball::after{content:"";position:absolute;width:56px;height:56px;border:3px solid oklch(1 0 0 / .9);border-radius:50%;top:0}
.sp-ball::before{left:-38px}.sp-ball::after{right:-38px}
.sp-sh{width:50px;height:9px;border-radius:50%;background:oklch(0 0 0 / .35);margin-top:4px;animation:cv-shadow .62s infinite}
@keyframes cv-bounce{0%{transform:translateY(-66px) rotate(0);animation-timing-function:cubic-bezier(.5,0,.9,.5)}48%{transform:translateY(0) scale(1.12,.84) rotate(80deg);animation-timing-function:cubic-bezier(.1,.5,.5,1)}56%{transform:translateY(-4px) scale(.95,1.05) rotate(95deg)}100%{transform:translateY(-66px) rotate(180deg)}}
@keyframes cv-shadow{0%,100%{transform:scale(.45);opacity:.35}48%{transform:scale(1.1);opacity:.8}}
.sp-word{position:relative;font-family:var(--font-display);font-weight:500;font-size:44px;line-height:1;letter-spacing:-.02em;text-align:center;overflow:hidden}
.sp-word span{display:block;animation:cv-wordUp .7s var(--out) both}
.sp-word span+span{font-style:italic;color:var(--hi)}
@keyframes cv-wordUp{from{transform:translateY(105%)}}
.sp-sub{position:relative;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.7;}

/* ── 5.2 Messaggi: spunta che si disegna, scossa sull'errore ── */
#toast .tk-ok{width:17px;height:17px;display:block;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
#toast.show .tk{animation:cv-tkpop calc(.5s*var(--k)) var(--spring) backwards;animation-delay:calc(.08s*var(--k))}
#toast.show .tk-ok path{stroke-dasharray:24;animation:cv-check calc(.45s*var(--k)) var(--out) backwards;animation-delay:calc(.25s*var(--k))}
#toast.err.show .tk{animation:cv-shake calc(.5s*var(--k)) ease backwards;animation-delay:calc(.2s*var(--k))}
@keyframes cv-tkpop{from{transform:scale(0)}}
@keyframes cv-check{from{stroke-dashoffset:24}}
@keyframes cv-shake{20%{transform:translateX(-4px) rotate(-8deg)}40%{transform:translateX(4px) rotate(8deg)}60%{transform:translateX(-3px) rotate(-5deg)}80%{transform:translateX(2px) rotate(3deg)}}
@media(min-width:768px){#toast.err.show .tk{animation-name:cv-shakeD}}
@keyframes cv-shakeD{25%{transform:translateX(-3px)}50%{transform:translateX(3px)}75%{transform:translateX(-2px)}}

/* ── 5.4 Numeri che salgono: cifre a larghezza fissa, così il numero non «balla» mentre conta ── */
[data-num]{font-variant-numeric:tabular-nums}

/* telefono: il messaggio sta sopra il cerchio di Campi, che sporge di 30 px dalla barra */
@media(max-width:767px){#toast{bottom:calc(var(--bottomnav-h) + 58px + env(safe-area-inset-bottom,0px))}}

/* ═══════════════════════════════════════════════════════════════
   Campo vivo · Fase 5B (2026-10-06.5): campi vivi (vista Giorno di oggi)
   ═══════════════════════════════════════════════════════════════ */
/* 5.5 linea dell'ora: left/top/width e --oc (larghezza colonna orari) li scrive campiOraAggiorna() */
@keyframes cv-orapunto{50%{box-shadow:0 0 0 7px color-mix(in oklch,var(--live) 25%,transparent)}}
/* 5.6 prenotazione in corso: alone che pulsa piano */
@keyframes cv-incorso{50%{box-shadow:0 0 0 2.5px var(--live),0 0 4px -2px var(--live)}}
/* 5.7 prenotazione appena creata che atterra */
@keyframes cv-atterra{0%{transform:translateY(-60px) scale(.7) rotate(-4deg);opacity:0}55%{transform:translateY(5px) scale(1.04,.96);opacity:1}75%{transform:translateY(-2px) scale(.99,1.01)}100%{transform:none}}
@keyframes cv-atterraD{from{transform:translateY(-24px);opacity:0}}

/* ═══════════════════════════════════════════════════════════════
   Accesso 06/10 (2026-10-06.6): apertura più lenta, login nuovo, pallina nel menu
   ═══════════════════════════════════════════════════════════════ */
/* ── Apertura: sta sopra il login (lo copre mentre gira) ed è più lenta: un rimbalzo al secondo ── */
#loader{z-index:10001}
.sp-ball,.sp-sh{animation-duration:1s}
.sp-word span{animation-duration:1.1s}
.sp-word span+span{animation-delay:.28s}
.sp-sub{animation:cv-rise .9s .6s var(--out) both}

/* ── Pallina da tennis ferma (login e menu); --s = diametro ── */
.pv-ball{--s:30px;display:block;width:var(--s);height:var(--s);border-radius:50%;background:oklch(0.9 0.16 114);position:relative;overflow:hidden;flex-shrink:0;
  box-shadow:inset calc(var(--s) * -.125) calc(var(--s) * -.14) 0 oklch(0.8 0.16 112)}
.pv-ball::before,.pv-ball::after{content:"";position:absolute;top:0;width:100%;height:100%;box-sizing:border-box;border-radius:50%;
  border:max(1.5px,calc(var(--s) * .054)) solid oklch(1 0 0 / .9)}
.pv-ball::before{left:-68%}
.pv-ball::after{right:-68%}

/* ── Login: continua la schermata di apertura (stesso verde e stesse linee del campo) ── */
#login-screen{padding:0 20px;flex-direction:column;align-items:center;justify-content:flex-start;overflow-y:auto;overflow-x:hidden;
  background:var(--brand);background-image:none;color:var(--brand-ink)}
.lg-wrap{position:relative;z-index:1;margin:auto;width:100%;max-width:380px;padding:44px 0 36px;display:flex;flex-direction:column;align-items:center}
.lg-brand{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:26px}
.lg-zone{display:flex;flex-direction:column;align-items:center}
.lg-zone .pv-ball{--s:46px}
.lg-sh{width:40px;height:7px;border-radius:50%;background:oklch(0 0 0 / .32);margin-top:5px}
.lg-word{font-family:var(--font-display);font-weight:500;font-size:42px;line-height:1;letter-spacing:-.02em;text-align:center;color:var(--brand-ink);overflow:hidden;padding-bottom:2px}
.lg-word span{display:block}
.lg-word span+span{font-style:italic;color:var(--hi)}
.login-card{width:100%;max-width:none;padding:26px 22px 22px;border-radius:var(--r);background:var(--linen);border:none;color:var(--text);overflow:visible;animation:none;
  box-shadow:0 30px 60px -24px oklch(0 0 0 / .6)}
.login-card::before{content:none}
.lg-title{font-family:var(--font-display);font-size:26px;font-weight:500;line-height:1.1;letter-spacing:-.012em;color:var(--text)}
.lg-sub{font-size:12.5px;color:var(--text2);margin:5px 0 20px}
.login-field label{font-family:var(--mono);font-weight:500;font-size:10.5px;letter-spacing:.1em;color:var(--text2)}
.login-field input{padding:13px 14px;border-radius:12px;background:var(--sand);border-color:var(--border);font-size:16px}
.login-field input:focus{border-color:var(--brand2);box-shadow:0 0 0 3px color-mix(in oklch,var(--brand2) 22%,transparent)}
.login-btn,.login-btn:hover{margin-top:8px;min-height:50px;border-radius:14px;background:var(--brand);color:var(--brand-ink);font-size:15px;
  box-shadow:0 12px 22px -12px var(--brand);transition:background .15s,box-shadow .15s,transform calc(.25s*var(--k)) var(--spring)}
.login-btn:hover:not(:disabled){background:var(--brand2);box-shadow:0 14px 26px -12px var(--brand)}
.login-btn:active:not(:disabled){transform:scale(.96)}
[data-theme="dark"] .login-btn,[data-theme="dark"] .login-btn:hover{background:var(--brand2)}
[data-theme="dark"] .login-btn:hover:not(:disabled){background:oklch(0.5 0.075 150)}
.login-footer{margin-top:22px;color:var(--brand-ink-3);font-family:var(--mono);font-size:10px;letter-spacing:.14em}
@media(min-width:768px){.lg-wrap{max-width:400px}.lg-word{font-size:48px}}
/* entrata quando l'apertura si dissolve: la pallina si posa con un piccolo rimbalzo, la scritta sale, la card arriva dal basso */
#login-screen.entra .lg-zone .pv-ball{animation:cv-lgposa calc(.9s*var(--k)) var(--out) backwards}
#login-screen.entra .lg-sh{animation:cv-lgombra calc(.9s*var(--k)) var(--out) backwards}
#login-screen.entra .lg-word span{animation:cv-wordUp calc(.8s*var(--k)) var(--out) backwards;animation-delay:calc(.15s*var(--k))}
#login-screen.entra .lg-word span+span{animation-delay:calc(.27s*var(--k))}
#login-screen.entra .login-card{animation:cv-rise calc(.75s*var(--k)) var(--out) backwards;animation-delay:calc(.3s*var(--k))}
#login-screen.entra .login-footer{animation:cv-fade calc(.6s*var(--k)) backwards;animation-delay:calc(.55s*var(--k))}
@keyframes cv-lgposa{0%{transform:translateY(-60px) rotate(-120deg)}50%{transform:translateY(0) scale(1.12,.86) rotate(0)}68%{transform:translateY(-9px) scale(.97,1.03)}84%{transform:translateY(0) scale(1.03,.97)}100%{transform:none}}
@keyframes cv-lgombra{0%{transform:scale(.45);opacity:.3}50%{transform:scale(1.1);opacity:1}}

/* ── Menu (computer e cassetto): pallina piccola + «Prato Verde» al posto del cerchio arancione ── */
.logo-mark .pv-ball{--s:30px}
.logo-mark h1 em{font-style:italic;color:var(--hi)}
.logo-wrap p{padding-left:42px}

/* ═══ Barra 06/10 (2026-10-06.9): pulsante Campi centrato nella barra anche in altezza, sporge 9 px sopra e 9 px sotto (scelta di Paolo) ═══ */
.bnav-mid{align-self:stretch;align-items:center}
.bnav-item.bnav-ball{height:100%;justify-content:center;overflow:visible}
.bnav-ball-in{width:82px;height:82px;margin:0;flex-shrink:0;box-shadow:0 10px 22px -8px var(--accent),0 0 0 5px var(--bg)}
.bnav-campo{width:32px;height:32px}
/* la barra sale di 6 px, così la parte sotto del cerchio non tocca il bordo dello schermo */
@media(max-width:767px),(max-height:500px) and (orientation:landscape){#bottom-nav{bottom:calc(16px + env(safe-area-inset-bottom,0px))}}

/* ═══ Palette 06/10 (2026-10-06.10): C · NOTTURNA e D · SALVIA ═══
   Stesso schema di Pallina: il blocco chiaro [data-palette] viene dopo [data-theme="dark"],
   quindi il blocco scuro [data-palette][data-theme="dark"] deve ridefinire TUTTI i token del chiaro. */
[data-palette="notte"] {
  --brand:         oklch(0.24 0.035 160);
  --brand2:        oklch(0.34 0.045 158);
  --brand-ink:     oklch(0.96 0.02 90);
  --brand-ink-2:   oklch(0.96 0.02 90 / .75);
  --brand-ink-3:   oklch(0.96 0.02 90 / .58);
  --hi:            oklch(0.86 0.13 90);
  --live:          oklch(0.7 0.15 45);
  --forest:        oklch(0.27 0.04 160);
  --forest-mid:    oklch(0.38 0.045 158);
  --sand:          oklch(0.955 0.01 95);
  --sand-mid:      oklch(0.925 0.012 95);
  --sand-dark:     oklch(0.87 0.014 95);
  --linen:         oklch(0.993 0.004 95);
  --border-soft:   oklch(0.9 0.012 95);
  --line-2:        oklch(0.9 0.012 95);
  --text:          oklch(0.2 0.025 160);
  --text2:         oklch(0.38 0.022 160);
  --text3:         oklch(0.5 0.018 140);
  --ink-3:         oklch(0.5 0.018 140);
}
[data-palette="notte"][data-theme="dark"] {
  --brand:         oklch(0.27 0.035 160);
  --brand2:        oklch(0.36 0.045 158);
  --brand-ink:     oklch(0.96 0.02 90);
  --brand-ink-2:   oklch(0.96 0.02 90 / .75);
  --brand-ink-3:   oklch(0.96 0.02 90 / .58);
  --hi:            oklch(0.87 0.13 90);
  --live:          oklch(0.74 0.15 45);
  --forest:        oklch(0.88 0.03 150);
  --forest-mid:    oklch(0.75 0.035 150);
  --sand:          oklch(0.15 0.012 165);
  --sand-mid:      oklch(0.24 0.016 165);
  --sand-dark:     oklch(0.31 0.018 165);
  --linen:         oklch(0.195 0.014 165);
  --border-soft:   oklch(0.27 0.016 165);
  --line-2:        oklch(0.27 0.016 165);
  --text:          oklch(0.96 0.01 90);
  --text2:         oklch(0.8 0.014 95);
  --text3:         oklch(0.65 0.016 120);
  --ink-3:         oklch(0.65 0.016 120);
  --surface2:      oklch(0.24 0.016 165);
  --border:        oklch(0.31 0.018 165);
}
[data-palette="salvia"] {
  --text:          oklch(0.22 0.035 158);
  --text2:         oklch(0.4 0.035 156);
  --text3:         oklch(0.5 0.03 150);
  --ink-3:         oklch(0.5 0.03 150);
}
[data-palette="salvia"][data-theme="dark"] {
  --sand:          oklch(0.17 0.015 155);
  --sand-mid:      oklch(0.26 0.02 155);
  --sand-dark:     oklch(0.33 0.022 155);
  --linen:         oklch(0.215 0.018 155);
  --border-soft:   oklch(0.29 0.02 155);
  --line-2:        oklch(0.29 0.02 155);
  --text:          oklch(0.96 0.012 130);
  --text2:         oklch(0.8 0.02 140);
  --text3:         oklch(0.66 0.02 145);
  --ink-3:         oklch(0.66 0.02 145);
  --surface2:      oklch(0.26 0.02 155);
  --border:        oklch(0.33 0.022 155);
}
.palette-sw-notte{background:linear-gradient(135deg,#ecc35a 50%,#0f2419 50%);}
/* ═══ Home 06/10 (2026-10-06.11): nuova Home dal prototipo approvato da Paolo (v3.3) ═══
   Classi hm-*: valgono solo dentro la Home (dashboard.js). Blocchi Campi e Finanza nel colore --brand. */
.hm{--hm-lab:86px;display:flex;flex-direction:column;gap:16px;}
.hm-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);display:flex;align-items:center;gap:6px}
.hm-eyebrow i{color:var(--clay);font-size:13px}
.hm-link{display:inline-flex;align-items:center;gap:2px;font-size:12.5px;font-weight:700;color:var(--clay);background:none;border:none;cursor:pointer;font-family:var(--font-ui);padding:0}
.hm-chip{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:17px;flex-shrink:0}
.hm-chip.t-ok{background:var(--green-bg);color:var(--green)}
.hm-chip.t-warn{background:var(--amber-bg);color:var(--amber-ink)}
.hm-chip.t-danger{background:var(--red-bg);color:var(--red)}
.hm-chip.t-info{background:var(--blue-bg);color:var(--blue)}
.hm-chip.t-brand{background:var(--clay-pale);color:var(--clay)}
.hm-vuoto{padding:14px 2px;font-size:12.5px;color:var(--text3)}
.su{color:var(--green)}.giu{color:var(--red)}

/* Intestazione */
.hm-testa{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line-2)}
.hm-h1{font-family:var(--font-display);font-weight:400;font-size:44px;line-height:1;letter-spacing:-.02em;color:var(--forest);margin:0}
.hm-ciao{margin:6px 0 0;font-size:13px;color:var(--text2)}
.hm-ciao b{color:var(--text)}
.hm-testa-dx{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.hm-meteo{display:inline-flex;align-items:center;gap:7px;background:var(--linen);border:1px solid var(--sand-dark);border-radius:999px;padding:5px 12px 5px 6px;font-size:12.5px;color:var(--text2);cursor:pointer;font-family:var(--font-ui);white-space:nowrap}
.hm-meteo-ic{width:26px;height:26px;border-radius:50%;background:var(--amber-bg);display:grid;place-items:center;font-size:15px;line-height:1}
.hm-meteo b{font-family:var(--font-display);font-size:17px;font-weight:500;color:var(--text)}
.hm-rapidi-pc{display:flex;gap:8px}
.hm-btn-rapido{display:inline-flex;align-items:center;gap:7px;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid var(--sand-dark);background:var(--linen);font-size:12.5px;font-weight:600;color:var(--text);cursor:pointer;font-family:var(--font-ui)}
.hm-btn-rapido .hm-chip{width:24px;height:24px;font-size:13px}
.hm-btn-rapido:hover{border-color:var(--clay)}
/* barra in alto: sulla Home il titolo piccolo compare solo quando quello grande è scorso via */
body.pag-home #page-title{transition:opacity .2s}
body.pag-home:not(.hm-scrollata) #page-title{opacity:0}
.icon-btn-dot.hm-num{width:auto;min-width:17px;height:17px;padding:0 4px;border-radius:99px;font-family:var(--mono);font-size:10px;line-height:17px;color:var(--accent-ink,#fff);background:var(--accent);place-items:center;top:2px;right:2px}

/* Card brand in testa */
.hm-hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px}
.hm-blk{background:var(--brand);color:var(--brand-ink);border-radius:var(--r);padding:16px 16px 14px;display:flex;flex-direction:column;gap:10px;min-width:0;position:relative;overflow:hidden;isolation:isolate}
.hm-blk::before{content:"";position:absolute;inset:9px;border:1.5px solid oklch(1 0 0 / .1);border-radius:6px;pointer-events:none;z-index:-1}
.hm-blk .hm-eyebrow{color:var(--brand-ink-3)}
.hm-blk .hm-link{color:var(--hi)}
.hm-tit{font-family:var(--font-display);font-weight:400;font-size:22px;line-height:1.15;letter-spacing:-.01em;margin:0;color:var(--brand-ink)}
.hm-tit em{color:var(--hi)}
.hm-tl{position:relative;--tl-track:oklch(1 0 0 / .08);--tl-grid:oklch(1 0 0 / .07)}
.hm-tl-ore{position:relative;height:16px;margin-left:var(--hm-lab);font-family:var(--mono);font-size:9.5px;color:var(--brand-ink-3)}
.hm-tl-ore span{position:absolute;transform:translateX(-50%)}
.hm-tl-riga{display:flex;align-items:center;height:32px;margin-top:6px}
.hm-tl-lab{width:var(--hm-lab);flex:none;display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--brand-ink)}
.hm-tl-c{display:none}
.hm-tl-dot{width:7px;height:7px;border-radius:50%;background:var(--brand-ink-3);flex:none}
.hm-tl-dot.on{background:var(--live);box-shadow:0 0 0 3px oklch(1 0 0 / .14);animation:hmPulsa calc(1.8s*var(--k,1) + .01s) ease-in-out infinite}
.hm-tl-pista{position:relative;flex:1;height:100%;border-radius:8px;background:var(--tl-track);background-image:repeating-linear-gradient(90deg,transparent 0 calc(100%/16 - 1px),var(--tl-grid) calc(100%/16 - 1px) calc(100%/16))}
.hm-bar{position:absolute;top:3px;bottom:3px;border:none;border-radius:6px;background:var(--brand-ink-2);color:var(--brand);font-family:var(--font-ui);font-size:10.5px;font-weight:700;padding:0 6px;display:flex;align-items:center;overflow:hidden;cursor:pointer;min-width:6px;transition:opacity .2s,filter .15s}
.hm-bar span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-bar.corso{background:var(--hi);color:var(--brand)}
.hm-bar.manut{background:oklch(1 0 0 / .28)}
.hm-bar.passata{opacity:.38}
.hm-bar.adesso{background:var(--live);color:#fff;box-shadow:0 0 0 2px oklch(1 0 0 / .18)}
.hm-bar.sel{outline:2px solid var(--brand-ink);outline-offset:1px}
.hm-bar:hover{filter:brightness(1.08)}
.hm-adesso{position:absolute;top:0;bottom:0;width:2px;background:var(--live);border-radius:2px;pointer-events:none}
/* ora attuale nella riga delle ore; il numero d'ora che tocca si nasconde (2026-10-11.1) */
.hm-tl-ore .hm-h-ora{top:-1px;z-index:1;background:var(--live);color:#fff;padding:1px 5px;border-radius:5px;white-space:nowrap}
.hm-tl-ore .hm-h-via{visibility:hidden}
.hm-tl-det{font-size:12.5px;line-height:1.45;color:var(--brand-ink);min-height:2.9em}
.hm-legenda{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--brand-ink-3);padding-top:9px;border-top:1px solid oklch(1 0 0 / .12)}
.hm-legenda span{display:inline-flex;align-items:center;gap:5px}
.hm-legenda i{width:12px;height:8px;border-radius:3px;display:inline-block}
.hm-legenda .l-soci{background:var(--brand-ink-2)}.hm-legenda .l-corsi{background:var(--hi)}.hm-legenda .l-ora{background:var(--live)}
/* Finanza */
.hm-saldo{font-family:var(--font-display);font-weight:500;font-size:34px;line-height:1;letter-spacing:-.02em;margin-top:6px;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.hm-fin-sub{font-size:12px;color:var(--brand-ink-2);margin-top:6px}
.hm-fin-sub b{color:var(--brand-ink);font-weight:600}
.hm-fin-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.hm-fin-mov{display:flex;flex-direction:column;gap:5px;min-width:0}
.hm-fin-mov .hm-eyebrow{justify-content:space-between}
.hm-fin-v{font-family:var(--font-display);font-size:20px;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums;display:block}
.hm-fin-v.pos{color:var(--pos-on-brand)}.hm-fin-v.neg{color:var(--neg-on-brand)}.hm-fin-v.hi{color:var(--hi)}
.hm-fin-bar{height:5px;border-radius:99px;background:oklch(1 0 0 / .14);overflow:hidden}
.hm-fin-bar i{display:block;height:100%;border-radius:99px}
.hm-fin-mov small{font-size:10.5px;color:var(--brand-ink-3)}
.hm-fin-ris{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding-top:10px;border-top:1px solid oklch(1 0 0 / .12);margin-top:auto}
.hm-fin-ris .hm-eyebrow{margin-bottom:3px}
.hm-fin-ris div:last-child .hm-eyebrow{justify-content:flex-end}
.hm-pallini{display:none}

/* Pulsanti rapidi (telefono) */
.hm-rapidi-tel{display:none}
.hm-rapido{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px 9px;border-radius:14px;background:var(--linen);border:1px solid var(--sand-dark);font-size:11px;font-weight:700;color:var(--text);cursor:pointer;font-family:var(--font-ui);transition:transform calc(.25s*var(--k,1)) var(--spring)}
.hm-rapido:active{transform:scale(.92)}

/* Griglia sotto */
.hm-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.hm-sx,.hm-dx{display:flex;flex-direction:column;gap:16px;min-width:0}
.hm-dx{position:sticky;top:0}
.hm-card{background:var(--linen);border:1px solid var(--sand-dark);border-radius:16px;box-shadow:var(--shadow);min-width:0}
.hm-card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px 4px}
.hm-card-t{font-family:var(--font-display);font-size:19px;font-weight:400;letter-spacing:-.01em;color:var(--forest);margin:0;line-height:1.15}
.hm-card-t em{color:var(--clay)}
.hm-badge{font-family:var(--mono);font-size:11px;background:var(--accent);color:var(--accent-ink,#fff);border-radius:99px;padding:1px 8px}
.hm-riga3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hm-riga2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hm-griglia2{display:none}
.hm-tile{background:var(--linen);border:1px solid var(--sand-dark);border-radius:16px;box-shadow:var(--shadow);padding:14px;display:flex;flex-direction:column;gap:7px;min-width:0}
.hm-tile .hm-eyebrow{white-space:nowrap;overflow:hidden}
.hm-num{font-family:var(--font-display);font-weight:500;font-size:30px;line-height:1;letter-spacing:-.02em;color:var(--forest);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.hm-num small{font-size:16px;color:var(--text3);letter-spacing:0}
.hm-sub{font-size:11.5px;color:var(--text2)}
.hm-barra{height:6px;border-radius:99px;background:var(--sand-mid);overflow:hidden}
.hm-barra i{display:block;height:100%;border-radius:99px;background:var(--green)}
.hm-spark{display:flex;align-items:flex-end;gap:2px;height:22px}
.hm-spark i{flex:1;background:var(--clay);opacity:.55;border-radius:2px 2px 0 0}
.hm-spark i:last-child{opacity:1}
.hm-regs{padding:6px 16px 16px;display:flex;flex-direction:column;gap:14px}
.hm-reg{display:grid;grid-template-columns:1fr auto;gap:5px 10px;align-items:baseline}
.hm-reg-l{font-size:12.5px;font-weight:600}
.hm-reg-v{font-family:var(--font-display);font-size:17px;font-weight:500;font-variant-numeric:tabular-nums}
.hm-reg-v small{font-family:var(--font-ui);font-size:11px;color:var(--text3)}
.hm-reg .hm-barra{grid-column:1/-1;height:8px}
.hm-reg-n{grid-column:1/-1;font-size:11px;color:var(--text3)}
.hm-rasd{padding:6px 16px 14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.hm-rasd .hm-barra{width:100%}
.hm-rasd ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:12px}
.hm-rasd li{display:flex;gap:7px;align-items:center;color:var(--text2)}
.hm-rasd li.f i{color:var(--green)}.hm-rasd li.d i{color:var(--amber-ink)}
.hm-scad{list-style:none;margin:0;padding:2px 16px 10px}
.hm-scad li{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--line-2)}
.hm-scad li:first-child{border-top:0}
.hm-gg{font-family:var(--font-display);font-size:22px;text-align:center;line-height:1;color:var(--forest)}
.hm-gg span{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--text3);margin-top:2px}
.hm-sc-n{font-size:13px;font-weight:600;min-width:0}
.hm-sc-n small{display:block;font-weight:400;color:var(--text2);font-size:11.5px}
/* Cose da fare */
.hm-todo{list-style:none;margin:0;padding:4px 8px 8px}
.hm-todo-li{display:grid;grid-template-rows:1fr;transition:grid-template-rows calc(.32s*var(--k,1)) ease,opacity .25s}
.hm-todo-li.via{grid-template-rows:0fr;opacity:0}
.hm-todo-in{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:12px;position:relative;overflow:visible;min-height:0}
.hm-todo-li>.hm-todo-in{overflow:hidden}
.hm-todo-in:hover{background:var(--sand-mid)}
.hm-todo-tx{flex:1;min-width:0;font-size:13px;line-height:1.35;text-align:left;background:none;border:none;color:var(--text);cursor:pointer;font-family:var(--font-ui);padding:0}
.hm-todo-tx small{display:block;color:var(--text3);font-size:11.5px;margin-top:1px}
.hm-ic-btn{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:17px;color:var(--text3);background:none;border:none;cursor:pointer;flex:none}
.hm-ic-btn:hover{background:var(--linen);color:var(--text)}
.hm-rim-menu{position:absolute;right:6px;top:calc(100% - 6px);z-index:30;background:var(--linen);border:1px solid var(--sand-dark);border-radius:12px;box-shadow:0 10px 30px -8px rgba(0,0,0,.35);padding:5px;min-width:170px}
.hm-rim-menu p{margin:4px 8px 6px;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3)}
.hm-rim-menu button{display:flex;width:100%;padding:9px 10px;border-radius:8px;font-size:13px;justify-content:space-between;gap:10px;background:none;border:none;color:var(--text);cursor:pointer;font-family:var(--font-ui)}
.hm-rim-menu button span{color:var(--text3);font-size:11.5px}
.hm-rim-menu button:hover{background:var(--sand-mid)}
.hm-todo-foot{display:flex;justify-content:space-between;align-items:center;padding:2px 16px 12px;font-size:12px;color:var(--text3)}
.hm-todo-ok{display:flex;gap:10px;align-items:center;padding:10px 16px 14px;font-size:13px;color:var(--green)}
.hm-todo-card .hm-todo-li:has(.hm-rim-menu)>.hm-todo-in{overflow:visible}
/* Ultime attività */
.hm-att{list-style:none;margin:0;padding:2px 16px 10px}
.hm-att li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line-2)}
.hm-att li:first-child{border-top:0}
.hm-att .hm-chip{width:30px;height:30px;font-size:15px}
.hm-att-tx{flex:1;min-width:0;font-size:12.5px;line-height:1.35}
.hm-att-tx small{display:block;color:var(--text3);font-size:11.5px;overflow-wrap:anywhere}
.hm-att-chi{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none}
.hm-avatar{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:10.5px;font-weight:800;color:var(--accent-ink,#fff);background:var(--accent)}
.hm-avatar.altro{background:var(--brand2);color:var(--brand-ink)}
.hm-att-ora{font-family:var(--mono);font-size:10px;color:var(--text3)}
.hm-solo-tel{display:none}

@keyframes hmPulsa{0%,100%{box-shadow:0 0 0 2px oklch(1 0 0 / .16)}50%{box-shadow:0 0 0 6px oklch(1 0 0 / 0)}}

/* Computer stretto: la colonna destra va sotto */
@media(max-width:1180px) and (min-width:768px){
  .hm-grid{grid-template-columns:minmax(0,1fr)}
  .hm-dx{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .hm-hero{grid-template-columns:minmax(0,1fr)}
}
/* Telefono */
@media(max-width:767px){
  .hm{--hm-lab:38px;gap:12px}
  .hm-solo-pc,.hm-rapidi-pc{display:none!important}
  .hm-solo-tel{display:grid}
  .hm-testa{align-items:flex-end;padding-bottom:12px}
  .hm-h1{font-size:38px}
  .hm-ciao{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:56vw}
  .hm-meteo-d{display:none}
  .hm-hero{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -12px;padding:0 12px;scroll-padding:0 12px;scrollbar-width:none}
  .hm-hero::-webkit-scrollbar{display:none}
  .hm-hero>.hm-blk{flex:0 0 88%;scroll-snap-align:start}
  .hm-pallini{display:flex;justify-content:center;gap:6px;margin-top:-4px}
  .hm-pallini button{width:7px;height:7px;padding:0;border:none;border-radius:99px;background:var(--sand-dark);cursor:pointer;transition:width .25s,background .25s}
  .hm-pallini button.on{width:20px;background:var(--clay)}
  .hm-tl-n{display:none}.hm-tl-c{display:inline}
  .hm-tl-ore .hm-h-x{display:none}
  .hm-bar span{display:none}
  .hm-tit{font-size:21px}
  .hm-saldo{font-size:32px}
  .hm-rapidi-tel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .hm-grid{display:flex;flex-direction:column;gap:12px}
  .hm-sx,.hm-dx{display:contents}
  .hm-todo-card,.hm-att-card,.hm-griglia2{width:100%;align-self:stretch}
  .hm-todo-card{order:1}
  .hm-griglia2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;order:2}
  .hm-att-card{order:3}
  .hm-num{font-size:27px}
  .hm-ic-btn.hm-solo-pc{display:none}
}
/* ═══ Campi 06/10 (2026-10-06.12): nuova sezione Campi dal prototipo approvato da Paolo (v3) — classi cp-* ═══ */
.cp{--cp-sh:24px;--cp-wh:22px;--cp-gl:52px;display:flex;flex-direction:column;gap:12px;max-width:1500px}
.cp-riga1{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cp-seg{display:inline-flex;background:var(--sand-mid);border:1px solid var(--sand-dark);border-radius:999px;padding:3px}
.cp-seg button{padding:6px 16px;border-radius:999px;font-size:12.5px;font-weight:700;color:var(--text2);background:none;border:none;cursor:pointer;font-family:var(--font-ui)}
.cp-seg button.on{background:var(--brand);color:var(--brand-ink)}
.cp-prenota{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:999px;background:var(--accent);color:var(--accent-ink,#fff);font-weight:700;font-size:13px;border:none;cursor:pointer;font-family:var(--font-ui);box-shadow:0 6px 14px -8px var(--accent)}
.cp-fab{display:none}
.cp-giorni{display:flex;align-items:center;gap:4px;background:var(--linen);border:1px solid var(--sand-dark);border-radius:16px;padding:6px}
.cp-fr{width:30px;height:44px;display:grid;place-items:center;color:var(--text3);font-size:17px;border-radius:10px;flex:none;background:none;border:none;cursor:pointer}
.cp-fr:hover{background:var(--sand-mid);color:var(--text)}
.cp-gg{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 0 6px;border-radius:12px;color:var(--text2);background:none;border:none;cursor:pointer;font-family:var(--font-ui)}
.cp-gg:hover{background:var(--sand-mid)}
.cp-gg small{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase}
.cp-gg b{font-family:var(--font-display);font-size:19px;font-weight:500;line-height:1;color:var(--text)}
.cp-gg i{display:flex;gap:2px;height:4px}
.cp-gg i span{width:4px;height:4px;border-radius:50%;background:var(--clay);opacity:.85}
.cp-gg.oggi small{color:var(--clay);font-weight:700}
.cp-gg.sel{background:var(--brand);color:var(--brand-ink)}
.cp-gg.sel b,.cp-gg.sel small{color:var(--brand-ink)}
.cp-gg.sel i span{background:var(--hi)}
.cp-settnav{justify-content:space-between}
.cp-settlab{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--forest)}
.cp-kpi{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}
.cp-kpi-c{background:var(--linen);border:1px solid var(--sand-dark);border-radius:13px;padding:8px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.cp-kpi-c small{font-family:var(--mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-kpi-c b{font-family:var(--font-display);font-size:20px;font-weight:500;line-height:1.05;color:var(--forest);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.cp-legenda{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--text3)}
.cp-legenda span{display:inline-flex;align-items:center;gap:5px}
.cp-legenda i{width:12px;height:8px;border-radius:3px;display:inline-block}
.cp-legenda .l-soci{background:var(--brand)}.cp-legenda .l-abb{background:var(--brand2)}.cp-legenda .l-lez{background:var(--hi)}.cp-legenda .l-ora{background:var(--live)}

/* Giorno */
.cp-gr{background:var(--linen);border:1px solid var(--sand-dark);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.cp-gr-testa{display:grid;grid-template-columns:var(--cp-gl) repeat(3,minmax(0,1fr));gap:6px;padding:10px 10px 6px;border-bottom:1px solid var(--line-2)}
.cp-gr-testa div{text-align:center;font-family:var(--font-display);font-size:15px;color:var(--forest)}
.cp-gr-testa div small{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}
.cp-gr-testa .on::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--live);margin-right:6px;vertical-align:1px}
.cp-n-tel{display:none}
.cp-piega{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:12px;color:var(--text2);background:var(--sand-mid);border:none;border-bottom:1px dashed var(--sand-dark);cursor:pointer;font-family:var(--font-ui);text-align:left}
.cp-piega i{font-size:14px;color:var(--text3)}
.cp-piega b{color:var(--text)}
.cp-piega-az{margin-left:auto;color:var(--clay);font-weight:700}
.cp-gr-corpo{position:relative;display:grid;grid-template-columns:var(--cp-gl) repeat(3,minmax(0,1fr));gap:0 6px;padding:4px 10px 10px}
.cp-gr-ore{position:relative}
.cp-gr-ore span{position:absolute;right:6px;transform:translateY(-50%);font-family:var(--mono);font-size:9.5px;color:var(--text3)}
.cp-gr-col{position:relative;border-radius:8px;background-image:repeating-linear-gradient(180deg,transparent 0 calc(var(--cp-sh)*2 - 1px),var(--line-2) calc(var(--cp-sh)*2 - 1px) calc(var(--cp-sh)*2))}
.cp-vuoto{position:absolute;left:0;right:0;height:var(--cp-sh);border:none;border-radius:6px;opacity:0;display:grid;place-items:center;color:var(--clay);font-size:15px;background:none;cursor:pointer;transition:opacity .15s,background .15s}
.cp-vuoto:hover,.cp-vuoto:focus-visible{opacity:1;background:color-mix(in oklch,var(--clay) 10%,transparent)}
.cp-b{position:absolute;z-index:1;left:0;right:0;border:none;border-radius:9px;padding:4px 7px;text-align:left;overflow:hidden;display:flex;flex-direction:column;gap:1px;background:var(--brand);color:var(--brand-ink);font-family:var(--font-ui);font-size:11.5px;line-height:1.2;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:transform .15s,opacity .2s}
.cp-b b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-b b i{font-size:11px}
.cp-b small{font-family:var(--mono);font-size:9.5px;opacity:.8;white-space:nowrap}
.cp-eur{position:absolute;right:5px;top:4px;font-family:var(--mono);font-size:9px;padding:0 4px;border-radius:5px;background:oklch(1 0 0 / .2)}
.cp-b.t-abb{background:var(--brand2)}
.cp-b.t-lez{background:var(--hi);color:var(--brand)}
.cp-b.t-man{background:repeating-linear-gradient(135deg,var(--sand-mid) 0 6px,var(--sand-dark) 6px 7px);color:var(--text2)}
.cp-b.t-gra{background:var(--linen);color:var(--forest);box-shadow:inset 0 0 0 1.5px var(--brand2)}
.cp-b.passata{opacity:.42}
.cp-b.adesso{background:var(--live);color:#fff;box-shadow:0 0 0 2px color-mix(in oklch,var(--live) 35%,transparent),0 6px 14px -6px var(--live)}
.cp-b:hover{transform:translateY(-1px)}
.cp-b.cp-atterra{animation:cpAtterra calc(.7s*var(--k,1)) var(--spring,ease) backwards}
@keyframes cpAtterra{from{transform:translateY(-14px) scale(.96);opacity:0}}
.cp-ora{position:absolute;left:10px;right:10px;height:2px;background:var(--live);pointer-events:none;z-index:0}
.cp-ora span{position:absolute;left:0;top:50%;transform:translateY(-50%);background:var(--live);color:#fff;font-family:var(--mono);font-size:9.5px;padding:1px 5px;border-radius:5px}

/* Settimana: giorni in colonna, ore in riga, nomi leggibili */
.cp-sw{background:var(--linen);border:1px solid var(--sand-dark);border-radius:18px;box-shadow:var(--shadow);overflow-x:auto;scrollbar-width:thin}
.cp-sw-testa,.cp-sw-corpo{display:grid;grid-template-columns:44px var(--cp-swcols-pc,repeat(7,minmax(0,1fr)));gap:0 4px;padding:0 8px}
.cp-sw-testa{padding-top:8px;padding-bottom:6px;border-bottom:1px solid var(--line-2)}
.cp-sw-angolo,.cp-sw-ore{position:sticky;left:-8px;z-index:4;background:var(--linen);margin-left:-8px;padding-left:8px}
.cp-swg{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 0;border-radius:10px;line-height:1;background:none;border:none;cursor:pointer;font-family:var(--font-ui)}
.cp-swg small{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}
.cp-swg b{font-family:var(--font-display);font-size:19px;font-weight:500;color:var(--forest)}
.cp-swg i{font-style:normal;font-size:9.5px;color:var(--text3)}
.cp-swg.oggi{background:var(--brand)}.cp-swg.oggi small,.cp-swg.oggi b,.cp-swg.oggi i{color:var(--brand-ink)}
.cp-swg:hover{outline:1.5px solid var(--clay)}
.cp-sw-corpo{position:relative;padding-top:6px;padding-bottom:6px}
.cp-sw-ore span{position:absolute;right:6px;transform:translateY(-50%);font-family:var(--mono);font-size:9.5px;color:var(--text3)}
.cp-sw-col{position:relative;border-radius:6px;background-image:repeating-linear-gradient(180deg,transparent 0 calc(var(--cp-wh)*2 - 1px),var(--line-2) calc(var(--cp-wh)*2 - 1px) calc(var(--cp-wh)*2))}
.cp-sw-col.oggi{background-color:color-mix(in oklch,var(--clay) 6%,transparent)}
.cp-swb{position:absolute;z-index:1;border:none;border-radius:6px;padding:2px 4px 2px 3px;display:flex;align-items:flex-start;gap:3px;overflow:hidden;background:var(--brand);color:var(--brand-ink);font-family:var(--font-ui);font-size:10.5px;line-height:1.2;text-align:left;cursor:pointer}
.cp-swb b{font-weight:700;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.cp-swc{flex:none;font-family:var(--mono);font-size:8.5px;min-width:12px;height:12px;border-radius:4px;display:grid;place-items:center;background:oklch(1 0 0 / .2)}
.cp-swb.t-abb{background:var(--brand2)}
.cp-swb.t-lez{background:var(--hi);color:var(--brand)}.cp-swb.t-lez .cp-swc{background:rgba(0,0,0,.1)}
.cp-swb.t-man{background:repeating-linear-gradient(135deg,var(--sand-mid) 0 6px,var(--sand-dark) 6px 7px);color:var(--text2)}
.cp-swb.t-gra{background:var(--linen);color:var(--forest);box-shadow:inset 0 0 0 1.5px var(--brand2)}
.cp-swb.passata{opacity:.45}.cp-swb.adesso{background:var(--live);color:#fff}
.cp-sw-ora{position:absolute;left:-2px;right:-2px;height:2px;background:var(--live);z-index:0}
.cp-nota{display:flex;justify-content:space-between;gap:10px;font-size:11.5px;color:var(--text3);padding:0 4px}

/* Foglio dei dettagli (usa la finestra di sempre: foglio al telefono, pannello a destra al computer, qui più stretto) */
@media(min-width:768px){.modal-overlay.modal-stretto .modal{max-width:400px}}
.cp-det{display:flex;flex-direction:column;gap:14px}
.cp-det-top{display:flex;align-items:flex-start;gap:12px}
.cp-det-ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:22px;flex:none;background:var(--brand);color:var(--brand-ink)}
.cp-det-ic.t-lez{background:var(--hi);color:var(--brand)}.cp-det-ic.t-abb{background:var(--brand2)}.cp-det-ic.t-man,.cp-det-ic.t-gra{background:var(--sand-mid);color:var(--forest)}
.cp-det-nome{font-family:var(--font-display);font-weight:500;font-size:23px;line-height:1.1;color:var(--forest)}
.cp-det-sub{margin-top:3px;font-size:12.5px;color:var(--text2)}
.cp-det-righe{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:13px;padding:12px 14px;background:var(--sand-mid);border-radius:14px;margin:0}
.cp-det-righe dt{color:var(--text3);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding-top:2px}
.cp-det-righe dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.cp-inc{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:14px;font-size:13px}
.cp-inc i{font-size:18px}
.cp-inc.si{background:var(--green-bg);color:var(--green)}
.cp-inc.no{background:var(--amber-bg);color:var(--amber-ink)}
.cp-inc.neutro{background:var(--sand-mid);color:var(--text2)}
.cp-det-az{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cp-det-az button{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 4px;border-radius:14px;font-size:12px;font-weight:700;background:var(--sand-mid);color:var(--text);border:none;cursor:pointer;font-family:var(--font-ui)}
.cp-det-az button i{font-size:20px}
.cp-det-az button.prim{background:var(--accent);color:var(--accent-ink,#fff)}
.cp-det-az button.elim{color:var(--red)}
.cp-det-az button:disabled{opacity:.45;cursor:default}
.cp-incf{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:14px;border:1.5px solid var(--accent);background:var(--clay-pale)}
.cp-incf-t{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}
.cp-incf-imp{display:flex;align-items:center;gap:6px;font-family:var(--font-display);font-size:24px;color:var(--text)}
.cp-incf-imp input{width:130px;font:inherit;padding:4px 10px;border-radius:10px;border:1px solid var(--sand-dark);background:var(--linen);color:var(--text)}
.cp-incf-met{display:flex;gap:6px}
.cp-incf-met button{flex:1;padding:9px 6px;border-radius:999px;font-size:12.5px;font-weight:700;background:var(--linen);border:1px solid var(--sand-dark);color:var(--text);cursor:pointer;font-family:var(--font-ui)}
.cp-incf-met button.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.cp-incf-az{display:flex;gap:8px;justify-content:flex-end}
.cp-incf-az button{padding:10px 16px;border-radius:999px;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text);cursor:pointer;font-family:var(--font-ui)}
.cp-incf-az .prim{background:var(--accent);color:var(--accent-ink,#fff)}

/* Telefono */
@media(max-width:767px){
  .cp{--cp-sh:22px;--cp-wh:20px;--cp-gl:34px;gap:10px}
  .cp-prenota{display:none}
  .cp-fab{display:inline-flex;align-items:center;gap:7px;position:fixed;right:16px;bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px) + 34px);z-index:60;padding:13px 20px;border-radius:999px;border:none;background:var(--accent);color:var(--accent-ink,#fff);font-weight:800;font-size:14.5px;font-family:var(--font-ui);cursor:pointer;box-shadow:0 12px 24px -10px var(--accent),0 0 0 4px var(--bg)}
  .cp-fab i{font-size:18px}
  .cp-fab:active{transform:scale(.94)}
  .cp-n-pc{display:none}.cp-n-tel{display:inline}
  .cp-gr-testa{padding:8px 8px 5px;gap:4px}
  .cp-gr-corpo{padding:4px 8px 10px;gap:0 4px}
  .cp-ora{left:8px;right:8px}
  .cp-gg b{font-size:18px}
  .cp-kpi-c{padding:7px 10px}
  .cp-kpi-c b{font-size:18px}
  .cp-sw-in{width:max-content}
  .cp-sw-testa,.cp-sw-corpo{grid-template-columns:44px var(--cp-swcols-tel,repeat(7,104px))}
  .cp-kpi-c small{white-space:normal;line-height:1.2}
  .cp-nota{flex-direction:column;gap:2px;padding-bottom:60px}
  .cp .cp-gr,.cp .cp-sw{margin-bottom:56px}
  .cp-sett .cp-sw{margin-bottom:0}
}

/* ═══ Testata 07/10 (2026-10-07.1): intestazione a «onda» uguale in tutte le sezioni (prototipo v4 approvato da Paolo) ═══
   --testata = fondo tenue nella tinta del brand; la barra in alto del telefono e la barra di sistema hanno lo stesso colore. */
:root{--testata:oklch(0.925 0.04 154)}
[data-theme="dark"]{--testata:oklch(0.27 0.035 155)}
[data-palette="pallina"]{--testata:oklch(0.925 0.04 156)}
[data-palette="pallina"][data-theme="dark"]{--testata:oklch(0.27 0.035 156)}
[data-palette="notte"]{--testata:oklch(0.925 0.04 160)}
[data-palette="notte"][data-theme="dark"]{--testata:oklch(0.27 0.035 160)}
[data-palette="salvia"]{--testata:oklch(0.925 0.04 152)}
[data-palette="salvia"][data-theme="dark"]{--testata:oklch(0.27 0.035 152)}

/* testata: fondo tenue a tutta larghezza, bordo inferiore curvo */
.tt,.hm .hm-testa{position:relative;isolation:isolate;z-index:0;background:var(--testata);margin:-20px -20px 28px;padding:24px 24px 14px;border-bottom:none;
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.hm .hm-testa{margin-bottom:14px}
.tt::after,.hm .hm-testa::after{content:"";position:absolute;left:0;right:0;bottom:-20px;height:40px;background:var(--testata);border-radius:0 0 50% 50% / 0 0 100% 100%;z-index:-1;pointer-events:none}
.tt-sx{min-width:0}
.tt-h1{font-family:var(--font-display);font-weight:400;font-size:44px;line-height:1;letter-spacing:-.02em;color:var(--forest);margin:0}
.tt-sub{margin:7px 0 0;font-size:13px;color:var(--text2);align-items:center;gap:7px}
.tt-sub::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}
.tt-sub b{color:var(--text)}
.tt-dx{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:none}
.hm{max-width:none}
.hm>*:not(.hm-testa){max-width:1500px}
/* schede delle sezioni: fisse in alto scorrendo */
.sez-schede{position:sticky;top:0;z-index:6;background:var(--bg);margin-left:-20px;margin-right:-20px;padding:8px 20px}

/* barra in alto: niente data; marchio solo al telefono */
#topbar-date{display:none}
.tb-marchio{display:none;align-items:center;gap:9px}
.tb-marchio .pv-ball{--s:24px}
.tb-marchio b{font-family:var(--font-display);font-weight:500;font-size:19px;letter-spacing:-.01em;color:var(--text)}
.tb-marchio b em{color:var(--accent)}
body.con-testata #page-title{transition:opacity .2s}
body.con-testata:not(.scrollata) #page-title{opacity:0}
.agg-ora{font-family:var(--mono);font-size:10px;color:var(--text3);white-space:nowrap}
body.aggiorno #topbar-agg .ti{animation:spin .8s linear infinite}

/* tira per aggiornare (telefono) */
#main{position:relative}
.ptr{position:absolute;left:0;right:0;top:60px;height:0;display:flex;justify-content:center;z-index:20;pointer-events:none;opacity:0;transform:translateY(-46px);transition:opacity .2s,transform .35s var(--out)}
.ptr-in{margin-top:10px;display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:99px;background:var(--surface);border:1px solid var(--border);
  box-shadow:0 8px 18px -10px oklch(0 0 0 / .4);font-size:12px;font-weight:700;color:var(--text2);white-space:nowrap;height:36px}
.ptr-in .pv-ball{--s:24px}
.ptr.gira .pv-ball{animation:spin .8s linear infinite}
#content{transition:transform .35s var(--out)}
body.ptr-tira #content,body.ptr-tira .ptr{transition:none}

@media(max-width:767px){
  #topbar{background:var(--testata);border-bottom:1px solid transparent;box-shadow:none;transition:border-color .2s}
  body.scrollata #topbar{border-bottom-color:var(--border-soft)}
  body:not(.con-testata) #topbar{border-bottom-color:var(--border-soft)}
  body.con-testata:not(.scrollata) .tb-marchio{display:flex;animation:cv-fade calc(.3s*var(--k)) backwards}
  body.con-testata:not(.scrollata) #page-title{display:none}
  #topbar-agg,.agg-ora{display:none}
  #content{overscroll-behavior-y:contain}
  .tt,.hm .hm-testa{margin:-12px -12px 26px;padding:8px 14px 12px}
  .hm .hm-testa{margin-bottom:12px}
  .tt-h1{font-size:38px}
  .tt-dx .cp-prenota{display:none}
  .tt-dx:empty{display:none}
  .sez-schede{margin-left:-12px;margin-right:-12px;padding:8px 12px}
}
@media(max-width:1100px) and (min-width:768px){.agg-ora{display:none}}

/* ═══ Soci 07/10 (2026-10-07.2): elenco e scheda socio nel nuovo stile — classi so-*, più tt-btn e fab-az riusabili ═══ */
.tt-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:999px;background:var(--accent);color:var(--accent-ink,#fff);font-weight:700;font-size:13px;border:none;cursor:pointer;font-family:var(--font-ui);box-shadow:0 6px 14px -8px var(--accent)}
.tt-btn i{font-size:16px}
.fab-az{display:none}
.so{display:flex;flex-direction:column;gap:12px;max-width:1500px}
.so-stati{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.so-stato{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 12px;border-radius:14px;background:var(--linen);border:1.5px solid var(--sand-dark);cursor:pointer;text-align:left;min-width:0;font-family:var(--font-ui);color:var(--text)}
.so-stato b{font-family:var(--font-display);font-weight:500;font-size:24px;line-height:1.05;color:var(--forest);font-variant-numeric:lining-nums tabular-nums}
.so-stato small{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);line-height:1.25}
.so-stato.warn b{color:var(--amber-ink)}
.so-stato.err b{color:var(--red)}
.so-stato.on{border-color:var(--text);background:var(--sand-mid)}
.so-split{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}
.so-lista,.so-pannello{background:var(--linen);border:1px solid var(--sand-dark);border-radius:var(--r);box-shadow:var(--shadow);min-width:0}
.so-lista{overflow:hidden}
.so-pannello{position:sticky;top:64px;padding:18px;max-height:calc(100vh - 150px);overflow-y:auto}
.so-lista-h{display:flex;flex-direction:column;gap:10px;padding:14px;border-bottom:1px solid var(--line-2)}
.so-cerca{display:flex;align-items:center;gap:9px;height:44px;padding:0 14px;border-radius:14px;background:var(--sand-mid);border:1px solid transparent;color:var(--text3);cursor:text}
.so-cerca:focus-within{border-color:var(--accent);background:var(--linen)}
.so-cerca i{font-size:17px}
.so-cerca input{flex:1;min-width:0;height:100%;border:none!important;background:none!important;box-shadow:none!important;padding:0!important;border-radius:0;outline:none;color:var(--text)}
.so-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.so-chips::-webkit-scrollbar{display:none}
.so-chips button{flex:none;height:32px;padding:0 12px;border-radius:99px;border:1.5px solid transparent;background:var(--sand-mid);color:var(--text2);font-size:12px;font-weight:700;cursor:pointer;font-family:var(--font-ui)}
.so-chips button.on{background:var(--linen);border-color:var(--text);color:var(--text)}
.so-lett{padding:5px 16px;background:var(--sand-mid);font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--text3);border-top:1px solid var(--line-2)}
.so-lett:first-child{border-top:none}
.so-r{display:flex;align-items:center;gap:11px;width:100%;padding:10px 16px;border:none;border-top:1px solid var(--line-2);background:none;text-align:left;cursor:pointer;font-family:var(--font-ui);color:var(--text)}
.so-lett+.so-r{border-top:none}
.so-r:hover{background:var(--sand-mid)}
.so-r.sel{background:var(--testata)}
.so-ini{position:relative;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--sand-mid);color:var(--forest);font-size:12px;font-weight:800;flex:none}
.so-r.sel .so-ini{background:var(--linen)}
.so-ini i{position:absolute;right:-1px;top:-1px;width:11px;height:11px;border-radius:50%;background:var(--red);border:2px solid var(--linen)}
.so-ini i.warn{background:var(--amber)}
.so-tx{flex:1;min-width:0}
.so-tx b{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-tx small{display:block;font-size:11.5px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-tag{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;flex:none;max-width:48%}
.so-tag .tag-pill{font-size:10.5px;font-weight:700;padding:2px 8px;white-space:nowrap}
.so-neu{background:var(--sand-mid);color:var(--text2)}
.so-vuoto{padding:40px 20px;text-align:center;color:var(--text3)}
.so-vuoto i{font-size:38px;opacity:.4;display:block;margin-bottom:8px}
.so-vuota{padding:50px 20px;text-align:center;color:var(--text3);font-size:13px}
.so-vuota i{font-size:44px;opacity:.3;display:block;margin-bottom:10px}
/* scheda socio (pannello al computer, foglio al telefono) */
.so-sch{display:flex;flex-direction:column;gap:14px}
.so-sch-top{display:flex;align-items:center;gap:14px}
.so-sch-av{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--brand-ink);font-family:var(--font-display);font-size:22px;font-weight:500;flex:none}
.so-sch-nome{font-family:var(--font-display);font-weight:500;font-size:24px;line-height:1.1;color:var(--forest)}
.so-sch-sub{font-size:12.5px;color:var(--text2);margin-top:3px}
.so-tre{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.so-tre>div{border-radius:14px;padding:10px 11px;display:flex;flex-direction:column;gap:3px;background:var(--sand-mid);min-width:0}
.so-tre small{font-family:var(--mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--text3)}
.so-tre b{font-size:13px;font-weight:700}
.so-tre span{font-size:11px;color:var(--text2);overflow-wrap:anywhere}
.so-tre .ok{background:var(--green-bg)}.so-tre .ok b{color:var(--green)}
.so-tre .warn{background:var(--amber-bg)}.so-tre .warn b{color:var(--amber-ink)}
.so-tre .err{background:var(--red-bg)}.so-tre .err b{color:var(--red)}
.so-rapide{display:flex;flex-direction:column;gap:6px}
.so-rapida{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1.5px dashed var(--sand-dark);background:none;font-size:12.5px;font-weight:600;cursor:pointer;text-align:left;color:var(--text);font-family:var(--font-ui)}
.so-rapida i{font-size:17px;color:var(--accent)}
.so-rapida:hover{border-color:var(--accent)}
.so-dati{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 14px;margin:0;padding:12px 14px;border-radius:14px;background:var(--sand-mid);font-size:13px}
.so-dati dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);padding-top:2px}
.so-dati dd{margin:0;font-weight:600;overflow-wrap:anywhere;min-width:0}
.so-mono{font-family:var(--mono);font-size:12px}
.so-badge{display:inline-flex;flex-wrap:wrap;gap:4px}
.so-az{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.so-az button{display:flex;flex-direction:column;align-items:center;gap:5px;padding:11px 4px;border-radius:14px;border:none;background:var(--sand-mid);color:var(--text);font-size:11.5px;font-weight:700;cursor:pointer;font-family:var(--font-ui)}
.so-az button i{font-size:19px}
.so-az .prim{background:var(--accent);color:var(--accent-ink,#fff)}
.so-az .elim{color:var(--red)}
@media(max-width:1023px){.so-split{grid-template-columns:minmax(0,1fr)}.so-pannello{display:none}}
@media(max-width:767px){
  .fab-az{display:inline-flex;align-items:center;gap:7px;position:fixed;right:16px;bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px) + 34px);z-index:60;padding:13px 20px;border-radius:999px;border:none;background:var(--accent);color:var(--accent-ink,#fff);font-weight:800;font-size:14.5px;font-family:var(--font-ui);cursor:pointer;box-shadow:0 12px 24px -10px var(--accent),0 0 0 4px var(--bg)}
  .fab-az i{font-size:18px}
  .fab-az:active{transform:scale(.94)}
  .tt-dx .tt-btn{display:none}
  .so-stati{gap:6px}
  .so-stato{padding:8px 9px}
  .so-stato b{font-size:21px}
  .so-stato small{font-size:8.5px;letter-spacing:.03em}
  .so-lista-h{padding:12px}
  .so-r{padding:10px 12px}
  .so{padding-bottom:60px}
}

/* ═══ Salvia menta 07/10 (2026-10-07.2): blocchi verde menta come l'onda, testo scuro sopra (scelta di Paolo) ═══ */
[data-palette="salvia"]{
  --brand:oklch(0.9 0.05 155);--brand2:oklch(0.84 0.065 153);
  --brand-ink:oklch(0.25 0.05 158);--brand-ink-2:oklch(0.25 0.05 158 / .76);--brand-ink-3:oklch(0.25 0.05 158 / .6);
  --hi:oklch(0.42 0.09 152);--live:oklch(0.62 0.15 40);
  --pos-on-brand:oklch(0.45 0.13 150);--neg-on-brand:oklch(0.5 0.17 28);
  --forest:oklch(0.36 0.07 152);--forest-mid:oklch(0.46 0.07 150);
  --sand:oklch(0.97 0.014 150);--sand-mid:oklch(0.935 0.022 150);--sand-dark:oklch(0.88 0.03 150);--linen:oklch(0.995 0.005 140);
  --border-soft:oklch(0.915 0.022 150);--line-2:oklch(0.915 0.022 150);
}
[data-palette="salvia"][data-theme="dark"]{
  --brand:oklch(0.32 0.05 155);--brand2:oklch(0.4 0.06 152);
  --brand-ink:oklch(0.96 0.015 140);--brand-ink-2:oklch(0.96 0.015 140 / .76);--brand-ink-3:oklch(0.96 0.015 140 / .6);
  --hi:oklch(0.88 0.1 150);--live:oklch(0.7 0.15 40);
  --pos-on-brand:oklch(0.86 0.12 155);--neg-on-brand:oklch(0.82 0.09 28);
  --forest:oklch(0.85 0.08 150);--forest-mid:oklch(0.74 0.07 150);
}
/* sui blocchi menta le linee e i fondi trasparenti diventano scuri (nel tema scuro restano chiari) */
[data-palette="salvia"]:not([data-theme="dark"]) .hm-blk::before{border-color:oklch(0 0 0 / .08)}
[data-palette="salvia"]:not([data-theme="dark"]) .hm-tl{--tl-track:oklch(0 0 0 / .06);--tl-grid:oklch(0 0 0 / .06)}
[data-palette="salvia"]:not([data-theme="dark"]) .hm-legenda,[data-palette="salvia"]:not([data-theme="dark"]) .hm-fin-ris{border-top-color:oklch(0 0 0 / .1)}
[data-palette="salvia"]:not([data-theme="dark"]) .hm-fin-bar{background:oklch(0 0 0 / .1)}
[data-palette="salvia"]:not([data-theme="dark"]) .hm-bar.manut{background:oklch(0 0 0 / .15)}
[data-palette="salvia"]:not([data-theme="dark"]) .hm-tl-dot.on{box-shadow:0 0 0 3px oklch(0 0 0 / .1)}
[data-palette="salvia"]:not([data-theme="dark"]) .bnav-pill{background:oklch(0 0 0 / .08)}
[data-palette="salvia"]:not([data-theme="dark"]) #sidebar .nav-item:hover,[data-palette="salvia"]:not([data-theme="dark"]) #drawer .nav-item:hover{background:oklch(0 0 0 / .06)}
[data-palette="salvia"]:not([data-theme="dark"]) #sidebar .logo-wrap,[data-palette="salvia"]:not([data-theme="dark"]) #drawer .logo-wrap{border-bottom-color:oklch(0 0 0 / .1)}
[data-palette="salvia"]:not([data-theme="dark"]) .cp-eur,[data-palette="salvia"]:not([data-theme="dark"]) .cp-swc{background:oklch(0 0 0 / .1)}
.palette-sw-salvia{background:linear-gradient(135deg,#c26a4a 50%,#cfe9d6 50%)}

/* ═══ Schede Soci 07/10 (2026-10-07.3): Quote, Tessere FIT, Certificati, Libro soci — si appoggiano alle classi so-* di Soci 07/10 ═══ */
/* riga sotto il titolo: testo continuo (prima il grassetto finiva in una colonna a parte) */
.tt-sub{display:block}
.tt-sub::before{display:inline-block;margin-right:7px;vertical-align:1px}
.so-tag.so-tag-c{flex-direction:column;align-items:flex-end;gap:3px;flex-wrap:nowrap}
.so-imp{font-family:var(--font-display);font-size:16px;font-weight:500;color:var(--forest);white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.so-mini{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:99px;background:var(--accent);color:var(--accent-ink,#fff);font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}
.so-mini i{font-size:13px}
.so-data{font-family:var(--mono);font-size:10px;color:var(--text3)}
.so-sch-av.so-av-ic{background:var(--sand-mid);color:var(--forest);font-size:26px}
.so-sch-av.so-av-ic.ok{background:var(--green-bg);color:var(--green)}
.so-sch-av.so-av-ic.warn{background:var(--amber-bg);color:var(--amber-ink)}
.so-sch-av.so-av-ic.err{background:var(--red-bg);color:var(--red)}
.so-mono-t{font-family:var(--mono);font-size:20px}
.so-rapida.forte{border-style:solid;border-color:var(--accent);background:color-mix(in oklch,var(--accent) 8%,transparent);font-weight:700}
.so-az.so-az3{grid-template-columns:repeat(3,minmax(0,1fr))}
.so-az button:disabled{opacity:.45;cursor:default}
.so-tre .so-mono{font-size:11.5px}
.so-anno-r{display:flex;gap:12px;align-items:center}
.so-anno{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:99px;background:var(--linen);border:1px solid var(--sand-dark);flex:none}
.so-anno button{width:32px;height:32px;border-radius:50%;border:none;background:none;display:grid;place-items:center;cursor:pointer;color:var(--text2);font-size:17px}
.so-anno button:disabled{opacity:.35;cursor:default}
.so-anno b{font-family:var(--font-display);font-size:19px;font-weight:500;padding:0 6px;color:var(--forest);font-variant-numeric:lining-nums tabular-nums}
.so-prog{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.so-prog>div{height:8px;border-radius:99px;background:var(--sand-mid);overflow:hidden}
.so-prog i{display:block;height:100%;border-radius:99px;background:var(--green)}
.so-prog span{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.04em}
.tt-btn.tt-btn-2{background:var(--linen);color:var(--text);border:1px solid var(--sand-dark);box-shadow:none}
/* Libro soci: tabella al computer, righe al telefono */
.so-libro-tab{overflow-x:auto}
.so-tab{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.so-tab th{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);font-weight:500;text-align:left;padding:10px 16px;background:var(--sand-mid);white-space:nowrap}
.so-tab td{padding:11px 16px;border-top:1px solid var(--line-2);color:var(--text)}
.so-tab td.so-mono{font-size:12px}
.so-tab tr:hover td{background:var(--sand-mid)}
.so-libro-righe{display:none}
.so-r.so-r-libro{cursor:default}
.so-r.so-r-libro:hover{background:none}
.so-num{width:46px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--sand-mid);font-family:var(--mono);font-size:13px;font-weight:600;color:var(--forest);flex:none}
.so-r-libro small.so-mono{font-size:10.5px}
@media(max-width:767px){
  .so-libro-tab{display:none}
  .so-libro-righe{display:block}
  .fab-az.fab-az-2{background:var(--linen);color:var(--text);border:1px solid var(--sand-dark);box-shadow:0 12px 24px -12px oklch(0 0 0 / .35),0 0 0 4px var(--bg)}
  .so-anno-r{gap:10px}
}

/* ═══ Finanza 07/10 (2026-10-07.4): Mese, Anno, Movimenti, Budget, Categorie — classi fi-*, si appoggia alle so-* di Soci 07/10 ═══ */
.fi .fi-per{display:flex;gap:14px;align-items:center}
.fi-nav b{min-width:136px;text-align:center}
.fi-mesi{flex:1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;min-width:0;padding:3px;border-radius:16px;background:var(--linen);border:1px solid var(--sand-dark)}
.fi-mesi.con-anno{grid-template-columns:auto repeat(12,minmax(0,1fr))}
.fi-mesi button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 0 4px;border:none;border-radius:12px;background:none;cursor:pointer;font:700 10px var(--mono);color:var(--text2);min-width:0}
.fi-mesi button:hover{background:var(--sand-mid)}
.fi-mesi .fi-mesi-anno{padding:5px 10px;justify-content:center;font-size:10.5px}
.fi-bb{height:20px;display:flex;align-items:flex-end;gap:2px}
.fi-bb i{width:4px;border-radius:2px;background:var(--green);min-height:2px}
.fi-bb i+i{background:var(--red)}
.fi-bb i.z{background:var(--sand-dark)}
.fi-mesi button.fut{color:var(--text3)}
.fi-mesi button.on{background:var(--text);color:var(--bg)}
/* card del saldo, come la card Finanza della Home */
.fi-saldo{background:var(--brand);color:var(--brand-ink);border-radius:22px;padding:18px 18px 16px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;box-shadow:0 14px 30px -18px oklch(0.2 0.05 152 / .6);min-width:0}
.fi-eyb{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brand-ink-3);display:flex;justify-content:space-between;align-items:center;gap:8px}
.fi-saldo-n{font-family:var(--font-display);font-weight:500;font-size:38px;line-height:1;letter-spacing:-.02em;margin-top:6px;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.fi-saldo-sub{font-size:12px;color:var(--brand-ink-2);margin-top:7px}
.fi-saldo-sub b{color:var(--brand-ink);font-weight:600}
.fi-saldo-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fi-sm{display:flex;flex-direction:column;gap:5px;min-width:0;background:none;border:none;padding:0;text-align:left;cursor:pointer;color:inherit;font-family:var(--font-ui)}
.fi-v{display:block;font-family:var(--font-display);font-size:22px;font-weight:500;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.fi-v.pic{font-size:17px}
.fi-v.pos{color:var(--pos-on-brand)}.fi-v.neg{color:var(--neg-on-brand)}
.fi-bar{height:5px;border-radius:99px;background:color-mix(in oklch,var(--brand-ink) 14%,transparent);overflow:hidden}
.fi-bar i{display:block;height:100%;border-radius:99px}
.fi-sm small{font-size:10.5px;color:var(--brand-ink-3)}
.fi-ris{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding-top:11px;border-top:1px solid color-mix(in oklch,var(--brand-ink) 13%,transparent)}
.fi-ris .fi-eyb{margin-bottom:3px}
.fi-ris>div:last-child{text-align:right}
.fi-ris>div:last-child .fi-eyb{justify-content:flex-end}
.fi-lnk{background:none;border:none;color:var(--brand-ink-2);font:700 11px var(--font-ui);letter-spacing:0;text-transform:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:0}
.fi-lnk:hover{color:var(--brand-ink)}
/* card Entrate, Uscite, Versamenti; righe dei movimenti */
.fi-card{background:var(--linen);border:1px solid var(--sand-dark);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;min-width:0}
.fi-card-h{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line-2)}
.fi-ic{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;flex:none;font-size:19px}
.fi-ic.ent{background:var(--green-bg);color:var(--green)}.fi-ic.usc{background:var(--red-bg);color:var(--red)}.fi-ic.gir{background:var(--sand-mid);color:var(--text2)}
.fi-card-t{flex:1;min-width:0}
.fi-card-t b{display:block;font-size:14.5px;font-weight:700;color:var(--text)}
.fi-card-t small{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}
.fi-tot{font-family:var(--font-display);font-size:21px;font-weight:500;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.fi-tot.ent{color:var(--green)}.fi-tot.usc{color:var(--red)}.fi-tot.gir{color:var(--text2)}
.fi-add{width:34px;height:34px;border-radius:50%;border:1px solid var(--sand-dark);background:var(--linen);color:var(--text);display:grid;place-items:center;cursor:pointer;flex:none;font-size:17px}
.fi-add:hover{border-color:var(--accent);color:var(--accent)}
.fi-mv{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;border-top:1px solid var(--line-2);background:none;text-align:left;cursor:pointer;font-family:var(--font-ui);color:var(--text)}
.fi-card-h+.fi-mv,.so-lett+.fi-mv{border-top:none}
.fi-mv:hover{background:var(--sand-mid)}
.fi-dot{width:10px;height:10px;border-radius:50%;flex:none}
.fi-imp{font-family:var(--font-display);font-size:15.5px;font-weight:500;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums;flex:none}
.fi-imp.ent{color:var(--green)}.fi-imp.usc{color:var(--red)}.fi-imp.gir{color:var(--text2)}
.fi-orig{display:inline-flex;align-items:center;gap:3px;font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;border-radius:5px;background:var(--sand-mid);color:var(--text2);margin-right:2px;vertical-align:1px}
.fi-orig i{font-size:10px}
.fi-altri{display:block;width:100%;padding:12px;border:none;border-top:1px solid var(--line-2);background:none;font:700 12.5px var(--font-ui);color:var(--accent);cursor:pointer}
.fi-vuoto{padding:26px 16px;text-align:center;color:var(--text3);font-size:13px}
.fi-vuoto i{font-size:28px;display:block;margin-bottom:6px;opacity:.5}
.fi-pen{color:var(--text3);font-size:16px;flex:none}
.fi-mv .badge{flex:none}
.fi-giro{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;scroll-margin-top:72px}
.fi-pallini{display:none}
.fi-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:stretch}
/* settimane */
.fi-sw{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 14px;border-top:1px solid var(--line-2)}
.fi-card-h+.fi-sw{border-top:none}
.fi-sw-l b{font-family:var(--mono);font-size:12px}
.fi-sw-l small{display:block;font-size:10.5px;color:var(--text3)}
.fi-sw-b{display:flex;flex-direction:column;gap:3px;min-width:0}
.fi-sw-b i{display:block;height:6px;border-radius:99px;background:var(--green);min-width:3px}
.fi-sw-b i+i{background:var(--red)}
.fi-sw-b i.z{background:var(--sand-mid)}
.fi-sw-n{font-family:var(--font-display);font-size:14.5px;text-align:right;min-width:84px;white-space:nowrap}
.fi-sw-n.pos{color:var(--green)}.fi-sw-n.neg{color:var(--red)}.fi-sw-n.z{color:var(--text3)}
/* anno */
.so-stati.fi-stati{grid-template-columns:repeat(3,minmax(0,1fr))}
.so-stato.fi-fisso{cursor:default}
.so-stato.pos b{color:var(--green)}.so-stato.neg b{color:var(--red)}
.fi-leg{display:flex;gap:12px;font-size:11.5px;color:var(--text2);flex-wrap:wrap;justify-content:flex-end}
.fi-leg i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.fi-graf{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;height:190px;padding:14px 12px 10px}
.fi-gm{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:none;padding:4px 0 2px;border-radius:12px;cursor:pointer;min-width:0;font-family:var(--font-ui)}
.fi-gm:hover,.fi-gm.on{background:var(--sand-mid)}
.fi-gb{flex:1;display:flex;align-items:flex-end;gap:2px;width:100%;justify-content:center}
.fi-gb i{width:34%;max-width:13px;border-radius:4px 4px 1px 1px;background:var(--green);min-height:2px}
.fi-gb i+i{background:var(--red)}
.fi-gb i.z{background:var(--sand-dark)}
.fi-gm>span:last-child{font:700 10px var(--mono);color:var(--text3)}
.fi-gm.on>span:last-child{color:var(--text)}
.fi-tab-pc{overflow-x:auto}
.fi-tab{width:100%;border-collapse:collapse;font-size:13px;min-width:780px}
.fi-tab th{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);font-weight:500;text-align:right;padding:10px 14px;background:var(--sand-mid);white-space:nowrap}
.fi-tab td{padding:10px 14px;border-top:1px solid var(--line-2);text-align:right;font-family:var(--font-display);font-size:14px;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums;color:var(--text)}
.fi-tab th:first-child,.fi-tab td:first-child{text-align:left}
.fi-tab td:first-child{font-family:var(--font-ui);font-weight:600;font-size:13px}
.fi-tab td.pos{color:var(--green)}.fi-tab td.neg{color:var(--red)}.fi-tab td.z{color:var(--text3)}
.fi-tab tbody tr{cursor:pointer}
.fi-tab tbody tr:hover td{background:var(--sand-mid)}
.fi-tab tr.on td{background:var(--testata)}
.fi-tab tfoot td{background:var(--testata);font-weight:700;border-top:1px solid var(--sand-dark)}
.fi-righe-tel{display:none}
/* Storico 2024–2025 (2026-11-01.1): solo lettura; la tabella scorre di lato anche al telefono */
.fi-st-avviso{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:14px;background:var(--amber-bg);color:var(--amber-ink);font-size:13px;line-height:1.4}
.fi-st-avviso i{font-size:18px;margin-top:1px;flex:none}
.fi-st-anni{display:flex;gap:7px;flex-wrap:wrap}
.fi-st-anni button{height:34px;padding:0 14px;border-radius:99px;border:1.5px solid var(--sand-dark);background:var(--linen);font:600 13px var(--font-ui);color:var(--text2);cursor:pointer}
.fi-st-anni button.on{background:var(--text);color:var(--bg);border-color:var(--text)}
.so-stati.fi-st-stati{grid-template-columns:repeat(3,minmax(0,1fr))}
.fi-st-gm{cursor:default}
.fi-st-gm:hover{background:none}
.fi-st-tab{overflow-x:auto}
.fi-st-tab .fi-tab tbody tr{cursor:default}
.fi-st-tab .fi-tab tbody tr:hover td{background:none}
.fi-st-gruppo td{background:var(--sand-mid)!important;font-family:var(--mono)!important;font-size:9.5px!important;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);font-weight:500!important}
.fi-tab th.fi-st-fin,.fi-tab td.fi-st-fin{text-align:left;font-family:var(--font-ui);font-size:12.5px;color:var(--text2)}
.fi-st-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:99px;font:500 10px var(--font-ui);background:var(--sand-mid);color:var(--text3);vertical-align:1px;white-space:nowrap}
.fi-st-tag.fuori{background:var(--amber-bg);color:var(--amber-ink)}
.fi-st-nota{font-size:12px;color:var(--text3);padding:10px 14px;border-top:1px solid var(--line-2);line-height:1.45}
.fi-st-vuoto{padding:18px;color:var(--text3);font-size:13.5px}
.fi-mese-n{width:44px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--sand-mid);font:700 11px var(--mono);color:var(--forest);flex:none;text-transform:uppercase}
.fi-mr.on .fi-mese-n{background:var(--text);color:var(--bg)}
.fi-mr-dx{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex:none}
.fi-mr-dx small{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.05em;text-transform:uppercase}
.fi-pos{color:var(--green)}.fi-neg{color:var(--red)}
.fi-link{display:flex;align-items:center;gap:12px;width:100%;padding:14px;text-align:left;cursor:pointer;font-family:var(--font-ui);color:var(--text)}
.fi-link b{display:block;font-size:14px}
.fi-link small{display:block;font-size:12px;color:var(--text3)}
.fi-link>i{margin-left:auto;color:var(--text3);font-size:18px}
.fi-link:hover{border-color:var(--accent)}
/* movimenti */
.fi-tot-r{display:flex;align-items:center;gap:14px;padding:10px 16px;border-bottom:1px solid var(--line-2);background:var(--sand-mid);font-size:13px;font-weight:700;flex-wrap:wrap}
.fi-tot-r .pos{color:var(--green)}.fi-tot-r .neg{color:var(--red)}
.fi-tot-r span:last-child{margin-left:auto}
.fi-lett{display:flex;justify-content:space-between;gap:8px}
.so-chips .fi-sep{flex:none;width:1px;background:var(--sand-dark);margin:4px 2px}
.fi-filtri{display:flex;gap:6px;flex-wrap:wrap}
select.fi-sel{width:auto;max-width:100%;min-width:0;height:34px;padding:0 32px 0 12px;border-radius:99px;border:1.5px solid transparent;background-color:var(--sand-mid);color:var(--text2);font:700 12px var(--font-ui)}
/* budget */
.fi-bud{display:block;width:100%;padding:11px 14px;border:none;border-top:1px solid var(--line-2);background:none;text-align:left;font-family:var(--font-ui);color:var(--text)}
button.fi-bud{cursor:pointer}
button.fi-bud:hover{background:var(--sand-mid)}
.fi-card-h+.fi-bud{border-top:none}
.fi-bud-1{display:flex;align-items:center;gap:8px;min-width:0}
.fi-bud-1 b{flex:1;min-width:0;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fi-bud-1 .v{font-family:var(--font-display);font-size:14.5px;white-space:nowrap}
.fi-bud-1 .p{font-family:var(--mono);font-size:10.5px;color:var(--text3);white-space:nowrap}
.fi-bt{display:block;height:6px;border-radius:99px;background:var(--sand-mid);overflow:hidden;margin:7px 0 5px}
.fi-bt i{display:block;height:100%;border-radius:99px}
.fi-bud small{display:block;font-size:11.5px;color:var(--text2)}
.fi-bud small.neg{color:var(--red)}
.fi-nota{font-size:11.5px;color:var(--text3);margin:0}
.fi-info{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;font-size:12.5px;color:var(--text2);line-height:1.5}
.fi-info>i{color:var(--accent);font-size:18px;flex:none}
.fi-info b{color:var(--text)}
/* dettagli del movimento e scelta del nuovo */
.fi-avviso{padding:12px 14px;border-radius:14px;background:var(--sand-mid);font-size:12.5px;color:var(--text2);line-height:1.5}
.fi-avviso b{color:var(--text)}
.fi-scelta{gap:8px}
.fi-scelta .so-rapida{padding:12px 14px;border-style:solid;border-radius:16px;gap:12px}
.fi-scelta .so-rapida .fi-ic i{font-size:19px;color:inherit}
.fi-scelta .so-rapida b{display:block;font-size:14.5px}
.fi-scelta .so-rapida small{display:block;font-size:12px;color:var(--text3);font-weight:500}
@media(max-width:1023px) and (min-width:768px){.fi-duo{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767px){
  .fi .fi-per{flex-direction:column;align-items:stretch;gap:8px}
  .fi-nav{display:flex;justify-content:space-between}
  .fi-mesi button{font-size:9.5px}
  .fi-duo{display:contents}
  .fi-sett{order:9}
  .fi-giro{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -12px;padding:0 12px 6px;scroll-padding:0 12px;scrollbar-width:none;align-items:flex-start}
  .fi-giro::-webkit-scrollbar{display:none}
  .fi-giro>*{flex:0 0 88%;scroll-snap-align:start}
  .fi-pallini{display:flex;justify-content:center;gap:6px;margin-top:-6px}
  .fi-pallini button{width:7px;height:7px;padding:0;border:none;border-radius:99px;background:var(--sand-dark);cursor:pointer;transition:width .25s,background .25s}
  .fi-pallini button.on{width:20px;background:var(--clay)}
  .fi-saldo-n{font-size:34px}
  .fi-tab-pc{display:none}
  .fi-righe-tel{display:block}
  .fi-graf{height:170px;gap:2px;padding:12px 8px 8px}
  .fi-leg{display:none}
  .so-stati.fi-stati .so-stato b{font-size:18px}
  /* schede di Finanza come quelle di Soci: pillole che scorrono di lato */
  .sez-schede.fin-schede{gap:7px!important;margin-left:-12px!important;margin-right:-12px!important;padding:8px 12px!important}
  .sez-schede.fin-schede button{flex:0 0 auto!important;font-size:13px!important;padding:0 16px!important;letter-spacing:0}
}

/* ═══ Bar 07/10 (2026-10-07.5): Cassa, Vendite, Prodotti — classi br-*, si appoggia alle so-* di Soci 07/10 ═══ */
.br-split{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.br-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.br-cassa-h{display:flex;flex-direction:column;gap:10px;padding:14px 14px 0}
.br-prod{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:14px}
.br-pt{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:12px 11px;border-radius:16px;border:1.5px solid var(--sand-dark);background:var(--linen);color:var(--text);cursor:pointer;text-align:left;min-width:0;font-family:var(--font-ui);transition:transform .12s,border-color .15s}
.br-pt:hover{border-color:var(--accent)}
.br-pt:active{transform:scale(.95)}
.br-pt-ic{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--sand-mid);color:var(--forest);font-size:18px;flex:none}
.br-pt b{font-size:12.5px;font-weight:700;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:30px;overflow-wrap:anywhere}
.br-pr{font-family:var(--font-display);font-size:19px;font-weight:500;color:var(--forest);line-height:1;font-variant-numeric:lining-nums tabular-nums}
.br-sc{font-family:var(--mono);font-size:9.5px;color:var(--text3)}
.br-sc.low{color:var(--amber-ink)}.br-sc.out{color:var(--red)}
.br-pt.out{opacity:.45;cursor:default}
.br-pt.out:hover{border-color:var(--sand-dark)}
.br-pt.in{border-color:var(--accent);background:color-mix(in oklch,var(--accent) 7%,var(--linen))}
.br-q{position:absolute;top:8px;right:8px;min-width:24px;height:24px;padding:0 7px;border-radius:99px;background:var(--accent);color:var(--accent-ink,#fff);font:800 12px/24px var(--font-ui);text-align:center}
/* scontrino aperto */
.br-scon-pc{position:sticky;top:64px;max-height:calc(100vh - 90px);overflow-y:auto}
.br-scon{padding:16px;display:flex;flex-direction:column;gap:12px}
.br-scon-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.br-scon-h b{font-family:var(--font-display);font-size:22px;font-weight:500;color:var(--forest)}
.br-scon-h span{font-family:var(--mono);font-size:10px;color:var(--text3)}
.br-scon-vuoto{padding:26px 10px;text-align:center;color:var(--text3);font-size:12.5px;border:1.5px dashed var(--sand-dark);border-radius:14px}
.br-scon-vuoto i{font-size:28px;display:block;margin-bottom:6px;opacity:.5}
.br-riga{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px dashed var(--sand-dark)}
.br-riga:first-child{border-top:none}
.br-riga-tx{flex:1;min-width:0}
.br-riga-tx b{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.br-riga-tx small{font-family:var(--mono);font-size:10px;color:var(--text3)}
.br-step{display:inline-flex;align-items:center;gap:2px;background:var(--sand-mid);border-radius:99px;padding:2px;flex:none}
.br-step button{width:32px;height:32px;border-radius:50%;border:none;background:var(--linen);color:var(--text);font:800 17px var(--font-ui);cursor:pointer;display:grid;place-items:center;padding:0}
.br-step span{min-width:22px;text-align:center;font-weight:800;font-size:13px}
.br-rt{font-family:var(--font-display);font-size:15px;min-width:64px;text-align:right;flex:none;white-space:nowrap}
.br-tot{display:flex;justify-content:space-between;align-items:baseline;padding-top:10px;border-top:2px solid var(--text)}
.br-tot span{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3)}
.br-tot b{font-family:var(--font-display);font-size:34px;font-weight:500;line-height:1;font-variant-numeric:lining-nums tabular-nums}
.br-iva{font-size:11.5px;color:var(--text3);display:flex;justify-content:space-between;margin-top:-6px}
.br-pay{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:16px;background:var(--sand-mid)}
.br-pay button{height:44px;border:none;border-radius:12px;background:none;font:700 13.5px var(--font-ui);display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:var(--text2)}
.br-pay button i{font-size:18px}
.br-pay button.on{background:var(--linen);color:var(--text);box-shadow:0 1px 4px oklch(0 0 0 / .12)}
.br-incassa{height:54px;border-radius:16px;border:none;background:var(--accent);color:var(--accent-ink,#fff);font:800 16px var(--font-ui);display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:0 10px 20px -12px var(--accent)}
.br-incassa i{font-size:20px}
.br-incassa:disabled{opacity:.4;cursor:default;box-shadow:none}
#bar-scon-sheet .br-scon{padding:0}
#bar-scon-sheet .br-scon-h b{display:none}
.br-svuota{align-self:center;background:none;border:none;color:var(--text3);font:700 12px var(--font-ui);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.br-cartbar{display:none}
/* vendite e prodotti */
.br-nav{display:flex;width:max-content}
.br-nav b{min-width:170px;text-align:center}
.so-stato.br-fisso{cursor:default}
.br-card-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line-2)}
.br-ic{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--sand-mid);color:var(--text2);font-size:19px;flex:none}
.br-ic.ok{background:var(--green-bg);color:var(--green)}
.br-card-t{flex:1;min-width:0}
.br-card-t b{display:block;font-size:14.5px;font-weight:700}
.br-card-t small{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}
.br-card-tot{font-family:var(--font-display);font-size:21px;font-weight:500;white-space:nowrap}
.br-card-h+.so-r{border-top:none}
.br-ora{width:52px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--sand-mid);font:700 12px var(--mono);color:var(--forest);flex:none}
.br-sr .so-tx b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.br-top-r{display:flex;align-items:center;gap:11px;padding:10px 16px;border-top:1px solid var(--line-2)}
.br-card-h+.br-top-r{border-top:none}
.br-top-n{font:700 12px var(--mono);color:var(--text2);width:18px;flex:none}
.br-top-b{display:block;height:5px;border-radius:99px;background:var(--sand-mid);overflow:hidden;margin-top:5px}
.br-top-b i{display:block;height:100%;border-radius:99px;background:var(--accent)}
.br-righe-s{padding:2px 14px;border-radius:14px;background:var(--sand-mid)}
.br-righe-s .br-riga{border-top-color:var(--sand-dark)}
.br-pr-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--sand-mid);color:var(--forest);font-size:19px;flex:none}
.so-r.br-off{opacity:.6}
.so-az.so-az2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1023px) and (min-width:768px){.br-split{grid-template-columns:minmax(0,1fr) 320px}.br-split-v{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767px){
  .br-split{grid-template-columns:minmax(0,1fr)}
  .br-scon-pc,.br-cerca-pc{display:none}
  .br-prod{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}
  .br-pt{padding:10px 9px}
  .br-pr{font-size:17px}
  .br{padding-bottom:90px}
  .br-cartbar{display:flex;position:fixed;left:12px;right:12px;bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px) + 30px);z-index:60;align-items:center;gap:12px;padding:8px 8px 8px 16px;border-radius:20px;background:var(--text);color:var(--bg);box-shadow:0 14px 30px -12px oklch(0 0 0 / .5),0 0 0 4px var(--bg);border:none;text-align:left;cursor:pointer;font-family:var(--font-ui)}
  .br-cartbar.vuota{background:var(--linen);color:var(--text3);border:1.5px dashed var(--sand-dark);box-shadow:0 0 0 4px var(--bg);justify-content:center;font-size:12.5px;font-weight:600;padding:14px;cursor:default}
  .br-cb-n{display:flex;flex-direction:column;line-height:1.15}
  .br-cb-n small{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
  .br-cb-n b{font-family:var(--font-display);font-size:22px;font-weight:500}
  .br-cb-go{margin-left:auto;height:44px;padding:0 16px;border-radius:14px;background:var(--accent);color:var(--accent-ink,#fff);font-weight:800;font-size:14px;display:flex;align-items:center;gap:6px}
  .br-nav{width:auto}
  .br-nav{justify-content:space-between}
  .br .so-stato b{font-size:19px}
}

/* ═══ Corsi 07/10 (2026-10-07.6): Corsi e Presenze — classi co-*, si appoggia alle so-* di Soci 07/10 (e alle br-card-h del Bar) ═══ */
.co-gg{display:flex;justify-content:space-between;gap:8px;padding:6px 16px;background:var(--sand-mid);font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);border-top:1px solid var(--line-2)}
.co-gg:first-child{border-top:none}
.co-gg.oggi{background:var(--testata);color:var(--forest);font-weight:700}
.co-gg+.so-r{border-top:none}
.co-orario{width:58px;height:44px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;background:var(--sand-mid);font-family:var(--mono);color:var(--forest);line-height:1.15}
.co-orario b{font-size:13px;font-weight:700}
.co-orario small{font-size:9.5px;color:var(--text3)}
.so-r.sel .co-orario{background:var(--linen)}
.co-riemp{width:96px;flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.co-riemp>span:first-child{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text2)}
.co-bar{display:block;width:100%;height:6px;border-radius:99px;background:var(--sand-mid);overflow:hidden}
.so-r.sel .co-bar{background:var(--linen)}
.co-bar i{display:block;height:100%;border-radius:99px;background:var(--green)}
.co-riemp.warn .co-bar i{background:var(--amber)}
.co-riemp.err .co-bar i{background:var(--red)}
.so-r.co-off{opacity:.6}
.so-rapida.co-forte{border-style:solid;border-color:var(--accent);background:color-mix(in oklch,var(--accent) 8%,transparent);font-weight:700}
.co-h3{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:-6px}
.co-iscr{display:flex;flex-direction:column;border-radius:14px;background:var(--sand-mid);padding:2px 12px}
.co-iscr-r{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--sand-dark)}
.co-iscr-r:first-child{border-top:none}
.co-iscr .so-ini{width:32px;height:32px;font-size:11px;background:var(--linen)}
.co-iscr .so-ini i{border-color:var(--sand-mid)}
.co .so-tx small.co-err,.so-sch .so-tx small.co-err{color:var(--red);font-weight:700}
.co-x{width:34px;height:34px;border-radius:50%;border:none;background:none;color:var(--text3);display:grid;place-items:center;cursor:pointer;font-size:16px;flex:none;padding:0}
.co-x:hover{background:var(--linen);color:var(--red)}
.co-iscrivi{display:flex;gap:8px;align-items:center}
.co-iscrivi select{flex:1;min-width:0}
.co-iscrivi .tt-btn{flex:none}
/* Presenze */
.co-nav{display:flex;width:max-content}
.co-nav b{min-width:170px;text-align:center}
.so-stato.co-fisso{cursor:default}
.so-stato.co-pos b{color:var(--green)}
.co-split{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}
.co-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.co-oggi{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:12px 14px 2px}
.co-oggi::-webkit-scrollbar{display:none}
.co-b{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 13px;border-radius:14px;border:1.5px solid var(--sand-dark);background:var(--linen);color:var(--text);cursor:pointer;text-align:left;min-width:130px;max-width:230px;font-family:var(--font-ui)}
.co-b b{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.co-b small{font-family:var(--mono);font-size:10px;color:var(--text3)}
.co-b.on{border-color:var(--text);background:var(--sand-mid)}
.co-fatto{font-size:10.5px;color:var(--green);font-weight:700}
.co-legenda{font-size:11px;color:var(--text3);padding:10px 16px 2px}
.co-app-r{display:flex;align-items:center;gap:10px;padding:9px 16px;border-top:1px solid var(--line-2)}
.co-app-r:first-child{border-top:none}
.co-st4{display:flex;gap:3px;padding:3px;border-radius:99px;background:var(--sand-mid);flex:none}
.co-st4 button{width:36px;height:34px;border-radius:99px;border:none;background:none;font:800 12.5px var(--font-ui);color:var(--text3);cursor:pointer;padding:0}
.co-st4 button:hover{color:var(--text)}
.co-st4 button.on.P{background:var(--green);color:#fff}
.co-st4 button.on.A{background:var(--red);color:#fff}
.co-st4 button.on.G{background:var(--amber);color:#fff}
.co-st4 button.on.R{background:var(--text2);color:var(--bg)}
.co-app-f{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;border-top:1px solid var(--line-2);background:var(--sand-mid);font-size:12.5px;color:var(--text2)}
.co-app-f .tt-btn{padding:8px 14px;font-size:12.5px}
.co-rap-h{border-bottom:none;padding-bottom:6px}
.co-chip-st button.on.P{background:var(--green-bg);border-color:var(--green);color:var(--green)}
.co-chip-st button.on.A{background:var(--red-bg);border-color:var(--red);color:var(--red)}
.co-chip-st button.on.G{background:var(--amber-bg);border-color:var(--amber);color:var(--amber-ink)}
.co-soci{display:flex;flex-wrap:wrap;gap:6px;padding:4px 14px 14px}
.co-soci button{height:36px;padding:0 12px;border-radius:99px;border:1px solid var(--sand-dark);background:var(--linen);color:var(--text);font:600 12.5px var(--font-ui);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.co-soci button:active{transform:scale(.95)}
.co-soci button i{width:7px;height:7px;border-radius:50%;background:var(--red);flex:none}
.co-soci button.fatto{background:var(--green-bg);border-color:var(--green);color:var(--green)}
.co-qr-vuoto{font-size:12px;color:var(--text3);padding:0 16px 14px}
.so-r.co-reg-r{cursor:default}
.so-r.co-reg-r:hover{background:none}
.co-ora{width:46px;flex:none;font-family:var(--mono);font-size:11.5px;color:var(--text2)}
.co-nota{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:12px;color:var(--text3);line-height:1.5}
.co-nota i{font-size:16px;color:var(--accent);flex:none;margin-top:1px}
@media(max-width:1023px){.co-split{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767px){
  .co-nav{width:auto;justify-content:space-between}
  .co-riemp{width:70px}
  .co-app-r{padding:9px 12px;gap:8px}
  .co-st4 button{width:31px;height:32px}
  .co-legenda,.co-app-f{padding-left:12px;padding-right:12px}
  .co .so-stato b{font-size:19px}
}

/* ═══ Ultime sezioni 07/10 (2026-10-07.7): barra in alto (palette e tema), Struttura (st-*), Beni (be-*), Tornei (to-*),
   Personale (pe-*), Documenti (do-*), Scadenze (sc-*), Report (rp-*), Impostazioni (im-*). Si appoggia alle so-* di Soci e alle br-* del Bar ═══ */
/* barra in alto: palette e tema */
.tb-pal{position:relative;display:flex;align-items:center}
.tb-pal-btn{display:none}
.tb-pal-dot{width:22px;height:22px;border-radius:50%;display:block;box-shadow:0 0 0 2px var(--linen),0 0 0 3.5px var(--sand-dark)}
.tb-pal-l{display:flex;gap:4px;padding:4px;border-radius:99px;background:var(--sand-mid)}
.tb-pal-l button{display:grid;place-items:center;width:26px;height:26px;padding:0;border:none;border-radius:50%;background:none;cursor:pointer}
.tb-pal-l button i{width:20px;height:20px;border-radius:50%;display:block;box-shadow:0 0 0 2px transparent}
.tb-pal-l button.on i{box-shadow:0 0 0 2px var(--sand-mid),0 0 0 4px var(--text)}
.tb-pal-l button span{display:none}
.tb-pal-l button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
@media(max-width:767px){
  .tb-pal-btn{display:grid}
  .tb-pal-l{display:none;position:absolute;top:calc(100% + 10px);right:-8px;z-index:90;flex-direction:column;gap:2px;padding:8px;border-radius:18px;background:var(--linen);border:1px solid var(--sand-dark);box-shadow:0 18px 36px -16px oklch(0 0 0 / .45)}
  .tb-pal.open .tb-pal-l{display:flex}
  .tb-pal-l button{width:auto;height:auto;display:flex;align-items:center;gap:10px;padding:7px 14px 7px 7px;border-radius:12px;font:700 13px var(--font-ui);color:var(--text);white-space:nowrap}
  .tb-pal-l button span{display:inline}
  .tb-pal-l button i{width:26px;height:26px}
  .tb-pal-l button.on{background:var(--sand-mid)}
  .tb-pal-l button.on i{box-shadow:none}
}
/* comuni */
.so-stato.st-fisso{cursor:default}
.so-stato.st-pos b{color:var(--green)}
.st-info{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;font-size:12.5px;color:var(--text2);line-height:1.5;width:100%;border:none;background:none;text-align:left;font-family:var(--font-ui)}
.st-info i{font-size:18px;color:var(--accent);flex:none;margin-top:1px}
.st-info b{color:var(--text)}
.st-info.warn{background:var(--amber-bg)}
.st-info.warn i{color:var(--amber-ink)}
button.st-info{cursor:pointer}
.st-ko-t{color:var(--red)!important}
.st-h3{display:flex;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-bottom:-6px}
.st-h3 em{font-style:normal;color:var(--red);font-weight:700;text-transform:none;letter-spacing:0;font-family:var(--font-ui);font-size:11.5px}
.st-testo{padding:12px 14px;border-radius:14px;background:var(--sand-mid);font-size:13px;line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}
.st-nota-f{margin:0;font-size:12px;color:var(--text3);line-height:1.5}
.st-warn-t{color:var(--amber-ink);font-weight:700}
.so-rapida.st-forte{border-style:solid;border-color:var(--accent);background:color-mix(in oklch,var(--accent) 8%,transparent);font-weight:700}
.tt-btn.st-btn-gh{background:var(--linen);color:var(--text);border:1px solid var(--sand-dark);box-shadow:none;text-decoration:none}
.br-card-h .tt-btn{padding:7px 13px;font-size:12px;margin-left:auto}
.st-dg{width:46px;height:44px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--sand-mid);flex:none;line-height:1.05}
.st-dg b{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--forest)}
.st-dg small{font:700 9px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text3)}
.st-dg.err{background:var(--red-bg)}.st-dg.err b{color:var(--red)}
.st-dg.warn{background:var(--amber-bg)}.st-dg.warn b{color:var(--amber-ink)}
.so-r.sel .st-dg{background:var(--linen)}
.so-ini.so-ini-q{border-radius:12px;font-size:18px}
.so-ini-q.ok{background:var(--green-bg);color:var(--green)}.so-ini-q.warn{background:var(--amber-bg);color:var(--amber-ink)}.so-ini-q.err{background:var(--red-bg);color:var(--red)}
a.so-r{text-decoration:none}
.so-lett.be-lett{display:flex;justify-content:space-between;gap:8px}
.so-r.be-off{opacity:.6}
.so-anno.st-nav{display:flex;width:max-content}
.so-anno.st-nav b{min-width:90px;text-align:center}
.st-soglia{display:flex;flex-direction:column;gap:5px}
.st-soglia>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--text2)}
.st-soglia>div:first-child b{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}
.st-bt{height:8px;border-radius:99px;background:var(--sand-mid);overflow:hidden}
.st-bt i{display:block;height:100%;border-radius:99px;background:var(--green)}
.st-soglia.warn .st-bt i{background:var(--amber)}.st-soglia.err .st-bt i{background:var(--red)}
.st-exp{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--line-2)}
.br-card-h+.st-exp,.st-exp:first-child{border-top:none}
.st-exp .so-tx b,.st-exp .so-tx small{white-space:normal}
.st-exp .so-tx em{display:block;font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--text2);margin-top:2px}
.st-exp .tt-btn{flex:none}
.br-ic.rp-acc{background:color-mix(in oklch,var(--accent) 14%,var(--linen));color:var(--accent)}
.br-ic.rp-warn{background:var(--amber-bg);color:var(--amber-ink)}
/* card del saldo (come in Finanza) */
.st-saldo{background:var(--brand);color:var(--brand-ink);border-radius:22px;padding:18px;display:flex;flex-direction:column;gap:16px;box-shadow:0 14px 30px -18px oklch(0.2 0.05 152 / .6)}
.st-eyb{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--brand-ink-3);display:flex;justify-content:space-between;gap:8px}
.st-saldo-n{font-family:var(--font-display);font-weight:500;font-size:38px;line-height:1;letter-spacing:-.02em;margin-top:6px;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.st-saldo-sub{font-size:12px;color:var(--brand-ink-2);margin-top:7px}
.st-saldo-sub b{color:var(--brand-ink)}
.st-saldo-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding-top:12px;border-top:1px solid var(--brand-ink-3)}
.st-saldo-4 div{display:flex;flex-direction:column;gap:3px;min-width:0}
.st-saldo-4 small{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-ink-3)}
.st-saldo-4 b{font-family:var(--font-display);font-size:20px;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
.st-saldo .pos{color:var(--pos-on-brand,oklch(0.86 0.12 155))}.st-saldo .neg{color:var(--neg-on-brand,oklch(0.82 0.09 28))}
/* ── Struttura: lavori ── */
.st-filtri{border-bottom:none}
.st-chip-lab{flex:none;align-self:center;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);padding-right:2px}
.st-seg{display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:16px;background:var(--sand-mid)}
.st-seg button{height:42px;border:none;border-radius:12px;background:none;font:700 12.5px var(--font-ui);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px}
.st-seg button b{font-family:var(--mono);font-size:11px;color:var(--text3)}
.st-seg button.on{background:var(--linen);color:var(--text);box-shadow:0 1px 4px oklch(0 0 0 / .12)}
.st-dot{width:9px;height:9px;border-radius:50%;background:var(--text3);flex:none}
.st-dot.doing{background:var(--amber)}.st-dot.done{background:var(--green)}
.st-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.st-col{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:18px;background:var(--sand-mid);min-width:0}
.st-col-h{display:flex;align-items:center;gap:8px;padding:2px 4px 4px;min-height:34px}
.st-col-h b{font-size:13.5px}
.st-col-h>span:not(.st-dot){font:700 11px var(--mono);color:var(--text3)}
.st-col-h .icon-btn{margin-left:auto;width:32px;height:32px}
.st-vuoto{padding:18px 8px;text-align:center;font-size:12.5px;color:var(--text3)}
.st-c{display:flex;flex-direction:column;gap:7px;width:100%;padding:11px 12px;border-radius:14px;border:1px solid var(--sand-dark);background:var(--linen);color:var(--text);text-align:left;cursor:pointer;min-width:0;font-family:var(--font-ui);box-shadow:0 1px 2px oklch(0.3 0.05 152 / .06)}
.st-c:hover{border-color:var(--text3)}
.st-c.late{border-left:4px solid var(--red)}
.st-c>b{font-size:13.5px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.st-top{display:flex;align-items:center;gap:6px;min-width:0}
.st-top .tag-pill{font-size:10px;padding:1px 7px}
.st-cod{font:700 10.5px var(--mono);color:var(--forest);background:var(--sand-mid);padding:1px 6px;border-radius:6px;flex:none}
.st-luogo{font-size:11px;color:var(--text3);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-av{display:block;height:5px;border-radius:99px;background:var(--sand-mid);overflow:hidden}
.st-av i{display:block;height:100%;background:var(--amber);border-radius:99px}
.st-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--text2)}
.st-meta>span{display:inline-flex;align-items:center;gap:3px}
.st-meta .ti{font-size:13px}
.st-scad.err{color:var(--red);font-weight:700}.st-scad.warn{color:var(--amber-ink);font-weight:700}.st-scad.ok{color:var(--green)}
.st-sp{flex:1}
.st-p{width:24px;height:24px;border-radius:50%;display:inline-grid!important;place-items:center;background:var(--brand);color:var(--brand-ink);font:800 9.5px var(--font-ui);flex:none}
.st-meta .st-p+.st-p{margin-left:-10px;box-shadow:0 0 0 2px var(--linen)}
.st-cost{font-family:var(--mono);font-size:10.5px;color:var(--text3)}
@media(max-width:1023px){
  .st-seg{display:grid}
  .st-board{grid-template-columns:minmax(0,1fr)}
  .st-board[data-col="todo"] .st-col:not(.todo),.st-board[data-col="doing"] .st-col:not(.doing),.st-board[data-col="done"] .st-col:not(.done){display:none}
  .st-col{background:none;padding:0}
  .st-col-h{display:none}
}
/* scheda del lavoro */
.st-path{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--text3);margin-bottom:2px}
.st-step{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:16px;background:var(--sand-mid)}
.st-step button{height:42px;border:none;border-radius:12px;background:none;font:700 12.5px var(--font-ui);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px}
.st-step button.on{background:var(--text);color:var(--bg)}
.st-step button.on.doing{background:var(--amber);color:#fff}
.st-step button.on.done{background:var(--green);color:#fff}
.st-check{display:flex;flex-direction:column;border-radius:14px;background:var(--sand-mid);padding:4px}
.st-ck{display:flex;align-items:center;gap:4px;border-radius:10px}
.st-ck:hover{background:var(--linen)}
.st-ck-b{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;background:none;font:500 13px var(--font-ui);color:var(--text);text-align:left;cursor:pointer}
.st-ck.fatto .st-ck-b{color:var(--text3);text-decoration:line-through}
.st-box{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--text3);display:grid;place-items:center;flex:none;background:var(--linen);font-size:14px}
.st-ck.fatto .st-box{background:var(--green);border-color:var(--green);color:#fff}
.st-x{width:32px;height:32px;border-radius:50%;border:none;background:none;color:var(--text3);display:grid;place-items:center;cursor:pointer;font-size:15px;flex:none;padding:0}
.st-x:hover{color:var(--red);background:var(--linen)}
.st-add{display:flex;gap:6px;align-items:center;padding:4px}
.st-add input,.st-add select{flex:1;min-width:0;height:40px}
.st-add .tt-btn{flex:none;padding:9px 13px}
.st-ram-l{display:flex;flex-direction:column;gap:2px;border-radius:14px;background:var(--sand-mid);padding:4px}
.st-ram-r{display:flex;align-items:center;gap:10px;padding:5px 6px;border-radius:10px}
.st-rc{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font:800 12px var(--font-ui);flex:none;border:none;cursor:pointer;padding:0}
.st-rc-R{background:var(--accent);color:var(--accent-ink,#fff)}
.st-rc-A{background:var(--text);color:var(--bg)}
.st-rc-C{background:var(--amber-bg);color:var(--amber-ink)}
.st-rc-I{background:var(--linen);color:var(--text2);box-shadow:inset 0 0 0 1px var(--sand-dark)}
.st-rc-0{background:none;color:var(--text3);border:1.5px dashed var(--sand-dark)}
.st-diario{display:flex;flex-direction:column;border-radius:14px;background:var(--sand-mid);padding:2px 10px}
.st-diario>div{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--sand-dark)}
.st-diario>div:first-child{border-top:none}
.st-diario .st-dg{width:42px;height:38px;background:var(--linen)}
.st-diario .so-tx small{white-space:normal;color:var(--text);font-size:12.5px}
.st-sch .so-az{grid-template-columns:repeat(3,minmax(0,1fr))}
.st-sch .so-az.so-az2{grid-template-columns:repeat(2,minmax(0,1fr))}
/* piano (WBS) */
.st-wbs{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:center;width:100%;padding:9px 14px;border:none;border-top:1px solid var(--line-2);background:none;text-align:left;font-family:var(--font-ui);color:var(--text);cursor:pointer;position:relative}
.st-wbs:hover{background:var(--sand-mid)}
.st-wbs-hd{cursor:default;padding-top:6px;padding-bottom:6px;background:var(--sand-mid);border-top:none}
.st-wbs-g{cursor:default;background:color-mix(in oklch,var(--sand-mid) 55%,var(--linen))}
.st-wbs-g:hover{background:color-mix(in oklch,var(--sand-mid) 55%,var(--linen))}
.st-wbs-n{display:flex;align-items:center;gap:10px;min-width:0;border:none;background:none;padding:0;text-align:left;font-family:var(--font-ui);color:var(--text);cursor:pointer}
.st-wbs-f .st-wbs-n{padding-left:calc(var(--liv,1) * 22px)}
.st-wbs-f .so-tx b{font-weight:600}
.st-wbs-num{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--text);color:var(--bg);font:700 12px var(--mono);flex:none}
.st-wbs-n .so-tx small em{font-style:normal;color:var(--red);font-weight:700}
.st-wbs-n .co-riemp{width:84px}
.st-fr{font-size:16px;color:var(--text3);flex:none}
.st-edit{position:absolute;right:450px;top:50%;transform:translateY(-50%);width:32px;height:32px}
.st-wbs-g .st-wbs-n{padding-right:40px}
.st-wbs-add{display:flex;align-items:center;gap:8px;width:100%;padding:9px 14px 9px 50px;border:none;border-top:1px dashed var(--sand-dark);background:none;font:700 12.5px var(--font-ui);color:var(--accent);cursor:pointer;text-align:left}
.st-g-mesi{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.st-g-mesi i{font:700 10px var(--mono);font-style:normal;color:var(--text3);text-transform:uppercase;border-left:1px solid var(--sand-dark);padding-left:6px}
.st-g-tr{position:relative;height:22px;border-radius:6px;background:repeating-linear-gradient(90deg,transparent 0 calc(16.666% - 1px),var(--line-2) calc(16.666% - 1px) 16.666%)}
.st-g-oggi{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--accent);border-radius:2px}
.st-g-bar{position:absolute;top:5px;height:12px;border-radius:99px;background:var(--text3)}
.st-g-bar.doing{background:var(--amber)}.st-g-bar.done{background:var(--green)}.st-g-bar.late{background:var(--red)}
@media(max-width:1023px){
  .st-wbs{grid-template-columns:minmax(0,1fr)}
  .st-g-tr,.st-wbs-hd{display:none}
  .st-edit{right:8px}
  .st-wbs-f .st-wbs-n{padding-left:calc(var(--liv,1) * 14px)}
  .st-wbs-n .co-riemp{width:62px}
}
/* responsabili (RAM) */
.st-carico{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.st-ram-h{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--line-2)}
.st-ram-w{overflow-x:auto;border-top:1px solid var(--line-2)}
.st-ram{width:100%;border-collapse:collapse;font-size:13px}
.st-ram th{padding:10px 6px;background:var(--sand-mid);font-weight:500;vertical-align:bottom;min-width:58px}
.st-ram th:first-child{text-align:left;padding-left:14px;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}
.st-ram th small{display:block;font-size:10.5px;color:var(--text2);margin-top:3px;white-space:nowrap}
.st-ram th .st-p{margin:0 auto}
.st-ram td{padding:6px;border-top:1px solid var(--line-2);text-align:center}
.st-ram td:first-child{text-align:left;padding-left:10px;position:sticky;left:0;background:var(--linen);min-width:190px;max-width:260px;z-index:1}
.st-ram tr.ko td:first-child{box-shadow:inset 3px 0 0 var(--red)}
.st-ram-g td{background:var(--sand-mid)!important;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);font-weight:700;padding:6px 14px}
.st-ram-t{display:block;border:none;background:none;text-align:left;font:600 13px var(--font-ui);color:var(--text);cursor:pointer;padding:2px 4px;line-height:1.35}
.st-ram-t .st-cod{margin-right:6px}
.st-ram-t em{display:block;font-style:normal;font-size:11px;font-weight:700;color:var(--red)}
@media(max-width:767px){.st-ram td:first-child{min-width:150px;max-width:170px}.st-ram-t{font-size:12.5px}}
/* rendiconto */
.st-aree{padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px}
@media(max-width:1023px){.br-split.st-rend,.br-split.rp-split,.br-split.do-split{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767px){.st-saldo-4{grid-template-columns:repeat(2,minmax(0,1fr))}.st-saldo-n{font-size:34px}.st-exp{flex-wrap:wrap}.st-exp .tt-btn{margin-left:52px}}
/* beni */
.be-man{display:flex;flex-direction:column;border-radius:14px;background:var(--sand-mid);padding:2px 12px}
.be-man button{display:flex;align-items:center;gap:10px;padding:9px 0;border:none;border-top:1px solid var(--sand-dark);background:none;text-align:left;font-family:var(--font-ui);color:var(--text);cursor:pointer}
.be-man button:first-child{border-top:none}
/* tornei */
.to-ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;flex:none;background:var(--sand-mid);color:var(--forest);font-size:21px}
.to-ic.corso{background:color-mix(in oklch,var(--accent) 15%,var(--linen));color:var(--accent)}
.to-ic.aperto{background:var(--green-bg);color:var(--green)}
.so-tx small.to-vince{color:var(--green);font-weight:700}
.to-dai{font-family:var(--mono);font-size:10.5px;color:var(--text3)}
.to-r .co-riemp{width:100px}
.to-r .co-riemp>span:last-child{font-family:var(--mono);font-size:10px;color:var(--text3);font-weight:500}
.to-indietro{display:inline-flex;align-items:center;gap:4px;height:36px;padding:0 14px 0 8px;border-radius:99px;border:1px solid var(--sand-dark);background:var(--linen);font:700 12.5px var(--font-ui);color:var(--text);cursor:pointer;width:max-content}
.to-hero{padding:16px;display:flex;flex-direction:column;gap:12px}
.to-hero .so-sch-top{align-items:flex-start}
.to-hero-t{flex:1;min-width:0}
.to-hero .so-az{grid-template-columns:repeat(4,minmax(0,1fr))}
.to-split{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.to-schede{display:none}
.to-gir-h{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--sand-mid);border-top:1px solid var(--line-2)}
.to-gir-h:first-child{border-top:none}
.to-gir-h b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--text);color:var(--bg);font-size:12px}
.to-gir-h span{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text2)}
.to-tw{overflow-x:auto}
.to-cl{width:100%;border-collapse:collapse;font-size:12.5px}
.to-cl th{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);font-weight:500;padding:7px 8px;text-align:center}
.to-cl th:nth-child(2),.to-cl td:nth-child(2){text-align:left}
.to-cl td{padding:8px;border-top:1px solid var(--line-2);text-align:center;font-variant-numeric:tabular-nums}
.to-cl td:nth-child(2){font-weight:600}
.to-cl td.pt{font-family:var(--font-display);font-size:15px;color:var(--forest)}
.to-cl tr.primo td{background:var(--green-bg)}
.to-partita{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;width:100%;padding:10px 16px;border:none;border-top:1px solid var(--line-2);background:none;cursor:pointer;text-align:left;font-family:var(--font-ui);color:var(--text)}
.to-partita:hover{background:var(--sand-mid)}
.to-partita span{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.to-partita span:last-child{text-align:right}
.to-partita .v{font-weight:700;color:var(--forest)}
.to-ris{font-family:var(--font-display);font-size:15px;color:var(--forest);text-align:center}
.to-ris.dag{font:600 10.5px var(--mono);color:var(--text3);text-transform:uppercase;letter-spacing:.04em}
.to-gir{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--text);color:var(--bg);font-size:11px;font-weight:800;flex:none}
.to-gir.no{background:var(--sand-mid);color:var(--text3)}
.so-r.to-fermo{cursor:default}.so-r.to-fermo:hover{background:none}
.so-rapida.to-add{margin:10px 14px 14px;width:calc(100% - 28px)}
.to-tab-in{padding:10px 14px;overflow-x:auto}
.to-tab-in .dash-card{margin:0!important;border:none;box-shadow:none;background:none;padding:0}
@media(max-width:1023px){
  .to-split{grid-template-columns:minmax(0,1fr)}
  .to-schede{display:flex}
  .to-split[data-tab="gironi"] .to-tab,.to-split[data-tab="gironi"] .to-isc,.to-split[data-tab="iscritti"] .to-sx,.to-split[data-tab="tab"] .to-gir-c,.to-split[data-tab="tab"] .to-isc{display:none}
}
@media(max-width:767px){.to-hero .so-az{grid-template-columns:repeat(2,minmax(0,1fr))}.to-r .co-riemp{width:72px}}
/* personale */
.pe-info{padding:12px 14px}
.pe-info u{color:var(--accent);text-decoration:none;font-weight:700}
.pe .co-riemp>span:last-child{font-family:var(--mono);font-size:9.5px;color:var(--text3);font-weight:500}
.pe .so-tx small.co-err, .so-dati .co-err {color:var(--red);font-weight:700}
@media(max-width:767px){.pe .co-riemp{width:76px}}
/* documenti */
.do-pan{position:static;max-height:none}
/* scadenze */
.sc-lett-err{background:var(--red-bg);color:var(--red);font-weight:700}
.sc-lett-warn{background:var(--amber-bg);color:var(--amber-ink);font-weight:700}
.sc-scelta{display:flex;flex-direction:column;gap:8px}
/* report */
.rp-398 .dash-card{margin:0!important;border:none;box-shadow:none;background:none}
/* impostazioni */
.im-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.im-b{padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px}
.im-b .form-group{margin:0}
.im-b .form-row{margin:0}
.im-pal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.im-pal button{display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:14px;border:1.5px solid var(--sand-dark);background:var(--linen);cursor:pointer;font:700 11.5px var(--font-ui);color:var(--text);text-align:left;min-width:0}
.im-pal button.on{border-color:var(--text);background:var(--sand-mid)}
.im-pal button i{display:block;height:34px;border-radius:9px}
.im-riga{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.im-riga>span:first-child{font-size:13px;font-weight:600}
.im-riga>span:first-child small{display:block;font-size:11.5px;font-weight:500;color:var(--text3)}
.im-seg{display:inline-flex;gap:3px;padding:3px;border-radius:99px;background:var(--sand-mid)}
.im-seg button{height:32px;padding:0 12px;border-radius:99px;border:none;background:none;font:700 12px var(--font-ui);color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.im-seg button.on{background:var(--linen);color:var(--text);box-shadow:0 1px 4px oklch(0 0 0 / .12)}
.im-box{font-size:13px;color:var(--text2)}
.im-mono{font-family:var(--mono);font-size:11.5px;color:var(--text3)}
.im-salva{align-self:flex-start}
@media(max-width:1023px){.im-g{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767px){.im-pal{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ═══ Struttura 08/10 (2026-10-08.1): autogestione, persone e ruoli, più ruoli per persona, spese e ore ═══ */
.st-modo{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;font:700 10.5px var(--font-ui);white-space:nowrap;background:var(--sand-mid);color:var(--forest)}
.st-modo .ti{font-size:12px}
.st-modo.auto{background:var(--green-bg);color:var(--green)}
.st-modo.misto{background:color-mix(in oklch,var(--accent) 14%,var(--linen));color:var(--accent)}
.st-abil{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--red)}
.st-abil .ti{font-size:13px}
.st-cost{display:flex;justify-content:space-between;gap:6px}
.st-cost em{font-style:normal;color:var(--green);font-weight:700;white-space:nowrap}
.st-p.vol{background:var(--green-bg);color:var(--green)}
.st-p.ditta{background:var(--sand-mid);color:var(--forest);box-shadow:inset 0 0 0 1px var(--sand-dark)}
.st-p .ti{font-size:13px}
.st-p.st-p-l{width:38px;height:38px;font-size:12px}
.st-p.st-p-l .ti{font-size:18px}
.st-p.st-p-xl{width:52px;height:52px;font-size:16px}
.st-p.st-p-xl .ti{font-size:22px}
.st-info.err{background:var(--red-bg);border-radius:14px}
.st-info.err i{color:var(--red)}
.st-info.ok{background:var(--green-bg);border-radius:14px}
.st-info.ok i{color:var(--green)}
.st-info.st-info-0{padding:0}
.st-link{border:none;background:none;padding:0;font:700 12.5px var(--font-ui);color:var(--text);text-decoration:underline;cursor:pointer}
.st-risp{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--green-bg)}
.st-risp>.ti{font-size:24px;color:var(--green);flex:none}
.st-risp b{display:block;font-family:var(--font-display);font-size:20px;font-weight:500;color:var(--green);line-height:1.15}
.st-risp small{display:block;font-size:11.5px;color:var(--text2)}
.st-h3{align-items:center}
.st-h3-b{border:none;background:none;padding:0;display:inline-flex;align-items:center;gap:4px;font:700 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);cursor:pointer}
.st-h3-b .ti{font-size:14px}
/* legenda dei ruoli */
.st-leg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 14px;border-top:1px solid var(--line-2)}
.st-leg.una{grid-template-columns:minmax(0,1fr);border:1px solid var(--sand-dark);border-radius:14px}
.st-leg>div{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:12px;background:var(--sand-mid);min-width:0}
.st-leg .st-rc{cursor:default}
.st-leg b{display:block;font-size:13px}
.st-leg small{display:block;font-size:11.5px;color:var(--text2);line-height:1.4}
.st-leg em{display:block;font-style:normal;font-size:11px;color:var(--text3);margin-top:3px}
@media(max-width:767px){.st-leg{grid-template-columns:minmax(0,1fr)}}
.st-rc-X{background:color-mix(in oklch,var(--green) 18%,var(--linen));color:var(--green)}
.st-rc.multi{width:auto;min-width:28px;padding:0 6px;letter-spacing:.04em}
.st-rc.st-rc-xl{width:36px;height:36px;font-size:15px;border-radius:11px;cursor:default}
/* chi fa cosa nella scheda */
.st-ram-r .so-tx small{white-space:normal}
.st-rlet{display:flex;gap:4px;flex:none;margin-left:auto}
.st-rpiu{width:28px;height:28px;border-radius:8px;border:1.5px dashed var(--sand-dark);background:none;display:grid;place-items:center;color:var(--text3);cursor:pointer;padding:0;font-size:14px}
.st-rpiu:hover{color:var(--accent);border-color:var(--accent)}
/* menu dei ruoli di una persona */
.st-rmenu{display:flex;flex-direction:column;gap:6px}
.st-rmenu button{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:1.5px solid var(--sand-dark);background:var(--linen);text-align:left;cursor:pointer;font-family:var(--font-ui);color:var(--text)}
.st-rmenu button.on{border-color:var(--text);background:var(--sand-mid)}
.st-rmenu button .st-rc{cursor:inherit}
.st-rmenu .so-tx small{white-space:normal}
.st-rmenu .st-box{margin-left:auto;flex:none}
.st-rmenu button.on .st-box{background:var(--green);border-color:var(--green);color:#fff}
/* spese e diario */
.st-sp-dx{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none}
.st-reg{border:none;cursor:pointer;font-family:var(--font-ui)}
.st-add input.st-corto{flex:0 0 92px}
.st-add input.st-ore{flex:0 0 70px}
.st-add select#st-dia-p{flex:0 0 110px}
.st-diario .so-tx b{font-size:12.5px}
.st-diario .so-tx small.st-chi{color:var(--text3);font-size:11px}
/* finestra del lavoro */
.st-fmodo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.st-fmodo button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 11px;border-radius:14px;border:1.5px solid var(--sand-dark);background:var(--linen);cursor:pointer;text-align:left;min-width:0;font-family:var(--font-ui);color:var(--text)}
.st-fmodo button .ti{font-size:19px;color:var(--text3)}
.st-fmodo button b{font-size:13px}
.st-fmodo button small{font-size:10.5px;color:var(--text3);line-height:1.3}
.st-fmodo button.on{border-color:var(--text);background:var(--sand-mid)}
.st-fmodo button.on .ti{color:var(--accent)}
@media(max-width:767px){.st-fmodo button small{display:none}}
.st-pchips{display:flex;flex-wrap:wrap;gap:6px}
.st-pchips button{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px 0 4px;border-radius:99px;border:1.5px solid var(--sand-dark);background:var(--linen);font:600 12.5px var(--font-ui);color:var(--text);cursor:pointer}
.st-pchips button.on{border-color:var(--text);background:var(--sand-mid)}
.st-pchips button.on .st-p{background:var(--accent);color:#fff;box-shadow:none}
.st-pchips[data-modo="auto"] button.dt,.st-pchips[data-modo="ditta"] button.noi{display:none}
.st-lettera{flex:0 0 90px}
/* responsabili: gruppi di colonne */
.st-ram .st-ram-gr th{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);text-align:center;padding:6px 4px 0}
.st-ram th.st-sep,.st-ram td.st-sep{border-left:2px solid var(--sand-dark)}
.st-ram .st-rc{margin:0 auto}
/* persone e ruoli */
.st-fermo{cursor:default}
.st-fermo:hover{background:none}
.so-tx small.st-wrap{white-space:normal}
.br-ic.acc{background:color-mix(in oklch,var(--accent) 14%,var(--linen));color:var(--accent)}
/* rendiconto */
.st-pos-t{color:var(--green)!important}
.so-sch-av.st-av-s{width:38px;height:38px;font-size:19px;border-radius:12px}
.st-ore-r{display:flex;align-items:center;gap:10px}
.st-ore-r .so-tx b{font-size:13px}
.st-ore-r .st-bt{flex:1;max-width:160px}
.st-ore-n{font:700 12px var(--mono);color:var(--text2);width:52px;text-align:right}
.st-g-bar.auto{background-image:repeating-linear-gradient(135deg,transparent 0 4px,oklch(1 0 0 / .35) 4px 7px)}
.so-av-ic.ok{background:var(--green-bg);color:var(--green)}
.st-pr .so-lett{display:flex;justify-content:space-between;gap:8px}
.st-filtri .so-chips button .ti{margin-right:4px}
#st-f-avv .st-info{margin-bottom:14px}
.st-pr .so-tx small{white-space:normal}

/* ═══ Home · card in testa (2026-10-09.1): fascia salvia col nome, scheda Struttura, tre card ═══ */
.hm-intesta{position:relative;isolation:isolate;display:flex;align-items:center;gap:10px;min-width:0;margin:-10px -10px 4px;padding:9px 12px 8px;border-radius:calc(var(--r) - 6px) calc(var(--r) - 6px) 0 0;background:var(--testata);color:var(--text)}
.hm-intesta::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:16px;background:var(--testata);border-radius:0 0 50% 50% / 0 0 100% 100%;z-index:-1;pointer-events:none}
.hm-int-n{flex:none;display:inline-flex;align-items:center;gap:7px}
.hm-int-n .ti{font-size:20px;color:var(--clay)}
.hm-int-n b{font-family:var(--font-display);font-size:23px;font-weight:400;letter-spacing:-.015em;line-height:1}
.hm-int-s{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-int-apri{flex:none;display:inline-flex;align-items:center;gap:2px;font:700 13px var(--font-ui);color:var(--clay);background:none;border:0;padding:6px 0 6px 6px;cursor:pointer;min-height:32px}
.hm-int-apri:focus-visible{outline:2px solid var(--clay);outline-offset:2px;border-radius:6px}
/* Salvia chiaro: le card sono già menta, la fascia diventa chiara per staccarsi */
[data-palette="salvia"]:not([data-theme="dark"]) .hm-intesta{--testata:var(--surface)}
/* tema scuro: con Notturna e Pallina il fondo delle testate è quasi uguale alla card, la fascia va un po' più scura della card */
[data-theme="dark"] .hm-intesta{--testata:oklch(0.21 0.03 155)}
/* scheda Struttura */
.hm-st-conta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.hm-st-conta div{background:oklch(1 0 0 / .08);border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;gap:1px;min-width:0}
.hm-st-conta b{font-family:var(--font-display);font-size:24px;font-weight:500;line-height:1.05;font-variant-numeric:tabular-nums}
.hm-st-conta small{font-size:11px;color:var(--brand-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-st-conta .rit{background:oklch(0.62 0.17 30 / .32)}
.hm-st-conta .rit b{color:var(--neg-on-brand)}
.hm-st-lista{display:flex;flex-direction:column;gap:4px;min-width:0}
.hm-st-r{display:flex;align-items:center;gap:10px;width:calc(100% + 8px);text-align:left;background:none;border:0;border-radius:10px;padding:6px 4px;margin:0 -4px;color:var(--brand-ink);font-family:var(--font-ui);cursor:pointer;min-width:0}
.hm-st-r:hover{background:oklch(1 0 0 / .06)}
.hm-st-r:focus-visible{outline:2px solid var(--hi);outline-offset:1px}
.hm-st-r>.ti{flex:none;font-size:16px;color:var(--brand-ink-3)}
.hm-st-dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--brand-ink-3)}
.hm-st-dot.doing{background:var(--hi)}
.hm-st-dot.late{background:var(--neg-on-brand);box-shadow:0 0 0 3px oklch(0.62 0.17 30 / .3)}
.hm-st-tx{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.hm-st-tx b{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-st-tx small{font-size:11.5px;color:var(--brand-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-st-tx small.late{color:var(--neg-on-brand);font-weight:600}
.hm-st-av{height:4px;border-radius:99px;background:oklch(1 0 0 / .14);overflow:hidden;margin-top:3px}
.hm-st-av i{display:block;height:100%;background:var(--hi)}
.hm-st-vuoto{font-size:12.5px;color:var(--brand-ink-2)}
[data-palette="salvia"]:not([data-theme="dark"]) .hm-st-conta div{background:oklch(0 0 0 / .06)}
[data-palette="salvia"]:not([data-theme="dark"]) .hm-st-av{background:oklch(0 0 0 / .1)}
[data-palette="salvia"]:not([data-theme="dark"]) .hm-st-r:hover{background:oklch(0 0 0 / .05)}
/* tre card tutte della stessa misura (2026-10-10.1): computer affiancate 1:1:1; tablet scorrono come al telefono, con i pallini; telefono alte uguali. La riga in fondo di ogni card resta allineata in basso */
.hm-hero .hm-legenda{margin-top:auto}
@media(min-width:1181px){
  .hm-hero{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1180px) and (min-width:768px){
  .hm-hero{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:0 20px;scroll-padding:0 20px;scrollbar-width:none}
  .hm-hero::-webkit-scrollbar{display:none}
  .hm-hero>.hm-blk{flex:0 0 86%;scroll-snap-align:start}
  .hm-pallini{display:flex;justify-content:center;gap:6px;margin-top:-6px}
  .hm-pallini button{width:8px;height:8px;padding:0;border:none;border-radius:99px;background:var(--sand-dark);cursor:pointer;transition:width .25s,background .25s}
  .hm-pallini button.on{width:22px;background:var(--clay)}
}
@media(max-width:767px){
  .hm-hero{align-items:stretch}
}

/* ===== Ricerca generale (2026-10-12.1): lente nella barra in alto, riquadro al computer, schermo intero al telefono ===== */
#tb-cerca{color:var(--clay)}
#tb-cerca .ti{font-size:19px}
body.ric-su{overflow:hidden}
.ric{position:fixed;inset:0;z-index:1100;display:flex;justify-content:center;align-items:flex-start}
.ric[hidden]{display:none}
.ric-velo{position:absolute;inset:0;background:oklch(0.1 0.02 150 / .48);animation:cv-fade calc(.25s*var(--k,1)) backwards}
.ric-box{position:relative;margin-top:min(9vh,80px);width:min(660px,calc(100vw - 32px));max-height:min(620px,calc(100dvh - 2*min(9vh,80px)));display:flex;flex-direction:column;
  background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 60px -12px oklch(0.15 0.03 155 / .45);overflow:hidden;
  animation:cv-pop calc(.22s*var(--k,1)) var(--out,ease-out) backwards}
.ric-testa{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 16px;background:var(--testata);border-bottom:1px solid var(--border);flex:none}
.ric-lente{font-size:20px;color:var(--clay);flex:none}
.ric-ind{display:none}
.ric-testa input{flex:1;min-width:0;border:0;background:transparent;font:600 17px var(--font-ui);color:var(--text);outline:none;padding:8px 0;box-shadow:none}
.ric-testa input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
.ric-testa input::placeholder{color:var(--text3);font-weight:500}
.ric-x,.ric-ind{border:0;background:none;color:var(--text2);cursor:pointer;width:36px;height:36px;border-radius:10px;place-items:center;flex:none;font-size:18px}
.ric-x{display:grid}
.ric-x[hidden]{display:none}
.ric-esc{font:500 11px var(--mono);color:var(--text3);border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:2px 7px;background:var(--surface);cursor:pointer;flex:none}
.ric-chips{display:flex;gap:6px;padding:10px 14px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;flex:none}
.ric-chips::-webkit-scrollbar{display:none}
.ric-chips button{flex:none;display:inline-flex;align-items:center;gap:6px;font:700 12.5px var(--font-ui);color:var(--text2);background:var(--surface2);border:1px solid var(--border);border-radius:99px;padding:6px 12px;cursor:pointer;white-space:nowrap;min-height:32px}
.ric-chips button b{font:500 11px var(--mono);color:var(--text3)}
.ric-chips button.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.ric-chips button.on b{color:var(--hi)}
.ric-chips button[disabled]{opacity:.45;cursor:default}
.ric-corpo{overflow-y:auto;flex:1;min-height:0;padding:4px 8px 10px;overscroll-behavior:contain;position:relative}
.ric-gr{display:flex;flex-direction:column;padding:2px 0}
.ric-gt{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);padding:12px 8px 6px}
.ric-gt button{font:700 12.5px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--clay);background:none;border:0;cursor:pointer;padding:4px 6px;border-radius:8px}
.ric-ris{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:0;border-radius:12px;padding:9px 8px;color:inherit;font:inherit;cursor:pointer;min-width:0;min-height:52px}
.ric-ris:hover,.ric-ris.att{background:color-mix(in oklch,var(--testata) 75%,var(--surface))}
.ric-ris:focus-visible,.ric-chips button:focus-visible,.ric-gt button:focus-visible,.ric-rec button:focus-visible{outline:2px solid var(--clay);outline-offset:1px}
.ric-ic{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none;background:var(--surface2);border:1px solid var(--border);color:var(--clay);font-size:18px}
.ric-ic.av{border-radius:50%;background:var(--testata);border-color:color-mix(in oklch,var(--text) 14%,transparent);color:var(--text);font:700 12.5px var(--font-ui)}
.ric-dot{width:10px;height:10px;border-radius:50%;background:var(--text3)}
.ric-dot.doing{background:var(--hi)}.ric-dot.late{background:var(--live)}.ric-dot.done{background:var(--green)}
.ric-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ric-tx b{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ric-tx small{font-size:12px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ric mark{background:color-mix(in oklch,var(--hi) 48%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.ric-dx{flex:none;display:flex;align-items:center}
.ric-dx .tag-pill{font-size:10.5px;font-weight:700;padding:2px 8px;white-space:nowrap}
.ric-imp{font-family:var(--font-display);font-size:16px;font-weight:500;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap;color:var(--text)}
.ric-imp.pos{color:var(--green)}.ric-imp.neg{color:var(--red)}
.ric-vuoto{padding:14px 8px 8px;display:flex;flex-direction:column;gap:12px}
.ric-vuoto h4{margin:4px 0 0;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);font-weight:500}
.ric-rec{display:flex;flex-wrap:wrap;gap:6px}
.ric-rec button{display:inline-flex;align-items:center;gap:6px;font:600 13px var(--font-ui);color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:7px 11px;cursor:pointer;min-height:34px}
.ric-rec .ti{color:var(--text3);font-size:14px}
.ric-cosa{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ric-cosa div{display:flex;gap:10px;align-items:flex-start;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:10px;font-size:12.5px;color:var(--text2);line-height:1.4;min-width:0}
.ric-cosa b{display:block;color:var(--text);font-size:13px}
.ric-cosa .ti{color:var(--clay);font-size:18px;flex:none;margin-top:1px}
.ric-nessuno{padding:30px 14px;text-align:center;color:var(--text2);font-size:14px;line-height:1.5}
.ric-nessuno b{color:var(--text)}
.ric-nessuno .ti{display:block;font-size:22px;color:var(--text3);margin-bottom:6px}
.ric-poco{margin:6px 8px;font-size:12.5px;color:var(--text3)}
.ric-avv{display:flex;gap:8px;align-items:center;margin:8px 8px 0;padding:8px 10px;border-radius:10px;background:var(--amber-bg,#fef6e7);color:var(--amber);font-size:12.5px;font-weight:600}
.ric-piede{display:none;gap:16px;align-items:center;padding:9px 16px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text3);flex:none}
.ric-piede kbd{font:500 11px var(--mono);color:var(--text3);border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:1px 6px;background:var(--surface)}
@media(hover:hover) and (pointer:fine) and (min-width:768px){.ric-piede{display:flex}}
/* telefono: schermo intero, freccia indietro al posto della lente */
@media(max-width:767px){
  .ric-box{margin:0;width:100%;height:100%;max-height:none;border:0;border-radius:0;box-shadow:none;animation-name:cv-fade}
  .ric{align-items:stretch}
  .ric-testa{padding:calc(8px + env(safe-area-inset-top,0px)) 8px 8px 4px}
  .ric-ind{display:grid}
  .ric-lente,.ric-esc{display:none}
  .ric-chips{padding:10px 12px}
  .ric-corpo{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .ric-cosa{grid-template-columns:minmax(0,1fr)}
}

/* ===== Ruoli (2026-10-15.1, migrazione 002) — ruoli.js =====
   Riquadri di sezioni che il ruolo non vede (body[data-nascoste]) */
body[data-nascoste~="soci"] [data-sez="soci"],
body[data-nascoste~="tessere"] [data-sez="tessere"],
body[data-nascoste~="certificati"] [data-sez="certificati"],
body[data-nascoste~="quote"] [data-sez="quote"],
body[data-nascoste~="finanza"] [data-sez="finanza"],
body[data-nascoste~="attivita"] [data-sez="attivita"],
body[data-nascoste~="bar"] [data-sez="bar"],
body[data-nascoste~="struttura"] [data-sez="struttura"],
body[data-nascoste~="documenti"] [data-sez="documenti"],
body[data-nascoste~="sistema"] [data-sez="sistema"]{display:none!important}
/* Sezioni «solo guardare»: via i bottoni che aggiungono, modificano, salvano o eliminano */
body.sola-lettura #content :is(button,a,[role="button"]):has(> i:is(.ti-plus,.ti-pencil,.ti-edit,.ti-trash,.ti-device-floppy,.ti-user-plus,.ti-user-off,.ti-user-minus,.ti-eraser,.ti-receipt-off,.ti-link,.ti-link-off,.ti-shield-plus,.ti-cash,.ti-check,.ti-checks,.ti-clock-pause,.ti-copy,.ti-arrows-left-right,.ti-divide)),
body.sola-lettura #content .hm-rapido,
body.sola-lettura #modal-footer .btn-primary,
body.sola-lettura #modal-footer :is(button,a):has(> i:is(.ti-plus,.ti-pencil,.ti-edit,.ti-trash,.ti-device-floppy,.ti-check,.ti-checks,.ti-cash,.ti-receipt-off)),
body.sola-lettura #modal-body :is(button,a,[role="button"]):has(> i:is(.ti-plus,.ti-pencil,.ti-edit,.ti-trash,.ti-device-floppy,.ti-user-plus,.ti-user-off,.ti-link,.ti-link-off,.ti-shield-plus,.ti-eraser)){display:none!important}
.sl-nota{display:inline-flex;align-items:center;gap:6px;margin-right:auto;font-size:13px;font-weight:600;color:var(--text2)}

/* ===== Scadenzario (scheda di Segreteria, migrazione 006, 01/11/2026): prefisso sd- ===== */
.sd-barra{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:12px 0}
.sd-mese{display:flex;align-items:center;gap:6px}
.sd-mese button{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--sand-dark);background:var(--linen);color:var(--text2);cursor:pointer;font-size:16px;display:grid;place-items:center;padding:0}
.sd-mese b{font-family:var(--font-display);font-weight:500;font-size:20px;color:var(--forest);min-width:150px;text-align:center}
.sd-filtri{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}
.sd-filtri select{width:auto;height:32px;border-radius:99px;padding:0 12px;border:1.5px solid var(--sand-dark);background:var(--linen);font:600 12px var(--font-ui);color:var(--text2)}
.sd-r{display:flex;align-items:center;gap:11px;padding:9px 16px;border-top:1px solid var(--line-2)}
.so-lett+.sd-r{border-top:none}
.sd-r:hover{background:var(--sand-mid)}
.sd-r.sel{background:var(--testata)}
.sd-r.daver{box-shadow:inset 4px 0 0 var(--amber)}
.sd-r>.so-tx{border:none;background:none;padding:0;text-align:left;cursor:pointer;font-family:var(--font-ui);color:var(--text)}
.sd-r.fatto>.so-tx b{color:var(--text3);text-decoration:line-through;text-decoration-color:var(--sand-dark)}
.sd-r .so-tx small i{font-size:13px;vertical-align:-2px}
.sd-rosso{color:var(--red)}
.sd-spunta{flex:none;width:30px;height:30px;border-radius:50%;border:2px solid var(--sand-dark);background:var(--linen);display:grid;place-items:center;cursor:pointer;color:transparent;font-size:16px;padding:0;box-sizing:border-box}
button.sd-spunta:hover{border-color:var(--accent)}
.sd-spunta.fatto{background:var(--green);border-color:var(--green);color:#fff}
.sd-spunta.nonserve{background:var(--sand-mid);border-color:var(--sand-dark);color:var(--text3)}
.sd-spunta.err{border-color:var(--red)}
span.sd-spunta,.sd-spunta:disabled{cursor:default}
.sd-liv{font-size:10px!important}
.sd-liv-obbligo{background:var(--red-bg);color:var(--red)}
.sd-liv-prassi{background:var(--blue-bg);color:var(--text2)}
.sd-liv-scelta{background:var(--sand-mid);color:var(--text2)}
.sd-anno-box{overflow-x:auto}
.sd-anno{width:100%;border-collapse:collapse;font-size:12.5px}
.sd-anno th,.sd-anno td{padding:8px 6px;text-align:center;border-top:1px solid var(--line-2)}
.sd-anno th{font-family:var(--mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);font-weight:500}
.sd-anno td:first-child,.sd-anno th:first-child{text-align:left;padding-left:16px;white-space:nowrap}
.sd-anno td button{border:none;background:none;cursor:pointer;font:600 12px var(--font-ui);color:var(--text2);border-radius:8px;padding:3px 6px}
.sd-anno td button.tutto{background:var(--green-bg);color:var(--green)}
.sd-anno td button.rit{background:var(--red-bg);color:var(--red)}
.sd-anno td button.oggi{outline:2px solid var(--text)}
.sd-legenda{font-size:12px;color:var(--text3);padding:10px 16px;border-top:1px solid var(--line-2)}
.sd-pallini{display:flex;gap:3px;flex:none}
.sd-pallini i{width:7px;height:7px;border-radius:50%;background:var(--sand-dark);opacity:.35}
.sd-pallini i.si{opacity:1}
.sd-pallini i.fatto{background:var(--green);opacity:1}
.sd-pallini i.err{background:var(--red);opacity:1}
.sd-sch-nome{font-size:20px}
.sd-tit{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:-6px}
.sd-stati{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.sd-stati button{height:40px;border-radius:12px;border:1.5px solid var(--sand-dark);background:var(--linen);font:600 12.5px var(--font-ui);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px}
.sd-stati button.on{border-color:var(--text);background:var(--sand-mid);color:var(--text)}
.sd-stati button.on.fatto{background:var(--green-bg);border-color:var(--green);color:var(--green)}
.sd-traccia{font-size:12px;color:var(--text3)}
.sd-nota{width:100%;min-height:64px;box-sizing:border-box;border-radius:12px;border:1.5px solid var(--sand-dark);padding:8px 10px;font:13px var(--font-ui);background:var(--linen);color:var(--text)}
.sd-salva-nota{align-self:flex-start;margin-top:-6px}
.sd-daver{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--amber-bg);color:var(--amber-ink);font-size:12.5px;line-height:1.4}
.sd-daver i{font-size:17px}
.sd-dd-nota{font-weight:500!important}
.sd-testo{font-size:13.5px;line-height:1.45;margin:0 0 12px}
.sd-mesi-sel{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.sd-mesi-sel label{display:flex;align-items:center;gap:5px;font-size:12.5px;padding:6px 8px;border-radius:10px;background:var(--sand-mid);cursor:pointer}
.sd-mesi-sel input{width:auto;margin:0}
@media(max-width:767px){.sd-mese b{min-width:120px;font-size:18px}.sd-r{padding:9px 12px}.sd-pallini{display:none}.sd-mesi-sel{grid-template-columns:repeat(4,minmax(0,1fr))}}
.sd-errore{display:block;margin-top:6px;font-size:12px}
/* ===== Piano 2027-2029 (migrazione 007) — budget.js, scheda «Piano 2027–29» di Finanza =====
   Prefisso .pia- ; tabelle e card riusano .fi-card e .fi-tab della Finanza */
.pia-barra{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin:0 0 10px}
.pia-pill{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pia-pill>span{font:500 10px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin-right:2px}
.pia-pill button{height:32px;padding:0 13px;border-radius:99px;border:1.5px solid var(--sand-dark);background:var(--linen);font:600 13px var(--font-ui);color:var(--text2);cursor:pointer}
.pia-pill button.on{background:var(--text);color:var(--bg);border-color:var(--text)}
.pia-sotto{margin-bottom:10px}
.pia-salvati{display:flex;gap:8px;align-items:center;margin-left:auto}
.pia-nasc{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pia-sel{height:34px;max-width:260px;border-radius:10px;border:1.5px solid var(--sand-dark);background:var(--linen);font:500 13px var(--font-ui);color:var(--text);padding:0 8px}
.pia .fi-tab .pia-sel{height:30px;font-size:12.5px}
.pia-btn{height:34px;padding:0 12px;border-radius:10px;border:1.5px solid var(--sand-dark);background:var(--linen);font:600 13px var(--font-ui);color:var(--text);cursor:pointer;display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.pia-btn.pia-ico{height:30px;padding:0 8px}
.fi-card-h .pia-btn{margin-left:auto}
.pia-link{border:none;background:none;padding:0;font:inherit;color:var(--text2);text-decoration:underline;cursor:pointer}
.pia-nota-scen{font-size:12.5px;color:var(--text3);margin:0 0 10px;line-height:1.45}
.pia-viste{display:flex;gap:4px;margin:2px 0 12px;flex-wrap:wrap}
.pia-viste button{height:32px;padding:0 12px;border-radius:8px;border:none;background:transparent;font:600 13px var(--font-ui);color:var(--text3);cursor:pointer}
.pia-viste button.on{background:var(--sand-mid);color:var(--text)}
.pia-kpi{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}
.pia-kpi>div{background:var(--linen);border:1px solid var(--line-2);border-radius:14px;padding:12px 14px}
.pia-kpi b{display:block;font:600 21px var(--font-display);font-variant-numeric:tabular-nums}
.pia-kpi small{display:block;font-size:12px;color:var(--text3);margin-top:3px;line-height:1.3}
.pia-kpi .pos b{color:var(--green)}
.pia-kpi .neg b{color:var(--red)}
.pia-sez{margin-top:12px}
.pia-tab tbody tr{cursor:default}
.pia-tab td.sx{text-align:left;font-family:var(--font-ui);font-size:12.5px;color:var(--text2);white-space:normal}
.pia-tab td.neg{color:var(--red)}
.pia-tab td.pos{color:var(--green)}
.pia-tab td.pia-scelto{font-weight:700}
.pia-gruppo td{background:var(--sand-mid);font-family:var(--mono)!important;font-size:9.5px!important;letter-spacing:.09em;text-transform:uppercase;color:var(--text3)!important;font-weight:500!important}
.pia-tot td{font-weight:700}
.pia-spenta td{opacity:.55}
.pia-tag{display:inline-block;padding:1px 7px;border-radius:99px;font:500 10px var(--font-ui);background:var(--sand-mid);color:var(--text3);vertical-align:1px;white-space:nowrap}
.pia-tag.legge{background:var(--blue-bg);color:var(--blue)}
.pia-tag.cons{background:var(--amber-bg);color:var(--amber-ink)}
.pia-tag.mod{background:var(--green-bg);color:var(--green)}
.pia-nota{font-size:12px;color:var(--text3);padding:10px 14px;border-top:1px solid var(--line-2);line-height:1.45}
.pia-leve{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 26px;padding:12px 16px}
.pia-leve label{display:grid;grid-template-columns:1fr auto;gap:2px 10px;font-size:13px;color:var(--text2);padding:6px 0}
.pia-leve label b{font:600 14px var(--font-display);color:var(--text);text-align:right}
.pia-leve label.mod b{color:var(--green)}
.pia-leve input[type=range]{grid-column:1/3;width:100%;height:22px;accent-color:var(--text);border:none!important;background:none!important;padding:0!important;box-shadow:none!important}
.pia-barre{display:flex;gap:2px;align-items:center;justify-content:flex-end}
.pia-barre i{display:block;height:8px;border-radius:2px}
.pia-check{display:flex;gap:8px;align-items:center;font-size:13.5px;color:var(--text2)}
.pia-check input{width:18px;height:18px}
@media (max-width:760px){
  .pia-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pia-leve{grid-template-columns:1fr}
  .pia-salvati{margin-left:0;width:100%}
  .pia-sel{flex:1;max-width:none}
}

/* ===== Volontari (2026-11-01, migrazione 008) — volontari.js, classi vo-* =====
   Prototipo approvato da Paolo: prototipi/volontari.html */
.vo-schede{margin-bottom:12px}
.vo-avviso{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:14px;background:var(--amber-bg);color:var(--amber-ink);font-size:13px;line-height:1.45;margin-bottom:12px}
.vo-avviso.rosso{background:var(--red-bg);color:var(--red)}
.vo-avviso i{font-size:18px;margin-top:1px}
.vo-mese{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.vo-mese b{font:700 17px var(--font-ui);min-width:150px;text-align:center;text-transform:capitalize}
.vo-btn{min-height:34px;padding:0 14px;border-radius:99px;border:1.5px solid var(--border);background:var(--surface);font:600 13px var(--font-ui);color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.vo-btn.pieno{background:var(--text);color:var(--bg);border-color:var(--text)}
.vo-btn.rosso{border-color:var(--red);color:var(--red)}
.vo-btn.piccolo{min-height:28px;padding:0 9px}
.vo-btn:disabled{opacity:.6;cursor:default}
.vo-stato{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:99px;font:600 12px var(--font-ui)}
.vo-stato.aperto{background:var(--green-bg);color:var(--forest-mid)}
.vo-stato.chiuso{background:var(--red-bg);color:var(--red)}
.vo-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 16px;margin-top:12px}
.vo-card h3{margin:0 0 10px;font:700 15px var(--font-ui);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vo-card h3 small{font-weight:500;color:var(--text3);font-size:12px}
.vo-kpi{margin-top:4px}
.vo-vols{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.vo-vuoto{color:var(--text3);font-size:13px;padding:6px 0}
.vo-card.vo-vuoto{display:flex;gap:8px;align-items:center}
.vo-chip{display:inline-block;margin:0 5px 5px 0;padding:2px 9px;border-radius:99px;font:600 11px var(--font-ui);background:var(--sand-mid);color:var(--text2)}
.vo-chip.ok{background:var(--green-bg);color:var(--forest-mid)}
.vo-chip.no{background:var(--red-bg);color:var(--red)}
.vo-chip.att{background:var(--amber-bg);color:var(--amber-ink)}
.vo-barra{height:10px;border-radius:99px;background:var(--sand-mid);overflow:hidden;margin:8px 0 4px}
.vo-barra i{display:block;height:100%;background:var(--green)}
.vo-barra i.warn{background:var(--amber)}
.vo-barra i.bad{background:var(--red)}
.vo-piccolo{font-size:12px;color:var(--text3);line-height:1.45}
.vo-riga{margin-top:8px}
.vo-et{display:inline-block;padding:1px 8px;border-radius:99px;font:600 10.5px var(--font-ui);vertical-align:1px;white-space:nowrap}
.vo-et.legge{background:var(--red-bg);color:var(--red)}
.vo-et.prassi{background:var(--blue-bg);color:var(--blue)}
.vo-et.consiglio{background:var(--sand-mid);color:var(--text2)}
.vo-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px 12px}
.vo-form label{display:flex;flex-direction:column;gap:4px;font:600 12px var(--font-ui);color:var(--text2)}
.vo-form label.riga{flex-direction:row;align-items:center;gap:8px;font-weight:500;color:var(--text)}
.vo-form label[hidden]{display:none}
.vo-form input:not([type=checkbox]),.vo-form select,.vo-in{min-height:36px;border:1.5px solid var(--border);border-radius:10px;padding:0 10px;font:500 14px var(--font-ui);background:var(--bg);color:var(--text);width:100%;box-sizing:border-box}
.vo-in-n{max-width:100px;text-align:right}
.vo-pieno{grid-column:1/-1}
.vo-azioni{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
.vo-msg{margin-top:10px;padding:10px 13px;border-radius:12px;font-size:13px;line-height:1.45}
.vo-msg.no{background:var(--red-bg);color:var(--red)}
.vo-msg.si{background:var(--green-bg);color:var(--forest-mid)}
.vo-scorri{overflow-x:auto}
.vo-tab{width:100%;border-collapse:collapse;font-size:13px}
.vo-tab th{text-align:left;font:600 11px var(--font-ui);color:var(--text3);text-transform:uppercase;letter-spacing:.04em;padding:7px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
.vo-tab td{padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}
.vo-tab .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.vo-tab tr.vo-tot td{font-weight:700}
.vo-clic tbody tr{cursor:pointer}
.vo-clic tbody tr:hover td{background:var(--surface2)}
.vo-pag{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.vo-riga-check{display:flex;align-items:center;gap:8px}
.vo-foglio{background:#fff;color:#222;border:1px solid var(--border);border-radius:8px;padding:22px 26px;font:14px/1.55 Georgia,'Times New Roman',serif;max-width:780px;overflow-x:auto}
.vo-foglio h2{font:700 18px Georgia,serif;margin:0 0 12px}
.vo-foglio h3,.vo-foglio h4{font:700 15px Georgia,serif;margin:16px 0 8px}
.vo-foglio table{border-collapse:collapse;width:100%;margin:8px 0}
.vo-foglio th,.vo-foglio td{border:1px solid #999;padding:5px 7px;text-align:left;vertical-align:top}
.vo-foglio p{margin:0 0 10px}
.vo-vuoto-riga,.vo-foglio .vo-vuoto{display:inline-block;min-width:120px;border-bottom:1px solid #555;padding:0;height:1em}
.vo-dato{background:#fff3c4;padding:0 3px;border-radius:3px}
#vo-stampa{display:none}
@media print{
  body.vo-stampa>*{display:none!important}
  body.vo-stampa>#vo-stampa{display:block!important;border:none;max-width:none;padding:0;overflow:visible}
  body.vo-stampa .vo-dato{background:none;padding:0}
}

/* ===== Presenze dei lavoratori (2026-11-02, migrazione 009) — presenze_lav.js, classi pl-* =====
   Prototipo approvato da Paolo: prototipi/presenze_lavoratori.html */
.pl-mese{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.pl-mese b{font:700 17px var(--font-ui);min-width:150px;text-align:center;text-transform:capitalize}
.pl-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 16px;margin-top:12px}
.pl-card h3{margin:0 0 10px;font:700 15px var(--font-ui);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pl-card h3 small{font-weight:500;color:var(--text3);font-size:12px}
.pl-tel{max-width:440px;margin-left:auto;margin-right:auto}
.pl-grande{width:100%;min-height:96px;border-radius:22px;border:none;font:800 22px var(--font-ui);display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;color:#fff}
.pl-grande.inizio{background:var(--green)}
.pl-grande.fine{background:var(--red)}
.pl-grande i{font-size:28px}
.pl-in{display:flex;flex-direction:column;gap:4px;font:600 12px var(--font-ui);color:var(--text2);margin-bottom:10px}
.pl-in select{min-height:44px;border:1.5px solid var(--border);border-radius:10px;padding:0 10px;font:500 15px var(--font-ui);background:var(--bg);color:var(--text)}
.pl-corso{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:var(--green-bg);color:var(--forest-mid);font:600 14px var(--font-ui);margin-bottom:10px}
.pl-link{background:none;border:none;padding:0;color:var(--text);text-decoration:underline;font:inherit;cursor:pointer}
.pl-tab{width:100%;border-collapse:collapse;font-size:13px}
.pl-tab th{text-align:left;font:600 11px var(--font-ui);color:var(--text3);text-transform:uppercase;letter-spacing:.04em;padding:7px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
.pl-tab td{padding:8px;border-bottom:1px solid var(--border);vertical-align:top}
.pl-tab .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pl-tab tr.tot td{font-weight:700}
.pl-tab .pl-mcol{text-align:center}
.pl-scorri{overflow-x:auto}
.pl-chip{display:inline-block;margin:2px 4px 2px 0;padding:2px 9px;border-radius:99px;font:600 11px var(--font-ui);background:var(--sand-mid);color:var(--text2)}
.pl-chip.ok{background:var(--green-bg);color:var(--forest-mid)}
.pl-chip.no{background:var(--red-bg);color:var(--red)}
.pl-chip.att{background:var(--amber-bg);color:var(--amber-ink)}
.pl-et{display:inline-block;padding:1px 8px;border-radius:99px;font:600 10.5px var(--font-ui);white-space:nowrap}
.pl-et.legge{background:var(--red-bg);color:var(--red)}
.pl-et.consiglio{background:var(--sand-mid);color:var(--text2)}
.pl-budget{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pl-budget input{width:140px;min-height:44px;border:1.5px solid var(--border);border-radius:12px;padding:0 12px;font:800 20px var(--font-ui);text-align:right;background:var(--bg);color:var(--text)}
.pl-formula{font:600 13px var(--font-ui);background:var(--sand-mid);border-radius:12px;padding:10px 13px;margin-top:10px;line-height:1.6}
.pl-piccolo{font-size:12px;color:var(--text3);line-height:1.45}
.pl-riga{margin-top:8px}
.pl-vuoto{color:var(--text3);font-size:13px}
.pl-btn{min-height:34px;padding:0 14px;border-radius:99px;border:1.5px solid var(--border);background:var(--surface);font:600 13px var(--font-ui);color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.pl-btn.pieno{background:var(--text);color:var(--bg);border-color:var(--text)}
.pl-btn.rosso{border-color:var(--red);color:var(--red)}
.pl-btn.piccolo{min-height:28px;padding:0 9px}
.pl-btn:disabled{opacity:.45;cursor:not-allowed}
.pl-azioni{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pl-msg{margin-top:10px;padding:10px 13px;border-radius:12px;font-size:13px;line-height:1.45}
.pl-msg.no{background:var(--red-bg);color:var(--red)}
.pl-msg.si{background:var(--green-bg);color:var(--forest-mid)}
.pl-msg.att{background:var(--amber-bg);color:var(--amber-ink)}
.pl-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 12px}
.pl-form label{display:flex;flex-direction:column;gap:4px;font:600 12px var(--font-ui);color:var(--text2)}
.pl-form input,.pl-form select{min-height:36px;border:1.5px solid var(--border);border-radius:10px;padding:0 10px;font:500 14px var(--font-ui);background:var(--bg);color:var(--text)}
.pl-pieno{grid-column:1/-1}
