/* Officina del Corpo — stili del gestionale.
   Le variabili (colori, raggi, ombre, spaziature, scala dei caratteri, altezza dei comandi)
   stanno tutte in tokens.css, condiviso con portale e tablet: qui si usano e basta.
   tokens.css si collega nella pagina PRIMA di questo file (niente @import: sarebbe una
   seconda richiesta in fila, e su un tablet lento la pagina partirebbe senza colori).
   Tre regole che valgono per tutto il file:
   1. il testo di base e' 16px e niente scende sotto i 13px (--fs-xs): prima l'agenda e le
      tabelle stavano fra 7,5 e 10px, illeggibili su un tablet appoggiato al banco;
   2. ogni comando ha un'altezza minima (--h-comando, --h-piccolo) che col dito sale a 44px;
   3. il fuoco da tastiera si vede sempre: nessuna regola lo toglie senza rimetterlo.
   Sotto gli 820px il gestionale e' "da telefono": barra in basso, una colonna, tabelle a
   schede. mobile.css aggiunge la versione semplificata (body.mobile-simple). */

/* =========================================================================
   BASE
   ========================================================================= */
*{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font)}
body{font-size:var(--fs);line-height:var(--lh);overflow:hidden;
 background:radial-gradient(circle at 85% 0,rgba(47,128,85,.12),transparent 28%),linear-gradient(145deg,var(--bg),#07100a)}
h1,h2,h3,h4{line-height:var(--lh-stretta)}
p{margin:0 0 var(--s2)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
a{color:inherit}
.hidden{display:none!important}
.muted{color:var(--muted)}
.mobile-only,.mobile-nav{display:none}

/* Il fuoco da tastiera: un anello chiaro, staccato dal bordo, su ogni cosa che lo riceve. */
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:1px}
.row-clickable:focus-visible{outline-offset:-3px}

@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* =========================================================================
   STRUTTURA: barra laterale, barra in alto, viste
   ========================================================================= */
.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar);z-index:30;display:flex;flex-direction:column;
 padding:var(--s4) var(--s3) var(--s3);color:var(--su-sabbia);
 background:linear-gradient(180deg,rgba(235,209,167,.97),rgba(201,179,144,.93));border-right:1px solid rgba(255,255,255,.14)}
.brand{display:flex;align-items:center;gap:var(--s3);padding:0 var(--s1) var(--s4)}
.brand img{width:52px;height:52px;object-fit:cover;border-radius:var(--r);mix-blend-mode:multiply;flex:0 0 auto}
.brand strong{display:block;font-size:var(--fs-m);line-height:1;letter-spacing:-.02em}
.brand small{display:block;font-size:var(--fs-xs);line-height:1.3;margin-top:var(--s1);font-weight:600;opacity:.85}

.side-nav{display:flex;flex-direction:column;gap:var(--s1);overflow-y:auto;scrollbar-width:thin;padding:2px;margin:0 -2px}
.nav-item{min-height:var(--h-comando);display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:var(--s2);
 width:100%;padding:var(--s1) var(--s3);border:1px solid var(--bordo-scuro);border-radius:var(--r-sm);
 background:transparent;color:var(--su-sabbia);text-align:left;font-size:var(--fs);line-height:var(--lh-stretta)}
.nav-item span{font-size:18px;text-align:center}
.nav-item b{font-weight:700}
.nav-item:hover{background:rgba(23,37,26,.08)}
.nav-item.active{background:linear-gradient(90deg,#183423,#294a35);color:#fff;border-color:#12281a;box-shadow:0 8px 18px rgba(24,52,35,.18)}
.nav-badge{font-style:normal;font-size:var(--fs-xs);font-weight:800;background:var(--su-sabbia);color:var(--sand);border-radius:var(--r-pill);padding:1px var(--s2)}
.nav-item.active .nav-badge{background:var(--sand);color:var(--su-sabbia)}
.nav-sep{height:1px;background:rgba(24,45,31,.25);margin:var(--s2) var(--s2)}

.sidebar-status{margin-top:auto;border-top:1px solid rgba(23,37,26,.25);padding:var(--s3) var(--s1) 0;font-size:var(--fs-s)}
.sidebar-status>div:first-child{display:flex;align-items:center;gap:var(--s2);font-weight:750}
.sidebar-status small{display:block;margin:2px 0 0 18px;font-size:var(--fs-xs);opacity:.85}
.sidebar-account{display:flex;gap:var(--s2);margin-top:var(--s2)}
/* Password ed Esci stanno sul fondo sabbia: testo scuro e bordo scuro, non i colori del fondo verde. */
.sidebar .text-btn{color:var(--su-sabbia);border-color:var(--bordo-scuro);background:rgba(255,255,255,.3)}
.sidebar .text-btn:hover{background:rgba(255,255,255,.5)}
/* Gruppi del menu: un titoletto al posto della sola riga, cosi' le voci si trovano per
   argomento (Operativita', Vendite, Allenamento, Amministrazione). */
.nav-gruppo{margin:var(--s3) var(--s2) var(--s1);font-size:var(--fs-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#3d4a3f}
.nav-gruppo:first-child{margin-top:0}
.dot{width:10px;height:10px;border-radius:50%;background:#666;flex:0 0 auto}
.dot.online{background:#2f7d4c;box-shadow:0 0 0 3px rgba(57,139,88,.18)}
.dot.offline{background:var(--danger);box-shadow:0 0 0 3px rgba(215,101,94,.2)}

.workspace{margin-left:var(--sidebar);min-height:100dvh}
.topbar{height:var(--topbar);display:flex;align-items:center;gap:var(--s3);padding:0 var(--s5);position:sticky;top:0;z-index:20;
 border-bottom:1px solid rgba(239,211,165,.12);background:rgba(8,14,10,.92);backdrop-filter:blur(16px)}
.search-box{height:var(--h-tocco);min-width:240px;max-width:560px;flex:1;display:flex;align-items:center;gap:var(--s2);padding:0 var(--s3);
 border:1px solid var(--bordo);border-radius:var(--r);background:var(--campo);color:var(--muted)}
.search-box:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.search-box input{width:100%;min-width:0;border:0;padding:0;background:transparent;font-size:var(--fs);outline:0}
.search-box input::placeholder{color:var(--muted);opacity:1}
.top-actions{display:flex;align-items:center;gap:var(--s2);margin-left:auto}
.top-icon{position:relative;width:var(--h-tocco);height:var(--h-tocco);border-radius:var(--r-sm);border:1px solid var(--bordo);
 background:var(--panel);color:var(--text);font-size:20px;display:grid;place-items:center;padding:0}
.top-icon.mobile-only{display:none}
.top-count{position:absolute;right:-6px;top:-6px;min-width:22px;height:22px;padding:0 6px;display:grid;place-items:center;
 background:#c43d37;color:#fff;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:800}
.operator-badge{display:flex;flex-direction:column;line-height:1.15;padding:0 var(--s2)}
.operator-badge span{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.operator-badge b{font-size:var(--fs)}

/* Ogni vista scorre per conto suo; il blocco principale (tabella, colonne, calendario)
   si prende l'altezza che resta, cosi' le intestazioni delle tabelle restano in vista. */
.view-host{height:calc(100dvh - var(--topbar));overflow:hidden}
.view{display:none;height:100%;overflow:auto;padding:var(--s6) var(--s8) var(--s8)}
.view.active-view{display:flex;flex-direction:column}
.view>*{flex:0 0 auto}
.view>.table-card,.view>.two-col-module,.view>.deadline-board,.view>.calendar-grid{flex:1 1 auto;min-height:320px}

.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5);flex-wrap:wrap}
.page-heading>div:first-child{min-width:0;max-width:72ch}
.page-heading h1{font-size:var(--fs-xl);letter-spacing:-.02em;margin:var(--s1) 0 var(--s1)}
.page-heading p{margin:0;color:var(--muted);font-size:var(--fs)}
.compact-heading{margin-bottom:var(--s5)}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:var(--fs-xs)!important;color:var(--sand2)!important;font-weight:800;margin:0}
.heading-actions{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}

/* =========================================================================
   COMANDI
   Ogni pulsante ha un bordo pieno almeno a 3:1 con lo sfondo (WCAG 1.4.11): prima molti
   erano senza bordo e il bersaglio si indovinava dal testo.
   ========================================================================= */
.primary-btn,.ghost-btn,.danger-btn,.link-btn,.file-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);
 min-height:var(--h-comando);padding:var(--s2) var(--s4);border:1px solid var(--bordo);border-radius:var(--r-sm);
 font-size:var(--fs);font-weight:700;line-height:var(--lh-stretta);text-decoration:none;white-space:nowrap}
.primary-btn{background:linear-gradient(180deg,#2d8155,#205f3d);color:#fff;border-color:var(--bordo-verde)}
.primary-btn:hover{filter:brightness(1.1)}
.ghost-btn,.link-btn,.file-btn{background:var(--panel2);color:var(--text)}
.ghost-btn:hover,.link-btn:hover,.file-btn:hover{background:var(--panel3)}
.danger-btn{background:var(--danger-bg);color:var(--danger-testo);border-color:var(--bordo-rosso)}
.file-btn{cursor:pointer}
.file-btn input{display:none}
.primary-btn.compact,.ghost-btn.compact{min-height:var(--h-piccolo);padding:var(--s1) var(--s3);font-size:var(--fs-s)}
.wide-btn{width:100%}

.text-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);min-height:var(--h-piccolo);padding:var(--s1) var(--s3);
 border:1px solid var(--bordo-sabbia);border-radius:var(--r-sm);background:rgba(239,211,165,.06);color:var(--sand);
 font-size:var(--fs-s);font-weight:700;white-space:nowrap}
.text-btn:hover{background:rgba(239,211,165,.14)}
.text-btn.danger{color:var(--danger-testo);border-color:var(--bordo-rosso);background:var(--danger-bg)}

.tiny-btn,.table-action{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);min-height:var(--h-piccolo);
 padding:var(--s1) var(--s3);border:1px solid var(--bordo-sabbia);border-radius:var(--r-sm);background:rgba(239,211,165,.07);
 color:var(--sand);font-size:var(--fs-s);font-weight:700;line-height:1.2;text-decoration:none;white-space:nowrap}
.tiny-btn:hover,.table-action:hover{background:rgba(239,211,165,.16)}
.tiny-btn.solid{background:rgba(239,211,165,.16);border-color:rgba(239,211,165,.75)}
.tiny-btn.danger{color:var(--danger-testo);border-color:var(--bordo-rosso);background:var(--danger-bg)}
.tiny-btn:disabled{opacity:.45}
.tiny-btn.tondo{width:var(--h-piccolo);padding:0;font-size:var(--fs-m)}

.icon-btn{width:var(--h-comando);height:var(--h-comando);display:grid;place-items:center;padding:0;flex:0 0 auto;
 border:1px solid var(--bordo);border-radius:var(--r-sm);background:var(--panel3);color:var(--text);font-size:22px;line-height:1}
.icon-btn:hover{background:#2a372d}

/* scheda cliente: matita, oppure annulla e salva, con accanto la parola */
.azione-scheda{display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--h-comando);padding:0 var(--s3);
 border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel3);color:var(--text);
 font-size:var(--fs-s);font-weight:750;white-space:nowrap}
.azione-scheda i{font-style:normal;font-size:var(--fs-m);line-height:1}
.azione-scheda.matita{border-color:var(--bordo-sabbia);color:var(--sand);background:rgba(239,211,165,.1)}
.azione-scheda.matita:hover{background:rgba(239,211,165,.2)}
.azione-scheda.annulla{border-color:var(--bordo-rosso);color:var(--danger-testo);background:var(--danger-bg)}
.azione-scheda.salva{border-color:#8ee3b4;color:#08160e;background:linear-gradient(180deg,#5cc98c,#33895c);font-weight:900}

/* libreria schede: "Assegna" e' l'azione normale e si deve vedere */
.btn-assegna{display:inline-flex;align-items:center;justify-content:center;min-height:var(--h-piccolo);padding:var(--s1) var(--s3);
 border:1px solid var(--bordo-verde);border-radius:var(--r-sm);background:linear-gradient(180deg,#2d8155,#205f3d);color:#fff;
 font-size:var(--fs-s);font-weight:800;white-space:nowrap}
.btn-assegna:hover{filter:brightness(1.12)}

/* =========================================================================
   CAMPI
   ========================================================================= */
input,select,textarea{min-height:var(--h-comando);border:1px solid var(--bordo);border-radius:var(--r-sm);background:var(--campo);
 color:var(--text);padding:var(--s2) var(--s3);font-size:var(--fs)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
input:focus,select:focus,textarea:focus{border-color:var(--sand)}
input[type=checkbox],input[type=radio]{min-height:0;width:22px;height:22px;accent-color:var(--green3);padding:0}
textarea{min-height:96px;resize:vertical;line-height:var(--lh)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.field{display:grid;gap:var(--s1);align-content:start}
.field.full{grid-column:1/-1}
.field label{font-size:var(--fs-s);color:#d3dad0;font-weight:650}
.field input,.field select,.field textarea{width:100%}
.field input[type=checkbox],.field input[type=radio]{width:22px;flex:0 0 auto}
/* «Altri dati»: i campi facoltativi di un modulo, chiusi finche' non servono */
.campi-altri{display:block;border:1px solid var(--line);border-radius:var(--r-sm);background:rgba(255,255,255,.02)}
.campi-altri>summary{min-height:var(--h-comando);display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);
 cursor:pointer;color:var(--sand);font-weight:700}
.campi-altri>summary small{color:var(--muted);font-weight:500;font-size:var(--fs-s)}
.campi-altri>.form-grid{padding:var(--s1) var(--s3) var(--s3)}
.checkbox-field{display:flex!important;align-items:center;gap:var(--s3);min-height:var(--h-comando);padding:var(--s2) var(--s3);
 border:1px solid var(--line);border-radius:var(--r-sm);font-size:var(--fs);color:var(--text)!important;font-weight:500!important;cursor:pointer}
.form-hint{margin-top:var(--s4);padding:var(--s3) var(--s4);border:1px solid #4a594d;border-radius:var(--r-sm);background:var(--panel2);
 font-size:var(--fs);line-height:var(--lh);color:#dde3da}
.form-hint.warn{border-color:rgba(226,166,79,.5);background:var(--warning-bg);color:#ffd28b}
.form-hint.bad{border-color:var(--bordo-rosso);background:var(--danger-bg);color:var(--danger-testo)}
/* Errori: grandi, scritti in chiaro e col bordo, non solo un testo rosso piccolo. */
.form-error{margin:var(--s3) 0 0;padding:var(--s3) var(--s4);border:1px solid var(--bordo-rosso);border-left-width:4px;border-radius:var(--r-sm);
 background:var(--danger-bg);color:var(--danger-testo);font-size:var(--fs);font-weight:600;line-height:var(--lh)}

/* =========================================================================
   RIQUADRI E HOME
   ========================================================================= */
.panel{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(145deg,rgba(19,29,21,.98),rgba(11,18,13,.98));
 box-shadow:var(--ombra);min-height:0;min-width:0}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);padding:var(--s4) var(--s4) var(--s3);
 border-bottom:1px solid rgba(239,211,165,.08)}
.panel-head h2{font-size:var(--fs-m);margin:0 0 2px}
.panel-head p{font-size:var(--fs-s);margin:0;color:var(--muted)}

.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s3);margin-bottom:var(--s4)}
/* Riquadri della Home: icona a sinistra, poi numero, didascalia e nota una sotto l'altra.
   Con la nota a destra, a 16px su cinque colonne, le parole andavano a capo una per riga. */
.kpi{min-height:88px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;align-items:center;
 column-gap:var(--s3);padding:var(--s3) var(--s4);min-width:0;
 border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(145deg,#172119,#101812)}
.kpi>i{grid-row:1/3;width:40px;height:40px;border-radius:var(--r-sm);display:grid;place-items:center;
 background:var(--sand);color:var(--su-sabbia);font-style:normal;font-weight:800;font-size:var(--fs-m)}
.kpi>div{display:flex;flex-direction:column;min-width:0}
.kpi strong{font-size:var(--fs-xl);line-height:1.1}
.kpi span{font-size:var(--fs-s);color:var(--muted);line-height:1.3}
.kpi>small{grid-column:2;color:var(--sand2);font-size:var(--fs-s);line-height:1.3}

.dashboard-main-grid{display:grid;gap:var(--s4);min-height:0;
 grid-template-columns:minmax(0,1.3fr) minmax(0,1.1fr) minmax(0,1fr);
 grid-template-areas:"agenda alerts scadenze" "agenda quick scadenze" "capacity capacity summary"}
.dashboard-agenda{grid-area:agenda}
.dashboard-alerts{grid-area:alerts}
.dashboard-scadenze{grid-area:scadenze}
.dashboard-quick{grid-area:quick}
.dashboard-capacity{grid-area:capacity}
.dashboard-summary{grid-area:summary}
.dense-list{max-height:460px;overflow:auto;padding:var(--s1) var(--s3) var(--s3);scrollbar-width:thin}
.dense-row{display:grid;grid-template-columns:56px 4px minmax(0,1fr) auto;align-items:center;gap:var(--s3);min-height:60px;
 padding:var(--s2) var(--s1);border-bottom:1px solid rgba(239,211,165,.08)}
.dense-row:last-child{border-bottom:0}
.dense-row[role=button]{cursor:pointer}
.dense-row[role=button]:hover{background:rgba(239,211,165,.05)}
.dense-time{font-size:var(--fs);font-weight:800}
.dense-rail{height:36px;width:4px;border-radius:var(--r-pill);background:var(--sala)}
.dense-rail.course{background:var(--corso)}
.dense-rail.pt{background:var(--pt)}
.dense-copy{min-width:0}
.dense-copy strong{display:block;font-size:var(--fs)}
.dense-copy span{display:block;color:var(--muted);font-size:var(--fs-s);overflow:hidden;text-overflow:ellipsis}
.dense-meta{font-size:var(--fs-s);color:#dbd2c5;white-space:nowrap;font-weight:650}

.alert-row{display:flex;gap:var(--s3);align-items:center;min-height:60px;padding:var(--s2) var(--s1);
 border-bottom:1px solid rgba(239,211,165,.08);cursor:pointer}
.alert-row:hover{background:rgba(239,211,165,.05)}
.alert-icon{width:32px;height:32px;border-radius:var(--r-sm);display:grid;place-items:center;flex:0 0 auto;
 background:var(--warning-bg);color:var(--warning-testo);font-weight:900}
.alert-icon.danger{background:var(--danger-bg);color:var(--danger-testo)}
.alert-copy{min-width:0;flex:1}
.alert-copy strong{display:block;font-size:var(--fs)}
.alert-copy span{display:block;font-size:var(--fs-s);color:var(--muted)}

.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2);padding:var(--s3)}
.quick-grid button{min-height:52px;display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);text-align:left;min-width:0;
 border:1px solid var(--bordo);border-radius:var(--r-sm);background:var(--panel3);color:var(--text);font-size:var(--fs);font-weight:700;overflow-wrap:break-word}
.quick-grid button:hover{background:#2a372d}
.quick-grid button span{width:28px;height:28px;border-radius:var(--r-sm);display:grid;place-items:center;flex:0 0 auto;
 background:rgba(239,211,165,.14);color:var(--sand)}

.mini-bars{height:190px;padding:var(--s3) var(--s4);display:flex;align-items:flex-end;gap:var(--s2)}
.mini-bar-item{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:var(--s1);min-width:0}
.mini-bar{width:min(30px,80%);min-height:3px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--sand),var(--green3))}
.mini-bar.over{background:linear-gradient(180deg,#ffd078,#c86b52)}
.mini-bar-item b{font-size:var(--fs-s)}
.mini-bar-item small{font-size:var(--fs-xs);color:var(--muted)}
.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);padding:var(--s3)}
.summary-cell{border:1px solid var(--line);background:var(--panel2);border-radius:var(--r);padding:var(--s3);display:flex;flex-direction:column;justify-content:center}
.summary-cell strong{font-size:var(--fs-l)}
.summary-cell span{font-size:var(--fs-s);color:var(--muted)}

/* scadenze in evidenza (Home e scheda cliente) */
.scad-row{display:flex;align-items:center;gap:var(--s3)}
.scad-dot{width:10px;height:10px;border-radius:var(--r-pill);flex:0 0 auto;background:var(--warning)}
.scad-dot.danger{background:var(--danger)}
.scad-dot.soon{background:var(--info)}

/* =========================================================================
   AGENDA
   I tipi di attivita' si distinguono per colore E per etichetta scritta (CORSO, SALA,
   PT): a circa l'8% degli uomini il rosso-verde non arriva.
   ========================================================================= */
.agenda-filter-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3);flex-wrap:wrap}
.segmented{display:inline-flex;gap:var(--s1);padding:var(--s1);border:1px solid var(--line);border-radius:var(--r);background:var(--panel);max-width:100%;overflow-x:auto}
.segmented button{min-height:var(--h-piccolo);padding:var(--s1) var(--s3);border:1px solid var(--bordo);border-radius:var(--r-sm);
 background:transparent;color:var(--muted);font-size:var(--fs-s);font-weight:650;flex:0 0 auto}
.segmented button.active{background:var(--sand);color:var(--su-sabbia);border-color:#f0d9b0;font-weight:800}
.week-label{font-size:var(--fs);color:var(--sand2);font-weight:750}
.agenda-legend{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:center;padding:var(--s1) 2px var(--s3);font-size:var(--fs-s);color:var(--muted)}
.agenda-legend b{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text)}
.agenda-legend i{width:12px;height:12px;border-radius:3px;display:block}
.agenda-legend i.sala{background:var(--sala)}
.agenda-legend i.corso{background:var(--corso)}
.agenda-legend i.pt{background:var(--pt)}
.agenda-legend i.pil{background:var(--pilates)}
.agenda-legend i.pos{background:var(--posturale)}
.agenda-legend i.car{background:var(--cardio)}

.day-strip{display:flex;gap:var(--s2);overflow-x:auto;padding:0 0 var(--s3);scrollbar-width:thin}
.day-chip{flex:0 0 auto;display:grid;gap:2px;justify-items:center;min-width:92px;min-height:var(--h-comando);padding:var(--s2) var(--s3);
 border:1px solid var(--bordo);border-radius:var(--r);background:var(--panel2);color:var(--text)}
.day-chip b{font-size:var(--fs);text-transform:capitalize}
.day-chip span{font-size:var(--fs-s);color:var(--muted)}
.day-chip em{font-size:var(--fs-xs);font-style:normal;color:var(--muted)}
.day-chip.today{border-color:var(--bordo-sabbia)}
.day-chip.sel{background:rgba(239,211,165,.16);border-color:#f0d9b0}

.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(148px,1fr));gap:var(--s2);overflow:auto;min-height:0}
.day-column{border:1px solid var(--line);border-radius:var(--r);background:#0f1711;overflow:hidden;display:flex;flex-direction:column;min-width:148px;min-height:0}
/* flex:none: in colonna l'intestazione si sarebbe ristretta a 56px tagliando il nome del giorno */
.day-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:56px;padding:var(--s2) var(--s3);
 border-bottom:1px solid var(--line);background:#131d16;position:sticky;top:0;z-index:2}
.day-head.today{background:linear-gradient(180deg,rgba(239,211,165,.14),#131d16)}
.day-head strong{display:block;font-size:var(--fs)}
.day-head span{display:block;font-size:var(--fs-xs);color:var(--muted)}
.day-slots{overflow:auto;padding:var(--s1);scrollbar-width:thin;min-height:0}
.calendar-slot{position:relative;cursor:pointer;margin-bottom:var(--s1);min-height:96px;padding:var(--s2) var(--s2) var(--s2) 10px;
 border:1px solid var(--line);border-left:4px solid var(--sala-line);border-radius:var(--r-sm);
 background:linear-gradient(145deg,var(--sala-bg),#141e17)}
.calendar-slot:hover{border-color:rgba(239,211,165,.45);border-left-color:var(--sala)}
.calendar-slot.mia{box-shadow:inset 0 0 0 1px var(--sand)}
.calendar-slot time{font-size:var(--fs-s);color:var(--sala-testo);font-weight:800}
.calendar-slot h3{font-size:var(--fs);margin:var(--s1) 0 2px;overflow-wrap:anywhere}
.calendar-slot p{font-size:var(--fs-s);color:var(--muted);margin:0}
.calendar-slot.course{border-left-color:var(--corso-line);background:linear-gradient(145deg,var(--corso-bg),#1d1a14)}
.calendar-slot.course:hover{border-left-color:var(--corso)}
.calendar-slot.course time{color:var(--corso-testo)}
.calendar-slot.pt{border-left-color:var(--pt-line);background:linear-gradient(145deg,var(--pt-bg),#141a20)}
.calendar-slot.pt time{color:var(--pt-testo)}
.slot-head-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s1);flex-wrap:wrap}
.slot-kind{display:inline-flex;align-items:center;gap:var(--s1);padding:1px var(--s2);border-radius:var(--r-pill);
 font-size:var(--fs-xs);font-weight:800;letter-spacing:.02em;text-transform:uppercase;background:rgba(10,20,13,.55);color:var(--sala-testo)}
.calendar-slot.course .slot-kind{color:var(--corso-testo)}
.calendar-slot.pt .slot-kind{color:var(--pt-testo)}
.slot-kind i{width:7px;height:7px;border-radius:var(--r-pill);background:currentColor;display:block}
.slot-kind.c-Pilates i{background:var(--pilates)}
.slot-kind.c-Posturale i{background:var(--posturale)}
.slot-kind.c-CARDIOTONE i{background:var(--cardio)}
/* Fascia passata: fondo spento e bordo grigio, ma il testo resta leggibile. Con l'opacita'
   a .6 il grigio delle righe secondarie scendeva a 3:1. */
.calendar-slot.past,.calendar-slot.past.course,.calendar-slot.past.pt{background:#121915;border-left-color:#4a564c}
.calendar-slot.past time,.calendar-slot.past.course time,.calendar-slot.past.pt time,.calendar-slot.past h3{color:#d3d8d0}
.calendar-slot.past .slot-kind,.calendar-slot.past.course .slot-kind,.calendar-slot.past.pt .slot-kind{background:rgba(255,255,255,.08);color:#d3d8d0}
.calendar-slot-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--s1);margin-top:var(--s2);flex-wrap:wrap}
.capacity-chip{font-size:var(--fs-xs);font-weight:700;padding:2px var(--s2);border-radius:var(--r-pill);background:#223027;color:#d9e0d6}
.capacity-chip.full{background:var(--warning-bg);color:var(--warning-testo)}
.capacity-chip.over{background:var(--danger-bg);color:var(--danger-testo)}
.slot-past-tag{font-size:var(--fs-xs);color:var(--muted)}
.edit-day-link{width:100%;min-height:var(--h-piccolo);border:1px dashed var(--bordo);background:transparent;color:var(--muted);
 border-radius:var(--r-sm);padding:var(--s1) var(--s2);font-size:var(--fs-s)}
.edit-day-link:hover{color:var(--text)}
.tag-archivio{flex:0 0 auto;font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;letter-spacing:.06em;
 border:1px solid var(--bordo);border-radius:var(--r-pill);padding:2px var(--s2);color:var(--muted);background:rgba(255,255,255,.04)}
.nota-archivio{margin:var(--s1) 0 0;font-size:var(--fs-s);color:var(--muted);text-align:center;padding:var(--s2);
 border:1px dashed var(--bordo);border-radius:var(--r-sm)}

/* =========================================================================
   TABELLE
   Sotto i 720px diventano schede: ogni cella porta la sua etichetta (data-label, messa
   da app.js copiando l'intestazione), niente scorrimento laterale a caccia della colonna.
   ========================================================================= */
.module-toolbar{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s3);flex-wrap:wrap}
.module-toolbar input{min-width:280px}
.toolbar-meta{margin-left:auto;color:var(--muted);font-size:var(--fs-s)}
.table-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);overflow:auto}
.table-card .empty-state{padding:var(--s10) var(--s3)}
.table-scroll{overflow:auto;min-height:0}
table{width:100%;border-collapse:collapse}
th,td{padding:var(--s3) var(--s4);border-bottom:1px solid #26332a;text-align:left;font-size:var(--fs);white-space:nowrap;vertical-align:middle}
th{position:sticky;top:0;z-index:2;background:#151f17;color:var(--sand2);text-transform:uppercase;letter-spacing:.06em;font-size:var(--fs-xs);font-weight:800}
td strong{font-size:var(--fs)}
td .muted{font-size:var(--fs-s)}
tbody tr:last-child td{border-bottom:0}
.status{display:inline-flex;align-items:center;gap:var(--s1);padding:2px var(--s2);border-radius:var(--r-pill);
 font-size:var(--fs-xs);font-weight:700;background:#243127;color:#d3dbd4;white-space:nowrap}
.status.ok{background:var(--ok-bg);color:var(--ok-testo)}
.status.warn{background:var(--warning-bg);color:var(--warning-testo)}
.status.bad{background:var(--danger-bg);color:var(--danger-testo)}
.row-clickable{cursor:pointer}
.row-clickable:hover{background:rgba(239,211,165,.08)}
.col-vai{width:32px}
td.vai{color:var(--sand2);text-align:right;font-size:var(--fs-m);opacity:.6;padding-left:0;width:32px}
.row-clickable:hover td.vai{opacity:1}

/* =========================================================================
   VISTE A COLONNE, ELENCHI E SCHEDE
   ========================================================================= */
.two-col-module{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,.85fr);grid-template-rows:minmax(0,1fr);gap:var(--s4)}
.two-col-module>.panel{display:flex;flex-direction:column;min-height:0}
.two-col-module>.panel>.table-scroll,.two-col-module>.panel>.card-list,.two-col-module>.panel>.catalog-list{flex:1 1 auto;min-height:0}
.attendance-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr)}
.catalog-list,.card-list{padding:var(--s3);overflow:auto}
.catalog-item,.list-card{border:1px solid var(--line);background:var(--panel2);border-radius:var(--r);padding:var(--s3);margin-bottom:var(--s2)}
.catalog-item strong,.list-card strong{font-size:var(--fs)}
.catalog-item p,.list-card p{font-size:var(--fs-s);color:var(--muted);margin:var(--s1) 0}
.catalog-item .price{color:var(--sand);font-weight:800}

.stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s3);margin-bottom:var(--s3)}
.stats-strip>div{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:var(--s3) var(--s4);
 display:flex;justify-content:space-between;align-items:center;gap:var(--s2)}
.stats-strip span{font-size:var(--fs-s);color:var(--muted)}
.stats-strip strong{font-size:var(--fs-l)}

.alert-strip{background:var(--warning-bg);border:1px solid rgba(226,166,79,.45);border-radius:var(--r);padding:var(--s3) var(--s4);font-size:var(--fs);margin-bottom:var(--s3)}
.deadline-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-auto-rows:minmax(0,1fr);gap:var(--s3)}
.deadline-col{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);overflow:hidden;display:flex;flex-direction:column;min-height:0}
.deadline-col>header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}
.deadline-col>header strong{font-size:var(--fs)}
.deadline-col>header span{font-size:var(--fs-s);color:var(--muted)}
.deadline-items{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--s2)}
.deadline-card{border:1px solid var(--line);background:var(--panel2);border-radius:var(--r);padding:var(--s3);margin-bottom:var(--s2)}
.deadline-card strong{display:block;font-size:var(--fs)}
.deadline-card p{font-size:var(--fs-s);color:var(--muted);margin:var(--s1) 0}
.deadline-card footer{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);margin-top:var(--s2);flex-wrap:wrap}
.deadline-card.sev-danger{border-color:rgba(215,101,94,.55);background:linear-gradient(145deg,rgba(215,101,94,.1),#141a15)}
.deadline-card.sev-warn{border-color:rgba(226,166,79,.5)}
.deadline-actions{display:flex;gap:var(--s1);flex-wrap:wrap}

.person-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s1);border-bottom:1px solid #29352c}
.person-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;
 background:var(--sand);color:var(--su-sabbia);font-size:var(--fs-xs);font-weight:900}
.person-row>div:nth-child(2){min-width:0;flex:1}
.person-row strong{display:block;font-size:var(--fs)}
.person-row span{font-size:var(--fs-s);color:var(--muted)}
.person-row button{min-height:var(--h-piccolo);padding:var(--s1) var(--s3);border:1px solid var(--bordo-sabbia);border-radius:var(--r-sm);
 background:rgba(239,211,165,.08);color:var(--sand);font-size:var(--fs-s);font-weight:700}

.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s3)}
.workout-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);padding:var(--s4)}
.workout-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s2)}
.workout-card h3{font-size:var(--fs-m);margin:0}
.workout-card p{font-size:var(--fs-s);color:var(--muted);margin:var(--s1) 0}
.exercise-tags{display:flex;gap:var(--s1);flex-wrap:wrap;margin-top:var(--s2)}
.exercise-tags span{font-size:var(--fs-xs);border-radius:var(--r-pill);background:#202c22;padding:2px var(--s2)}
.card-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}

.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s3)}
.staff-card{border:1px solid var(--line);background:var(--panel);border-radius:var(--r-lg);padding:var(--s4)}
.staff-card-top{display:flex;gap:var(--s3);align-items:center}
.staff-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:var(--sand);color:var(--su-sabbia);font-weight:900}
.staff-card h3{font-size:var(--fs-m);margin:0}
.staff-card p{font-size:var(--fs-s);color:var(--muted);margin:2px 0}
.staff-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);margin:var(--s3) 0}
.staff-metrics div{border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s2)}
.staff-metrics strong{display:block;font-size:var(--fs-l)}
.staff-metrics span{font-size:var(--fs-xs);color:var(--muted)}

/* --- Sistema --- */
.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s3);align-items:start}
.setting-card{padding:var(--s4)}
.setting-card.wide-card{grid-column:1/-1}
.setting-card h2{font-size:var(--fs-m);margin:0 0 var(--s3)}
.setting-card p{font-size:var(--fs-s);color:var(--muted)}
.setting-card label{display:grid;gap:var(--s1);color:#d3dad0;font-size:var(--fs-s);font-weight:650;margin:var(--s2) 0}
.setting-card>button,.setting-card>.link-btn,.setting-card>.file-btn{margin:var(--s1) var(--s2) var(--s1) 0}
/* «Importa backup» e' un <label>: senza questa riga prendeva lo stile delle etichette dei campi */
.setting-card label.file-btn{display:inline-flex;color:var(--text);font-size:var(--fs);font-weight:700}
.setting-card small{display:block;margin-top:var(--s2);font-size:var(--fs-s);color:var(--muted)}
.license-card{border:1px solid var(--line);background:var(--panel2);border-radius:var(--r);padding:var(--s3);margin-bottom:var(--s2)}
.license-card strong{font-size:var(--fs)}
.license-card span{display:block;color:var(--muted);font-size:var(--fs-s);margin-top:var(--s1)}
.code-line{display:block;background:#07100a;border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s2) var(--s3);
 font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-s);word-break:break-all;margin:var(--s1) 0 var(--s2);user-select:all}
.log-list{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:var(--r)}
.log-row{display:grid;grid-template-columns:180px 170px minmax(0,1fr) 120px;gap:var(--s3);align-items:baseline;padding:var(--s2) var(--s3);
 border-bottom:1px solid #242e27;font-size:var(--fs-s)}
.log-row:last-child{border-bottom:0}
.log-row span,.log-row small{color:var(--muted)}
.log-row b{color:var(--sand)}
.log-row em{font-style:normal;overflow:hidden;text-overflow:ellipsis}
.log-row small{text-align:right;font-size:var(--fs-s)}

/* =========================================================================
   FINESTRE (dialog)
   ========================================================================= */
.modal{width:100%;height:100%;max-width:100vw;max-height:100dvh;border:0;padding:var(--s3);background:transparent;color:var(--text)}
.modal::backdrop,.mobile-sheet::backdrop{background:rgba(0,0,0,.74);backdrop-filter:blur(6px)}
.modal-card{width:min(600px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;margin:auto;padding:var(--s5) var(--s6);
 border:1px solid #3d4b40;border-radius:var(--r-lg);background:linear-gradient(145deg,#172219,#0e1610);color:var(--text);box-shadow:var(--ombra-lg)}
.modal-card.wide{width:min(960px,calc(100vw - 24px))}
.modal-card.xwide{width:min(1200px,calc(100vw - 24px))}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3)}
.modal-head>div:first-child{min-width:0}
.modal-head h2{font-size:var(--fs-l);margin:var(--s1) 0 0;overflow-wrap:anywhere}
.modal-head-actions{display:flex;align-items:center;gap:var(--s2);flex:0 0 auto}
#profileEditActions{display:flex;gap:var(--s2)}
.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--s2);margin-top:var(--s5);flex-wrap:wrap}
.modal-actions.split{justify-content:space-between}
.modal-actions.split>div{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}
.modal-copy{font-size:var(--fs-s)}

/* --- accesso --- */
.login-modal .modal-card{margin:auto}
.login-card{width:min(440px,calc(100vw - 24px))}
.login-brand{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}
.login-brand img{width:52px;height:52px;border-radius:var(--r);object-fit:cover}
.login-brand strong{display:block;font-size:var(--fs);letter-spacing:.06em}
.login-brand small{color:var(--muted);font-size:var(--fs-s)}

/* --- editor della giornata --- */
.day-slot-editor{max-height:55vh;overflow:auto;display:grid;gap:var(--s2)}
.editor-row{display:grid;grid-template-columns:92px 96px 104px minmax(0,1fr) 132px var(--h-comando);gap:var(--s2);align-items:end;
 padding:var(--s2);border:1px solid var(--line);border-radius:var(--r-sm);background:#121b14}
.editor-row .field{gap:2px}
.editor-row input,.editor-row select{width:100%}
.editor-remove{height:var(--h-comando);border:1px solid var(--bordo-rosso);background:var(--danger-bg);color:var(--danger-testo);border-radius:var(--r-sm)}
.editor-note{grid-column:1/-1;font-size:var(--fs-s);color:var(--warning-testo)}

/* --- dettaglio fascia e richieste --- */
.slot-detail-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin:2px 0 var(--s3);font-size:var(--fs-s)}
.slot-sub{font-size:var(--fs-m);margin:var(--s4) 0 var(--s2)}
.booking-list{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.booking-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-bottom:1px solid #26312a}
.booking-row:last-child{border-bottom:0}
.booking-copy{flex:1;min-width:0}
.booking-copy strong{display:block;font-size:var(--fs)}
.booking-copy span{display:block;font-size:var(--fs-s);color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.booking-actions{display:flex;gap:var(--s1);flex-wrap:wrap;justify-content:flex-end}

/* =========================================================================
   SCHEDA CLIENTE
   ========================================================================= */
.profile-tabs{display:flex;gap:var(--s1);overflow-x:auto;border-bottom:1px solid var(--line);margin:0 0 var(--s4);padding:2px 2px 0;-webkit-overflow-scrolling:touch}
.profile-tabs button{flex:0 0 auto;min-height:var(--h-comando);padding:var(--s2) var(--s4);border:1px solid var(--bordo);border-bottom:0;
 border-radius:var(--r-sm) var(--r-sm) 0 0;background:transparent;color:var(--muted);font-size:var(--fs);font-weight:650}
.profile-tabs button:hover{color:var(--text)}
.profile-tabs button.active{color:var(--text);background:var(--panel3);border-color:var(--bordo-sabbia);box-shadow:inset 0 -3px 0 var(--sand)}
.profile-pane{max-height:min(68vh,680px);overflow:auto}
.profile-stack{display:flex;flex-direction:column;gap:var(--s3)}
.profile-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:var(--s3);align-items:start}
.profile-summary{border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);padding:var(--s4)}
.profile-summary h3{font-size:var(--fs-l);margin:0 0 var(--s1)}
.profile-summary p{font-size:var(--fs);color:var(--muted);margin:var(--s1) 0;overflow-wrap:anywhere}
.profile-sections{display:grid;gap:var(--s3)}
.profile-section{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:var(--s3) var(--s4)}
.profile-section h3{font-size:var(--fs-m);margin:0 0 var(--s2)}
.profile-kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s1) var(--s3);font-size:var(--fs)}
.profile-kv span{color:var(--muted)}
.profile-kv b{overflow-wrap:anywhere}
.profile-kv.compact{grid-template-columns:auto minmax(0,1fr);gap:var(--s1) var(--s4)}
.profile-buttons{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.profile-buttons.pericolo{margin-top:var(--s2);padding-top:var(--s3);border-top:1px dashed var(--line)}
.inline-actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin-top:var(--s3)}
.big-text{width:100%;min-height:160px;resize:vertical;font-size:var(--fs);line-height:var(--lh)}
.sotto-titolo{margin:var(--s4) 0 var(--s2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--sand2);font-weight:850}
.nota-cliente{font-size:var(--fs-s);color:#d5dcd2;background:rgba(255,255,255,.03);border-left:3px solid var(--bordo-sabbia);
 padding:var(--s2) var(--s3);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:var(--s2) 0 0}
.edit-banner{margin:0 0 var(--s3);padding:var(--s2) var(--s3);border:1px solid rgba(239,211,165,.45);border-radius:var(--r-sm);
 background:rgba(239,211,165,.09);font-size:var(--fs-s);color:#ecdcc4;line-height:var(--lh)}
.testo-lungo{white-space:pre-wrap;font-size:var(--fs);line-height:var(--lh);border:1px solid var(--line);border-radius:var(--r-sm);
 background:var(--panel2);padding:var(--s3);min-height:48px}
.scadenze-lista{display:flex;flex-direction:column;gap:var(--s1)}
.scadenza-riga{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--s2);align-items:center;padding:var(--s2) var(--s3);
 border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);font-size:var(--fs-s)}
.scadenza-riga b{font-size:var(--fs-s)}

/* --- documenti: trascinamento e caricamento --- */
.upload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s2)}
.dropzone{display:block;border:1.5px dashed var(--bordo-sabbia);border-radius:var(--r);padding:var(--s4);text-align:center;cursor:pointer;
 background:rgba(255,255,255,.02);color:var(--text);transition:border-color .15s,background .15s;margin-bottom:var(--s3)}
.upload-grid .dropzone{margin-bottom:0}
.dropzone:hover{border-color:var(--sand)}
.dropzone.sopra{border-color:var(--green3);background:rgba(47,128,85,.12)}
.dropzone.caricando{opacity:.55;pointer-events:none}
.dropzone b{display:block;font-size:var(--fs);margin-bottom:var(--s1)}
.dropzone span{display:block;font-size:var(--fs-s);color:var(--muted)}
.dropzone small{display:block;font-size:var(--fs-xs);color:var(--muted);margin-top:var(--s1)}
.dropzone-btn{display:inline-flex!important;align-items:center;justify-content:center;width:max-content;margin:var(--s2) auto 0;
 min-height:var(--h-piccolo);padding:var(--s1) var(--s3);border:1px solid var(--bordo-sabbia);border-radius:var(--r-sm);
 background:rgba(239,211,165,.14);color:var(--sand)!important;font-size:var(--fs-s)!important;font-weight:750}
.dropzone:hover .dropzone-btn{background:rgba(239,211,165,.22)}
.file-list{display:flex;flex-direction:column;gap:var(--s2)}
.file-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);border:1px solid var(--line);border-radius:var(--r);padding:var(--s2) var(--s3);background:var(--panel2)}
.file-open{flex:1;display:flex;align-items:center;gap:var(--s3);min-height:var(--h-comando);padding:var(--s1);text-align:left;
 border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--text)}
.file-open:hover{border-color:var(--bordo)}
.file-open i{font-size:22px;font-style:normal;flex:0 0 auto}
.file-open strong{display:block;font-size:var(--fs)}
.file-open small{display:block;font-size:var(--fs-s);color:var(--muted)}
.file-actions{display:flex;gap:var(--s1);align-items:center;margin-left:auto;flex:0 0 auto}
.preview-body{max-height:70vh;overflow:auto;display:flex;align-items:center;justify-content:center;background:#07100a;border-radius:var(--r);padding:var(--s2)}
.preview-body img{max-width:100%;max-height:68vh;border-radius:var(--r-sm)}
.preview-body object{width:100%;height:68vh;border:0}

/* --- mini calendario delle presenze --- */
.mini-cal{margin-top:var(--s2)}
.mc-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;max-width:380px}
.mc-cell{width:100%;aspect-ratio:1;border-radius:3px;background:#1b2620;display:block;border:1px solid transparent}
.mc-cell.prenotato{background:rgba(226,166,79,.5)}
.mc-cell.presente{background:var(--green3)}
.mc-cell.noshow{background:rgba(215,101,94,.6)}
.mc-cell.oggi{border-color:var(--sand)}
.mc-cell.futuro{opacity:.45}
.mc-legend{display:flex;gap:var(--s4);margin-top:var(--s2);font-size:var(--fs-s);color:var(--muted);flex-wrap:wrap}
.mc-legend span{display:inline-flex;align-items:center;gap:6px}
.mc-legend .mc-cell{width:13px;height:13px;aspect-ratio:auto}

/* --- foto prima/dopo --- */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--s3)}
.photo-grid.confronto{grid-template-columns:repeat(2,1fr);max-width:440px}
.photo-grid figure{margin:0}
.photo-grid button{border:1px solid transparent;padding:0;background:transparent;width:100%;border-radius:var(--r);overflow:hidden;display:block}
.photo-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r);border:1px solid var(--line)}
.photo-grid figcaption{font-size:var(--fs-s);color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-top:var(--s1);flex-wrap:wrap}

/* =========================================================================
   SCHEDE DI ALLENAMENTO: creazione, gestione, anteprima
   ========================================================================= */
.builder-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--s4);align-items:start}
.builder-layout>.panel{padding-bottom:var(--s4)}
.builder-layout>.panel>.form-grid,.builder-layout>.panel>.modal-actions,.builder-layout>.panel>p{padding:0 var(--s4)}
.builder-rows{display:flex;flex-direction:column;gap:var(--s2);max-height:min(60vh,560px);overflow:auto;padding:var(--s3)}
.builder-row{display:grid;grid-template-columns:24px minmax(0,2.4fr) 70px 80px 92px minmax(0,1.6fr) var(--h-piccolo) var(--h-piccolo);gap:var(--s2);align-items:center}
.builder-row input{min-height:var(--h-comando);padding:var(--s1) var(--s2)}
.builder-num{font-size:var(--fs-s);color:var(--muted);text-align:center}

.schede-layout{display:grid;grid-template-columns:1fr 2fr;gap:var(--s3);height:min(68vh,660px)}
.schede-col{border:1px solid var(--line);border-radius:var(--r);background:#111a13;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.schede-col>header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s2);padding:var(--s3);border-bottom:1px solid var(--line)}
.schede-col>header h3{margin:0;font-size:var(--fs)}
.schede-col>header span{font-size:var(--fs-s)}
.schede-scroll{flex:1;min-height:0;overflow:auto;padding:var(--s2);scrollbar-width:thin}
.schede-toolbar{display:flex;gap:var(--s2);align-items:center;padding:var(--s3);border-bottom:1px solid var(--line)}
.schede-toolbar input{flex:1;min-width:0}
.schede-toolbar .primary-btn{flex:0 0 auto}
.scheda-assegnata{border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);padding:var(--s3);margin-bottom:var(--s2)}
.scheda-assegnata>header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2);margin-bottom:var(--s2)}
.scheda-assegnata>header strong{font-size:var(--fs)}
.scheda-assegnata>header small{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}
.scheda-assegnata>footer{margin-top:var(--s2);display:flex}
.fasi{display:flex;flex-direction:column;gap:var(--s1)}
.fase-row{display:flex;align-items:center;gap:var(--s1)}
.fase-apri{flex:1;min-width:0;display:flex;align-items:center;gap:var(--s2);min-height:var(--h-comando);text-align:left;
 border:1px solid var(--bordo);border-radius:var(--r-sm);background:#18231a;color:var(--text);padding:var(--s1) var(--s2)}
.fase-apri:hover{background:#22301f}
.fase-tag{flex:0 0 auto;font-size:var(--fs-xs);font-weight:850;letter-spacing:.04em;text-transform:uppercase;
 border:1px solid var(--bordo-sabbia);color:var(--sand);border-radius:var(--r-pill);padding:1px var(--s2)}
.fase-copy{min-width:0;display:flex;flex-direction:column}
.fase-copy b{font-size:var(--fs-s);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fase-copy small{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scheda-riga{display:flex;align-items:center;gap:var(--s2);border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);padding:var(--s2);margin-bottom:var(--s2)}
.scheda-riga.gia-assegnata{border-color:rgba(239,211,165,.45);background:rgba(239,211,165,.07)}
.scheda-riga-apri{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left;
 border:1px solid var(--bordo);border-radius:var(--r-sm);background:transparent;color:var(--text);padding:var(--s2)}
.scheda-riga-apri:hover{background:rgba(239,211,165,.07)}
.scheda-riga-apri strong{font-size:var(--fs)}
.scheda-riga-apri small{font-size:var(--fs-s);color:var(--muted)}
.scheda-riga-apri .exercise-tags{margin-top:2px}
.scheda-riga-azioni{display:flex;gap:var(--s1);flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}
.scheda-preview-body{max-height:min(62vh,600px);overflow:auto;scrollbar-width:thin}
.pv-rows{display:grid;gap:var(--s1);margin-top:var(--s2)}
.pv-row{display:grid;grid-template-columns:22px minmax(0,2.1fr) 70px 80px 92px minmax(0,1.5fr) var(--h-piccolo) var(--h-piccolo);
 gap:var(--s1);align-items:center;border:1px solid var(--line);border-radius:var(--r-sm);background:#121b14;padding:var(--s1) var(--s2)}
.pv-row input{min-height:var(--h-piccolo);padding:var(--s1) var(--s2);min-width:0}
.pv-num{font-size:var(--fs-xs);color:var(--muted);text-align:center}

/* =========================================================================
   AVVISI: barra in testa, notifiche, messaggio a scomparsa, vuoti
   ========================================================================= */
.app-banner{display:flex;align-items:center;gap:var(--s3);justify-content:space-between;margin:var(--s3) var(--s5) 0;padding:var(--s3) var(--s4);
 border-radius:var(--r);border:1px solid rgba(239,211,165,.45);background:rgba(239,211,165,.1);color:var(--text);font-size:var(--fs);line-height:var(--lh)}
.app-banner.danger{border-color:var(--bordo-rosso);border-left-width:4px;background:var(--danger-bg);color:#ffd2ce;font-weight:600}
.app-banner .tiny-btn{flex:0 0 auto}

.drawer{position:fixed;z-index:70;right:0;top:0;bottom:0;width:min(420px,92vw);background:#101812;border-left:1px solid var(--bordo);
 transform:translateX(105%);transition:transform .2s;box-shadow:-20px 0 60px rgba(0,0,0,.35);display:flex;flex-direction:column}
.drawer.open{transform:none}
.drawer-backdrop{position:fixed;inset:0;z-index:65;background:rgba(0,0,0,.5);display:none}
.drawer-backdrop.open{display:block}
.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);padding:var(--s4);border-bottom:1px solid var(--line)}
.drawer-head h2{margin:2px 0 0;font-size:var(--fs-l)}
.drawer-list{flex:1;min-height:0;overflow:auto;padding:var(--s3)}
.notification-item{border:1px solid var(--line);background:var(--panel2);border-radius:var(--r);padding:var(--s3);margin-bottom:var(--s2)}
.notification-item.unread{border-color:rgba(239,211,165,.5)}
.notification-item strong{display:block;font-size:var(--fs)}
.notification-item p{font-size:var(--fs-s);color:var(--muted);margin:var(--s1) 0 var(--s2)}
.notification-item button{min-height:var(--h-piccolo);padding:var(--s1) var(--s3);border:1px solid var(--bordo-sabbia);border-radius:var(--r-sm);
 background:rgba(239,211,165,.08);color:var(--sand);font-size:var(--fs-s);font-weight:700}

/* Il messaggio a scomparsa porta anche gli errori (salvataggio rifiutato, conflitto):
   deve leggersi in un colpo, quindi testo pieno e scuro su sabbia, 9,8:1. */
.toast{position:fixed;right:var(--s5);bottom:var(--s5);z-index:100;max-width:min(560px,calc(100vw - 32px));pointer-events:none;
 background:var(--sand);color:#183020;border:1px solid #f6e2bd;border-radius:var(--r);padding:var(--s3) var(--s4);
 font-size:var(--fs);font-weight:700;line-height:var(--lh);box-shadow:var(--ombra);transform:translateY(130%);opacity:0;transition:transform .2s,opacity .2s}
.toast.show{transform:none;opacity:1}
/* Errore (salvataggio rifiutato dal server, conflitto): resta di piu', si chiude toccandolo,
   bordo rosso spesso e simbolo, cosi' non si confonde con un "fatto". Testo scuro su rosa, 10:1. */
.toast.errore{pointer-events:auto;cursor:pointer;background:#ffe1dd;color:#3a0d09;border:2px solid #b3261e;border-left-width:8px;text-align:left}
.toast.errore::before{content:"⚠ ";font-weight:900}
.empty-state{padding:var(--s6) var(--s3);text-align:center;color:var(--muted);font-size:var(--fs)}

/* =========================================================================
   MENU DA TELEFONO: barra in basso e foglio «Altro»
   ========================================================================= */
.mobile-sheet{border:0;background:transparent;padding:0;width:100%;height:100%;max-width:100vw;max-height:100dvh;margin:0;color:var(--text)}
.mobile-sheet-card{position:absolute;left:0;right:0;bottom:0;max-height:90dvh;overflow:auto;
 padding:var(--s4) var(--s4) calc(var(--s5) + env(safe-area-inset-bottom));
 background:#101812;border:1px solid var(--bordo);border-radius:var(--r-lg) var(--r-lg) 0 0;color:var(--text)}
.mobile-sheet-card .modal-head{padding:0 0 var(--s3)}
#mobileAccountLabel{margin:var(--s1) 0 0;font-size:var(--fs-s)}
.mobile-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2)}
.mobile-module-grid button{display:flex;align-items:center;gap:var(--s3);min-height:56px;padding:var(--s3);text-align:left;
 border:1px solid var(--bordo);border-radius:var(--r);background:var(--panel2);color:var(--text);font-size:var(--fs);font-weight:650}
.mobile-module-grid button::before{content:attr(data-icona);flex:0 0 28px;text-align:center;font-size:20px;color:var(--sand)}
.mobile-module-grid button.active{border-color:var(--bordo-sabbia);background:rgba(239,211,165,.12)}
.mobile-account-actions{display:flex;gap:var(--s2);margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line)}
.mobile-account-actions button{flex:1}
.mobile-mode-button{width:100%;margin-top:var(--s2);color:var(--muted)!important;text-decoration:underline}

/* =========================================================================
   SCHERMI MEDI (portatili piccoli, tablet in orizzontale)
   ========================================================================= */
@media (max-width:1180px){
 :root{--sidebar:224px}
 .view{padding:var(--s5) var(--s5) var(--s6)}
 .dashboard-main-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  grid-template-areas:"agenda alerts" "agenda quick" "scadenze scadenze" "capacity summary"}
 .calendar-grid{grid-template-columns:repeat(7,minmax(168px,1fr))}
 .two-col-module{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
}
@media (max-width:1000px) and (min-width:821px){
 .two-col-module{grid-template-columns:1fr;grid-template-rows:none}
 .view>.two-col-module{flex:none}
 .two-col-module>.panel{max-height:520px}
 .schede-layout{grid-template-columns:1fr;height:auto}
 .schede-col{max-height:46vh}
}

/* =========================================================================
   TELEFONO E TABLET IN VERTICALE (fino a 820px; a 200% di zoom ci finisce anche un
   monitor da 1440): una colonna, la pagina scorre tutta, barra di navigazione in basso.
   ========================================================================= */
@media (max-width:820px){
 body{overflow:auto;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
 html{scroll-padding-top:80px}
 .sidebar{display:none}
 .workspace{margin-left:0}
 .mobile-only,.top-icon.mobile-only{display:grid}
 .topbar{height:calc(64px + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--s3) 0;gap:var(--s2)}
 .search-box{min-width:0;max-width:none}
 .top-actions{gap:var(--s1)}
 .top-actions .operator-badge,.top-actions .primary-btn{display:none}
 .view-host{height:auto;overflow:visible}
 .view{height:auto;overflow:visible;padding:var(--s4) var(--s3) var(--s6);min-height:calc(100dvh - 150px)}
 .view.active-view{display:block}
 .view>.table-card,.view>.two-col-module,.view>.deadline-board,.view>.calendar-grid{min-height:0}
 .app-banner{margin:var(--s2) var(--s3) 0}

 .page-heading{flex-direction:column;align-items:stretch;gap:var(--s3);margin-bottom:var(--s4)}
 .page-heading h1{font-size:var(--fs-l)}
 .heading-actions{width:100%}
 .heading-actions>*{flex:1 1 auto}

 .kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .kpi{min-height:80px;padding:var(--s3);grid-template-columns:minmax(0,1fr)}
 .kpi>i{display:none}
 .kpi>small{grid-column:1}
 .kpi strong{font-size:var(--fs-l)}
 .dashboard-main-grid{display:flex;flex-direction:column;gap:var(--s3)}
 .dense-list{max-height:none}

 .calendar-grid{height:auto;grid-template-columns:repeat(7,minmax(84vw,84vw));scroll-snap-type:x mandatory}
 .day-column{scroll-snap-align:start;max-height:calc(100dvh - 190px)}
 .day-strip{position:sticky;top:calc(64px + env(safe-area-inset-top));z-index:5;padding:var(--s2) 0;background:linear-gradient(180deg,var(--bg2) 75%,transparent)}
 .calendar-slot{min-height:108px;padding:var(--s3) var(--s3) var(--s3) var(--s4)}

 .two-col-module{grid-template-columns:1fr;grid-template-rows:none}
 .two-col-module>.panel{max-height:none}
 .two-col-module .card-list,.two-col-module .catalog-list{max-height:none}
 .deadline-board{grid-template-columns:1fr;grid-auto-rows:auto}
 .deadline-items{max-height:none}
 .settings-grid,.card-grid,.staff-grid{grid-template-columns:1fr}
 .module-toolbar input{flex:1 1 200px;min-width:0}
 .module-toolbar select{flex:1 1 140px}
 .toolbar-meta{width:100%;margin-left:0}
 .table-card{max-height:none}
 .log-row{grid-template-columns:1fr;gap:2px}
 .log-row small{text-align:left}

 /* le finestre diventano pagine intere: la × e i pulsanti restano sempre a portata */
 .modal{padding:0}
 .modal-card,.modal-card.wide,.modal-card.xwide{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;
  border:0;border-radius:0;display:flex;flex-direction:column;overflow:hidden}
 .modal-head{position:sticky;top:0;z-index:3;margin:0;padding:max(var(--s3),env(safe-area-inset-top)) var(--s4) var(--s3);
  background:linear-gradient(180deg,#172219,#152017);border-bottom:1px solid var(--line);align-items:center}
 .modal-head h2{font-size:var(--fs-m)}
 .modal-card>*:not(.modal-head):not(.modal-actions){padding-left:var(--s4);padding-right:var(--s4);overflow:auto}
 .modal-card>.form-grid,.modal-card>#profileContent,.modal-card>#slotDialogBody,.modal-card>#requestsBody,.modal-card>.preview-body,
 .modal-card>.day-slot-editor,.modal-card>.scheda-preview-body,.modal-card>.schede-layout{flex:1;min-height:0;padding-top:var(--s3);padding-bottom:var(--s3)}
 .modal-actions{position:sticky;bottom:0;z-index:3;margin:0;padding:var(--s3) var(--s4) max(var(--s3),env(safe-area-inset-bottom));
  background:linear-gradient(0deg,#141e16,#152017);border-top:1px solid var(--line)}
 .modal-actions>button,.modal-actions>div>button,.modal-actions>a{flex:1 1 auto}
 .form-grid{grid-template-columns:1fr}
 .field.full{grid-column:auto}
 .login-modal{display:flex;align-items:center}
 .login-modal:not([open]){display:none}
 .login-modal .login-card{height:auto;max-height:100dvh;margin:auto;width:calc(100vw - 24px);border-radius:var(--r-lg);border:1px solid #3d4b40;padding:var(--s5) var(--s4)}
 .login-card .modal-actions{position:static;padding:var(--s4) 0 0;background:none;border:0}

 .profile-grid{grid-template-columns:1fr}
 .profile-pane{max-height:none;overflow:visible}
 .profile-tabs{position:sticky;top:0;background:var(--panel);z-index:2}
 .azione-scheda b{display:none}           /* sul telefono il simbolo basta, lo spazio no */
 .azione-scheda{padding:0 var(--s3)}
 .azione-scheda i{font-size:22px}
 .modal-head-actions .icon-btn{width:var(--h-tocco);height:var(--h-tocco)}
 .icon-btn{font-size:28px}
 .scadenza-riga{grid-template-columns:1fr auto}
 .scadenza-riga .status{grid-column:1/-1;justify-self:start}
 .file-actions{width:100%;margin-left:0;justify-content:flex-end}
 .booking-row{flex-wrap:wrap}
 .booking-actions{width:100%;justify-content:flex-start}
 .booking-copy span{white-space:normal}

 .editor-row{grid-template-columns:1fr 1fr}
 .editor-row .field:nth-child(3),.editor-row .field:nth-child(4),.editor-row .field:nth-child(5){grid-column:1/-1}
 .editor-remove{grid-column:1/-1;width:100%}

 .builder-layout{grid-template-columns:1fr}
 .builder-row{grid-template-columns:24px 1fr 1fr;grid-template-areas:"n name name" ". sets reps" ". rest rest" ". note note" ". up del"}
 .builder-row .builder-num{grid-area:n}
 .builder-row .bi-name{grid-area:name}
 .builder-row .bi-sets{grid-area:sets}
 .builder-row .bi-reps{grid-area:reps}
 .builder-row .bi-rest{grid-area:rest}
 .builder-row .bi-note{grid-area:note}
 .builder-row [data-bup]{grid-area:up}
 .builder-row [data-bdel]{grid-area:del}
 .schede-layout{grid-template-columns:1fr;height:auto}
 .schede-col{max-height:none}
 .schede-toolbar{flex-wrap:wrap}
 .schede-toolbar .primary-btn{width:100%}
 .scheda-riga{flex-direction:column;align-items:stretch}
 .scheda-riga-azioni{justify-content:stretch}
 .scheda-riga-azioni>*{flex:1}
 .pv-row{grid-template-columns:22px 1fr 1fr;row-gap:var(--s1)}
 .pv-row .pv-name{grid-column:2/-1}
 .pv-row .pv-note{grid-column:1/-1}
 .mc-grid{max-width:100%}
 .photo-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}

 .toast{left:var(--s3);right:var(--s3);max-width:none;bottom:calc(88px + env(safe-area-inset-bottom));text-align:center}

 .mobile-nav{position:fixed;display:grid;z-index:50;left:0;right:0;bottom:0;align-items:center;gap:var(--s1);
  grid-template-columns:1fr 1fr 64px 1fr 1fr;height:calc(72px + env(safe-area-inset-bottom));
  padding:var(--s1) var(--s2) calc(var(--s1) + env(safe-area-inset-bottom));
  background:rgba(11,18,13,.97);backdrop-filter:blur(16px);border-top:1px solid var(--bordo)}
 .mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;
  border:1px solid transparent;border-radius:var(--r);background:transparent;color:#b3bcb1}
 .mobile-nav-item.active{color:var(--sand);background:rgba(239,211,165,.1);border-color:var(--bordo-sabbia)}
 .mobile-nav-item span{font-size:22px;line-height:1}
 .mobile-nav-item small{font-size:var(--fs-xs);font-weight:650}
 .mobile-fab{width:54px;height:54px;margin:auto;border-radius:50%;border:2px solid #f6e2bd;background:var(--sand);color:var(--su-sabbia);font-size:28px;line-height:1}
}

/* Tabelle a schede: telefono, e monitor col testo ingrandito al 200%. */
@media (max-width:720px){
 .table-card,.table-scroll{border:0;background:transparent;overflow:visible}
 .table-card table,.table-scroll table,.table-card tbody,.table-scroll tbody{display:block;width:100%}
 .table-card thead,.table-scroll thead{display:none}
 .table-card tr,.table-scroll tr{display:block;border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);margin-bottom:var(--s2);padding:var(--s2) var(--s3)}
 .table-card td,.table-scroll td{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);border:0;padding:var(--s1) 0;
  white-space:normal;text-align:right;overflow-wrap:anywhere}
 .table-card td[data-label]::before,.table-scroll td[data-label]::before{content:attr(data-label);color:var(--muted);font-size:var(--fs-s);text-align:left;flex:0 0 auto;max-width:45%}
 .table-card td:first-child,.table-scroll td:first-child{display:block;text-align:left;font-size:var(--fs-m);
  border-bottom:1px solid var(--line);padding-bottom:var(--s2);margin-bottom:var(--s1)}
 .table-card td:first-child::before,.table-scroll td:first-child::before{display:none}
 .table-card td[colspan],.table-scroll td[colspan]{display:block;border:0;margin:0;padding:0}
 .table-card td:empty,.table-scroll td:empty,.col-vai,td.vai{display:none}
 .table-card tr:has(td[colspan]),.table-scroll tr:has(td[colspan]){border:0;background:transparent;padding:0}
}

@media (max-width:520px){
 .kpi strong{font-size:var(--fs-m)}
 .day-chip{min-width:84px}
 .mobile-module-grid{grid-template-columns:1fr 1fr}
 .photo-grid.confronto{grid-template-columns:repeat(2,1fr)}
 .builder-row{grid-template-columns:20px 1fr 1fr}
 .mc-grid{gap:3px}
}
@media (max-width:360px){
 .mobile-nav-item small{font-size:var(--fs-xs)}
 .mobile-module-grid{grid-template-columns:1fr}
}

/* =====================================================================================
   ASPETTO 2026 (richiesta dell'utente, 16/10): barra in alto con saluto, orologio e
   campanella; Home a tre colonne; superfici piu' morbide e moderne. Sta in fondo apposta:
   ritocca gli stili sopra senza riscriverli, e usa solo le variabili di tokens.css.
   ===================================================================================== */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* --- barra in alto: saluto | orologio | campanella --- */
.topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;
 background:linear-gradient(180deg,rgba(13,23,16,.94),rgba(9,16,11,.88));border-bottom:1px solid rgba(239,211,165,.10)}
.topbar>#mobileMenuButton{grid-column:1}
.top-saluto{grid-column:2;min-width:0;display:flex;flex-direction:column;gap:2px}
.top-data{margin:0;font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sand2)}
.top-ciao{margin:0;font-size:var(--fs-m);line-height:var(--lh-stretta);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-ciao b{font-weight:800;color:var(--text)}

.topbar>.top-actions{grid-column:5;justify-self:end;margin-left:0}
.top-campanella{border-radius:var(--r-pill);background:linear-gradient(180deg,var(--panel2),var(--panel));border-color:rgba(239,211,165,.28);color:var(--sand)}
.top-campanella:hover{background:var(--panel3);color:var(--text)}
.top-campanella svg{display:block}
.top-campanella .top-count{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);
 font-weight:800;display:grid;place-items:center;box-shadow:0 0 0 2px var(--bg)}

/* --- superfici piu' morbide --- */
.panel{border-radius:var(--r-lg);border-color:rgba(239,211,165,.10);
 background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,0)) ,var(--panel);box-shadow:0 10px 30px rgba(0,0,0,.18)}
.panel-head h2{letter-spacing:-.01em}
.primary-btn,.ghost-btn,.tiny-btn,.text-btn{transition:background-color .15s,border-color .15s,transform .1s}
.primary-btn:active,.ghost-btn:active,.tiny-btn:active{transform:translateY(1px)}

/* --- Home: 5 card, poi prossime fasce | da gestire | scadenze --- */
.home-v6{gap:14px}
.home-kpi{gap:12px}
.hk{border-radius:var(--r-lg);padding:16px 18px;border:1px solid rgba(239,211,165,.10);
 background:linear-gradient(145deg,rgba(47,128,85,.16),rgba(255,255,255,.02) 60%),var(--panel);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.hk strong{font-size:2rem}
.hk.attenzione{background:linear-gradient(145deg,rgba(226,166,79,.16),rgba(255,255,255,.02) 60%),var(--panel)}
.hk.grave{background:linear-gradient(145deg,rgba(215,101,94,.18),rgba(255,255,255,.02) 60%),var(--panel)}
.hk:hover{border-color:rgba(239,211,165,.28)}
.home-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.home-gestire{display:flex;flex-direction:column;gap:12px;min-height:0}
.home-col-titolo{margin:2px 4px 0;font-size:var(--fs-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--sand2)}

@media (max-width:820px){
 .topbar{grid-template-columns:auto minmax(0,1fr) auto auto;gap:var(--s2)}
 .top-saluto{grid-column:2}
 .top-data,.top-ciao{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .topbar>.top-actions{grid-column:4}
 .top-ciao{font-size:var(--fs)}
}

/* --- barra laterale: voci piatte, evidenziazione morbida invece dei riquadri bordati --- */
.side-nav{gap:2px}
.nav-item{border-color:transparent;border-radius:var(--r);padding:var(--s2) var(--s3);font-weight:600;transition:background-color .15s,color .15s}
.nav-item span{opacity:.8}
.nav-item:hover{background:rgba(23,37,26,.10)}
.nav-item.active{background:linear-gradient(90deg,#183423,#2a4d37);border-color:transparent;box-shadow:0 10px 22px rgba(24,52,35,.22),inset 3px 0 0 var(--sand)}
.nav-item.active span{opacity:1}
.nav-sep{opacity:.5}

/* --- Home: categorie delle scadenze come pastiglie leggere --- */
.home-categorie .hc{border:1px solid transparent;border-radius:var(--r);background:rgba(255,255,255,.035);box-shadow:inset 0 3px 0 var(--kc,transparent)}
.home-categorie .hc:hover{background:rgba(255,255,255,.07)}
.home-categorie .hc[aria-pressed="true"]{border-color:var(--sand);background:rgba(239,211,165,.12)}
.home-pannello .panel-head .ghost-btn,.home-pannello .panel-head .text-btn{border-radius:var(--r-pill)}

/* --- utente nella barra laterale: avatar, nome, stato, uscita --- */
.utente-box{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) 0 0}
.utente-btn{flex:1;min-width:0;display:flex;align-items:center;gap:var(--s3);padding:6px 8px;border:1px solid transparent;border-radius:var(--r);
 background:transparent;color:var(--su-sabbia);text-align:left;cursor:pointer}
.utente-btn:hover{background:rgba(23,37,26,.10)}
.avatar{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:var(--fs-s);letter-spacing:.02em;
 color:var(--sand);background:linear-gradient(145deg,#1f4a31,#14301f);box-shadow:0 4px 12px rgba(20,48,31,.3)}
.avatar.grande{width:64px;height:64px;font-size:1.375rem}
.utente-testo{min-width:0;display:flex;flex-direction:column}
.utente-testo b{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.utente-testo small{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--fs-xs);opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.utente-esci{flex:0 0 auto;width:var(--h-tocco);height:var(--h-tocco);display:grid;place-items:center;border-radius:var(--r);
 border:1px solid var(--bordo-scuro);background:transparent;color:var(--su-sabbia);cursor:pointer}
.utente-esci:hover{background:rgba(160,50,44,.14);color:#7a211b;border-color:#7a211b}
.utente-card{max-width:440px}
.utente-testa{display:flex;align-items:center;gap:var(--s3);margin:var(--s2) 0 var(--s4)}
.utente-dati{display:grid;gap:2px;margin:0;border-radius:var(--r);overflow:hidden}
.utente-dati>div{display:grid;grid-template-columns:110px 1fr;gap:var(--s3);padding:10px 12px;background:rgba(255,255,255,.035)}
.utente-dati dt{color:var(--muted);font-size:var(--fs-s)}
.utente-dati dd{margin:0;font-weight:650;word-break:break-word}
.utente-azioni{justify-content:space-between}
.esci-card{max-width:400px}

/* contatore delle notifiche leggibile (AA) e mai sotto i 13px */
.top-campanella .top-count{font-size:var(--fs-xs);background:var(--danger-testo);color:#3b0d0a}
@media (max-width:820px){ .top-data{font-size:var(--fs-xs)} }

/* --- agenda: «+ Prenota» nella barra in alto (solo in agenda), «Richieste» riconoscibile --- */
.top-prenota{display:none}
body[data-vista="agenda"] .top-prenota{display:inline-flex}
.ag-titolo{font-size:var(--fs-xl)}
.ag-richieste-btn{display:inline-flex;align-items:center;gap:8px;min-height:var(--h-comando);padding:0 16px;border-radius:var(--r-pill);
 border:1px solid var(--warning);background:var(--warning-bg);color:var(--warning-testo);font-weight:750;cursor:pointer}
.ag-richieste-btn:hover{background:rgba(226,166,79,.24)}
.ag-richieste-btn #agendaRequestCount:not(:empty){min-width:22px;height:22px;padding:0 6px;border-radius:var(--r-pill);background:var(--warning);color:#2a1a04;
 font-size:var(--fs-xs);display:inline-grid;place-items:center}
.ag-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ag-nav .ag-titolo{margin:0 6px 0 0}
.ag-nav .ag-periodo{margin:0;font-size:var(--fs-l);color:var(--text)}
.ag-nav .ghost-btn{border-radius:var(--r-pill);min-width:44px}

/* --- barra in alto: orario e data insieme, al centro, senza pillola --- */
.top-centro{grid-column:3;display:flex;flex-direction:column;align-items:center;line-height:1.05}
.top-orologio{font-size:1.75rem;font-weight:800;letter-spacing:.01em;font-variant-numeric:tabular-nums;color:var(--text)}
.top-centro .top-data{margin-top:2px;color:var(--sand2);white-space:nowrap}
@media (max-width:820px){ .top-orologio{font-size:1.125rem} }

/* --- agenda: intestazione unica con navigazione, filtri e azioni; niente scorrimento --- */
#agendaView.agenda-v6.active-view{overflow:hidden;height:calc(100dvh - var(--topbar))}
.ag-intestazione{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap;margin-bottom:10px}
.ag-intestazione .ag-barra{margin:0;flex:1 1 auto;justify-content:center}
.ag-nav{display:flex;align-items:center;gap:14px}
.ag-titolo{margin:0;font-size:var(--fs-l);line-height:1.1;white-space:nowrap}
.ag-titolo .ag-periodo{font-size:var(--fs-l);font-weight:800;color:var(--text);margin:0}
.ag-sett{display:block;font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sand2);margin-top:2px}
.ag-frecce{display:inline-flex;align-items:center;padding:3px;gap:2px;border-radius:var(--r-pill);background:rgba(255,255,255,.05);border:1px solid rgba(239,211,165,.14)}
.ag-frecce .ag-btn{border:0;background:transparent;min-height:36px}
.ag-frecce .ag-btn:hover{background:rgba(255,255,255,.08)}
.ag-frecce .ag-oggi{padding:0 16px;font-weight:800;color:var(--sand)}
/* pulsanti tutti uguali: stessa altezza, stesso raggio, stesso fondo */
.ag-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border-radius:var(--r-pill);
 border:1px solid rgba(239,211,165,.18);background:rgba(255,255,255,.04);color:var(--text);font-size:var(--fs-s);font-weight:700;cursor:pointer;
 transition:background-color .15s,border-color .15s}
.ag-btn:hover{background:rgba(255,255,255,.09);border-color:rgba(239,211,165,.32)}
.ag-btn.ag-icona{width:40px;padding:0}
.ag-frecce .ag-btn.ag-icona{width:36px}
.ag-azioni{display:flex;align-items:center;gap:8px;margin-left:auto}
.ag-azioni .ag-piu{background:var(--green3);border-color:var(--green3);color:#fff}
.ag-azioni .ag-piu:hover{background:var(--green2)}
.ag-intestazione .ag-richieste-btn{min-height:40px;font-size:var(--fs-s)}
/* menu a tendina dell'istruttore: pillola con freccia disegnata */
.ag-istr select{appearance:none;-webkit-appearance:none;height:40px;min-width:190px;padding:0 40px 0 16px;border-radius:var(--r-pill);
 border:1px solid rgba(239,211,165,.18);background:rgba(255,255,255,.04) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23efd3a5' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;
 color:var(--text);font-size:var(--fs-s);font-weight:700;cursor:pointer}
.ag-istr select:hover{border-color:rgba(239,211,165,.32)}
.ag-istr select option{background:var(--panel);color:var(--text)}
.ag-istr>span{font-weight:700}
/* modale «+»: due scelte grandi */
.aggiungi-card{max-width:520px}
.aggiungi-scelte{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.aggiungi-scelta{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:18px;border-radius:var(--r-lg);text-align:left;cursor:pointer;
 border:1px solid rgba(239,211,165,.16);background:rgba(255,255,255,.04);color:var(--text);min-height:150px}
.aggiungi-scelta:hover{border-color:var(--sand);background:rgba(239,211,165,.08)}
.aggiungi-scelta b{font-size:var(--fs-m)}
.aggiungi-scelta small{color:var(--muted);font-size:var(--fs-s);line-height:1.35}
.aggiungi-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:22px}
.aggiungi-ico.ev{background:var(--info-bg);color:var(--info-testo)}
.aggiungi-ico.at{background:var(--sala-bg);color:var(--sala-testo)}
.ag-intestazione .ag-tipo{min-height:40px;padding:0 14px;border-radius:var(--r-pill);border:1px solid rgba(239,211,165,.18);background:rgba(255,255,255,.04);font-size:var(--fs-s)}
.ag-intestazione .ag-tipo[aria-pressed="true"]{background:rgba(255,255,255,.09);border-color:rgba(239,211,165,.45)}
/* col dito ogni comando dell'agenda arriva a 44px (WCAG 2.5.5) */
@media (pointer:coarse),(max-width:820px){
 .ag-btn,.ag-frecce .ag-btn,.ag-intestazione .ag-tipo,.ag-istr select{min-height:44px}
 .ag-btn.ag-icona,.ag-frecce .ag-btn.ag-icona{width:44px}
}
/* «Richieste» nella barra in alto, come «+ Prenota»: solo nell'agenda */
.top-richieste{display:none;min-height:var(--h-tocco)}
body[data-vista="agenda"] .top-richieste{display:inline-flex}
/* intestazione dell'agenda: una riga sola */
@media (min-width:1101px){
 .ag-intestazione{flex-wrap:nowrap}
 .ag-intestazione .ag-barra{flex-wrap:nowrap;justify-content:flex-start;min-width:0}
 .ag-tipi{flex-wrap:nowrap}
}
@media (min-width:1101px){
 .ag-intestazione .ag-nav{flex-wrap:nowrap;flex:0 0 auto}
 .ag-intestazione .ag-tipi{flex-wrap:nowrap}
 .ag-intestazione .ag-tipo{padding:0 11px;gap:6px;white-space:nowrap}
 .ag-intestazione .ag-istr>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .ag-intestazione .ag-istr select{min-width:170px}
 .ag-intestazione .ag-azioni{flex:0 0 auto}
}
@media (min-width:1101px){
 .ag-intestazione .ag-barra{overflow:hidden;flex:1 1 auto}
 .ag-intestazione .ag-tipi{min-width:0;flex:0 1 auto;overflow:hidden}
 .ag-intestazione .ag-tipo{flex:0 1 auto;min-width:44px;overflow:hidden;text-overflow:ellipsis}
 .ag-intestazione .ag-istr{flex:0 0 auto}
}
@media (min-width:1101px) and (max-width:1400px){
 .ag-intestazione .ag-tipo b{display:none}
 .ag-intestazione .ag-titolo,.ag-intestazione .ag-titolo .ag-periodo{font-size:var(--fs-m)}
 .ag-intestazione .ag-istr select{min-width:150px}
}
.ag-tipo-corto{display:none}
@media (min-width:1101px) and (max-width:1400px){
 .ag-intestazione .ag-tipo-lungo{display:none}
 .ag-intestazione .ag-tipo-corto{display:inline}
 .ag-intestazione .ag-tipo{overflow:visible}
}
@media (min-width:1101px) and (max-width:1400px){
 .ag-intestazione .ag-tipo{flex:0 0 auto;padding:0 10px}
 .ag-intestazione .ag-tipi{overflow:visible;flex:0 0 auto}
}
@media (min-width:1101px) and (max-width:1400px){
 .ag-intestazione .ag-istr{flex:0 1 190px;min-width:120px}
 .ag-intestazione .ag-istr select{min-width:0;width:100%}
}
@media (min-width:1101px) and (max-width:1400px){
 .ag-intestazione{gap:10px}
 .ag-intestazione .ag-barra{gap:6px}
 .ag-intestazione .ag-tipi{gap:4px}
 .ag-intestazione .ag-tipo{padding:0 9px;gap:5px}
 .ag-intestazione .ag-frecce .ag-oggi{padding:0 10px}
 .ag-intestazione .ag-istr{flex:0 0 150px}
 .ag-intestazione .ag-istr select{padding:0 30px 0 12px;background-position:right 10px center}
 .ag-intestazione .ag-nav{gap:10px}
}

/* --- voce attiva del menu: niente ombra, solo la barretta --- */
.nav-item.active{box-shadow:inset 3px 0 0 var(--sand)}

/* --- avatar: lo stato del collegamento e' l'anello --- */
.avatar.online{box-shadow:0 0 0 2px var(--sidebar-bg,#e2c9a0),0 0 0 4px #2f9a5c}
.avatar.offline{box-shadow:0 0 0 2px var(--sidebar-bg,#e2c9a0),0 0 0 4px var(--danger)}
.avatar.piccolo{width:34px;height:34px;font-size:var(--fs-xs)}

/* --- ricerca live del cliente --- */
.cerca-cliente{position:relative}
.cc-campo{display:flex;align-items:center;gap:8px;padding:0 12px;min-height:var(--h-tocco);border:1px solid var(--bordo);border-radius:var(--r);background:var(--campo);color:var(--muted)}
.cc-campo:focus-within{outline:3px solid var(--focus);outline-offset:1px}
.cc-input{flex:1;min-width:0;border:0!important;outline:0!important;background:transparent!important;padding:10px 0!important;font-size:var(--fs);color:var(--text)}
.cc-risultati{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;max-height:330px;overflow:auto;padding:6px;border-radius:var(--r-lg);
 background:var(--panel2);border:1px solid rgba(239,211,165,.2);box-shadow:0 18px 40px rgba(0,0,0,.45)}
.cc-voce{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:var(--r);background:transparent;color:var(--text);text-align:left;cursor:pointer}
.cc-voce:hover,.cc-voce.attiva{background:rgba(239,211,165,.10)}
.cc-testo{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-testo b{font-weight:750}
.cc-testo small{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-stato{font-size:var(--fs-xs);font-weight:700;color:var(--muted);white-space:nowrap}
.cc-stato.ok{color:var(--ok-testo)}
.cc-vuoto{margin:8px 10px;color:var(--muted)}

/* --- tendina personalizzata --- */
.tendina-campo{position:relative}
.tendina-nativa{position:absolute!important;opacity:0;pointer-events:none;width:1px;height:1px}
.tendina-btn{width:100%;min-height:var(--h-tocco);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;
 border:1px solid var(--bordo);border-radius:var(--r);background:var(--campo);color:var(--text);font-size:var(--fs);text-align:left;cursor:pointer}
.tendina-btn svg{color:var(--sand);flex:0 0 auto}
.tendina-btn[aria-expanded="true"]{border-color:var(--sand)}
.tendina-testo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tendina-pannello{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;padding:6px;border-radius:var(--r-lg);background:var(--panel2);
 border:1px solid rgba(239,211,165,.2);box-shadow:0 18px 40px rgba(0,0,0,.45)}
.tendina-filtro{width:100%;margin-bottom:6px}
.tendina-lista{max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.tendina-voce{border:0;border-radius:var(--r);padding:9px 10px;background:transparent;color:var(--text);text-align:left;cursor:pointer;font-size:var(--fs-s)}
.tendina-voce:hover{background:rgba(239,211,165,.10)}
.tendina-voce.scelta{background:rgba(47,128,85,.25);font-weight:750}
#formEyebrow:empty{display:none}

/* --- conferma della casa --- */
.conferma-card{max-width:440px}
.conferma-testa{display:flex;align-items:center;gap:12px}
.conferma-testa h2{margin:0;font-size:var(--fs-m);line-height:1.3}
.conferma-ico{flex:0 0 auto;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:20px}
.conferma-ico.attenzione{background:var(--warning-bg);color:var(--warning-testo)}
.conferma-ico.pericolo{background:var(--danger-bg);color:var(--danger-testo)}
.conferma-testo{margin:12px 0 4px;color:var(--muted);line-height:1.5}
#exportPdfButton svg,#exportDayButton svg{display:block}
/* icone del menu: disegni a linea, stesso tratto per tutte */
.nav-item .nav-ico{display:grid;place-items:center;opacity:.85}
.nav-item .nav-ico svg{display:block}
.nav-item.active .nav-ico{opacity:1}
.tendina-lista{max-height:220px}
/* «Richieste» e «+ Prenota» sempre nella barra in alto, su ogni pagina */
.top-prenota,.top-richieste{display:inline-flex}

/* --- clienti: una barra sola con «+ Cliente» in fondo; tendina della casa; tessera --- */
#clientsView .module-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#clientsView .module-toolbar #clientSearch{flex:1 1 320px;min-width:200px}
#clientsView .module-toolbar .toolbar-azione{margin-left:auto}
.tendina-sola{flex:0 0 200px}
.tendina-sola .tendina-btn{min-height:var(--h-tocco);border-radius:var(--r-pill);border-color:rgba(239,211,165,.22);background:rgba(255,255,255,.04);font-weight:700;font-size:var(--fs-s)}
.tendina-sola .tendina-pannello{min-width:200px}
.tessera-num{font-variant-numeric:tabular-nums;font-weight:700}
#clientsView .module-toolbar #clientSearch{border-radius:var(--r-pill);min-height:var(--h-tocco);padding:0 18px;border-color:rgba(239,211,165,.22);background:rgba(255,255,255,.04)}
/* il <select> vero resta solo per il valore: nessuna dimensione, nessun bersaglio */
.tendina-campo select.tendina-nativa{position:absolute!important;width:0!important;height:0!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important}

/* --- clienti: etichette di stato tutte uguali e maiuscole, badge dei controlli --- */
#clientsTable .status{display:inline-flex;align-items:center;justify-content:center;min-width:112px;height:28px;padding:0 10px;
 text-transform:uppercase;letter-spacing:.06em;font-size:var(--fs-xs);font-weight:800;font-variant-numeric:tabular-nums;border-radius:var(--r-pill);box-sizing:border-box}
#clientsTable .muted{text-transform:none}
.cli-stato{white-space:nowrap}
.cli-badge{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:8px;padding:0 6px;border-radius:var(--r-pill);
 font-size:var(--fs-xs);font-weight:900;vertical-align:middle;cursor:help}
.cli-badge.grave{background:var(--danger-testo);color:#3b0d0a}
.cli-badge.avviso{background:var(--warning-testo);color:#3a2604}
#clientsView .tendina-sola{flex:0 0 210px}
#clientsTable .status{min-width:100px}
#clientsTable td:nth-child(2) .muted{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
#clientsView #clientSearchClear{border-radius:var(--r-pill);min-height:var(--h-tocco);padding:0 16px}
/* badge dei controlli: etichette brevi leggibili subito, sotto lo stato */
.cli-stato{white-space:normal}
.cli-avvisi{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;cursor:help}
.cli-avvisi .cli-badge{display:inline-flex;align-items:center;height:22px;min-width:0;margin:0;padding:0 8px;border-radius:var(--r-pill);
 font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.cli-avvisi .cli-badge.altro{background:rgba(255,255,255,.12);color:var(--text)}
/* clienti: colonne a larghezza fissa, cosi' la tabella sta nella pagina e lo stato ha spazio */
#clientsView .table-card table{table-layout:fixed;width:100%}
#clientsView th:nth-child(1){width:17%}
#clientsView th:nth-child(2){width:20%}
#clientsView th:nth-child(3),#clientsView th:nth-child(4){width:11%}
#clientsView th:nth-child(5){width:9%}
#clientsView th:nth-child(6){width:8%}
#clientsView th:nth-child(7){width:21%}
#clientsView th:nth-child(8){width:3%}
#clientsTable td{overflow:hidden;text-overflow:ellipsis}
#clientsTable td:nth-child(2) .muted{max-width:100%}
#clientsTable .status{min-width:0;width:100%;max-width:110px}
#clientsTable td:first-child{white-space:normal;overflow:visible;word-break:break-word}
/* simboli dei controlli accanto allo stato (al posto delle etichette scritte) */
.cli-stato{white-space:nowrap}
.cli-simboli{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}
.cli-simbolo{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;cursor:help}
.cli-simbolo.grave{background:var(--danger-bg);color:var(--danger-testo);box-shadow:inset 0 0 0 1px var(--bordo-rosso)}
.cli-simbolo.avviso{background:var(--warning-bg);color:var(--warning-testo);box-shadow:inset 0 0 0 1px rgba(226,166,79,.6)}
#clientsTable .status{max-width:96px}

/* --- scheda del cliente come pagina: sotto la barra in alto, accanto al menu --- */
dialog.pagina-cliente{position:fixed;inset:var(--topbar) 0 0 var(--sidebar);width:auto;height:auto;max-width:none;max-height:none;margin:0;padding:0;
 border:0;border-radius:0;background:var(--bg);color:var(--text);z-index:18;overflow:auto}
dialog.pagina-cliente::backdrop{display:none}
.pc-corpo{padding:20px 32px 40px;max-width:1400px}
.pc-testa{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.pc-testa h1{margin:0;font-size:var(--fs-xl);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-indietro{padding:0 16px 0 10px}
.pagina-cliente .profile-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:6px;margin-bottom:18px;border-radius:var(--r-lg);
 background:rgba(255,255,255,.03);border:1px solid rgba(239,211,165,.12)}
.pagina-cliente .profile-tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:104px;min-height:74px;padding:10px 14px;
 border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--muted);font-size:var(--fs-s);font-weight:700;cursor:pointer}
.pagina-cliente .profile-tabs button:hover{background:rgba(255,255,255,.05);color:var(--text)}
.pagina-cliente .profile-tabs button.active{background:rgba(47,128,85,.22);border-color:rgba(121,210,164,.45);color:var(--text)}
.pagina-cliente .profile-tabs button.active svg{color:var(--verde-testo)}
@media (max-width:820px){
 dialog.pagina-cliente{inset:calc(64px + env(safe-area-inset-top)) 0 0 0}
 .pc-corpo{padding:14px 14px 90px}
 .pagina-cliente .profile-tabs{flex-wrap:nowrap;overflow-x:auto}
 .pagina-cliente .profile-tabs button{min-width:84px;min-height:64px}
}
.pagina-cliente .profile-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:4px}
.pagina-cliente .profile-tabs button{min-width:0;padding:10px 6px;text-align:center}
.pagina-cliente .profile-tabs button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
@media (max-width:820px){ .pagina-cliente .profile-tabs{display:flex} }
.pagina-cliente .profile-tabs button span{font-size:var(--fs-xs)}
@media (max-width:820px){ .pagina-cliente .profile-tabs button{min-width:84px;flex:0 0 auto} }
/* scheda del cliente a tutta pagina, con transizione d'entrata e d'uscita */
.pc-corpo{max-width:none;width:100%;box-sizing:border-box;padding:20px var(--s6,24px) 40px}
@keyframes pcEntra{from{opacity:0;transform:translateX(48px)}to{opacity:1;transform:none}}
@keyframes pcEsce{from{opacity:1;transform:none}to{opacity:0;transform:translateX(48px)}}
dialog.pagina-cliente.entra{animation:pcEntra .28s cubic-bezier(.2,.8,.2,1)}
dialog.pagina-cliente.esce{animation:pcEsce .22s ease-in forwards}
body.con-scheda .view-host{transition:opacity .2s}
@media (prefers-reduced-motion:reduce){ dialog.pagina-cliente.entra,dialog.pagina-cliente.esce{animation:none} }
/* linguette nella riga di testa della scheda */
.pc-testa{gap:12px}
.pc-testa h1{flex:0 1 auto;max-width:300px;font-size:var(--fs-l)}
.pc-testa .profile-tabs{flex:1 1 auto;min-width:0;margin:0;display:flex;flex-wrap:nowrap;gap:2px;padding:4px}
.pc-testa .profile-tabs button{flex:1 1 0;min-width:44px;min-height:58px;padding:6px 4px;gap:4px}
.pc-testa .profile-tabs button svg{width:20px;height:20px}
.pc-testa .modal-head-actions{flex:0 0 auto}
@media (max-width:820px){
 .pc-testa{flex-wrap:wrap}
 .pc-testa .profile-tabs{order:5;flex-basis:100%;overflow-x:auto}
 .pc-testa .profile-tabs button{flex:0 0 auto;min-width:84px}
}
/* nella riga di testa: la sezione aperta con icona e nome, le altre solo icona (nome al passaggio) */
.pc-testa h1{max-width:none;flex:1 1 auto}
.pc-testa .profile-tabs{flex:0 0 auto}
.pc-testa .profile-tabs button{flex:0 0 auto;flex-direction:row;min-width:46px;min-height:46px;padding:0 12px;gap:8px}
.pc-testa .profile-tabs button span{display:none}
.pc-testa .profile-tabs button.active span{display:inline}
@media (max-width:820px){ .pc-testa .profile-tabs button span{display:inline} .pc-testa .profile-tabs button{flex-direction:column;min-width:84px;min-height:64px} }

/* scheda cliente: niente nome nella riga di testa, linguette distribuite su tutta la riga;
   la pagina occupa anche tutta l'altezza */
.pc-testa .profile-tabs{flex:1 1 auto;justify-content:space-between}
.pc-testa .profile-tabs button{flex:1 1 0}
.pc-corpo{min-height:100%;display:flex;flex-direction:column}
.pc-corpo>#profileContent{flex:1 1 auto;display:flex;flex-direction:column}
.pc-corpo .profile-pane{flex:1 1 auto}

/* --- modale di prenotazione: piu' grande, attivita' -> giorno -> orario --- */
#formDialog.prenota-larga .modal-card{width:min(860px,calc(100vw - 32px));max-width:none}
.scelta-attivita{display:flex;flex-direction:column;gap:16px}
.sa-passo{display:flex;flex-direction:column;gap:8px}
.sa-titolo{font-size:var(--fs-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--sand2)}
.sa-tipi{display:flex;flex-wrap:wrap;gap:8px}
.sa-chip{display:inline-flex;align-items:center;gap:8px;min-height:var(--h-tocco);padding:0 16px;border-radius:var(--r-pill);cursor:pointer;
 border:1px solid rgba(239,211,165,.2);background:rgba(255,255,255,.04);color:var(--text);font-weight:700}
.sa-chip i{width:12px;height:12px;border-radius:4px;background:var(--muted)}
.sa-chip.t-ptc i{background:var(--sala)}.sa-chip.t-pti i{background:var(--pt)}.sa-chip.t-corso i{background:var(--corso)}
.sa-chip.scelto{background:rgba(239,211,165,.14);border-color:var(--sand)}
.sa-giorni{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.sa-giorno{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:74px;padding:8px 6px;border-radius:var(--r);cursor:pointer;
 border:1px solid rgba(239,211,165,.16);background:rgba(255,255,255,.04);color:var(--text)}
.sa-giorno small{font-size:var(--fs-xs);color:var(--muted);text-transform:capitalize}
.sa-giorno b{font-size:1.375rem;line-height:1.1}
.sa-giorno em{font-style:normal;font-size:var(--fs-xs);color:var(--ok-testo);font-weight:700;margin-top:2px}
.sa-giorno.pieno em{color:var(--danger-testo)}
.sa-giorno.scelto{background:rgba(47,128,85,.28);border-color:var(--bordo-verde)}
.sa-orari{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.sa-orario{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:var(--r);cursor:pointer;text-align:left;
 border:1px solid rgba(239,211,165,.16);background:rgba(255,255,255,.04);color:var(--text)}
.sa-orario b{font-size:var(--fs);font-variant-numeric:tabular-nums}
.sa-orario small{color:var(--muted);font-size:var(--fs-xs)}
.sa-orario em{font-style:normal;font-size:var(--fs-xs);font-weight:700;color:var(--ok-testo)}
.sa-orario.pieno em{color:var(--warning-testo)}
.sa-orario.passato{opacity:.7}
.sa-orario.scelto{background:rgba(47,128,85,.28);border-color:var(--bordo-verde)}
.sa-vuoto{margin:4px 0;color:var(--muted)}
#formDialog.prenota-larga .modal-card{max-height:calc(100dvh - 24px);overflow:auto}
#formDialog.prenota-larga textarea{min-height:56px;height:56px}
#formDialog.prenota-larga .modal-actions{position:sticky;bottom:-1px;background:var(--panel);padding-top:10px;margin-bottom:-4px}
/* «+» verde tondo, uguale ovunque (agenda, clienti) */
.ag-btn.ag-piu{background:var(--green3);border-color:var(--green3);color:#fff;width:44px;height:44px;min-height:44px}
.ag-btn.ag-piu:hover{background:var(--green2)}

/* --- riepilogo del cliente: una scheda ordinata, la stessa in lettura e in modifica --- */
.ps-scheda{display:flex;flex-direction:column;gap:0;padding:0!important;overflow:hidden}
.ps-testa{display:flex;align-items:center;gap:16px;padding:20px 22px;border-bottom:1px solid rgba(239,211,165,.12);
 background:linear-gradient(135deg,rgba(47,128,85,.16),rgba(255,255,255,0) 70%)}
.ps-testa .avatar.grande{width:60px;height:60px;font-size:1.25rem;box-shadow:none}
.ps-chi{min-width:0;flex:1}
.ps-chi h3{margin:0;font-size:var(--fs-l);line-height:1.2}
.ps-chi p{margin:6px 0 0;color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.ps-nome-input{width:100%;font-size:var(--fs-m);font-weight:800}
.ps-sezione{margin:0;padding:16px 22px 6px;font-size:var(--fs-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--sand2)}
.ps-griglia{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:0 22px}
.ps-campo{display:flex;flex-direction:column;gap:3px;padding:10px 0;border-bottom:1px solid rgba(239,211,165,.08);min-width:0}
.ps-campo:nth-child(odd){padding-right:16px}
.ps-campo.largo{grid-column:1/-1;padding-right:0}
.ps-campo dt{font-size:var(--fs-xs);color:var(--muted);font-weight:700}
.ps-campo dd{margin:0;font-weight:650;min-height:24px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;word-break:break-word}
.ps-campo dd a{color:var(--text);text-decoration:none;border-bottom:1px dotted var(--muted)}
.ps-campo dd input,.ps-campo dd select,.ps-campo dd textarea{width:100%;font-weight:500}
.ps-mono{font-variant-numeric:tabular-nums;letter-spacing:.04em}
.ps-vuoto{color:var(--muted);font-weight:400}
.ps-scadenze .ps-campo dd{justify-content:space-between}
.ps-scadenze .status{font-size:var(--fs-xs)}
.ps-spunta{display:flex;align-items:center;gap:8px;font-weight:500}
.ps-nota{padding:10px 22px 18px;margin:0}
.ps-azioni{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:16px 22px;margin-top:auto;border-top:1px solid rgba(239,211,165,.12);background:rgba(0,0,0,.12)}
.ps-azioni .ps-elimina{margin-left:auto}
.ps-scheda.in-modifica{box-shadow:0 0 0 2px rgba(239,211,165,.35)}
@media (max-width:820px){ .ps-griglia{grid-template-columns:1fr} .ps-campo:nth-child(odd){padding-right:0} .ps-azioni .ps-elimina{margin-left:0} }
/* nella pagina cliente il riquadro delle sezioni non ha un'altezza massima: scorre la pagina */
.pagina-cliente .profile-pane{max-height:none;overflow:visible}
.ps-scheda{overflow:visible}
.ps-campo dd input[type=checkbox]{width:auto}
.ps-spunta{white-space:nowrap}
.pc-testa .profile-tabs button.active{flex:0 0 auto;padding:0 16px}
.pagina-cliente .profile-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.ps-griglia{column-gap:18px}
.ps-campo:nth-child(odd){padding-right:0}
.ps-azioni{flex-wrap:nowrap;gap:8px}
.ps-azioni button{min-height:44px;padding:0 14px;font-size:var(--fs-s);white-space:nowrap}
@media (max-width:1180px){ .ps-azioni{flex-wrap:wrap} }

/* --- riepilogo a tutta altezza: scheda e colonna destra fino in fondo, barra delle azioni in basso --- */
.pagina-cliente .pc-corpo{min-height:100%;padding-bottom:0}
.pagina-cliente #profilePane{display:flex;flex-direction:column;flex:1 1 auto}
.pagina-cliente .profile-grid{flex:1 1 auto;align-items:stretch;padding-bottom:16px}
.pagina-cliente .profile-grid>.ps-scheda{height:100%}
.pagina-cliente .profile-sections{display:flex;flex-direction:column;gap:12px;height:100%}
.pagina-cliente .profile-sections>.profile-section{flex:1 1 0;min-height:0;overflow:auto}
.ps-barra{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:10px;margin:0 calc(-1 * var(--s6,24px));
 padding:12px var(--s6,24px);background:rgba(13,23,16,.94);backdrop-filter:blur(10px);border-top:1px solid rgba(239,211,165,.14)}
.ps-barra button{min-height:44px;padding:0 20px}
.ps-barra .ps-elimina{margin-left:auto}
/* modifica sul posto: le caselle hanno l'altezza del testo, la scheda non cambia misura */
.ps-campo dd{min-height:34px}
.ps-campo dd input:not([type=checkbox]),.ps-campo dd select{height:34px;min-height:34px;padding:2px 10px;font-size:var(--fs);font-weight:600;border-radius:8px;box-sizing:border-box}
.ps-chi h3,.ps-nome-input{height:34px;line-height:34px;margin:0;font-size:var(--fs-l)}
.ps-nome-input{padding:0 10px;font-weight:800;border-radius:8px;box-sizing:border-box}
.ps-scheda.in-modifica{box-shadow:0 0 0 2px rgba(239,211,165,.45)}
.ps-spunta{min-height:34px}
/* le due colonne arrivano esattamente alla barra delle azioni; se il contenuto e' piu' lungo
   scorre dentro la scheda, non la pagina */
.pagina-cliente .profile-grid{height:calc(100dvh - var(--topbar) - 176px);min-height:420px;padding-bottom:12px;box-sizing:border-box}
.pagina-cliente .profile-grid>.ps-scheda{overflow:auto;height:100%}
.ps-testa{height:96px;box-sizing:border-box}
.ps-chi p{height:24px;margin-top:6px}
.ps-testa{height:84px;padding:14px 22px}
.ps-testa .avatar.grande{width:52px;height:52px}
.ps-sezione{padding:12px 22px 2px}
.ps-campo{padding:6px 0;gap:2px}
.ps-scadenze{grid-template-columns:repeat(3,minmax(0,1fr))}
.ps-scadenze .ps-campo dd{flex-direction:column;align-items:flex-start;gap:4px}
@media (max-width:820px){ .ps-scadenze{grid-template-columns:1fr} }

/* clienti: pulsante degli archiviati accanto alla ricerca */
.cli-archiviati{min-height:var(--h-tocco)}
.cli-archiviati.attivo{background:rgba(239,211,165,.16);border-color:var(--sand);color:var(--sand)}
#clientsView.vista-archiviati .tendina-sola{opacity:.45;pointer-events:none}
/* barra della scheda: Archivia ed Elimina separati, a destra */
.ps-barra .ps-archivia{margin-left:auto}
/* Home: categorie delle scadenze in una lista di pulsanti */
.home-v6 .home-categorie{display:flex;flex-direction:column;gap:4px;padding:8px}
.home-v6 .home-categorie .hc{flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;min-height:44px;padding:0 12px;
 box-shadow:inset 4px 0 0 var(--kc,transparent);border-radius:10px}
.home-v6 .home-categorie .hc span{flex:1;font-size:var(--fs-s);color:var(--text);font-weight:700}
.home-v6 .home-categorie .hc em{font-size:var(--fs-xs)}
.home-v6 .home-categorie .hc b{font-size:var(--fs-m);min-width:28px;text-align:right}
.home-v6 .home-categorie .hc.zero{opacity:.55}
/* consensi: due spunte distinte nello stesso campo */
.ps-consensi{gap:8px!important}
.ps-flag{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;font-size:var(--fs-xs);font-weight:800;white-space:nowrap}
.ps-flag.si{background:var(--ok-bg);color:var(--ok-testo)}
.ps-flag.no{background:rgba(255,255,255,.06);color:var(--muted)}
label.ps-flag{background:rgba(255,255,255,.05);font-weight:700;cursor:pointer;height:34px}
label.ps-flag input{width:auto!important;height:auto!important;min-height:0!important;margin:0}
/* Home: categorie a zero in grigio leggibile, senza trasparenza (contrasto AA) */
.home-v6 .home-categorie .hc.zero{opacity:1}
.home-v6 .home-categorie .hc.zero span,.home-v6 .home-categorie .hc.zero b{color:var(--muted)}
/* in modifica, al posto di «Modifica»: due pulsanti a icona che insieme (spazio compreso)
   occupano la stessa larghezza di «Modifica», cosi' la riga non si sposta */
#profileEditActions{--larghezza-modifica:110px}
#profileEditActions .matita{width:var(--larghezza-modifica);justify-content:center}
#profileEditActions .azioni-icona{display:flex;gap:6px;width:var(--larghezza-modifica)}
#profileEditActions .solo-icona{flex:1 1 0;min-width:0;display:grid;place-items:center;padding:0}

/* --- scheda cliente, Documenti: tre card affiancate, file in righe con simboli --- */
.doc-colonne{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;height:100%;align-items:stretch}
.doc-card{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.doc-testa{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.doc-testa h3{margin:0}
.doc-testa h3 small{color:var(--muted);font-size:var(--fs-s);margin-left:4px}
.doc-lista{display:flex;flex-direction:column;gap:6px;overflow:auto;min-height:0}
.doc-riga{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r);background:rgba(255,255,255,.035);border:1px solid rgba(239,211,165,.08)}
.doc-ico{flex:0 0 auto;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--info-bg);color:var(--info-testo)}
.doc-testo{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.doc-testo strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-testo small{color:var(--muted);font-size:var(--fs-xs)}
.doc-testo .status{align-self:flex-start;font-size:var(--fs-xs)}
.doc-azioni{display:flex;gap:4px;flex:0 0 auto}
.doc-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:10px;border:1px solid rgba(239,211,165,.16);background:transparent;color:var(--text);cursor:pointer}
.doc-btn:hover{background:rgba(255,255,255,.08)}
.doc-btn.pericolo{color:var(--danger-testo)}
.doc-btn.pericolo:hover{background:var(--danger-bg)}
.doc-vuoto{margin:8px 2px;color:var(--muted)}
.pagina-cliente .doc-colonne{height:calc(100dvh - var(--topbar) - 176px);min-height:360px}
@media (max-width:1100px){ .doc-colonne{grid-template-columns:1fr;height:auto!important} }
.doc-riga{padding:8px}
.doc-testo small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-azioni{gap:2px}
@media (pointer:fine) and (min-width:821px){ .doc-btn{width:38px;height:38px} }
/* linguette della scheda: tutte della stessa larghezza fissa, sola icona (nome al passaggio);
   la sezione aperta si riconosce dal fondo verde, senza cambiare misura */
.pc-testa .profile-tabs button,.pc-testa .profile-tabs button.active{flex:1 1 0;min-width:44px;padding:0;justify-content:center}
.pc-testa .profile-tabs button span,.pc-testa .profile-tabs button.active span{display:none}
@media (max-width:820px){ .pc-testa .profile-tabs button,.pc-testa .profile-tabs button.active{flex:0 0 64px;min-height:52px} }
/* lo spazio di «Modifica» resta riservato anche nelle sezioni senza modifica: la barra non si muove */
.pc-testa .modal-head-actions,#profileEditActions{width:110px;min-width:110px;display:flex;justify-content:flex-end}
/* «Modifica» dentro la scheda; la barra in alto non riserva piu' spazio */
.pc-testa .modal-head-actions,#profileEditActions{display:none}
.ps-modifica{flex:0 0 auto;margin-left:auto}
.ps-modifica.in-card{float:right;margin:0 0 8px 12px}
.ps-modifica .azione-scheda{min-height:44px}
/* indirizzo con suggerimenti dagli indirizzi in archivio */
.ind-campo{position:relative;flex-wrap:nowrap!important}
.ind-campo input[data-edit="address"]{flex:1 1 auto}
.ind-luogo{flex:0 0 auto;color:var(--muted);font-size:var(--fs-s);white-space:nowrap}
.ind-suggerimenti{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;max-height:300px;overflow:auto;padding:6px;border-radius:var(--r-lg);
 background:var(--panel2);border:1px solid rgba(239,211,165,.2);box-shadow:0 18px 40px rgba(0,0,0,.45)}
.ind-voce{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 10px;border:0;border-radius:var(--r);background:transparent;color:var(--text);text-align:left;cursor:pointer}
.ind-voce:hover,.ind-voce.attiva{background:rgba(239,211,165,.10)}
.ind-voce small{color:var(--muted);font-size:var(--fs-xs)}
.ps-scheda{overflow:visible}
.ind-cerco{margin:6px 10px;color:var(--muted);font-size:var(--fs-xs)}
/* schede del cliente: icona con il nome della pagina sotto, larghezze uguali */
.pc-testa .profile-tabs button,.pc-testa .profile-tabs button.active{flex:1 1 0;flex-direction:column;min-width:64px;min-height:58px;padding:6px 4px;gap:4px;justify-content:center}
.pc-testa .profile-tabs button span,.pc-testa .profile-tabs button.active span{display:block;font-size:var(--fs-xs);line-height:1.1;white-space:nowrap}
@media (max-width:820px){ .pc-testa .profile-tabs button,.pc-testa .profile-tabs button.active{flex:0 0 76px;min-height:58px} }
.pc-testa .profile-tabs button span,.pc-testa .profile-tabs button.active span{overflow:visible;text-overflow:clip;max-width:none;font-weight:650;letter-spacing:-.01em}
.pc-testa .profile-tabs button{min-width:0;padding:6px 2px}
@media (max-width:820px){ .pc-testa .profile-tabs button,.pc-testa .profile-tabs button.active{flex:0 0 104px} }
/* riepilogo: a sinistra anagrafica e pacchetto, a destra documenti, prenotazioni, schede e pagamenti;
   in basso a sinistra Archivia ed Elimina, a destra Annulla e Salva quando si modifica */
.ps-sinistra{display:flex;flex-direction:column;gap:12px;min-width:0}
.pagina-cliente .profile-grid>.ps-sinistra{height:100%;min-height:0}
.pagina-cliente .ps-sinistra>.ps-scheda{flex:1 1 auto;min-height:0;overflow:auto;height:auto}
.pagina-cliente .ps-sinistra>.ps-pacchetto{flex:0 0 auto}
.ps-barra .ps-archivia{margin-left:0}
.ps-salva{margin-left:auto;display:flex;gap:10px}
.ps-salva:empty{display:none}
.ps-salva .azioni-icona{display:flex;gap:10px}
@media (max-width:820px){
 .pagina-cliente .profile-grid{grid-template-columns:1fr;height:auto}
 .pagina-cliente .profile-grid>.ps-sinistra,.pagina-cliente .ps-sinistra>.ps-scheda,.pagina-cliente .profile-sections{height:auto;overflow:visible}
 .pagina-cliente .profile-sections>.profile-section{flex:0 0 auto}
 .ps-barra{bottom:76px}
}
/* giro di controllo 17/10 */
.ps-modifica .azioni-icona{display:flex;gap:10px}
.ps-sez-testa{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 var(--s2)}
.ps-sez-testa h3{margin:0}
.ps-sez-testa .compact{min-height:44px}
/* stessi titoli in tutte le sezioni della scheda cliente */
.pagina-cliente .profile-section h3,.pagina-cliente .fin-scheda .profile-section h3,.pagina-cliente .all-profilo .profile-section h3{font-size:var(--fs-m)}
/* modali: niente scritta piccola sopra il titolo (come in «Nuova prenotazione") */
#formEyebrow,#requestsDialog .modal-head .eyebrow,#notificationDrawer .drawer-head .eyebrow{display:none}
#impegnoElimina[hidden],#impegnoSerie[hidden]{display:none}
/* esito della prenotazione: nessun riquadro vuoto finché non c'è niente da dire */
#formHint:empty{display:none}
/* nelle modali la tendina ha la stessa forma dei campi di testo accanto */
.modal-card .field .tendina-btn{border-radius:var(--r-sm);font-weight:400;background:var(--campo);border-color:var(--bordo)}
/* prenotazione: il suggerimento sotto «Orario» non va a capo dopo due parole */
.scelta-attivita .sa-vuoto{max-width:none;white-space:normal}
.sa-orari>.sa-vuoto,.sa-giorni>.sa-vuoto{grid-column:1/-1}
/* intestazioni delle pagine: solo il titolo e i pulsanti, su una riga (come Agenda e Clienti) */
.page-heading:not(.ag-intestazione){align-items:center;margin-bottom:var(--s3)}
.page-heading:not(.ag-intestazione)>div:first-child>.eyebrow,
.page-heading:not(.ag-intestazione)>div:first-child>p{display:none}
.page-heading:not(.ag-intestazione) h1{margin:0}
section[hidden].setting-card{display:none}
/* tendine dentro le pagine: larghe quanto serve, piene nei campi dei moduli */
.workspace .tendina-sola{flex:0 1 auto;min-width:150px;position:relative}
.workspace label .tendina-sola,.workspace .field .tendina-sola,.ab-regole-grid .tendina-sola{width:100%;flex:1 1 auto}
.workspace .tendina-sola .tendina-btn{width:100%}
/* tendine che stanno in un campo con etichetta: stessa forma dei campi di testo accanto */
.workspace label .tendina-sola .tendina-btn,.workspace .field .tendina-sola .tendina-btn,.ab-regole-grid .tendina-sola .tendina-btn{border-radius:var(--r-sm);font-weight:400;background:var(--campo);border-color:var(--bordo);font-size:var(--fs)}
/* agenda: fino a 1600 px le etichette corte dei filtri, cosi' nessuna resta tagliata */
@media (min-width:1101px) and (max-width:1600px){
 .ag-intestazione .ag-tipo-lungo{display:none}
 .ag-intestazione .ag-tipo-corto{display:inline}
 .ag-intestazione .ag-tipo{overflow:visible;flex:0 0 auto}
}
@media (min-width:1101px) and (max-width:1600px){ .ag-intestazione .ag-tipo b{display:none} .ag-intestazione .ag-tipo{padding:4px 10px} }
@media (min-width:1101px) and (max-width:1400px){ .ag-intestazione .ag-istr select{min-width:0;width:118px;text-overflow:ellipsis} .ag-intestazione .ag-barra{gap:6px} }
@media (min-width:1101px) and (max-width:1400px){ .ag-intestazione .ag-istr{min-width:0;width:auto} .ag-intestazione .ag-tipo{padding:4px 8px;gap:5px} }
@media (min-width:1101px) and (max-width:1400px){ .ag-intestazione .ag-istr{flex:0 0 auto} .ag-intestazione .ag-istr select{width:126px} }
/* scheda fisica: due colonne, ognuna col suo «+» */
.doc-colonne.due{grid-template-columns:repeat(2,minmax(0,1fr))}
.doc-card .testo-lungo{white-space:pre-wrap}
#formDialog textarea[name="testo"]{min-height:220px}
/* sezioni della scheda cliente alte fino in fondo alla pagina (Documenti, Scheda fisica, Alimentazione) */
.pagina-cliente .doc-colonne,.pagina-cliente .ps-alto{height:calc(100dvh - var(--topbar) - 120px);min-height:360px}
.pagina-cliente .edit-banner+.ps-alto,.pagina-cliente :has(>.edit-banner) .ps-alto{height:calc(100dvh - var(--topbar) - 176px)}
.pagina-cliente .ps-alto>.profile-section{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:auto}
.pagina-cliente .ps-alto .big-text{flex:1 1 auto;min-height:160px;resize:none}
.pagina-cliente .ps-alto .testo-lungo{flex:0 0 auto}
@media (max-width:1100px){ .pagina-cliente .ps-alto{height:auto} }
.pagina-cliente .ps-alto .ps-modifica.in-card{align-self:flex-end;float:none;margin:0 0 4px}
@media (max-width:1100px){ .doc-colonne.due{grid-template-columns:1fr} }
.pagina-cliente .ps-alto>.profile-section.fisso{flex:0 0 auto;overflow:visible}
/* foto nelle misure */
.fis-azioni{display:flex;align-items:center;gap:8px}
.fis-giorno{display:flex;flex-direction:column;gap:6px;margin:4px 0 10px}
.fis-data{font-size:var(--fs-s);color:var(--muted);font-weight:700}
.fis-foto{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.fis-foto button{padding:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:transparent;cursor:pointer;min-height:44px}
.fis-foto img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}
.fis-confronto{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fis-colonna{margin:0;display:flex;flex-direction:column;gap:8px}
.fis-colonna figcaption{font-weight:750;color:var(--sand)}
.fis-colonna img{width:100%;max-height:60vh;object-fit:contain;border-radius:var(--r);border:1px solid var(--line);background:#000}
#formDialog.solo-chiudi .modal-actions [data-close-dialog]:not(.icon-btn){display:none}
/* certificato nella colonna di Documenti */
.cert-stato{display:flex;flex-direction:column;gap:8px;padding:0 0 12px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.cert-stato .inline-actions{margin:0}
.cert-stato>p.muted{font-size:var(--fs-xs);margin:0}
.ab-elenco>.profile-section{background:rgba(255,255,255,.03);margin-top:10px}
.mis-azioni{width:1%;white-space:nowrap;text-align:right}
.da-app{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--info-bg);color:var(--info-testo);border:1px solid var(--info);font-size:var(--fs-xs);font-weight:700;line-height:18px;vertical-align:middle}
.doc-btn-vuoto{display:inline-block;width:44px;height:44px}
.pren-tipo{display:flex;flex-direction:column;gap:8px}
.pagina-cliente .ps-alto>.fin-avvertenza{flex:0 0 auto;margin:0}
/* sezioni del cliente a colonne: card affiancate e alte fino in fondo alla schermata */
.pagina-cliente .col-piene{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:12px;height:calc(100dvh - var(--topbar) - 120px);min-height:360px}
.pagina-cliente .col-piene>.profile-section{min-height:0;overflow:auto;margin:0}
.pagina-cliente .col-piene .fin-avvertenza{margin-top:12px}
@media (max-width:1100px){ .pagina-cliente .col-piene{grid-template-columns:1fr;grid-auto-rows:auto;height:auto} .pagina-cliente .col-piene>.profile-section{overflow:visible} }
/* agenda: tendina degli istruttori della casa, larga quanto i filtri accanto */
.ag-intestazione .ag-istr .tendina-sola{flex:0 0 auto;width:180px;min-width:0}
.ag-intestazione .ag-istr .tendina-btn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-intestazione .ag-istr .tendina-testo{overflow:hidden;text-overflow:ellipsis}
.ag-intestazione .ag-istr .tendina-pannello{right:0;left:auto;min-width:220px}
@media (min-width:1101px) and (max-width:1400px){ .ag-intestazione .ag-istr .tendina-sola{width:126px} }
.workspace .ag-intestazione .ag-istr .tendina-btn{border-radius:var(--r-pill);font-weight:700;font-size:var(--fs-s);background:rgba(255,255,255,.04);border-color:rgba(239,211,165,.22);min-height:44px}
/* scheda cliente → Portale */
.portale-cliente .pc-colonna{display:flex;flex-direction:column;gap:12px;min-height:0}
.portale-cliente .pc-colonna>.profile-section{margin:0;overflow:auto}
.portale-cliente .pc-colonna>.profile-section:last-child{flex:1 1 auto;min-height:0}
.portale-cliente h3 small{color:var(--muted);font-size:var(--fs-s);margin-left:4px}
.pc-com{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.pc-com-riga{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--r);background:rgba(255,255,255,.03)}
.pc-com-riga span:last-child{display:flex;flex-direction:column;min-width:0}
.pc-com-riga small{color:var(--muted);font-size:var(--fs-xs)}
.pc-com-stato{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:900}
.pc-com-stato.si{background:var(--success-bg,rgba(80,160,90,.18));color:var(--success-testo,#9be2a6)}
.pc-com-stato.no{background:rgba(255,255,255,.06);color:var(--muted)}
#dismessiCard{display:none!important}
.posta-griglia{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 16px;margin-top:8px}
.posta-griglia label{display:flex;flex-direction:column;gap:6px;font-weight:700}
.posta-griglia .largo{grid-column:1/-1}

/* =========================================================================
   PAGINE A TUTTA ALTEZZA (dal portatile in su): l'ultima card di ogni pagina arriva in
   fondo allo schermo. Dove ci sono elenchi lunghi affiancati scorre la card, non la pagina.
   ========================================================================= */
@media (min-width:1001px){
 /* Pagamenti: rate e pagamenti registrati affiancati */
 #finPagamenti{flex:1 1 0;min-height:360px;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);grid-template-rows:minmax(0,1fr);align-items:stretch}
 #finPagamenti>.panel{display:flex;flex-direction:column;min-height:0;margin:0}
 #finPagamenti>.panel>.panel-head{flex:none}
 #finPagRate,#finPagElenco{flex:1 1 auto;min-height:0;overflow:auto}
 #finPagamenti .fin-filtri{flex-wrap:wrap}
 #finPagamenti .fin-filtri input[type=search]{flex:1 1 180px;min-width:0}

 /* Catalogo: le categorie dentro un'unica card */
 #catalogoBody{flex:1 1 0;min-height:300px;overflow:auto;gap:0;border:1px solid rgba(239,211,165,.10);border-radius:var(--r-lg);background:var(--panel)}
 #catalogoBody>.ab-cat{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}

 /* Scadenze e clienti inattivi */
 #scadPannelloScadenze:not([hidden]),#scadPannelloInattivi:not([hidden]){flex:1 1 0;min-height:360px;display:flex;flex-direction:column}
 #deadlineBoard{flex:1 1 0;min-height:0;grid-template-rows:minmax(0,1fr)}
 #deadlineBoard .deadline-items{max-height:none;flex:1 1 auto;min-height:0}
 #inattiviElenco{flex:1 1 0;min-height:0;overflow:auto;max-width:none;padding:10px;border:1px solid rgba(239,211,165,.10);border-radius:var(--r-lg);background:var(--panel)}

 /* Presenze: appello a sinistra, presenti e registro a destra */
 #attendanceView .pz-layout{flex:1 1 0;min-height:360px;align-items:stretch;grid-template-rows:minmax(0,1fr)}
 #attendanceView .pz-colonna{grid-template-rows:minmax(0,1fr) minmax(0,1fr);min-height:0}
 #attendanceView .pz-layout .panel{display:flex;flex-direction:column;min-height:0;margin:0}
 #pzAppello,#presentNowList,#attendanceTable{flex:1 1 auto;min-height:0;overflow:auto}

 /* Comunicazioni */
 #cmCorpo{flex:1 1 0;min-height:360px;display:flex;flex-direction:column}
 #cmCorpo:has(>.cm-notifiche-griglia){flex:1 0 auto}
 #cmCorpo>.cm-layout,#cmCorpo>.cm-documenti{flex:1 1 0;min-height:0;align-items:stretch;grid-template-rows:minmax(0,1fr)}
 #cmCorpo>.cm-layout>.panel,#cmCorpo>.cm-documenti>.panel{min-height:0;overflow:auto;margin:0}
 #cmCorpo>.cm-notifiche-griglia{flex:1 0 auto;align-items:stretch}

 /* Partecipanti ai corsi */
 #finPartecipanti{flex:1 1 0;min-height:360px;display:flex;flex-direction:column}
 #finPartElenco{flex:1 1 0;min-height:0;overflow:auto;padding:4px 12px 12px;border:1px solid rgba(239,211,165,.10);border-radius:var(--r-lg);background:var(--panel)}
 #finPartElenco .fin-tabella-box{border:0;background:transparent;overflow:visible}

 /* Allenamento */
 #trainingView>.all-pane:not(.hidden){flex:1 0 auto;display:flex;flex-direction:column}
 #allPaneComponi>.all-componi{flex:1 0 auto;align-items:stretch}
 #allPaneSchede>#allSchedeLista,#staffBody>.staff-card-griglia{flex:1 0 auto;align-content:start;padding:12px;border:1px solid rgba(239,211,165,.10);border-radius:var(--r-lg);background:var(--panel)}
 #allLibLista{flex:1 0 auto;padding:12px;border:1px solid rgba(239,211,165,.10);border-radius:var(--r-lg);background:var(--panel)}

 /* Staff */
 #staffBody{flex:1 0 auto;display:flex;flex-direction:column}
 #staffBody>.table-card,#staffBody>.staff-impostazioni,#staffBody>.staff-sost-colonne{flex:1 0 auto}

 /* Finanze */
 #finFinanze{flex:1 0 auto;display:flex;flex-direction:column}
 #finContenuto{flex:1 0 auto;display:flex;flex-direction:column}
 #finContenuto>.panel:last-child,#finFinanze>.fin-riservata{flex:1 0 auto}
}
/* Sostituzioni dello staff: in arrivo e passate, due card affiancate */
.staff-sost-colonne{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch;margin-top:12px}
.staff-sost-colonne>.panel{padding:4px 14px 14px;min-width:0}
.staff-sost-colonne .staff-sost-griglia{grid-template-columns:1fr}
@media (max-width:1000px){ .staff-sost-colonne{grid-template-columns:1fr} }
/* contenitori che scorrono: le voci non si schiacciano */
#catalogoBody>.ab-cat,#inattiviElenco>*{flex:none}
/* nomi cliccabili di presenti e registro: bersaglio di almeno 44px */
.pz-presente .pz-nome,.pz-registro .pz-nome{min-height:44px}
.pz-presente,.pz-registro{padding-top:2px;padding-bottom:2px}

/* =========================================================================
   MENU LATERALE STRETTO: solo logo e icone (pulsante sul bordo del menu)
   ========================================================================= */
.menu-stringi{position:absolute;top:34px;right:-14px;z-index:2;width:28px;height:28px;padding:0;display:grid;place-items:center;
 border:1px solid var(--bordo-scuro);border-radius:50%;background:#ecd6b1;color:var(--su-sabbia);cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.28)}
.menu-stringi::before{content:"";position:absolute;inset:-8px}
.menu-stringi:hover{background:#f6e2bd}
.menu-stringi:focus-visible{outline:3px solid var(--focus,#f6e2bd);outline-offset:2px}
.menu-stringi svg{transition:transform .2s}
.sidebar{transition:width .2s ease,padding .2s ease}
.workspace{transition:margin-left .2s ease}
@media (min-width:821px){
 body.menu-stretto{--sidebar:84px}
 body.menu-stretto .menu-stringi svg{transform:rotate(180deg)}
 body.menu-stretto .sidebar{padding-left:12px;padding-right:12px}
 body.menu-stretto .brand{justify-content:center;padding-left:0;padding-right:0}
 body.menu-stretto .brand>div{display:none}
 body.menu-stretto .nav-item{grid-template-columns:1fr;justify-items:center;padding:var(--s1) 0;position:relative}
 body.menu-stretto .nav-item>b,body.menu-stretto .utente-testo{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 body.menu-stretto .nav-badge{position:absolute;top:0;right:0;padding:0 5px;font-size:var(--fs-xs);line-height:18px;min-width:18px;text-align:center}
 body.menu-stretto .nav-sep{margin-left:6px;margin-right:6px}
 body.menu-stretto .utente-box{flex-direction:column;gap:6px}
 body.menu-stretto .utente-btn{flex:none;justify-content:center;padding:4px}
}
@media (prefers-reduced-motion:reduce){ .sidebar,.workspace,.menu-stringi svg{transition:none} }

/* Sistema → Giorni di apertura: sette pulsanti a interruttore, acceso = aperto */
.apertura-giorni{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.apertura-giorno{position:relative;display:inline-grid;place-items:center;min-width:42px;min-height:44px;padding:0 8px;border-radius:var(--r-pill);
 border:1px solid var(--bordo);background:var(--campo);color:var(--muted);font-weight:750;cursor:pointer;user-select:none}
.apertura-giorno input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.apertura-giorno:has(input:checked){background:var(--green3,#2f8055);border-color:var(--green3,#2f8055);color:#fff}
.apertura-giorno:not(:has(input:checked)) span{text-decoration:line-through}
.apertura-giorno:has(input:focus-visible){outline:3px solid var(--focus,#f6e2bd);outline-offset:2px}
.apertura-nota:empty{display:none}
.apertura-nota{color:var(--warning-testo,#ffc979)}

/* =========================================================================
   BARRA IN ALTO: orologio e data sempre al centro esatto della barra, qualunque cosa ci
   sia ai lati. Il centro ha uno spazio riservato; saluto e pulsanti stanno nelle due
   colonne uguali ai lati (il saluto si accorcia con i puntini).
   ========================================================================= */
.topbar{grid-template-columns:minmax(0,1fr) 190px minmax(0,1fr)}
.topbar>#mobileMenuButton,.top-saluto{grid-column:1;grid-row:1}
.topbar>.top-actions{grid-column:3;grid-row:1}
.top-centro{position:absolute;grid-column:auto;grid-row:auto;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap}
/* poco spazio: «Richieste» diventa solo icona e numero */
@media (max-width:1200px){
 .top-richieste .tr-testo{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .top-richieste{padding-left:12px;padding-right:12px;gap:6px}
}
@media (max-width:820px){
 .topbar{grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr)}
 .top-centro{top:calc(50% + env(safe-area-inset-top) / 2)}
 .top-saluto{display:none}
 .topbar>#mobileMenuButton{justify-self:start}
}

/* QR del tablet in Sistema */
.kiosk-qr{width:200px;height:200px;background:#fff;padding:6px;border-radius:12px;margin-bottom:8px}
.kiosk-qr svg{width:100%;height:100%;display:block}

/* ---------- Sistema in una pagina sola (PC 1366x768 senza scorrere) ----------
   Capienza e giorni di apertura su una riga; sotto, le regole di prenotazione a fianco di
   una card con due linguette (Posta, Tablet dei contratti) fatte solo di CSS: niente JS. */
#systemView{padding:var(--s4) var(--s8) var(--s3)}
#systemView .page-heading{margin-bottom:var(--s3)}
#systemView .setting-card{padding:var(--s3) var(--s4) var(--s4)}
#systemView .setting-card h2{margin-bottom:var(--s2)}
#systemView .setting-card label{margin:0}
#systemView .setting-card input:not([type=checkbox]),#systemView .setting-card select,#systemView .setting-card .tendina-btn{min-height:var(--h-piccolo);padding-top:var(--s1);padding-bottom:var(--s1)}
#systemView .setting-card>p.muted{margin:0 0 var(--s2)}
.capienza-riga{display:grid;grid-template-columns:1fr 1fr auto;gap:var(--s3);align-items:end}
.capienza-riga>button{margin:0}
.apertura-riga{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.apertura-riga>.apertura-giorni{margin:0;flex:1 1 320px}
.apertura-riga>.apertura-giorni .apertura-giorno{flex:1 1 0;min-width:40px}
.apertura-riga>button{margin:0}
#aperturaNota:empty{display:none}
#aperturaNota{margin:var(--s2) 0 0}
/* linguette */
.sys-linguette{display:flex;gap:var(--s1);padding:2px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin-bottom:var(--s2)}
.sys-linguette input{position:absolute;opacity:0;width:0;height:0;margin:0}
.sys-linguette label{flex:1 1 0;display:grid;place-items:center;min-height:var(--h-piccolo);padding:0 var(--s3);border-radius:var(--r-sm);
 font-size:var(--fs-s);font-weight:700;color:var(--muted);cursor:pointer}
.sys-linguette input:checked+label{background:var(--green3,#2f8055);color:#fff}
.sys-linguette input:focus-visible+label{outline:3px solid var(--focus,#f6e2bd);outline-offset:2px}
.sys-scheda{display:none}
.sys-schede:has(#sysTabPosta:checked) #postaCard:not([hidden]){display:block}
.sys-schede:has(#sysTabTablet:checked) #tabletCard{display:block}
.sys-schede:has(#sysTabRegolamento:checked) #regolamentoCard{display:block}
#regolamentoTesto{width:100%;min-height:150px;resize:vertical;margin:8px 0}
/* senza il permesso sulla posta (postaCard nascosta) resta solo il tablet, senza linguette */
.sys-schede:has(#postaCard[hidden]) #tabletCard{display:block}
.sys-schede:has(#postaCard[hidden]) .sys-linguette{display:none}
.sys-schede .posta-griglia{margin-top:0;gap:var(--s1) var(--s3)}
.sys-schede .posta-griglia label{gap:var(--s1);font-size:var(--fs-s);font-weight:650;color:#d3dad0}
.sys-schede .inline-actions{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.sys-schede #postaStato{margin:var(--s1) 0 0;font-size:var(--fs-s)}
.sys-schede #postaStato:empty{display:none}
.sys-schede .inline-actions>button{margin:0}
/* tablet: QR a sinistra, istruzioni a destra */
#tabletCard .license-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s2) var(--s3);align-items:start}
#tabletCard .kiosk-qr{grid-row:span 3;width:150px;height:150px;margin:0}
#tabletCard .license-card>span{margin:0}
#tabletCard .license-card>details{grid-column:2}
#tabletCard .license-card>span.muted{grid-column:2}
#tabletCard>button{margin:0}
@media (min-width:1101px){
 .settings-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s3)}
 .settings-grid>.setting-card{grid-column:span 4}
 #capienzaCard{grid-column:span 6}
 #aperturaCard{grid-column:span 6}
 #abRegoleCard.wide-card{grid-column:span 7}
 #collegamentiCard{grid-column:span 5}
 .settings-grid>.setting-card.wide-card:not(#abRegoleCard){grid-column:1/-1}
 #abRegoleCard .ab-regole-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 #abRegoleCard .ab-regole-attesa{grid-template-columns:repeat(4,minmax(0,1fr))}
 .sys-schede .posta-griglia{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.modal-actions .form-elimina{margin-right:auto}

/* Finestra «Richieste» della barra in alto: grande, lista d'attesa e documenti da approvare
   affiancati sugli schermi larghi, uno sotto l'altro su quelli stretti. */
#requestsDialog.richieste-grande .modal-card{width:min(1240px,95vw);max-width:none;min-height:min(720px,80vh);max-height:92vh;display:flex;flex-direction:column}
#requestsDialog.richieste-grande #requestsBody{overflow:auto;flex:1;min-height:0}
.rq-colonne{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--s4,16px);align-items:start}
.rq-sezione h3{margin:0 0 10px;font-size:1.05rem;display:flex;align-items:center;gap:8px}
.rq-sezione h3 b{background:var(--panel3);border-radius:999px;padding:1px 10px;font-size:.85rem}
.rq-elenco{display:flex;flex-direction:column;gap:8px}
