/*
 * se-ui.css — design system della nuova interfaccia (restyling 2026-09). Stesso file di
 * Smartevent, piu' in coda le aree solo di 3nt1 (progetti, diario, donazioni, magazzino, negozio).
 *
 * Quattro parti, nell'ordine in cui vanno lette:
 *   1. TOKEN      — colori, font, raggi. Tutto il resto li usa, niente valori a mano.
 *   2. GUSCIO     — sidebar (chiara o scura col tema), barra alta, pagina, componenti nuovi (.se-*).
 *   3. PONTE      — regole che portano Bootstrap 4, AdminLTE 3 e i widget Kartik
 *                   (GridView, Select2, DatePicker, modali) dentro il nuovo look,
 *                   cosi' le viste non ancora riscritte non sembrano di un'altra app.
 *   4. AREE       — i componenti scritti area per area nella conversione delle viste
 *                   (30/09/2026); stanno in coda perche' e' l'ordine in cui venivano
 *                   caricati, e il cascade va conservato.
 *
 * Il ponte e' provvisorio per costruzione: ogni vista riscritta usa le classi della
 * parte 2 e non ha piu' bisogno delle regole della parte 3. Quando l'ultima vista sara'
 * passata, la parte 3 (e AdminLTE) si tolgono.
 *
 * Prefisso: le classi nuove iniziano con `se-` quando il nome nudo esisterebbe gia'
 * in Bootstrap/AdminLTE (.card, .btn, .modal, .nav...). Quelle che non collidono
 * (.chip, .pill, .kpi, .ph...) restano nude, come nel mockup.
 *
 * Sorgente di verita' del design: Restyling Yii/mockup (p1.html). Ogni token e ogni
 * componente qui corrisponde a uno del mockup, stesso nome.
 */

/* =====================================================================
   1. TOKEN
   ===================================================================== */
:root {
  --bg:#f3f3ef; --surface:#ffffff; --surface-2:#f8f8f4; --surface-3:#efeee8;
  --ink:#1c1b17; --ink-2:#48453d; --muted:#76726a; --line:#e2e0d8; --line-2:#ecebe5;
  --brand:#f4b400; --brand-hover:#e2a600; --brand-ink:#2a2000; --brand-soft:#fff3c9; --brand-line:#f0d680;
  /* barra laterale: chiara nel tema chiaro (logo a colori), scura nel tema scuro (logo in bianco) */
  --nav:#ffffff; --nav-2:#f3f2ec; --nav-ink:#1c1b17; --nav-ink-2:#48453d; --nav-muted:#7a766c; --nav-line:#e6e4dc;
  --nav-hover:#cfccc2; --nav-av:#6f6b61; --nav-danger:#b3382a; --nav-pop:#ffffff; --nav-shadow:0 -8px 24px rgba(28,27,23,.12);
  --ok:#1d7a4c; --ok-soft:#e2f2e9; --warn:#9c5c00; --warn-soft:#fcefd6; --bad:#b3382a; --bad-soft:#fae4df; --info:#2a64a0; --info-soft:#e3edf8;
  --e1:#0f7a70; --e2:#6a4fd0; --e3:#b8326a;
  --focus:#2a64a0; --shadow:0 1px 2px rgba(28,27,23,.06),0 8px 24px rgba(28,27,23,.08);
  --f-display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --f-body:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:10px; --r-sm:7px;
  /* grafici: al massimo 3 serie, stati a parte */
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --grid:#e9e7e0;
  --side-w:236px; --side-w-c:68px;
}
/* Tema scuro: si sceglie dal menu utente (chiaro / scuro / segui il sistema), vedi
   js/se-ui.js e lo script in testa al layout. Le viste vecchie passano dal ponte
   (parte 3), che usa questi stessi token. */
:root[data-theme="dark"] {
  --bg:#12120f; --surface:#1b1a16; --surface-2:#211f1b; --surface-3:#2a2823;
  --ink:#eeebe2; --ink-2:#c8c4b8; --muted:#9a9589; --line:#302e28; --line-2:#28261f;
  --brand:#f6c230; --brand-hover:#ffd257; --brand-ink:#1b1500; --brand-soft:#3a2f0b; --brand-line:#6b5614;
  --nav:#0d0c09; --nav-2:#191812; --nav-ink:#e4e1d6; --nav-ink-2:#c9c5b8; --nav-muted:#8a867a; --nav-line:#25241d;
  --nav-hover:#4a483c; --nav-av:#3b392e; --nav-danger:#f0a090; --nav-pop:#191812; --nav-shadow:0 -8px 24px rgba(0,0,0,.35);
  --ok:#52c48d; --ok-soft:#16301f; --warn:#f0a940; --warn-soft:#382810; --bad:#f07e6e; --bad-soft:#3b1c17; --info:#72a9e6; --info-soft:#162a40;
  --e1:#35b3a7; --e2:#9a84f0; --e3:#e3689b; --focus:#72a9e6; --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px rgba(0,0,0,.45);
  --s1:#3987e5; --s2:#d95926; --s3:#199e70; --grid:#2c2a25; color-scheme:dark;
}

/* =====================================================================
   2. GUSCIO E COMPONENTI
   ===================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{font-size:14px}
html,body{height:100%}
body.se-body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;margin:0}
body.se-body button,body.se-body input,body.se-body select,body.se-body textarea{font:inherit;color:inherit}
body.se-body a{color:var(--info)}
body.se-body a:hover{color:var(--info);text-decoration:underline}
/* i componenti-link (righe, card, menu) restano color inchiostro: il blu e' per i link nel testo */
body.se-body a.task,body.se-body a.evcard,body.se-body a.kpi,body.se-body a.stat,body.se-body a.kcard,body.se-body .smart a,body.se-body .subnav a,body.se-body .rowlink,body.se-body .path a,body.se-body .set-card li a,body.se-body .pal .ri,body.se-body .se-menu .mi,body.se-body .chip,body.se-body .views a,body.se-body .seg a,body.se-body .flow a{color:var(--ink);text-decoration:none}
body.se-body .subnav a,body.se-body .chip,body.se-body .views a{color:var(--ink-2)}
body.se-body .chip.on,body.se-body .views a.on,body.se-body .subnav a.on{color:var(--ink)}
body.se-body .chip.on{color:var(--surface)}
body.se-body a.task:hover,body.se-body a.evcard:hover,body.se-body .smart a:hover,body.se-body .subnav a:hover,body.se-body .set-card li a:hover{text-decoration:none;color:var(--ink)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}
.mono{font-family:var(--f-mono);font-size:12.5px;letter-spacing:-.01em}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.se-hide{display:none!important}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}

/* ---------- guscio ---------- */
.app{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100%}
.side{background:var(--nav);color:var(--nav-ink);border-right:1px solid var(--nav-line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:14px 10px 12px;gap:6px;overflow-y:auto;z-index:1040;scrollbar-width:thin;scrollbar-color:var(--nav-line) transparent}
.side a{color:var(--nav-ink)}
.side a:hover{text-decoration:none;color:var(--nav-ink)}
.logo{display:flex;align-items:center;gap:9px;padding:4px 8px 12px;font-family:var(--f-display);font-weight:750;letter-spacing:.02em;font-size:17px;color:var(--nav-ink)}
.logo .mark{width:24px;height:24px;border-radius:6px;background:var(--brand);display:grid;place-items:center;color:#1b1500;font-size:14px;transform:skewX(-8deg);flex:none}
.logo small{font-family:var(--f-body);font-weight:500;font-size:10.5px;color:var(--nav-muted);letter-spacing:.08em;margin-left:auto}
.logo small.test{color:var(--brand)}
/* il logo originale: a colori sulla barra chiara, in bianco sulla barra scura (niente piu' fascia bianca) */
.logo.logo-img{background:none;border-radius:8px;padding:6px 6px;margin:0;flex:1;min-width:0}
/* tema nel menu utente */
.me-menu .tema{padding:8px 10px 6px;border-top:1px solid var(--nav-line);border-bottom:1px solid var(--nav-line);margin:4px 0}
.me-menu .tema .lbl{display:block;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--nav-muted);margin-bottom:6px}
.me-menu .tema .seg{display:flex;width:100%;background:var(--nav-2);border-color:var(--nav-line)}
.me-menu .tema .seg button{flex:1;justify-content:center;color:var(--nav-muted);font-size:12px;padding:0 6px;height:30px}
.me-menu .tema .seg button+button{border-left-color:var(--nav-line)}
.me-menu .tema .seg button.on{background:var(--nav-line);color:var(--nav-ink)}
.me-menu .tema .seg svg{width:13px;height:13px}
.me-menu .tema{border-top:0;margin-top:0}
.me-menu .ms{height:1px;background:var(--nav-line);margin:5px 4px}
/* pagina Profilo */
.field .hint.err{color:var(--bad)}
.se-input.is-invalid{border-color:var(--bad)}
img.logo-ente{width:44px;height:44px;object-fit:contain;border-radius:8px;background:#fff;border:1px solid var(--line);padding:2px}
.seg.tema-pagina{align-self:flex-start}
/* foto o iniziali di un'anagrafica (components/ui/Avatar.php): le iniziali su un colore fisso per scheda */
.se-av{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;flex:none;font-family:var(--f-display);font-weight:700;font-size:11px;letter-spacing:.02em;line-height:1;user-select:none;--av:var(--e1);background:var(--av);color:#fff}
@supports (background:color-mix(in srgb,#fff 50%,transparent)){.se-av{background:color-mix(in srgb,var(--av) 16%,var(--surface));color:var(--av)}}
.se-av.c1{--av:var(--e2)}.se-av.c2{--av:var(--e3)}.se-av.c3{--av:var(--info)}.se-av.c4{--av:var(--ok)}.se-av.c5{--av:var(--warn)}
.se-av.lg{width:44px;height:44px;font-size:16px}
.se-av.xl{width:132px;height:132px;border-radius:24px;font-size:46px;letter-spacing:.01em}
/* il riquadro della foto (kartik FileInput dentro .se-foto): niente cornici, la foto o le iniziali e due pulsanti */
.se-foto{display:flex;justify-content:center;padding:6px 0 14px}
.se-foto .file-input{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}
body.se-body .se-foto .file-preview{border:0;padding:0;margin:0;background:none;box-shadow:none;width:auto;border-radius:0}
body.se-body .se-foto .file-drop-zone{border:0;margin:0;padding:0;min-height:0;background:none}
.se-foto .file-drop-zone.clickable{cursor:pointer}
.se-foto .file-drop-zone.clickable:hover .se-av,.se-foto .file-drop-zone.clickable:hover .se-foto-img{outline:2px solid var(--brand);outline-offset:3px}
.se-foto .file-default-preview{display:grid;place-items:center}
.se-foto img.se-foto-img{width:132px;height:132px;object-fit:cover;border-radius:24px;display:block}
.se-foto .se-foto-az{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.se-foto .se-foto-az svg{width:14px;height:14px}
/* la foto appena scelta, prima di «Salva»: stessa misura delle iniziali, senza la barra di pulsantini di kartik */
.se-foto .file-preview-thumbnails{display:flex;justify-content:center}
body.se-body .se-foto .file-preview-frame{float:none;margin:0;padding:0;border:0;box-shadow:none;background:none;width:auto;height:auto}
body.se-body .se-foto .file-preview-frame .kv-file-content{width:132px;height:132px}
body.se-body .se-foto .file-preview-frame img.file-preview-image{width:132px!important;height:132px!important;max-width:none!important;max-height:none!important;object-fit:cover;border-radius:24px}
.se-foto .file-thumbnail-footer,.se-foto .kv-zoom-cache,.se-foto .file-preview .fileinput-remove{display:none}
/* relazione annuale e pagine-report con tabelle semplici */
.se-card>.tbl-wrap.piatta{border:0;border-radius:0;border-top:1px solid var(--line-2)}
.tbl-wrap.alto{max-height:420px;overflow:auto}
.tbl td.nowrap{white-space:nowrap}
.tbl tr.riga-bad td{background:var(--bad-soft)}
.note .grow,.se-row .grow{flex:1;min-width:0}
.note ul.lacune{margin:6px 0 0;padding-left:18px}
/* relazione annuale: le informazioni mancanti, ognuna con il collegamento dove si completa */
.note ul.mancanti{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:0}
.note ul.mancanti>li{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:9px 0;border-top:1px solid color-mix(in srgb,var(--warn) 22%,transparent)}
.note ul.mancanti>li:first-child{border-top:0;padding-top:4px}
.note ul.mancanti .se-btn{white-space:normal;height:auto;min-height:28px;padding-top:5px;padding-bottom:5px;text-align:left;line-height:1.3}
.note ul.mancanti .se-btn svg{width:13px;height:13px;flex:none}
.note ul.mancanti details.adv{width:100%}
.note ul.mancanti details.adv>summary{padding:7px 12px;font-size:12.5px}
.note ul.mancanti ul.ev{margin:0 12px 10px;padding-left:18px;max-height:220px;overflow:auto;columns:2 260px;column-gap:24px;font-size:12.5px}
.note ul.mancanti ul.ev li{break-inside:avoid;padding:1px 0}
.kv.larga{grid-template-columns:minmax(0,320px) minmax(0,1fr)}
form.inline{display:inline-flex;margin:0}
.logo.logo-img img{height:32px;width:auto;display:block;max-width:100%}
.logo.logo-img small.test{color:var(--bad);font-weight:700}
/* logo dell'ente al posto delle iniziali, dove c'e' */
.ente-sw .dot.img,.se-menu .mi .dot.img{background:#fff;padding:2px;overflow:hidden}
.ente-sw .dot.img img,.se-menu .mi .dot.img img{width:100%;height:100%;object-fit:contain;display:block;border-radius:5px}
.ente-sw{display:flex;align-items:center;gap:10px;width:100%;background:var(--nav-2);border:1px solid var(--nav-line);border-radius:10px;padding:9px 10px;cursor:pointer;text-align:left;color:var(--nav-ink)}
.ente-sw:hover{border-color:var(--nav-hover)}
.ente-sw[aria-disabled="true"]{cursor:default}
/* la card dell ente e un link (va alla scheda): niente blu dei link nel testo (body.se-body a) */
body.se-body a.ente-sw,body.se-body a.ente-sw:hover,body.se-body a.ente-sw:focus{text-decoration:none;color:var(--nav-ink)}
.ente-sw .dot{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-weight:700;font-size:12px;color:#fff;flex:none;background:var(--nav-av)}
.ente-sw .t{min-width:0;flex:1}
.ente-sw .t b{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ente-sw .t span{font-size:11.5px;color:var(--nav-muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ente-sw .chev{color:var(--nav-muted);display:flex}
.ente-sw .chev svg{width:14px;height:14px}
.search-btn{display:flex;align-items:center;gap:8px;width:100%;margin:6px 0 6px;padding:8px 10px;border-radius:9px;background:transparent;border:1px solid var(--nav-line);color:var(--nav-muted);cursor:pointer;font-size:13px}
.search-btn:hover{color:var(--nav-ink);border-color:var(--nav-hover)}
.search-btn svg{width:15px;height:15px}
.search-btn kbd{margin-left:auto;font-family:var(--f-mono);font-size:11px;border:1px solid var(--nav-line);border-radius:5px;padding:1px 5px;background:none;color:inherit}
.se-nav{display:flex;flex-direction:column;gap:1px}
.se-nav .lbl{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--nav-muted);padding:12px 10px 5px}
.se-nav a,.se-nav button.area{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;text-decoration:none;color:var(--nav-ink);font-size:13.5px;font-weight:500;cursor:pointer;background:none;border:0;width:100%;text-align:left}
.se-nav a:hover,.se-nav button.area:hover{background:var(--nav-2);text-decoration:none}
.se-nav a.on,.se-nav button.area.on{background:var(--brand);color:#1b1500}
.se-nav a.on .ic,.se-nav button.area.on .ic{color:#1b1500}
.se-nav .ic{width:18px;height:18px;flex:none;color:var(--nav-muted);display:inline-flex}
.se-nav .ic svg{width:18px;height:18px}
.se-nav .cnt{margin-left:auto;font-size:11px;font-weight:600;background:var(--nav-line);color:var(--nav-ink);border-radius:20px;padding:1px 7px}
.se-nav a.on .cnt{background:rgba(0,0,0,.14);color:#1b1500}
.se-nav .tw{margin-left:auto;color:var(--nav-muted);display:flex;transition:transform .15s}
.se-nav .tw svg{width:14px;height:14px}
.se-nav .area[aria-expanded="true"] .tw{transform:rotate(90deg)}
.se-nav .area.on .tw{color:#1b1500}
/* i link della barra non prendono il blu dei link nel testo (body.se-body a, piu' specifico di .se-nav a):
   senza queste righe le voci d'area che sono link (Oggi, Eventi...) uscivano blu, e blu sottolineate al passaggio */
body.se-body .se-nav a,body.se-body .se-nav a:hover{color:var(--nav-ink);text-decoration:none}
body.se-body .se-nav a.on,body.se-body .se-nav a.on:hover{color:#1b1500}
body.se-body .se-nav .sub a{color:var(--nav-ink-2)}
body.se-body .se-nav .sub a:hover,body.se-body .se-nav .sub a.on{color:var(--nav-ink)}
body.se-body .se-nav .sub a.dis{color:var(--nav-muted)}
/* sotto-voci dell'area (le rotte di oggi, raggruppate): compaiono aprendo l'area */
.se-nav .sub{display:none;flex-direction:column;gap:1px;padding:2px 0 6px 20px;border-left:1px solid var(--nav-line);margin:2px 0 4px 18px}
.se-nav .sub.open{display:flex}
.se-nav .sub .g{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--nav-muted);padding:8px 8px 2px}
.se-nav .sub a{padding:5px 8px;font-size:12.5px;font-weight:450;border-radius:6px;color:var(--nav-ink-2)}
.se-nav .sub a.on{background:var(--nav-2);color:var(--nav-ink);font-weight:600;box-shadow:inset 2px 0 0 var(--brand)}
.se-nav .sub a.dis{color:var(--nav-muted);opacity:.6}
.se-nav .sub a.dis::after{content:"";width:10px;height:10px;margin-left:auto;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:1px;padding-top:10px;border-top:1px solid var(--nav-line)}
.me{display:flex;align-items:center;gap:9px;padding:8px 10px;font-size:13px;border-radius:8px;cursor:pointer;color:var(--nav-ink);background:none;border:0;width:100%;text-align:left}
.me:hover{background:var(--nav-2)}
.me .av{width:26px;height:26px;border-radius:50%;background:var(--nav-av);color:#fff;display:grid;place-items:center;font-size:11.5px;font-weight:700;flex:none}
.me .who{min-width:0;flex:1}
.me .who b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me .who span{color:var(--nav-muted);font-size:11.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me .tw{color:var(--nav-muted);display:flex}
.me .tw svg{width:14px;height:14px}
.me-menu{display:none;flex-direction:column;gap:1px;padding:4px 0 2px 8px}
/* il menu utente si apre SOPRA il nome, come un riquadro: aperto in coda alla barra finiva
   sotto il bordo dello schermo (la barra scorre e non si vedeva che c'era altro) */
.side-foot{position:relative}
.side-foot .me-menu{position:absolute;left:0;right:0;bottom:calc(100% - 4px);padding:6px;background:var(--nav-pop);border:1px solid var(--nav-line);border-radius:10px;box-shadow:var(--nav-shadow);z-index:5}
.me-menu.open{display:flex}
.me-menu a,.me-menu button{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:12.5px;color:var(--nav-ink-2);background:none;border:0;width:100%;text-align:left;cursor:pointer}
.me-menu a:hover,.me-menu button:hover{background:var(--nav-2);color:var(--nav-ink)}
.side-foot .me-menu a:hover,.side-foot .me-menu button:hover{background:var(--nav-line)}
/* la voce della pagina corrente (a.on: fondo giallo, testo scuro) resta gialla anche sotto il mouse: col fondo
   del passaggio il testo scuro spariva nel tema scuro (08/10) */
.side-foot .me-menu a.on:hover{background:var(--brand)}
.me-menu .danger{color:var(--nav-danger)}
.me-menu svg{width:14px;height:14px;flex:none}
/* testa della barra: il logo e la freccia che la riduce alle sole icone (sul telefono la chiude) */
.side-hd{display:flex;align-items:center;gap:4px;margin:0 0 10px}
.side-tg{flex:none;width:30px;height:30px;border-radius:8px;border:0;background:none;color:var(--nav-muted);display:grid;place-items:center;cursor:pointer;padding:0}
.side-tg:hover{background:var(--nav-2);color:var(--nav-ink)}
.side-tg svg{width:16px;height:16px;transition:transform .18s}
.logo.logo-img img.lg-mar{display:none;width:34px;height:34px}
.se-nav .area .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* immagini in due versioni: a colori sul chiaro, in bianco sullo scuro */
:root[data-theme="dark"] img.su-chiaro,:root:not([data-theme="dark"]) img.su-scuro{display:none!important}
.app{transition:grid-template-columns .18s ease}
/* barra ridotta alle icone (solo sul computer): i nomi compaiono al passaggio del mouse (data-tip-c, se-ui.js) */
@media (min-width:961px){
  :root[data-barra="compatta"]{--side-w:var(--side-w-c)}
  :root[data-barra="compatta"] .side{overflow-x:hidden}
  :root[data-barra="compatta"] .side-hd{flex-direction:column;gap:6px}
  :root[data-barra="compatta"] .logo.logo-img{flex:none;padding:2px}
  :root[data-barra="compatta"] .logo.logo-img img.lg-est,:root[data-barra="compatta"] .logo small{display:none}
  :root[data-barra="compatta"] .logo.logo-img img.lg-mar{display:block}
  :root[data-barra="compatta"] .side-tg svg{transform:rotate(180deg)}
  :root[data-barra="compatta"] .se-nav .area .t,:root[data-barra="compatta"] .ente-sw .t,:root[data-barra="compatta"] .ente-sw .chev,
  :root[data-barra="compatta"] .search-btn .t,:root[data-barra="compatta"] .search-btn kbd,:root[data-barra="compatta"] .me .who,:root[data-barra="compatta"] .me .tw{display:none}
  :root[data-barra="compatta"] .ente-sw{justify-content:center;padding:6px 0;background:none;border-color:transparent}
  :root[data-barra="compatta"] .search-btn,:root[data-barra="compatta"] nav.se-nav a,:root[data-barra="compatta"] .me{justify-content:center;padding-left:0;padding-right:0}
  :root[data-barra="compatta"] .se-nav .lbl{font-size:0;padding:0;margin:8px 6px;border-top:1px solid var(--nav-line)}
  /* il menu utente esce dalla barra, a destra (la barra scorre e lo taglierebbe) */
  :root[data-barra="compatta"] .side-foot .me-menu{position:fixed;left:calc(var(--side-w-c) + 6px);right:auto;bottom:12px;width:250px}
}
/* il marchio fisso nella barra alta, solo sul telefono */
.top-logo{display:none;align-items:center;flex:none}
.top-logo img{width:30px;height:30px;display:block}

.main{min-width:0;display:flex;flex-direction:column;min-height:100vh}
.top{position:sticky;top:0;z-index:1030;display:flex;align-items:center;gap:10px;height:54px;padding:0 28px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line-2)}
@supports not (background:color-mix(in srgb,#fff 50%,transparent)){.top{background:var(--bg)}}
.crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);min-width:0;overflow:hidden;white-space:nowrap;margin:0;padding:0;list-style:none}
.crumbs a{text-decoration:none;cursor:pointer;color:var(--muted)}
.crumbs a:hover{color:var(--ink);text-decoration:none}
.crumbs b{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.top .sp{flex:1}
.iconbtn{width:34px;height:34px;border-radius:8px;border:1px solid transparent;background:transparent;display:grid;place-items:center;cursor:pointer;position:relative;color:var(--ink-2);padding:0;text-decoration:none}
.iconbtn:hover{background:var(--surface-3);color:var(--ink);text-decoration:none}
.top .burger{display:none}
.iconbtn .badge{position:absolute;top:4px;right:4px;min-width:15px;height:15px;border-radius:10px;background:var(--bad);color:#fff;font-size:9.5px;font-weight:700;display:grid;place-items:center;padding:0 3px;line-height:1}
.scope-bar{display:flex;align-items:center;gap:8px;padding:7px 28px;font-size:12.5px;background:var(--surface-2);border-bottom:1px solid var(--line-2);color:var(--ink-2)}
.scope-bar b{font-weight:600;color:var(--ink)}
.scope-bar svg{width:15px;height:15px;flex:none}
.page{width:100%;max-width:1240px;padding:22px 28px 90px;margin:0 auto;flex:1}
.page.wide{max-width:1440px}
.page.full{max-width:none}
.se-foot{padding:10px 28px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line-2)}

/* ---------- intestazione pagina ---------- */
.ph{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.ph .tt{flex:1;min-width:240px}
.ph h1{font-family:var(--f-display);font-weight:650;font-size:26px;line-height:1.15;margin:0;letter-spacing:-.015em;text-wrap:balance;color:var(--ink)}
.ph .sub{color:var(--muted);margin-top:4px;font-size:13.5px}
.ph .acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
h2.sec{font-family:var(--f-display);font-weight:650;font-size:17px;margin:0;letter-spacing:-.01em}
h3.sec,body.se-body h3.sec{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-weight:600}

/* ---------- controlli ---------- */
.se-btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:500;font-size:13.5px;cursor:pointer;white-space:nowrap;text-decoration:none;line-height:1}
.se-btn:hover{background:var(--surface-2);border-color:#cfccc2;color:var(--ink);text-decoration:none}
.se-btn.pri{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}
.se-btn.pri:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:var(--brand-ink)}
.se-btn.ghost{background:transparent;border-color:transparent}
.se-btn.ghost:hover{background:var(--surface-3)}
.se-btn.sm{height:28px;padding:0 10px;font-size:12.5px;border-radius:7px}
.se-btn.danger{color:var(--bad)}
.se-btn:disabled,.se-btn.dis{opacity:.5;cursor:not-allowed}
.se-btn .k{font-family:var(--f-mono);font-size:10.5px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 4px}
.se-btn svg,.iconbtn svg{width:16px;height:16px;flex:none}
.se-btn i.fa,.se-btn i.fas,.se-btn i.far{font-size:13px}
.link{color:var(--info);text-decoration:none;cursor:pointer;font-weight:500}
.link:hover{text-decoration:underline}
.rowlink{font-weight:600;text-decoration:none;cursor:pointer;color:var(--ink)}
.rowlink:hover{text-decoration:underline;text-underline-offset:2px;color:var(--ink)}
.se-input,.se-select,textarea.se-input{height:34px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0 10px;min-width:0;width:100%;color:var(--ink)}
textarea.se-input{height:auto;padding:8px 10px;min-height:70px}
.se-input:focus,.se-select:focus{outline:2px solid var(--focus);outline-offset:-1px;border-color:transparent}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field label{font-size:12.5px;font-weight:600;color:var(--ink-2);margin:0}
.field label .req{color:var(--bad)}
.field .hint{font-size:12px;color:var(--muted)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.span2{grid-column:span 2}

/* chip = FILTRO (si clicca). pill = STATO (si legge). Forme diverse di proposito. */
.chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13px;cursor:pointer;color:var(--ink-2);white-space:nowrap;text-decoration:none}
.chip:hover{border-color:#c9c6bb;color:var(--ink);text-decoration:none}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.chip.on:hover{color:var(--surface)}
.chip .n{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.chip.on .n{color:inherit;opacity:.7}
.chip.add{border-style:dashed}
.pill{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:5px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--surface-3);color:var(--ink-2)}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}
.pill.ok{background:var(--ok-soft);color:var(--ok)} .pill.warn{background:var(--warn-soft);color:var(--warn)} .pill.bad{background:var(--bad-soft);color:var(--bad)} .pill.info{background:var(--info-soft);color:var(--info)} .pill.brand{background:var(--brand-soft);color:var(--brand-ink)}
/* nel tema scuro --brand-ink e' scuro come il fondo: la pill gialla usa il giallo */
:root[data-theme="dark"] .pill.brand{color:var(--brand)}
.pill.plain::before{display:none}
.tag{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.03em;border:1px solid var(--line);color:var(--ink-2);background:var(--surface)}
.tag.ecm{border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand-ink)}
.ent{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;white-space:nowrap;color:var(--ink-2)}
.ent i{width:9px;height:9px;border-radius:3px;display:inline-block;flex:none}

/* ---------- superfici ---------- */
.se-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.se-card .hd{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line-2)}
.se-card .hd h2{font-size:14.5px;font-weight:650;margin:0;font-family:var(--f-body)}
.se-card .hd .sp{flex:1}
.se-card .bd{padding:14px 16px}
.se-card.flat{background:transparent;border-style:dashed}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.cols.even{grid-template-columns:repeat(2,minmax(0,1fr))}
.stack{display:flex;flex-direction:column;gap:16px;min-width:0}
.se-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.se-row.between{justify-content:space-between}
.sp{flex:1}
.kv{display:grid;grid-template-columns:170px minmax(0,1fr);gap:9px 16px;font-size:13.5px;margin:0}
.kv dt{color:var(--muted);font-weight:normal}
.kv dd{margin:0;min-width:0}
.empty{padding:28px;text-align:center;color:var(--muted)}
.note{display:flex;gap:10px;padding:11px 14px;border-radius:9px;font-size:13px;border:1px solid var(--line);background:var(--surface-2)}
.note.warn{background:var(--warn-soft);border-color:transparent;color:var(--ink)}
.note.info{background:var(--info-soft);border-color:transparent}
.note.bad{background:var(--bad-soft);border-color:transparent}
.note.ok{background:var(--ok-soft);border-color:transparent}
.note b{font-weight:650}
.note>svg{width:16px;height:16px;flex:none;margin-top:2px}
.note .x{margin-left:auto}

/* ---------- tabelle ---------- */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
/* le griglie kartik delle viste nuove scorrono dentro il loro riquadro: il ponte (parte 3) mette overflow:hidden a .kv-grid-container e taglierebbe le colonne di destra */
body.se-body .tbl-wrap.se-grid.kv-grid-container{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px;margin:0}
.tbl th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr:hover{background:var(--surface-2)}
.tbl tr.sel{background:var(--brand-soft)!important}
.tbl .ck{width:38px;padding-right:0}
.tbl .r,.se-tbl .r{text-align:right}
.tbl .sub,.se-tbl .sub{display:block;font-size:12px;color:var(--muted);margin-top:1px}
.tbl .acts{width:40px;text-align:right}
.tbl-foot{display:flex;align-items:center;gap:10px;padding:10px 2px;font-size:12.5px;color:var(--muted)}
body.se-body input[type=checkbox]{width:16px;height:16px;accent-color:var(--ink);cursor:pointer}
.bar{height:6px;border-radius:4px;background:var(--surface-3);overflow:hidden;min-width:60px}
.bar i{display:block;height:100%;background:var(--ink-2);border-radius:4px}
.bar.ok i{background:var(--ok)} .bar.warn i{background:var(--warn)} .bar.brand i{background:var(--brand)}

/* ---------- toolbar liste ---------- */
.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.searchbox{position:relative;flex:0 1 300px;min-width:180px}
.searchbox input{padding-left:32px}
.searchbox svg{position:absolute;left:10px;top:9px;width:16px;height:16px;color:var(--muted)}
.views{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}
.views a,.views button{background:none;border:0;padding:9px 12px;font-size:13.5px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center}
.views a:hover,.views button:hover{color:var(--ink);text-decoration:none}
.views a.on,.views button.on{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.views a>svg{width:15px;height:15px;flex:none;margin-right:7px;color:var(--muted)}
.views a:hover>svg,.views a.on>svg{color:var(--ink)}
.views .n{font-size:11.5px;color:var(--muted);margin-left:4px}
.views .star{margin-left:auto}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.seg a,.seg button{border:0;background:none;padding:0 11px;height:32px;font-size:13px;cursor:pointer;color:var(--muted);display:flex;align-items:center;gap:6px;text-decoration:none}
.seg a+a,.seg button+button{border-left:1px solid var(--line)}
.seg .on{background:var(--surface-3);color:var(--ink);font-weight:600}

/* ---------- barra azioni di massa ---------- */
.bulk{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(200%);visibility:hidden;z-index:1060;background:var(--ink);color:var(--surface);border-radius:12px;padding:8px 8px 8px 16px;display:flex;align-items:center;gap:6px;box-shadow:var(--shadow);transition:transform .2s ease;max-width:calc(100vw - 32px);overflow-x:auto}
.bulk.show{transform:translateX(-50%) translateY(0);visibility:visible}
.bulk b{font-weight:650;margin-right:8px;white-space:nowrap}
.bulk .se-btn{background:transparent;color:var(--surface);border-color:rgba(255,255,255,.18)}
.bulk .se-btn:hover{background:rgba(255,255,255,.1)}
.bulk .se-btn.pri{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}

/* ---------- hub record (scheda evento / persona / commessa) ---------- */
.rec-head{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}
.rec-head .tt{flex:1;min-width:260px}
.rec-head h1{font-family:var(--f-display);font-weight:650;font-size:24px;line-height:1.2;margin:0 0 6px;letter-spacing:-.015em;text-wrap:balance}
.rec-head .acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.facts{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--ink-2)}
.facts span{display:inline-flex;align-items:center;gap:6px}
.facts svg{width:15px;height:15px;color:var(--muted)}
.path{display:flex;margin:4px 0 16px;overflow-x:auto;padding-bottom:2px}
.path .st{flex:1;min-width:120px;position:relative;padding:8px 14px 8px 22px;background:var(--surface);border:1px solid var(--line);border-left:0;font-size:12.5px;cursor:pointer;color:var(--muted);text-decoration:none}
.path .st:first-child{border-left:1px solid var(--line);border-radius:9px 0 0 9px;padding-left:14px}
.path .st:last-child{border-radius:0 9px 9px 0}
.path .st b{display:block;font-size:13px;color:var(--ink-2);font-weight:600}
.path .st.done{background:var(--surface-2)}
.path .st.done b::after{content:" ✓";color:var(--ok)}
.path .st.cur{background:var(--ink);border-color:var(--ink);color:#d8d5ca}
.path .st.cur b{color:var(--surface)}
.smart{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.smart a,.smart button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 13px;min-width:104px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer;text-align:left;text-decoration:none;color:var(--ink)}
.smart a:hover,.smart button:hover{border-color:#c9c6bb;background:var(--surface-2);text-decoration:none;color:var(--ink)}
.smart b{font-family:var(--f-display);font-size:19px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.1}
.smart span{font-size:12px;color:var(--muted)}
.smart .alert b{color:var(--bad)}
.hub{display:grid;grid-template-columns:212px minmax(0,1fr);gap:22px;align-items:start}
.subnav{position:sticky;top:70px;display:flex;flex-direction:column;gap:1px}
/* titoletti dei sottomenu in neretto, con un filo fino al bordo; icona accanto a ogni voce (30/09) */
.subnav .g{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);padding:14px 10px 5px;font-weight:700}
.subnav .g::after{content:"";flex:1;height:1px;background:var(--line)}
.subnav a svg{width:16px;height:16px;flex:none;color:var(--muted)}
.subnav a:hover svg,.subnav a.on svg{color:var(--ink)}
.subnav .g:first-child{padding-top:0}
.subnav a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:7px;font-size:13.5px;cursor:pointer;text-decoration:none;color:var(--ink-2)}
.subnav a:hover{background:var(--surface-3);color:var(--ink);text-decoration:none}
.subnav a.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:inset 3px 0 0 var(--brand),0 0 0 1px var(--line)}
.subnav a .n{margin-left:auto;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.subnav a .dot{width:7px;height:7px;border-radius:50%;background:var(--bad);margin-left:auto}
.subnav a .dot.w{background:var(--warn)}
/* navigazione secondaria dell'area, resa dal layout (Navigazione::navArea) */
.area-views{margin:-4px 0 18px}
.area-hub .area-body{min-width:0}
.area-hub .subnav{top:18px}

/* checklist + timeline */
.tl{position:relative;height:74px;margin:6px 8px 4px}
.tl .ax{position:absolute;left:0;right:0;top:34px;height:2px;background:var(--line)}
.tl .ev{position:absolute;top:22px;width:2px;height:26px;background:var(--ink);transform:translateX(-1px)}
.tl .ev span{position:absolute;top:-19px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:700;white-space:nowrap}
.tl .today{position:absolute;top:18px;width:0;height:34px;border-left:2px dashed var(--info)}
.tl .today span{position:absolute;top:-14px;left:4px;font-size:11px;color:var(--info);font-weight:600;white-space:nowrap}
.tl .p{position:absolute;top:29px;width:12px;height:12px;border-radius:50%;transform:translateX(-6px);border:2px solid var(--surface);background:var(--muted);cursor:default}
.tl .p.ok{background:var(--ok)} .tl .p.bad{background:var(--bad)} .tl .p.warn{background:var(--warn)} .tl .p.todo{background:var(--surface);border-color:var(--muted)}
.tl .tk{position:absolute;top:44px;white-space:nowrap;font-size:10.5px;color:var(--muted);transform:translateX(-50%);font-variant-numeric:tabular-nums}
.chk{display:flex;flex-direction:column}
.chk .it{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line-2)}
.chk .it:last-child{border-bottom:0}
.chk .box{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--muted);display:grid;place-items:center;margin-top:1px;font-size:12px;color:#fff}
.chk .it.done .box{background:var(--ok);border-color:var(--ok)}
.chk .it.done .t{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}
.chk .t{font-weight:500}
.chk .d{font-size:12px;color:var(--muted);margin-top:2px}
.chk .when{font-size:12.5px;text-align:right;white-space:nowrap}
/* checklist della scheda evento (progetti-adempimenti/_grid.php): quarta colonna per le azioni, stati della data */
.chk .it.has-acts{grid-template-columns:22px minmax(0,1fr) auto auto;align-items:center}
.chk .tx{min-width:0}
.chk a.box{cursor:pointer;text-decoration:none}
.chk a.box:hover{border-color:var(--ok);background:var(--ok-soft)}
.chk .it.na .box{background:var(--muted);border-color:var(--muted)}
.chk .when.bad{color:var(--bad);font-weight:600} .chk .when.warn{color:var(--warn);font-weight:600} .chk .when.muted{color:var(--muted)}
.chk .when svg{width:13px;height:13px;vertical-align:-2px;color:var(--muted)}
.chk .ac{display:flex;gap:2px}
.chk .ac .iconbtn{width:30px;height:30px}
h3.sec.gap{margin-top:16px}
details.adv.gap{margin-top:16px}
.link.ic svg{width:13px;height:13px;vertical-align:-2px}
/* rate dentro la riga di un documento (progetti-fatture/_grid.php) */
.rata{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:2px 0}
.rata .ac{display:inline-flex;gap:2px}
.rata .iconbtn,.se-tbl .iconbtn{width:28px;height:28px}
.link svg{width:13px;height:13px;vertical-align:-2px}
/* servizi della logistica (progetti-logistica/_giornate.php): una riga per servizio, dettaglio che si apre */
.srv{border-top:1px solid var(--line-2)}
.srv-h{display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px 16px}
.srv .ico{width:32px;height:32px;border-radius:8px;background:var(--surface-3);display:grid;place-items:center;color:var(--ink-2)}
.srv .ico svg{width:16px;height:16px}
.srv .t{font-weight:500;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.srv .t .tg{color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.srv .t .tg svg{width:14px;height:14px;color:var(--muted);transition:transform .15s}
.srv .t .tg[aria-expanded="true"] svg{transform:rotate(90deg)}
.srv .m{font-size:12.5px;color:var(--muted);margin-top:2px}
.srv .m.ok{color:var(--ok)}
.srv.chiuso .t .tg{color:var(--muted)}
.srv .ac{display:flex;gap:4px}
.srv-bd{padding:0 16px 12px 60px}
.srv-bd.show,.srv-bd.collapsing{display:block}
button.pill.as-btn{border:0;cursor:pointer;height:26px}
button.pill.as-btn svg{width:12px;height:12px}
@media (max-width:640px){.srv-h{grid-template-columns:32px minmax(0,1fr)}.srv-h>.pill,.srv-h>.ac{grid-column:2;justify-self:start}.srv .ac .lbl{display:none}.srv-bd{padding-left:16px}}
@media (max-width:640px){.chk .it.has-acts{grid-template-columns:22px minmax(0,1fr) auto}.chk .ac{grid-column:2/-1}}

/* oggi */
.task{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line-2);color:inherit;text-decoration:none}
.task:last-child{border-bottom:0}
a.task:hover{background:var(--surface-2);text-decoration:none;color:inherit}
.task .sv{align-self:stretch;border-radius:3px;background:var(--line)}
.task .sv.bad{background:var(--bad)} .task .sv.warn{background:var(--warn)} .task .sv.info{background:var(--info)}
.task .t{font-weight:500}
.task .m{font-size:12.5px;color:var(--muted);margin-top:2px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
/* scadenze (components/ui/Scadenze, views/site/_voce.php): le righe del «Da fare» in home e
   nella pagina «Da fare» — etichetta del tipo con l'icona, l'ente con «tutti gli enti», a
   destra la data e sotto lo stato in parole; in fondo al box quante altre e «Vedi tutte» */
.task .sc-tx{min-width:0}
.task .tag.sc-tipo{gap:4px;letter-spacing:0;font-weight:600}
.task .tag.sc-tipo svg{width:12px;height:12px;flex:none}
.task .sc-ente{display:inline-flex;align-items:center;gap:5px}
.task .sc-ente::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--e1)}
.task .sc-quando{display:flex;flex-direction:column;align-items:flex-end;gap:1px;text-align:right;white-space:nowrap;font-size:12.5px}
.task .sc-quando .qd{color:var(--ink-2);font-variant-numeric:tabular-nums}
.task .sc-quando .qs{font-size:11.5px;color:var(--muted)}
.task .sc-quando .qs.bad{color:var(--bad);font-weight:600}
.task .sc-quando .qs.warn{color:var(--warn);font-weight:600}
.sc-piede{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--line-2)}
.sc-piede .link{margin-left:auto}
.stat{display:flex;flex-direction:column;gap:2px;padding:12px 14px;text-decoration:none;color:inherit}
a.stat:hover{background:var(--surface-2);text-decoration:none;color:inherit}
.stat b{font-family:var(--f-display);font-size:24px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.stat span{font-size:12.5px;color:var(--muted)}
.stat em{font-style:normal;font-size:12px;color:var(--ok);font-weight:600}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.stats>*+*{border-left:1px solid var(--line-2)}
.evcard{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;padding:12px 14px;border-bottom:1px solid var(--line-2);cursor:pointer;text-decoration:none;color:inherit}
.evcard:last-child{border-bottom:0}
.evcard:hover{background:var(--surface-2);text-decoration:none;color:inherit}
.cal-d{border:1px solid var(--line);border-radius:8px;text-align:center;overflow:hidden;background:var(--surface);align-self:start}
.cal-d i{display:block;font-style:normal;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;background:var(--ink);color:var(--surface);padding:2px 0;font-weight:600}
.cal-d b{display:block;font-family:var(--f-display);font-size:19px;padding:2px 0 3px;font-weight:650}

/* kanban */
.kan{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}
.kan .col{background:var(--surface-3);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:200px}
.kan .col h4{margin:2px 4px 4px;font-size:12.5px;font-weight:650;display:flex;gap:6px}
.kan .col h4 span{color:var(--muted);font-weight:500}
.kcard{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:10px 11px;cursor:pointer;display:flex;flex-direction:column;gap:7px;text-decoration:none;color:inherit}
.kcard:hover{border-color:#c9c6bb;text-decoration:none;color:inherit}
.kcard .t{font-weight:600;font-size:13px;line-height:1.3}
.kcard .m{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted)}

/* persona 360 */
.p360{display:grid;grid-template-columns:280px minmax(0,1fr) 280px;gap:18px;align-items:start}
.avatar{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;font-family:var(--f-display);font-weight:700;font-size:20px;background:var(--surface-3);color:var(--ink-2);overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.feed{display:flex;flex-direction:column}
.feed .fi{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;padding:11px 0;border-bottom:1px solid var(--line-2)}
.feed .fi:last-child{border-bottom:0}
.feed .ico{width:28px;height:28px;border-radius:8px;background:var(--surface-3);display:grid;place-items:center;color:var(--ink-2)}
.feed .ico svg{width:15px;height:15px}
.feed .when{font-size:12px;color:var(--muted);white-space:nowrap}

/* impostazioni */
.set-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.set-card{padding:14px 16px}
.set-card h3{margin:0 0 3px;font-size:14.5px;font-weight:650;display:flex;gap:8px;align-items:center}
.set-card h3 svg{width:16px;height:16px;color:var(--muted)}
.set-card p{margin:0 0 10px;font-size:12.5px;color:var(--muted)}
.set-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.set-card li{border-top:1px solid var(--line-2)}
.set-card li a{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13.5px;color:var(--ink);text-decoration:none}
.set-card li a:hover .nm{text-decoration:underline;text-underline-offset:2px}
.set-card li a.dis{color:var(--muted)}
.set-card li .inh{margin-left:auto}
.set-card li .desc{display:block;font-size:12px;color:var(--muted)}
.toggle{position:relative;width:36px;height:20px;border-radius:20px;background:var(--line);border:0;cursor:pointer;flex:none}
.toggle::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.toggle.on{background:var(--ok)}
.toggle.on::after{left:18px}
.steps{display:flex;flex-direction:column}
.steps .s{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-2)}
.steps .s:last-child{border-bottom:0}
.steps .s .i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--surface-3);color:var(--ink-2)}
.steps .s.done .i{background:var(--ok);color:#fff}
.steps .s.prob .i{background:var(--bad);color:#fff}

/* documento (fattura) */
.doc-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.sticky{position:sticky;top:70px}
.tot{display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.tot div{display:flex;justify-content:space-between}
.tot .g{font-family:var(--f-display);font-size:22px;font-weight:650;border-top:1px solid var(--line);padding-top:10px;margin-top:4px}
details.adv{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
details.adv summary{padding:12px 16px;cursor:pointer;font-weight:600;list-style:none;display:flex;gap:8px;align-items:center}
details.adv summary::-webkit-details-marker{display:none}
details.adv summary::before{content:"▸";color:var(--muted);transition:transform .15s}
details.adv[open] summary::before{transform:rotate(90deg)}
details.adv .bd{padding:0 16px 16px}
.flow{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.flow .fx{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);min-width:132px;cursor:pointer;text-decoration:none;color:inherit}
.flow .fx span{font-size:11.5px;color:var(--muted)}
.flow .fx b{font-size:13px}
.flow .ar{color:var(--muted)}
.flow .fx.ghost{border-style:dashed;background:transparent;color:var(--muted)}

/* ---------- sovrapposizioni proprie (palette, menu, toast) ---------- */
.scrim{position:fixed;inset:0;background:rgba(20,19,15,.42);z-index:1080;display:none}
.scrim.show{display:block}
.pal{position:fixed;z-index:1095;left:50%;top:12vh;transform:translateX(-50%);width:min(640px,calc(100vw - 32px));background:var(--surface);border-radius:14px;box-shadow:var(--shadow);border:1px solid var(--line);display:none;flex-direction:column;overflow:hidden}
.pal.show{display:flex}
.pal input{border:0;border-bottom:1px solid var(--line);height:52px;padding:0 18px;font-size:16px;background:transparent;outline:0;width:100%;color:var(--ink)}
.pal .res{max-height:52vh;overflow-y:auto;padding:6px}
.pal .grp{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:10px 12px 4px;font-weight:600}
.pal .ri{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:13.5px;color:var(--ink);text-decoration:none}
.pal .ri.on,.pal .ri:hover{background:var(--surface-3);text-decoration:none;color:var(--ink)}
.pal .ri .w{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}
.pal .ri svg{width:16px;height:16px;color:var(--muted);flex:none}
.pal .ri .old{font-size:11.5px;color:var(--muted)}
.pal .ft{border-top:1px solid var(--line-2);padding:8px 14px;font-size:12px;color:var(--muted);display:flex;gap:14px}
.pal .ft kbd{font-family:var(--f-mono);font-size:11px;background:none;color:inherit;padding:0}
.se-menu{position:fixed;z-index:1096;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:6px;min-width:240px;display:none}
.se-menu.show{display:block}
.se-menu .mi{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:13.5px;color:var(--ink);text-decoration:none;background:none;border:0;width:100%;text-align:left}
.se-menu .mi:hover{background:var(--surface-3);text-decoration:none;color:var(--ink)}
.se-menu .mi small{margin-left:auto;color:var(--muted);font-size:11.5px}
.se-menu .mi.on{font-weight:600}
.se-menu .mi .dot{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-weight:700;font-size:11px;color:#fff;flex:none}
.se-menu .ms{height:1px;background:var(--line-2);margin:5px 4px}
.se-menu .mg{font-size:12.5px;color:var(--ink);padding:10px 10px 3px;font-weight:700}
.se-menu .mg:first-child{padding-top:4px}
.se-menu .mi.dis{opacity:.45;pointer-events:none}
.se-menu .mi svg{width:15px;height:15px;flex:none;color:var(--muted)}
/* griglie (js/se-ui.js, «griglie»): colonne nascoste, titolo-collegamento, scelta delle colonne */
.se-col-off{display:none!important}
/* il dettaglio che si apre nella riga (kartik ExpandRowColumn) non allarga la griglia: se e' piu'
   largo scorre dentro di se'. Prima allargava la tabella, e la griglia per starci nascondeva
   le colonne della riga di base (Numero, Totale) (13/10) */
.kv-expanded-row{contain:inline-size;overflow-x:auto}
/* piede delle griglie: conteggio e pagine vanno a capo su schermi stretti (prima il pager
   usciva dalla pagina e la faceva scorrere in orizzontale) */
.tbl-foot{flex-wrap:wrap;row-gap:6px}
.tbl-foot .pagination,body.se-body .pagination{flex-wrap:wrap;max-width:100%}
body.se-body .table tbody a.rowlink:not(.btn){color:var(--ink);font-weight:600;text-decoration:none}
body.se-body .table tbody a.rowlink:not(.btn):hover{color:var(--ink);text-decoration:underline}
.se-menu .mc{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:7px;font-size:13px;cursor:pointer;margin:0;font-weight:400}
.se-menu .mc:hover{background:var(--surface-3)}
.se-colbar{display:flex;justify-content:flex-end;margin-bottom:8px}
.btn-toolbar .se-colonne{margin-right:6px}
.se-toast{position:fixed;z-index:1099;left:50%;bottom:24px;transform:translateX(-50%) translateY(30px);opacity:0;background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:10px;font-size:13.5px;transition:all .2s;pointer-events:none;max-width:calc(100vw - 32px)}
.se-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- grafici ---------- */
.viz{display:block;width:100%;height:auto;overflow:visible}
.viz text{font-family:var(--f-body);font-size:12px;fill:var(--muted)}
.viz .gl{stroke:var(--grid);stroke-width:1}
/* Grafico.php: zone del passaggio del mouse, valore finale della linea, legenda tratteggiata */
.viz .hit{fill:transparent}
.viz text.lv{fill:var(--ink-2);font-weight:600}
.legend i.dash{background:none!important;border-top:2px dashed var(--ink-2);height:0;border-radius:0}
/* barre orizzontali: colori dalla serie, righe che possono essere link */
.hb .t i.s1{background:var(--s1)} .hb .t i.s2{background:var(--s2)} .hb .t i.s3{background:var(--s3)}
a.r{color:inherit;text-decoration:none} a.r:hover span:first-child{color:var(--ink)}
/* cruscotto (site/index.php) */
.stack.gap-s{gap:8px}
.num.big{font-family:var(--f-display);font-size:21px;font-weight:650;line-height:1.2}
.ev-tx{min-width:0}
.evcard .t{font-weight:600;line-height:1.3}
.evcard .m{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:5px;font-size:12.5px;color:var(--muted)}
.task .q-bad,.q-bad{color:var(--bad);font-weight:600}
.se-tbl td.nowrap{white-space:nowrap} .se-tbl td.strong{font-weight:600}
.se-tbl td.cella-espandi{vertical-align:top}
.se-tbl td.cella-espandi .se-btn svg{width:14px;height:14px}
.se-select.sm{height:32px;padding:0 28px 0 10px;font-size:13px;width:auto}
/* schede della home dei Report (site/report.php): tutta la scheda e' il link */
body.se-body a.rep-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none;min-width:0}
body.se-body a.rep-card:hover{border-color:var(--ink-2);background:var(--surface-2);text-decoration:none;color:var(--ink)}
a.rep-card .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
body.se-body a.rep-card>svg{flex:none;width:84px;height:auto}
a.rep-card>.muted svg{width:16px;height:16px}
/* indicatori su telefono: due per riga, curvetta che si adatta (una colonna sola occupava tre schermate) */
@media (max-width:640px){body.se-body .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi .v{font-size:20px}.kpi svg{width:100%;height:auto}.kpi .d{font-size:11.5px}}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);margin-top:6px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.hb{display:flex;flex-direction:column;gap:7px}
.hb .r{display:grid;grid-template-columns:minmax(90px,38%) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:12.5px}
.hb .r span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.hb .t{height:10px;background:var(--surface-3);border-radius:4px;overflow:hidden}
.hb .t i{display:block;height:100%;border-radius:0 4px 4px 0}
.hb .v{font-variant-numeric:tabular-nums;font-weight:600;min-width:42px;text-align:right}
.stk{display:flex;gap:2px;height:14px;border-radius:5px;overflow:hidden}
.stk i{display:block;height:100%}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0;text-decoration:none;color:inherit}
a.kpi:hover{border-color:#c9c6bb;text-decoration:none;color:inherit}
.kpi .l{font-size:12px;color:var(--muted)}
.kpi .v{font-family:var(--f-display);font-size:23px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.15}
.kpi .d{font-size:12px;font-weight:600}
.kpi .d.up{color:var(--ok)} .kpi .d.down{color:var(--bad)} .kpi .d.flat{color:var(--muted)}
.kpi svg{margin-top:4px}
#se-tip{position:fixed;z-index:1120;pointer-events:none;background:var(--ink);color:var(--surface);font-size:12px;line-height:1.35;padding:6px 9px;border-radius:7px;box-shadow:var(--shadow);opacity:0;transition:opacity .08s;max-width:260px;white-space:pre-line}
#se-tip.show{opacity:1}

/* ---------- responsive ---------- */
@media (max-width:1180px){.p360{grid-template-columns:260px minmax(0,1fr)}.p360 .rt{grid-column:1/-1}.set-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1040px){.cols,.doc-grid{grid-template-columns:minmax(0,1fr)}.sticky{position:static}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats>*:nth-child(3){border-left:0}.stats>*:nth-child(n+3){border-top:1px solid var(--line-2)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:960px){
  .app{grid-template-columns:minmax(0,1fr)}
  /* il cassetto sta SOPRA il velo (.scrim 1080): prima era sotto e le voci non si potevano toccare */
  .side{position:fixed;left:0;top:0;bottom:0;width:280px;max-width:86vw;z-index:1090;transform:translateX(-102%);transition:transform .2s ease;padding-top:calc(14px + env(safe-area-inset-top,0px));overscroll-behavior:contain;height:auto;height:100dvh;padding-bottom:0}
  /* iPhone: il cassetto e' alto quanto lo schermo visibile (100dvh: la barra di Safari non lo copre) e la riga
     dell'utente resta ferma in fondo anche quando le aree sono piu' dello schermo */
  .side-foot{position:sticky;bottom:0;z-index:2;background:var(--nav);padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .side.open{transform:none;box-shadow:var(--shadow)}
  body.se-nav-aperta{overflow:hidden}
  nav.se-nav a{padding:10px 10px}
  .side-tg{width:38px;height:38px}
  .top .burger{display:grid;width:40px;height:40px;margin-left:-6px}
  .top-logo{display:flex}
  .top{padding:0 16px;top:env(safe-area-inset-top,0px)}
  .scope-bar{padding:7px 16px}
  .page{padding:18px 16px 90px}
  .se-foot{padding:10px 16px}
  .hub{grid-template-columns:minmax(0,1fr)}
  .subnav{position:static;flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.area-hub .subnav .g{display:none}
.area-hub .subnav a{white-space:nowrap}
  .subnav .g{display:none}
  .subnav a{white-space:nowrap;flex:none}
  .subnav a.on{box-shadow:inset 0 -2px 0 var(--brand)}
  .p360{grid-template-columns:minmax(0,1fr)}
  .cols.even{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .grid2,.grid3,.grid4{grid-template-columns:minmax(0,1fr)}.span2{grid-column:auto}
  .set-grid{grid-template-columns:minmax(0,1fr)}
  .kv{grid-template-columns:minmax(0,1fr);gap:2px 0}.kv dd{margin-bottom:8px}
  .ph h1{font-size:22px}.rec-head h1{font-size:20px}
  .crumbs .mid{display:none}
  .se-card .hd{flex-wrap:wrap}
  .scope-bar .long{display:none}
  .rec-head .acts{width:100%}
  .kpis{grid-template-columns:minmax(0,1fr)}
}
@media (min-width:641px){.scope-bar .short{display:none}}

/* ---------- crea al volo (components/ui/CreaAlVolo.php, js/se-ui.js) ----------
   Il pannello che, dentro una modale, crea l'elemento che manca in una tendina. */
.cav{margin:8px 0 16px;padding:14px 16px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.cav[hidden]{display:none}
.cav-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cav-hd b{display:inline-flex;align-items:center;gap:6px;font-weight:650;color:var(--ink)}
.cav-hd b svg{width:16px;height:16px}
.cav-hd .iconbtn{width:28px;height:28px}
.cav-nota{margin:4px 0 12px;font-size:13px;line-height:1.45;color:var(--muted)}
.cav-campi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.cav-f{display:flex;flex-direction:column;gap:4px;min-width:0}
.cav-f[hidden]{display:none}
.cav-largo{grid-column:1/-1}
.cav-l{font-size:12.5px;font-weight:600;color:var(--ink-2);margin:0}
.cav-obbl{color:var(--bad)}
.cav-aiuto{font-size:12px;line-height:1.4;color:var(--muted)}
.cav-radio{display:flex;flex-wrap:wrap;gap:6px}
.cav-radio .chip{position:relative;margin:0}
.cav-radio input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.cav-radio .chip:focus-within{outline:2px solid var(--brand);outline-offset:1px}
.cav-check{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:400;margin:0;color:var(--ink-2)}
body.se-body .cav .form-control[data-noautofill][readonly]{background:var(--surface);color:var(--ink)}
.cav-az{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.cav-esito{font-size:13px;color:var(--muted)}
.cav-esito.ok{color:var(--ok)}
.cav-esito.bad{color:var(--bad)}
.se-btn.cav-apri{white-space:nowrap}
.se-btn.cav-apri svg{width:14px;height:14px}
@media (max-width:560px){.cav-campi{grid-template-columns:minmax(0,1fr)}}

/* =====================================================================
   3. PONTE: Bootstrap 4 + AdminLTE 3 + Kartik dentro il nuovo look
   Vale per le viste NON ancora riscritte. Ogni regola qui e' un debito che
   la riscrittura della vista estingue.
   ===================================================================== */
/* AdminLTE: il body non porta piu' le classi di layout, ma il suo css tocca
   ancora font e sfondo di body e .content-wrapper: si riportano ai token. */
/* il body no: il suo sfondo e' var(--bg) della parte 2 (se trasparente si vede lo sfondo di default del browser, scuro col tema scuro del sistema) */
body.se-body .content-wrapper,body.se-body .content{background:transparent;color:var(--ink);font-family:var(--f-body)}
body.se-body .wrapper{min-height:0}
body.se-body h1,body.se-body h2,body.se-body h3,body.se-body h4,body.se-body h5,body.se-body h6,body.se-body .h1,body.se-body .h2,body.se-body .h3,body.se-body .h4,body.se-body .h5{font-family:var(--f-body);color:var(--ink);font-weight:650}
body.se-body h1,body.se-body .h1{font-family:var(--f-display);font-size:24px;letter-spacing:-.015em}
body.se-body h2,body.se-body .h2{font-size:19px}
body.se-body h3,body.se-body .h3{font-size:16px}
body.se-body h4,body.se-body .h4{font-size:14.5px}
body.se-body h5,body.se-body .h5{font-size:13.5px}
body.se-body .text-muted{color:var(--muted)!important}
body.se-body hr{border-top-color:var(--line-2)}
body.se-body .small,body.se-body small{font-size:12.5px}

/* card di Bootstrap/AdminLTE → superficie nuova */
body.se-body .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:none;margin-bottom:16px}
body.se-body .card-header{background:transparent;border-bottom:1px solid var(--line-2);padding:13px 16px;border-radius:var(--r) var(--r) 0 0}
body.se-body .card-header .card-title{font-size:14.5px;font-weight:650;margin:0;float:none;display:inline-flex;align-items:center;gap:8px}
body.se-body .card-body{padding:14px 16px}
body.se-body .card-footer{background:var(--surface-2);border-top:1px solid var(--line-2);padding:10px 16px;border-radius:0 0 var(--r) var(--r)}
body.se-body .card.card-primary:not(.card-outline)>.card-header,body.se-body .card.card-info:not(.card-outline)>.card-header,body.se-body .card.card-success:not(.card-outline)>.card-header,body.se-body .card.card-warning:not(.card-outline)>.card-header,body.se-body .card.card-danger:not(.card-outline)>.card-header,body.se-body .card.card-secondary:not(.card-outline)>.card-header,body.se-body .card.card-dark:not(.card-outline)>.card-header{background:var(--surface-2);color:var(--ink)}
body.se-body .card.card-primary:not(.card-outline)>.card-header .card-title,body.se-body .card.card-info:not(.card-outline)>.card-header .card-title,body.se-body .card.card-success:not(.card-outline)>.card-header .card-title,body.se-body .card.card-warning:not(.card-outline)>.card-header .card-title,body.se-body .card.card-danger:not(.card-outline)>.card-header .card-title{color:var(--ink)}
body.se-body .card-outline{border-top-width:1px}
body.se-body .card.card-outline.card-primary,body.se-body .card.card-outline.card-info,body.se-body .card.card-outline.card-success,body.se-body .card.card-outline.card-warning,body.se-body .card.card-outline.card-danger{border-top:1px solid var(--line)}
body.se-body .card .btn-tool{color:var(--muted)}
body.se-body .callout{background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--info);border-radius:var(--r-sm);box-shadow:none}
body.se-body .callout.callout-warning{border-left-color:var(--warn)}
body.se-body .callout.callout-danger{border-left-color:var(--bad)}
body.se-body .callout.callout-success{border-left-color:var(--ok)}
body.se-body .info-box,body.se-body .small-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:none;color:var(--ink)}
body.se-body .small-box .inner h3{font-family:var(--f-display)}
body.se-body .small-box>.small-box-footer{background:var(--surface-2);color:var(--ink-2)}
body.se-body .small-box.bg-info,body.se-body .small-box.bg-success,body.se-body .small-box.bg-warning,body.se-body .small-box.bg-danger,body.se-body .small-box.bg-primary,body.se-body .info-box.bg-info,body.se-body .info-box.bg-success,body.se-body .info-box.bg-warning,body.se-body .info-box.bg-danger{background:var(--surface)!important;color:var(--ink)!important}
body.se-body .small-box .icon{color:rgba(28,27,23,.08)}
body.se-body .info-box .info-box-icon{border-radius:var(--r-sm) 0 0 var(--r-sm);background:var(--surface-3)!important;color:var(--ink-2)}

/* bottoni Bootstrap → forme nuove. `btn-primary`/`btn-success` = azione principale. */
body.se-body .btn{border-radius:8px;font-weight:500;font-size:13.5px;padding:0 13px;height:34px;display:inline-flex;align-items:center;gap:7px;line-height:1;box-shadow:none;white-space:nowrap}
body.se-body .btn-sm,body.se-body .btn-group-sm>.btn{height:28px;padding:0 10px;font-size:12.5px;border-radius:7px}
body.se-body .btn-xs{height:24px;padding:0 8px;font-size:12px;border-radius:6px}
body.se-body .btn-lg,body.se-body .btn-group-lg>.btn{height:40px;padding:0 16px;font-size:14.5px}
body.se-body .btn-block{width:100%;justify-content:center}
body.se-body .btn-primary,body.se-body .btn-success,body.se-body .btn-info{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}
body.se-body .btn-primary:hover,body.se-body .btn-success:hover,body.se-body .btn-info:hover,body.se-body .btn-primary:focus,body.se-body .btn-success:focus,body.se-body .btn-info:focus{background:var(--brand-hover);border-color:var(--brand-hover);color:var(--brand-ink);box-shadow:none}
body.se-body .btn-primary:not(:disabled):not(.disabled):active,body.se-body .btn-success:not(:disabled):not(.disabled):active{background:var(--brand-hover);border-color:var(--brand-hover);color:var(--brand-ink)}
body.se-body .btn-secondary,body.se-body .btn-default,body.se-body .btn-light,body.se-body .btn-outline-primary,body.se-body .btn-outline-secondary,body.se-body .btn-outline-info,body.se-body .btn-outline-success,body.se-body .btn-outline-dark{background:var(--surface);border-color:var(--line);color:var(--ink)}
body.se-body .btn-secondary:hover,body.se-body .btn-default:hover,body.se-body .btn-light:hover,body.se-body .btn-outline-primary:hover,body.se-body .btn-outline-secondary:hover,body.se-body .btn-outline-info:hover,body.se-body .btn-outline-success:hover,body.se-body .btn-outline-dark:hover{background:var(--surface-2);border-color:#cfccc2;color:var(--ink)}
body.se-body .btn-danger,body.se-body .btn-outline-danger{background:var(--surface);border-color:var(--line);color:var(--bad)}
body.se-body .btn-danger:hover,body.se-body .btn-outline-danger:hover{background:var(--bad-soft);border-color:var(--bad-soft);color:var(--bad)}
body.se-body .btn-warning,body.se-body .btn-outline-warning{background:var(--surface);border-color:var(--line);color:var(--warn)}
body.se-body .btn-warning:hover{background:var(--warn-soft);border-color:var(--warn-soft);color:var(--warn)}
body.se-body .btn-dark{background:var(--ink);border-color:var(--ink);color:var(--surface)}
body.se-body .btn-link{color:var(--info);height:auto;padding:0;display:inline}
body.se-body .btn:focus,body.se-body .btn.focus{box-shadow:0 0 0 2px var(--focus)}
body.se-body .btn-group>.btn{border-radius:0}
body.se-body .btn-group>.btn:first-child{border-radius:8px 0 0 8px}
body.se-body .btn-group>.btn:last-child{border-radius:0 8px 8px 0}
body.se-body .btn-group>.btn:only-child{border-radius:8px}
body.se-body .btn .fa,body.se-body .btn .fas,body.se-body .btn .far{font-size:12.5px}

/* form Bootstrap + kartik */
body.se-body .form-control,body.se-body .custom-select,body.se-body .form-control-sm{height:34px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0 10px;color:var(--ink);font-size:13.5px;box-shadow:none}
body.se-body textarea.form-control{height:auto;padding:8px 10px;min-height:70px}
body.se-body .form-control:focus,body.se-body .custom-select:focus{outline:2px solid var(--focus);outline-offset:-1px;border-color:transparent;box-shadow:none}
body.se-body .form-control.is-invalid,body.se-body .has-error .form-control{border-color:var(--bad)}
body.se-body .invalid-feedback,body.se-body .help-block{font-size:12px;color:var(--bad)}
body.se-body label,body.se-body .control-label,body.se-body .col-form-label{font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:5px}
body.se-body .form-group{margin-bottom:14px}
body.se-body .input-group-text{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;color:var(--muted);font-size:13px;height:34px}
body.se-body .input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}
body.se-body .input-group>.input-group-append>.btn,body.se-body .input-group>.input-group-append>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}
body.se-body .input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}
body.se-body .custom-control-label::before{border-color:var(--line);background:var(--surface)}
body.se-body .custom-control-input:checked~.custom-control-label::before{background:var(--ink);border-color:var(--ink)}
body.se-body .custom-switch .custom-control-input:checked~.custom-control-label::before{background:var(--ok);border-color:var(--ok)}
/* Select2 (kartik/krajee) */
body.se-body .select2-container--krajee-bs4 .select2-selection,body.se-body .select2-container--default .select2-selection--single,body.se-body .select2-container--default .select2-selection--multiple{border:1px solid var(--line);border-radius:8px;background:var(--surface);min-height:34px;box-shadow:none}
body.se-body .select2-container--krajee-bs4 .select2-selection--single{height:34px}
body.se-body .select2-container--krajee-bs4 .select2-selection--single .select2-selection__rendered{line-height:32px;padding-left:10px;color:var(--ink);font-size:13.5px}
body.se-body .select2-container--krajee-bs4 .select2-selection--single .select2-selection__arrow{height:32px}
body.se-body .select2-container--krajee-bs4.select2-container--focus .select2-selection,body.se-body .select2-container--krajee-bs4.select2-container--open .select2-selection{border-color:transparent;outline:2px solid var(--focus);outline-offset:-1px;box-shadow:none}
body.se-body .select2-container--krajee-bs4 .select2-dropdown{border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);overflow:hidden;background:var(--surface)}
body.se-body .select2-container--krajee-bs4 .select2-results__option--highlighted[aria-selected]{background:var(--surface-3);color:var(--ink)}
body.se-body .select2-container--krajee-bs4 .select2-results__option[aria-selected=true]{background:var(--brand-soft);color:var(--ink)}
body.se-body .select2-container--krajee-bs4 .select2-search--dropdown .select2-search__field{border:1px solid var(--line);border-radius:7px;height:32px}
body.se-body .select2-container--krajee-bs4 .select2-selection--multiple .select2-selection__choice{background:var(--surface-3);border:1px solid var(--line);border-radius:5px;color:var(--ink);font-size:12.5px}
/* datepicker / datecontrol */
body.se-body .kv-drp-dropdown .form-control,body.se-body .krajee-datepicker{border-radius:8px}
body.se-body .datepicker{border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);font-family:var(--f-body)}
body.se-body .datepicker table tr td.active,body.se-body .datepicker table tr td.active:hover{background:var(--ink)!important;background-image:none;color:var(--surface)}
body.se-body .datepicker table tr td.today{background:var(--brand-soft)!important;background-image:none;color:var(--ink)}

/* tabelle Bootstrap + GridView (kartik e yii) */
body.se-body .table{color:var(--ink);font-size:13.5px;margin-bottom:0}
body.se-body .table th,body.se-body .table thead th{background:var(--surface-2);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line);border-top:0;vertical-align:middle;white-space:nowrap}
body.se-body .table td{padding:10px 12px;border-top:0;border-bottom:1px solid var(--line-2);vertical-align:middle}
body.se-body .table tbody tr:last-child td{border-bottom:0}
body.se-body .table-hover tbody tr:hover,body.se-body .table-striped tbody tr:nth-of-type(odd):hover{background:var(--surface-2);color:var(--ink)}
body.se-body .table-striped tbody tr:nth-of-type(odd){background:transparent}
body.se-body .table-bordered,body.se-body .table-bordered td,body.se-body .table-bordered th{border-color:var(--line-2)}
body.se-body .table-sm td,body.se-body .table-sm th{padding:6px 10px}
body.se-body .table .filters td{background:var(--surface);padding:6px 8px}
body.se-body .table .filters .form-control{height:30px;font-size:12.5px}
body.se-body .table a:not(.btn){color:var(--info)}
body.se-body .table .action-column a,body.se-body .table .kv-action-column a{color:var(--ink-2);margin:0 3px}
body.se-body .table .action-column a:hover,body.se-body .table .kv-action-column a:hover{color:var(--ink)}
body.se-body .table thead th a{color:var(--muted)}
body.se-body .table thead th a.asc::after,body.se-body .table thead th a.desc::after{color:var(--ink)}
body.se-body .kv-grid-container{border-radius:var(--r);overflow:hidden}
body.se-body .kv-grid-table{margin:0}
body.se-body .kv-panel-before,body.se-body .kv-panel-after{background:var(--surface);border:0;padding:10px 12px}
body.se-body .kv-grid-container .card-header,body.se-body .kv-grid-container .panel-heading{background:var(--surface);padding:12px 16px}
body.se-body .kv-grid-container .card-header .card-title,body.se-body .kv-grid-container .panel-title{font-size:14.5px;font-weight:650;color:var(--ink)}
body.se-body .kv-grid-container.card-primary>.card-header,body.se-body .kv-grid-container.card-info>.card-header,body.se-body .kv-grid-container.card-success>.card-header,body.se-body .kv-grid-container.card-default>.card-header{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line-2)}
body.se-body .kv-grid-container .card-footer,body.se-body .kv-grid-container .panel-footer{background:var(--surface-2);border-top:1px solid var(--line-2)}
body.se-body .kv-grid-container .card-footer .summary,body.se-body .summary{font-size:12.5px;color:var(--muted)}
body.se-body .kv-table-wrap{border-radius:0}
body.se-body .kv-grid-container .kv-toolbar-container,body.se-body .kv-grid-toolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
body.se-body .kv-grid-container .btn-toolbar .btn{height:30px;padding:0 10px;font-size:12.5px}
body.se-body .kv-page-summary td{background:var(--surface-2);font-weight:600}
body.se-body .grid-view .empty,body.se-body .kv-grid-table .empty{padding:24px;text-align:center;color:var(--muted)}
body.se-body .pagination{margin:12px 0 0;gap:2px}
body.se-body .page-link{border:1px solid transparent;border-radius:7px!important;color:var(--ink-2);padding:5px 10px;font-size:13px;margin:0 1px;background:transparent}
body.se-body .page-link:hover{background:var(--surface-3);color:var(--ink)}
body.se-body .page-item.active .page-link{background:var(--ink);border-color:var(--ink);color:var(--surface)}
body.se-body .page-item.disabled .page-link{color:var(--muted);background:transparent}

/* DetailView */
body.se-body .detail-view th{width:220px;background:var(--surface-2);color:var(--muted);font-weight:500;text-transform:none;letter-spacing:0;font-size:13px}
body.se-body .detail-view td{font-size:13.5px}
/* DetailView (kartik): tutte le righe sulla stessa griglia (30/09).
   kartik mette ogni riga a piu' campi in una tabella annidata (kv-child-table) che il browser
   dimensiona per conto suo: da una riga all'altra le colonne non si allineavano mai, e le
   larghezze scritte nelle viste (10%, 20%) peggioravano le cose. Ogni riga diventa una griglia
   etichetta | valore | etichetta | valore, con l'etichetta sempre larga --kv-l. */
body.se-body{--kv-l:clamp(150px,20%,230px)}
body.se-body .kv-detail-view{overflow-x:visible}
body.se-body table.detail-view{width:100%}
body.se-body table.detail-view>tbody,body.se-body table.kv-child-table>tbody{display:block;width:100%}
body.se-body table.detail-view>tbody>tr{display:grid;grid-template-columns:var(--kv-l) minmax(0,1fr);width:100%}
body.se-body table.detail-view>tbody>tr>th[colspan],body.se-body table.detail-view>tbody>tr>td[colspan]{grid-column:1/-1}
body.se-body table.detail-view>tbody>tr>td.kv-child-table-cell{padding:0;border:0}
body.se-body table.kv-child-table{width:100%;margin:0;border:0}
body.se-body table.kv-child-table tr{display:grid;grid-template-columns:var(--kv-l) minmax(0,1fr) var(--kv-l) minmax(0,1fr);width:100%}
body.se-body table.detail-view th,body.se-body table.detail-view td{width:auto!important;min-width:0}
body.se-body table.detail-view th{display:flex;align-items:center;white-space:normal;line-height:1.3}
body.se-body table.detail-view th[hidden]{display:none}
/* una coppia sola (o l'ultima di tre) prende il resto della riga */
body.se-body table.kv-child-table td:last-child:not(:nth-child(4n)){grid-column:span 3}
/* riga che comincia con un interruttore (etichetta nascosta, interruttore, etichetta, campo):
   l'etichetta va davanti come nelle altre righe, poi l'interruttore e il campo */
body.se-body table.kv-child-table tr:has(>th[hidden]:first-child){grid-template-columns:var(--kv-l) auto minmax(0,1fr)}
body.se-body table.kv-child-table tr:has(>th[hidden]:first-child)>th:not([hidden]){order:-1}
body.se-body table.kv-child-table tr:has(>th[hidden]:first-child)>td:last-child{grid-column:auto}
body.se-body table.detail-view .form-control,body.se-body table.detail-view .select2-container,body.se-body table.detail-view .input-group{max-width:100%}
/* righe con etichette nascoste in mezzo (un valore che accompagna il precedente, es. «Ok CF»
   dopo il codice fiscale, o la striscia di riepilogo in testa ai dati anagrafici): una riga che
   va a capo, con l'etichetta visibile sempre larga --kv-l e i valori «senza etichetta» stretti */
body.se-body table.kv-child-table tr:has(>th[hidden]:not(:first-child)){display:flex;flex-wrap:wrap;align-items:stretch}
body.se-body table.kv-child-table tr:has(>th[hidden]:not(:first-child))>th{flex:0 0 var(--kv-l)}
body.se-body table.kv-child-table tr:has(>th[hidden]:not(:first-child))>td{flex:1 1 160px}
body.se-body table.kv-child-table tr:has(>th[hidden]:not(:first-child))>th[hidden]+td{flex:0 1 auto}
/* conta la larghezza della scheda, non dello schermo: accanto al menu di una scheda-hub la
   tabella e' stretta anche su un computer. Sotto i 720px un campo per riga, sotto i 460px
   l'etichetta sopra il valore. */
body.se-body .kv-detail-view{container-type:inline-size}
@container (max-width:720px){
  body.se-body table.kv-child-table tr{grid-template-columns:var(--kv-l) minmax(0,1fr)}
  body.se-body table.kv-child-table td:last-child:not(:nth-child(4n)){grid-column:auto}
}
@container (max-width:460px){
  body.se-body table.detail-view>tbody>tr,body.se-body table.kv-child-table tr,body.se-body table.kv-child-table tr:has(>th[hidden]:first-child){grid-template-columns:minmax(0,1fr)}
  body.se-body table.kv-child-table tr:has(>th[hidden]:first-child)>td:last-child{grid-column:auto}
  body.se-body table.kv-child-table tr:has(>th[hidden]:not(:first-child)){display:grid;grid-template-columns:minmax(0,1fr)}
  body.se-body table.detail-view th{border-bottom:0;padding-bottom:2px}
}
/* immagine che manca (js/se-ui.js): il marchio della piattaforma, leggero, al posto dell'icona rotta */
body.se-body img.se-img-vuota{object-fit:contain;opacity:.25;filter:grayscale(1);background:var(--surface-2);padding:12%;box-sizing:border-box;min-width:48px;min-height:48px}

/* tab e pill Bootstrap → linguette nuove */
body.se-body .nav-tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:14px;flex-wrap:nowrap;overflow-x:auto}
body.se-body .nav-tabs .nav-link{border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:9px 12px;font-size:13.5px;font-weight:500;color:var(--muted);border-radius:0;white-space:nowrap;background:transparent}
body.se-body .nav-tabs .nav-link:hover{color:var(--ink);border-color:transparent transparent var(--line)}
body.se-body .nav-tabs .nav-link.active{color:var(--ink);border-bottom-color:var(--ink);font-weight:600;background:transparent}
body.se-body .nav-tabs .nav-link .badge{margin-left:4px}
body.se-body .card-tabs .card-header{padding:0 8px}
body.se-body .card-tabs .card-header .nav-tabs{margin-bottom:0}
body.se-body .nav-pills .nav-link{border-radius:999px;color:var(--ink-2);font-size:13px;padding:5px 12px}
body.se-body .nav-pills .nav-link.active{background:var(--ink);color:var(--surface)}
body.se-body .tab-content{padding-top:2px}

/* badge → pill */
body.se-body .badge{border-radius:5px;font-weight:600;font-size:11.5px;padding:3px 7px;letter-spacing:0}
body.se-body .badge-success,body.se-body .bg-success{background:var(--ok-soft)!important;color:var(--ok)!important}
body.se-body .badge-warning,body.se-body .bg-warning{background:var(--warn-soft)!important;color:var(--warn)!important}
body.se-body .badge-danger,body.se-body .bg-danger{background:var(--bad-soft)!important;color:var(--bad)!important}
body.se-body .badge-info,body.se-body .badge-primary,body.se-body .bg-info,body.se-body .bg-primary{background:var(--info-soft)!important;color:var(--info)!important}
body.se-body .badge-secondary,body.se-body .badge-light,body.se-body .badge-dark{background:var(--surface-3)!important;color:var(--ink-2)!important}
body.se-body .badge-pill{border-radius:999px}

/* alert e flash */
body.se-body .alert{border:1px solid transparent;border-radius:9px;font-size:13px;padding:11px 14px;box-shadow:none}
body.se-body .alert-success{background:var(--ok-soft);color:var(--ok)}
body.se-body .alert-warning{background:var(--warn-soft);color:var(--warn)}
body.se-body .alert-danger,body.se-body .alert-error{background:var(--bad-soft);color:var(--bad)}
body.se-body .alert-info{background:var(--info-soft);color:var(--info)}
body.se-body .alert .close{color:inherit;opacity:.6;text-shadow:none}

/* modali (Bootstrap 4 + ajax-modal-popup) */
body.se-body .modal-content{border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);background:var(--surface);color:var(--ink)}
body.se-body .modal-header{padding:16px 20px 12px;border-bottom:1px solid var(--line-2);border-top:0}
body.se-body .modal-footer{border-bottom:0}
body.se-body .modal-header .modal-title,body.se-body .modal-header h4,body.se-body .modal-header h5{font-family:var(--f-display);font-size:19px;font-weight:650;margin:0}
body.se-body .modal-header .close{color:var(--muted);text-shadow:none;opacity:1;font-weight:400;padding:12px 16px;margin:-12px -16px -12px auto}
body.se-body .modal-body{padding:16px 20px}
body.se-body .modal-footer{padding:12px 20px;border-top:1px solid var(--line-2)}
body.se-body .modal-backdrop{background:#14130f}
body.se-body .modal-backdrop.show{opacity:.42}

/* dropdown Bootstrap */
body.se-body .dropdown-menu{border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:6px;font-size:13.5px;background:var(--surface)}
body.se-body .dropdown-item{border-radius:7px;padding:8px 10px;color:var(--ink)}
body.se-body .dropdown-item:hover,body.se-body .dropdown-item:focus{background:var(--surface-3);color:var(--ink)}
body.se-body .dropdown-divider{border-top-color:var(--line-2);margin:5px 4px}
body.se-body .dropdown-header{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:8px 10px 3px;font-weight:600}
/* Icone dei widget kartik ancora in Font Awesome (calendario e × di DatePicker, «Seleziona tutti / Deseleziona
   tutti» di Select2): disegnate con le icone del design system; stesso posto, stesso clic */
body.se-body .kv-dp-icon.fas,body.se-body .s2-togall-button .far{width:14px;height:14px;display:inline-block;vertical-align:-2px;background:currentColor;-webkit-mask:var(--se-ic) center/contain no-repeat;mask:var(--se-ic) center/contain no-repeat}
body.se-body .kv-dp-icon.fas::before,body.se-body .s2-togall-button .far::before{content:none}
body.se-body .kv-dp-icon.fa-calendar-alt{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E")}
body.se-body .kv-dp-icon.fa-times{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E")}
body.se-body .s2-togall-button .fa-square{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='3'/%3E%3C/svg%3E")}
body.se-body .s2-togall-button .fa-check-square{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='3'/%3E%3Cpath d='M8 12l3 3 5-6'/%3E%3C/svg%3E")}
/* Azioni di riga di kartik rimaste con le icone predefinite (Font Awesome pieno e blu: occhio, matita, cestino),
   per esempio nelle griglie Contatti, Indirizzi e Coordinate bancarie delle schede: le icone del design system,
   grigie come gli iconbtn. Stesso link, stesso clic; si disegna il ::before, lo <span> resta di kartik */
body.se-body .kv-grid-table td a > .fas.fa-eye::before,body.se-body .kv-grid-table td a > .fas.fa-pencil-alt::before,body.se-body .kv-grid-table td a > .fas.fa-trash-alt::before{content:"";display:inline-block;width:16px;height:16px;vertical-align:-3px;background:currentColor;-webkit-mask:var(--se-ic) center/contain no-repeat;mask:var(--se-ic) center/contain no-repeat}
body.se-body .kv-grid-table td a > .fas.fa-eye,body.se-body .kv-grid-table td a > .fas.fa-pencil-alt,body.se-body .kv-grid-table td a > .fas.fa-trash-alt{color:var(--ink-2)}
body.se-body .kv-grid-table td a:hover > .fas.fa-eye,body.se-body .kv-grid-table td a:hover > .fas.fa-pencil-alt{color:var(--ink)}
body.se-body .kv-grid-table td a:hover > .fas.fa-trash-alt{color:var(--bad)}
body.se-body .kv-grid-table td a > .fas.fa-eye{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E")}
body.se-body .kv-grid-table td a > .fas.fa-pencil-alt{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L19 9l-4-4L4 16z'/%3E%3C/svg%3E")}
body.se-body .kv-grid-table td a > .fas.fa-trash-alt{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13M10 11v6M14 11v6'/%3E%3C/svg%3E")}
/* campanella: il pallino delle comunicazioni da leggere */
.campanella-pallino{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--info);margin-right:8px;vertical-align:middle}

/* breadcrumb Bootstrap rimasto nelle viste (il vero percorso sta nella barra alta) */
body.se-body .breadcrumb{background:transparent;padding:0;margin:0 0 10px;font-size:12.5px}
body.se-body .content-header{padding:0 0 10px}
body.se-body .content-header h1{font-size:24px}
body.se-body .progress{border-radius:4px;background:var(--surface-3);height:8px}
body.se-body .progress-bar{background:var(--ink-2)}
body.se-body .list-group-item{border-color:var(--line-2);background:var(--surface);color:var(--ink)}
body.se-body .text-primary{color:var(--info)!important}
body.se-body .text-success{color:var(--ok)!important}
body.se-body .text-danger{color:var(--bad)!important}
body.se-body .text-warning{color:var(--warn)!important}
body.se-body .bg-light{background:var(--surface-2)!important}
body.se-body .border,body.se-body .border-top,body.se-body .border-bottom{border-color:var(--line-2)!important}
body.se-body .toast{border-radius:10px}
body.se-body pre{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px;font-family:var(--f-mono);font-size:12.5px;color:var(--ink)}
body.se-body code{font-family:var(--f-mono);color:var(--bad);font-size:12.5px}
/* fullcalendar */
body.se-body .fc .fc-toolbar h2{font-family:var(--f-display);font-size:19px}
body.se-body .fc .fc-button{border-radius:8px;background:var(--surface);border-color:var(--line);color:var(--ink);text-transform:none;font-size:13px}
body.se-body .fc .fc-button.fc-button-active,body.se-body .fc .fc-state-active{background:var(--ink);color:var(--surface);border-color:var(--ink);box-shadow:none}
body.se-body .fc th{background:var(--surface-2);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
body.se-body .fc-unthemed td,body.se-body .fc-unthemed th,body.se-body .fc-unthemed .fc-divider{border-color:var(--line-2)}
body.se-body .fc-unthemed td.fc-today{background:var(--brand-soft)}

/* Pagine ponte: la vista mette il suo html dentro `.content` di AdminLTE. Gli
   diamo il respiro del `.page` senza il suo max-width (le GridView larghe
   esistono, e finche' non sono riscritte non vanno strette). */
.page.legacy{max-width:none}
.page.legacy .container-fluid{padding:0}

/* ---------- righe colorate di Bootstrap nelle tabelle (DetailView, GridView) ----------
   Le intestazioni di sezione delle schede usano `table-info` (azzurro, piu' carico al
   passaggio del mouse): diventano una fascia neutra come le etichette di sezione. Le righe
   di stato prendono i colori tenui del tema. Al passaggio del mouse nessuna cambia colore. */
body.se-body .table tr.table-info>th,
body.se-body .table tr.table-info>td,
body.se-body .table-hover tbody tr.table-info:hover>th,
body.se-body .table-hover tbody tr.table-info:hover>td,
body.se-body .table-hover tbody tr.table-info:hover,
body.se-body .table tr.table-primary>th,
body.se-body .table tr.table-primary>td,
body.se-body .table-hover tbody tr.table-primary:hover>th,
body.se-body .table-hover tbody tr.table-primary:hover>td,
body.se-body .table-hover tbody tr.table-primary:hover,
body.se-body .table tr.table-secondary>th,
body.se-body .table tr.table-secondary>td,
body.se-body .table-hover tbody tr.table-secondary:hover>th,
body.se-body .table-hover tbody tr.table-secondary:hover>td,
body.se-body .table-hover tbody tr.table-secondary:hover,
body.se-body .table tr.table-active>th,
body.se-body .table tr.table-active>td,
body.se-body .table-hover tbody tr.table-active:hover>th,
body.se-body .table-hover tbody tr.table-active:hover>td,
body.se-body .table-hover tbody tr.table-active:hover,
body.se-body .table tr.table-light>th,
body.se-body .table tr.table-light>td,
body.se-body .table-hover tbody tr.table-light:hover>th,
body.se-body .table-hover tbody tr.table-light:hover>td,
body.se-body .table-hover tbody tr.table-light:hover,
body.se-body .table tr.table-dark>th,
body.se-body .table tr.table-dark>td,
body.se-body .table-hover tbody tr.table-dark:hover>th,
body.se-body .table-hover tbody tr.table-dark:hover>td,
body.se-body .table-hover tbody tr.table-dark:hover{background-color:var(--surface-3)!important;color:var(--ink-2)!important;border-color:var(--line)!important}
body.se-body .detail-view tr.table-info>th,body.se-body .detail-view tr.table-primary>th,body.se-body .detail-view tr.table-active>th{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)!important}
body.se-body .table tr.table-success>th,
body.se-body .table tr.table-success>td,
body.se-body .table-hover tbody tr.table-success:hover>th,
body.se-body .table-hover tbody tr.table-success:hover>td,
body.se-body .table-hover tbody tr.table-success:hover{background-color:var(--ok-soft)!important;color:var(--ink)!important}
body.se-body .table tr.table-warning>th,
body.se-body .table tr.table-warning>td,
body.se-body .table-hover tbody tr.table-warning:hover>th,
body.se-body .table-hover tbody tr.table-warning:hover>td,
body.se-body .table-hover tbody tr.table-warning:hover{background-color:var(--warn-soft)!important;color:var(--ink)!important}
body.se-body .table tr.table-danger>th,
body.se-body .table tr.table-danger>td,
body.se-body .table-hover tbody tr.table-danger:hover>th,
body.se-body .table-hover tbody tr.table-danger:hover>td,
body.se-body .table-hover tbody tr.table-danger:hover{background-color:var(--bad-soft)!important;color:var(--ink)!important}
body.se-body .detail-view.table-hover tbody tr:not([class*="table-"]):hover{background-color:var(--surface-2)}

/* =====================================================================
   PONTE SCURO — solo con il tema scuro, per le viste non ancora riscritte
   ===================================================================== */
/* Fondi chiari scritti a mano nelle viste vecchie (style="background-color:#f2f2f2"…):
   in scuro diventano la superficie del tema, col testo del tema. Lista chiusa di
   bianchi e grigi chiarissimi: i colori veri (rosso, giallo…) restano come sono. */
:root[data-theme="dark"] body.se-body [style*="background-color:#fff"],
:root[data-theme="dark"] body.se-body [style*="background-color: #fff"],
:root[data-theme="dark"] body.se-body [style*="background:#fff"],
:root[data-theme="dark"] body.se-body [style*="background: #fff"],
:root[data-theme="dark"] body.se-body [style*="background-color:#ffffff"],
:root[data-theme="dark"] body.se-body [style*="background-color: #ffffff"],
:root[data-theme="dark"] body.se-body [style*="background:#ffffff"],
:root[data-theme="dark"] body.se-body [style*="background: #ffffff"],
:root[data-theme="dark"] body.se-body [style*="background-color:#fefefe"],
:root[data-theme="dark"] body.se-body [style*="background-color: #fefefe"],
:root[data-theme="dark"] body.se-body [style*="background:#fefefe"],
:root[data-theme="dark"] body.se-body [style*="background: #fefefe"],
:root[data-theme="dark"] body.se-body [style*="background-color:#fdfdfd"],
:root[data-theme="dark"] body.se-body [style*="background-color: #fdfdfd"],
:root[data-theme="dark"] body.se-body [style*="background:#fdfdfd"],
:root[data-theme="dark"] body.se-body [style*="background: #fdfdfd"],
:root[data-theme="dark"] body.se-body [style*="background-color:#fafafa"],
:root[data-theme="dark"] body.se-body [style*="background-color: #fafafa"],
:root[data-theme="dark"] body.se-body [style*="background:#fafafa"],
:root[data-theme="dark"] body.se-body [style*="background: #fafafa"],
:root[data-theme="dark"] body.se-body [style*="background-color:#f9f9f9"],
:root[data-theme="dark"] body.se-body [style*="background-color: #f9f9f9"],
:root[data-theme="dark"] body.se-body [style*="background:#f9f9f9"],
:root[data-theme="dark"] body.se-body [style*="background: #f9f9f9"],
:root[data-theme="dark"] body.se-body [style*="background-color:#f8f9fa"],
:root[data-theme="dark"] body.se-body [style*="background-color: #f8f9fa"],
:root[data-theme="dark"] body.se-body [style*="background:#f8f9fa"],
:root[data-theme="dark"] body.se-body [style*="background: #f8f9fa"],
:root[data-theme="dark"] body.se-body [style*="background-color:#f8f8f8"],
:root[data-theme="dark"] body.se-body [style*="background-color: #f8f8f8"],
:root[data-theme="dark"] body.se-body [style*="background:#f8f8f8"],
:root[data-theme="dark"] body.se-body [style*="background: #f8f8f8"],
:root[data-theme="dark"] body.se-body [style*="background-color:#f7f7f7"],
:root[data-theme="dark"] body.se-body [style*="background-color: #f7f7f7"],
:root[data-theme="dark"] body.se-body [style*="background:#f7f7f7"],
:root[data-theme="dark"] body.se-body [style*="background: #f7f7f7"],
:root[data-theme="dark"] body.se-body [style*="background-color:#f5f5f5"],
:root[data-theme="dark"] body.se-body [style*="background-color: #f5f5f5"],
:root[data-theme="dark"] body.se-body [style*="background:#f5f5f5"],
:root[data-theme="dark"] body.se-body [style*="background: #f5f5f5"],
:root[data-theme="dark"] body.se-body [style*="background-color:#f4f6f9"],
:root[data-theme="dark"] body.se-body [style*="background-color: #f4f6f9"],
:root[data-theme="dark"] body.se-body [style*="background:#f4f6f9"],
:root[data-theme="dark"] body.se-body [style*="background: #f4f6f9"],
:root[data-theme="dark"] body.se-body [style*="background-color:#f4f4f4"],
:root[data-theme="dark"] body.se-body [style*="background-color: #f4f4f4"],
:root[data-theme="dark"] body.se-body [style*="background:#f4f4f4"],
:root[data-theme="dark"] body.se-body [style*="background: #f4f4f4"],
:root[data-theme="dark"] body.se-body [style*="background-color:#f2f2f2"],
:root[data-theme="dark"] body.se-body [style*="background-color: #f2f2f2"],
:root[data-theme="dark"] body.se-body [style*="background:#f2f2f2"],
:root[data-theme="dark"] body.se-body [style*="background: #f2f2f2"],
:root[data-theme="dark"] body.se-body [style*="background-color:#f1f1f1"],
:root[data-theme="dark"] body.se-body [style*="background-color: #f1f1f1"],
:root[data-theme="dark"] body.se-body [style*="background:#f1f1f1"],
:root[data-theme="dark"] body.se-body [style*="background: #f1f1f1"],
:root[data-theme="dark"] body.se-body [style*="background-color:#f0f0f0"],
:root[data-theme="dark"] body.se-body [style*="background-color: #f0f0f0"],
:root[data-theme="dark"] body.se-body [style*="background:#f0f0f0"],
:root[data-theme="dark"] body.se-body [style*="background: #f0f0f0"],
:root[data-theme="dark"] body.se-body [style*="background-color:#eee"],
:root[data-theme="dark"] body.se-body [style*="background-color: #eee"],
:root[data-theme="dark"] body.se-body [style*="background:#eee"],
:root[data-theme="dark"] body.se-body [style*="background: #eee"],
:root[data-theme="dark"] body.se-body [style*="background-color:#eeeeee"],
:root[data-theme="dark"] body.se-body [style*="background-color: #eeeeee"],
:root[data-theme="dark"] body.se-body [style*="background:#eeeeee"],
:root[data-theme="dark"] body.se-body [style*="background: #eeeeee"],
:root[data-theme="dark"] body.se-body [style*="background-color:#e9ecef"],
:root[data-theme="dark"] body.se-body [style*="background-color: #e9ecef"],
:root[data-theme="dark"] body.se-body [style*="background:#e9ecef"],
:root[data-theme="dark"] body.se-body [style*="background: #e9ecef"],
:root[data-theme="dark"] body.se-body [style*="background-color:white"],
:root[data-theme="dark"] body.se-body [style*="background-color: white"],
:root[data-theme="dark"] body.se-body [style*="background:white"],
:root[data-theme="dark"] body.se-body [style*="background: white"]{background-color:var(--surface-2)!important;color:var(--ink)!important}
/* classi chiare di Bootstrap/AdminLTE */
:root[data-theme="dark"] body.se-body .bg-white,:root[data-theme="dark"] body.se-body .bg-light,
:root[data-theme="dark"] body.se-body .table-light,:root[data-theme="dark"] body.se-body .table-light>td,:root[data-theme="dark"] body.se-body .table-light>th,
:root[data-theme="dark"] body.se-body .thead-light th,:root[data-theme="dark"] body.se-body .table .thead-light th,
:root[data-theme="dark"] body.se-body .card,:root[data-theme="dark"] body.se-body .card-header,:root[data-theme="dark"] body.se-body .card-footer,
:root[data-theme="dark"] body.se-body .modal-content,:root[data-theme="dark"] body.se-body .modal-header,:root[data-theme="dark"] body.se-body .modal-footer,
:root[data-theme="dark"] body.se-body .dropdown-menu,:root[data-theme="dark"] body.se-body .list-group-item,
:root[data-theme="dark"] body.se-body .popover,:root[data-theme="dark"] body.se-body .popover-body,
:root[data-theme="dark"] body.se-body .alert-light,:root[data-theme="dark"] body.se-body .badge-light,
:root[data-theme="dark"] body.se-body .nav-tabs .nav-link.active,:root[data-theme="dark"] body.se-body .page-link,
:root[data-theme="dark"] body.se-body .select2-dropdown,:root[data-theme="dark"] body.se-body .select2-container--krajee-bs4 .select2-selection,
:root[data-theme="dark"] body.se-body .select2-container--default .select2-selection,:root[data-theme="dark"] body.se-body .input-group-text,
:root[data-theme="dark"] body.se-body .datepicker,:root[data-theme="dark"] body.se-body .datepicker-dropdown,
:root[data-theme="dark"] body.se-body .kv-page-summary td,:root[data-theme="dark"] body.se-body .table tfoot td,:root[data-theme="dark"] body.se-body .table tfoot th{background-color:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}
:root[data-theme="dark"] body.se-body .form-control,:root[data-theme="dark"] body.se-body .custom-select,:root[data-theme="dark"] body.se-body .select2-search__field,
:root[data-theme="dark"] body.se-body textarea,:root[data-theme="dark"] body.se-body select,:root[data-theme="dark"] body.se-body input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]){background-color:var(--surface-2)!important;color:var(--ink)!important;border-color:var(--line)!important}
:root[data-theme="dark"] body.se-body .form-control::placeholder{color:var(--muted)}
:root[data-theme="dark"] body.se-body .text-dark,:root[data-theme="dark"] body.se-body .text-body,:root[data-theme="dark"] body.se-body .close{color:var(--ink)!important}
:root[data-theme="dark"] body.se-body .text-muted{color:var(--muted)!important}
:root[data-theme="dark"] body.se-body .select2-results__option--highlighted,:root[data-theme="dark"] body.se-body .dropdown-item:hover{background-color:var(--surface-3)!important;color:var(--ink)!important}
:root[data-theme="dark"] body.se-body .dropdown-item{color:var(--ink)}
:root[data-theme="dark"] body.se-body .table-striped tbody tr:nth-of-type(odd){background-color:transparent}
:root[data-theme="dark"] body.se-body hr{border-color:var(--line)}
:root[data-theme="dark"] body.se-body img.img-circle{background:#fff}

/* =====================================================================
   4. COMPONENTI DELLE AREE
   Scritti area per area nella conversione delle viste (30/09/2026), in
   css/parti/<area>.css, e riuniti qui nell'ordine in cui venivano caricati
   (dopo tutto il resto): l'ordine conta per il cascade e va conservato.
   Ogni blocco porta il nome dell'area. Regola: mai colori a mano, solo token;
   il tema scuro passa dai token.
   ===================================================================== */

/* ---------- area: amministrazione ---------- */
/*
 * css/parti/amministrazione.css — Amministrazione: «Da gestire», vendite (fatture, note di
 * credito, preventivi, listino), acquisti (fatture elettroniche ricevute), incassi e
 * pagamenti (restyling 30/09). Caricato dopo se-ui.css (assets/SeUiAsset.php). Solo token,
 * tema scuro compreso: nessun colore scritto a mano. Da riunire nella parte 2 di se-ui.css.
 */

/* ---------- «Da gestire» (amministrazione/index.php) ---------- */
/* le tessere di «quel che aspetta»: numero grande, titolo, dettaglio; il bordo sinistro dice
   l'urgenza (bad/warn/info), grigio quando non c'e' niente */
.amm-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
body.se-body a.amm-tile{display:flex;flex-direction:column;gap:3px;min-width:0;padding:13px 16px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none}
body.se-body a.amm-tile:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}
body.se-body a.amm-tile.bad{border-left-color:var(--bad)} body.se-body a.amm-tile.warn{border-left-color:var(--warn)} body.se-body a.amm-tile.info{border-left-color:var(--info)}
.amm-tile .n{font-family:var(--f-display);font-size:26px;font-weight:650;line-height:1.1;letter-spacing:-.01em}
.amm-tile b{font-weight:650;line-height:1.3}
.amm-tile .d{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.amm-tile.zero .n,.amm-tile.zero b{color:var(--muted)}
.amm-row{margin-top:16px}
/* barre orizzontali disegnate in SVG (la lunghezza e' un attributo, non uno stile) */
.amm-hb .t svg{display:block;width:100%;height:100%}
.amm-hb rect.s1{fill:var(--s1)} .amm-hb rect.s2{fill:var(--s2)} .amm-hb rect.s3{fill:var(--s3)}
/* tabella dentro una card: senza la cornice propria, e piu' stretta del minimo delle tabelle */
.tbl-wrap.amm-flat{border:0;border-radius:0 0 var(--r) var(--r)}
.tbl.amm-stretta{min-width:420px}
@media (max-width:1040px){.amm-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* sul telefono le tessere a zero si riducono al numero e al titolo: sono la parte da non leggere */
@media (max-width:640px){.amm-tiles{grid-template-columns:minmax(0,1fr);gap:8px}body.se-body a.amm-tile.zero{flex-direction:row;align-items:baseline;gap:10px;padding:9px 14px}.amm-tile.zero .n{font-size:18px}.amm-tile.zero .d{display:none}}

/* ---------- elenchi dell'area (fatture, preventivi, listino, fatture ricevute, scadenze) ---------- */
/* le icone delle azioni di riga su una riga sola */
.se-tbl td.amm-azioni{white-space:nowrap;text-align:right}
.se-tbl td.amm-azioni .iconbtn{display:inline-grid;place-items:center;color:var(--ink-2)}
.se-tbl td.amm-azioni .iconbtn:hover{color:var(--ink)}

/* ---------- fattura / nota di credito / preventivo (fatt-attiva-master/_form.php) ---------- */
/* i campi kartik stanno in griglie proprie: niente margine del form-group */
body.se-body .fatt-doc .form-group{margin-bottom:0}
.fatt-doc .help-block:empty,.fatt-doc .invalid-feedback:empty{display:none}
.fatt-doc .hint-block,.fatt-doc .form-text{font-size:12px;color:var(--muted)}
.fatt-doc .input-group-append .btn svg{width:14px;height:14px}
/* griglia a sei colonne: c1…c6 = quante ne prende il campo */
.fatt-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 14px;align-items:start}
.fatt-grid>.c1{grid-column:span 1} .fatt-grid>.c2{grid-column:span 2} .fatt-grid>.c3{grid-column:span 3}
.fatt-grid>.c4{grid-column:span 4} .fatt-grid>.c5{grid-column:span 5} .fatt-grid>.c6{grid-column:1/-1}
.fatt-grid-in{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
/* ente del documento, in cima ed evidenziato (solo con «Tutti gli enti») */
.amm-ente{background:var(--brand-soft);padding:12px;border-radius:10px;margin-bottom:14px}
/* numero / suffisso con il separatore che il tipo documento decide */
.fatt-num{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:end}
.fatt-num .separatore{padding-bottom:6px;font-weight:700;color:var(--muted)}
/* le sezioni che si aprono (dati cliente, fattura elettronica): sotto la scheda, con una riga */
.fatt-doc .se-card .hd{flex-wrap:wrap}
.fatt-sub{border-top:1px solid var(--line-2)}
.fatt-sub h3.sec{margin-bottom:10px}
.fatt-tg svg,.fatt-sez-tg>svg{transition:transform .15s}
.fatt-tg[aria-expanded="true"] svg,.fatt-sez-tg[aria-expanded="true"]>svg{transform:rotate(180deg)}
.fatt-tg:disabled{opacity:.5;cursor:not-allowed}
/* intestazione-interruttore di una sezione (pagamento, bollo, attribuzioni, sconto): spenta
   finche' non si sceglie tipo documento e cliente, e allora lo dice */
.fatt-sez-tg{display:flex;align-items:center;gap:10px;width:100%;padding:13px 16px;background:none;border:0;text-align:left;cursor:pointer;color:var(--ink)}
.fatt-sez-tg:hover{background:var(--surface-2)}
.fatt-sez-tg .tx{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.fatt-sez-tg b{font-size:14.5px;font-weight:650}
.fatt-sez-tg .hint{font-size:12.5px;color:var(--muted)}
.fatt-sez-tg .quando{display:none;font-size:12.5px;color:var(--muted)}
.fatt-sez-tg:disabled{cursor:not-allowed;background:none}
.fatt-sez-tg:disabled b{color:var(--muted)}
.fatt-sez-tg:disabled .hint{display:none}
.fatt-sez-tg:disabled .quando{display:inline}
.fatt-sez-tg>svg{width:16px;height:16px;color:var(--muted);flex:none}
.fatt-sez>.fatt-sez-tg~.fatt-sez-tg,.se-card>.fatt-sez-tg{border-top:1px solid var(--line-2)}
.fatt-sez>.fatt-sez-tg:first-child{border-radius:var(--r) var(--r) 0 0}
.fatt-sez .collapse>.bd,.fatt-sez .collapsing>.bd,.se-card>.collapse>.bd{border-top:1px solid var(--line-2)}
/* righe: legenda come l'intestazione di una tabella, ogni riga chiusa e' un riassunto
   (codice, descrizione, IVA, quantita', prezzo, sconto, totale) che si apre per modificarla */
.fatt-legenda,.fatt-riga-hd .button-collapse{display:grid;grid-template-columns:20px 80px minmax(0,1fr) 48px 48px 80px 64px 92px;gap:8px;align-items:center}
.fatt-legenda{padding:8px 16px;background:var(--surface-2);border-bottom:1px solid var(--line);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.fatt-legenda .r,.fatt-riga-hd .r{text-align:right}
.fatt-righe .item{border-bottom:1px solid var(--line-2)}
.fatt-righe .item:last-child{border-bottom:0}
body.se-body .fatt-riga-hd{padding:0;background:none;border:0;border-radius:0}
.fatt-riga-hd .button-collapse{width:100%;padding:10px 16px;background:none;border:0;text-align:left;cursor:pointer;color:var(--ink);font-size:13.5px}
.fatt-riga-hd .button-collapse:hover{background:var(--surface-2)}
.fatt-riga-hd .fatt-ico{display:block;min-height:1px}
.fatt-riga-hd .iconA svg{width:15px;height:15px;color:var(--muted)}
.fatt-riga-hd .testoB{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fatt-riga-hd .testoG{font-weight:600}
.fatt-riga-hd .testoH{font-size:12px;color:var(--muted)}
.fatt-riga-hd .testoF{grid-column:3/-1;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fatt-riga-hd .testoF:empty{display:none}
.fatt-riga-hd .button-collapse[aria-expanded="true"] .testoB:empty::before{content:"Riga aperta";font-weight:400;color:var(--muted)}
.fatt-riga-bd{padding:4px 16px 14px;background:var(--surface-2)}
.fatt-riga-rm{align-self:end;display:flex;justify-content:flex-end}
.fatt-riga-rm .se-btn svg{width:14px;height:14px}
.fatt-riga-tec{margin-top:10px}
.fatt-riga-tec summary{cursor:pointer;font-size:12.5px;color:var(--muted);margin-bottom:8px}
/* scadenze: data | importo | togli */
.fatt-scad{margin-top:16px;border-top:1px solid var(--line-2);padding-top:12px}
.fatt-scad-hd{margin-bottom:6px}
.fatt-scad-hd h3.sec{margin:0}
.fatt-scad-leg,.fatt-scad-riga{display:grid;grid-template-columns:minmax(0,200px) minmax(0,160px) 34px;gap:10px;align-items:center}
.fatt-scad-leg{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px}
.fatt-scad-riga{margin-bottom:8px}
.fatt-scad-riga .iconbtn svg{width:15px;height:15px}
.fatt-check{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:500;color:var(--ink-2)}
.fatt-check-f .cbx-container{padding-top:4px}
/* riepilogo: netto a pagare sotto il totale */
.fatt-tot .fatt-netto{color:var(--muted);font-size:12.5px}
.fatt-kv{grid-template-columns:120px minmax(0,1fr);font-size:13px}
@media (max-width:1040px){.fatt-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fatt-grid>.c5,.fatt-grid>.c6{grid-column:1/-1}.fatt-grid>.c3,.fatt-grid>.c4{grid-column:span 2}}
@media (max-width:640px){
  .fatt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fatt-grid>.c2,.fatt-grid>.c3,.fatt-grid>.c4,.fatt-grid>.c5,.fatt-grid>.c6{grid-column:1/-1}
  .fatt-legenda,.fatt-riga-hd .button-collapse{grid-template-columns:18px 64px minmax(0,1fr) 84px}
  .fatt-legenda span:nth-child(4),.fatt-legenda span:nth-child(5),.fatt-legenda span:nth-child(6),.fatt-legenda span:nth-child(7),
  .fatt-riga-hd .testoC,.fatt-riga-hd .testoD,.fatt-riga-hd .testoE,.fatt-riga-hd .testoH{display:none}
  .fatt-scad-leg,.fatt-scad-riga{grid-template-columns:minmax(0,1fr) minmax(0,110px) 34px}
  .se-card .hd .fatt-tg{flex:1 1 100%;justify-content:space-between}
}

/* ---------- fatture elettroniche ricevute (fe-documenti/index.php, import.php) ---------- */
body.se-body .se-tbl tr.fe-row-errore>td{background:var(--bad-soft)}
.se-tbl tr.fe-row-errore>td:not(:first-child){opacity:.85}
.q-warn{color:var(--warn);font-weight:600}
.fe-abb{display:inline-flex;align-items:center;gap:2px;white-space:nowrap}
.fe-abb .iconbtn{width:26px;height:26px}
.fe-abb .iconbtn svg{width:13px;height:13px}
.se-tbl .kv-expand-icon svg,.se-tbl .kv-expand-header-icon svg{width:14px;height:14px}
.link.small svg{width:13px;height:13px;vertical-align:-2px;margin-right:3px}
/* il menu «⋯» delle righe (dropdown kartik): niente freccetta, icone come nel menu nuovo */
.se-tbl td.amm-azioni .dropdown-toggle::after{display:none}
.se-tbl td.amm-azioni .dropdown-item{display:flex;align-items:center;gap:10px;font-size:13.5px}
.se-tbl td.amm-azioni .dropdown-item svg{width:15px;height:15px;color:var(--muted);flex:none}
.fe-piede{border-top:1px solid var(--line-2);padding-top:14px}
.fe-documenti-import .btn svg{width:14px;height:14px;vertical-align:-2px}
/* riga del totale di pagina (kartik, senza table-warning: pageSummaryRowOptions nella vista) */
body.se-body .se-tbl tr.kv-page-summary>td{background:var(--surface-2);border-top:1px solid var(--line);font-weight:650}
/* la cella «apri il dettaglio» spenta ha opacita' .25 (kartik): sbiadiva anche lo sfondo rosso */
body.se-body .se-tbl tr.fe-row-errore>td.kv-state-disabled{opacity:1}
/* kartik colora di azzurro fisso la cella «apri il dettaglio» al passaggio: nel tema scuro abbagliava */
body.se-body .se-tbl .kv-expand-icon-cell:hover{background-color:var(--surface-3)!important;color:var(--ink)}

/* ---------- incassi e pagamenti (contscad-scadenze/index.php) ---------- */
.scad-reg{margin-top:16px}
.scad-reg .scad-blocco{display:block}
/* la differenza fra importo movimentato e rate chiuse: in evidenza, come avviso */
body.se-body .scad-reg input.scad-diff{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}
.scad-piede{display:flex;justify-content:flex-end;border-top:1px solid var(--line-2);padding-top:14px;margin-top:10px}
.scad-piede .form-group{margin:0}

/* ---------- area: calendario-report ---------- */
/* =====================================================================
   CALENDARIO E REPORT — componenti dell'area (restyling 29-30/09/2026)
   Caricato dopo se-ui.css (assets/SeUiAsset.php). Solo token, tema scuro compreso.
   ===================================================================== */

/* ---------- calendario generale (views/calendario/_generale.php) ---------- */

/* barra dei comandi: frecce, «Oggi», il periodo; a destra Mese · Settimana · Giorno · Agenda */
.cal-barra{margin-bottom:10px}
.cal-nav{gap:4px;flex-wrap:nowrap;min-width:0}
body.se-body h2.cal-titolo{font-family:var(--f-display);font-size:18px;font-weight:650;margin:0 0 0 8px;letter-spacing:-.01em;text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-viste{max-width:100%;overflow-x:auto;scrollbar-width:none}
.cal-viste::-webkit-scrollbar{display:none}
.cal-viste button{white-space:nowrap}

/* viste pronte (Il mio lavoro, Personale, Eventi o Progetti, Tutto) come linguette; sul
   telefono accanto il bottone «Livelli» che apre il pannello sopra il calendario */
.cal-testa{display:flex;align-items:flex-end;gap:10px}
.cal-testa .views{flex:1;min-width:0}
.cal-apri-livelli{display:none;margin-bottom:14px;flex:none}
.cal-apri-livelli .n{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}

/* il pannello dei livelli, a sinistra del calendario (come nei calendari del telefono):
   «di chi», poi i gruppi — ciascuno si apre e si chiude (.chiuso), ha il suo interruttore
   «tutti» (.toggle: .on tutto acceso, .meta in parte) e le spunte dei livelli col colore
   del livello in --c (dal DB). La spunta vera (input) resta per tastiera e lettori di schermo. */
.cal-corpo{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}
.cal-main{min-width:0}
.cal-livelli{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);position:sticky;top:70px;max-height:calc(100vh - 90px);overflow:auto}
.cal-sez{padding:12px 14px;border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;gap:8px}
body.se-body .cal-sez h3.sec{margin:0}
.cal-chi{display:flex;width:100%}
.cal-chi button{flex:1;justify-content:center}
.cal-chi-nota{margin:0}
.cal-gruppo{border-bottom:1px solid var(--line-2)}
.cal-gruppo-hd{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 8px}
.cal-gruppo-apri{flex:1;min-width:0;display:flex;align-items:center;gap:6px;border:0;background:none;padding:6px 2px;font-weight:650;font-size:13.5px;color:var(--ink);cursor:pointer;text-align:left}
.cal-gruppo-apri svg{width:15px;height:15px;color:var(--muted);flex:none;transition:transform .15s}
.cal-gruppo.chiuso .cal-gruppo-apri svg{transform:rotate(-90deg)}
.cal-gruppo-apri .n{margin-left:auto;font-size:11.5px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
.cal-gruppo-apri:focus-visible,.cal-gruppo-tutti:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.toggle.meta{background:color-mix(in srgb,var(--ok) 45%,var(--line))}
.toggle.meta::after{left:10px}
.cal-gruppo-bd{display:flex;flex-direction:column;padding:0 10px 8px 12px}
.cal-gruppo.chiuso .cal-gruppo-bd{display:none}
body.se-body label.cal-liv{position:relative;display:flex;align-items:center;gap:9px;margin:0;padding:5px 6px;border-radius:6px;font-size:13px;font-weight:400;color:var(--ink-2);cursor:pointer}
body.se-body label.cal-liv:hover{background:var(--surface-2)}
.cal-liv input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.cal-liv .cal-pt{width:16px;height:16px;border-radius:4px;flex:none;display:grid;place-items:center;box-shadow:inset 0 0 0 2px var(--c,var(--muted))}
.cal-liv input:checked+.cal-pt{background:var(--c,var(--muted));box-shadow:none}
.cal-liv input:checked+.cal-pt::after{content:"";width:8px;height:4px;border:2px solid #fff;border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.cal-liv input:not(:checked)~span{color:var(--muted)}
.cal-liv input:focus-visible+.cal-pt{outline:2px solid var(--focus);outline-offset:2px}
.cal-altri{margin:12px 14px}
.cal-altri .cal-filtro,.cal-sez .cal-filtro{width:100%}
.cal-altri .cal-filtro{margin-top:8px}

/* scadenze gia' gestite (documento rinnovato, rata pagata…): spente e barrate */
.se-cal .fc-event.se-ev.se-ev-fatta{opacity:.55}
.se-cal .fc-event.se-ev.se-ev-fatta .fc-title,.se-cal .fc-list-item.se-ev-fatta .fc-list-item-title a,.cal-fatta{text-decoration:line-through;text-decoration-color:var(--muted)}

@media (max-width:900px){
  .cal-corpo{grid-template-columns:minmax(0,1fr)}
  .cal-testa{flex-direction:column;align-items:stretch;gap:0}
  .cal-apri-livelli{display:inline-flex;align-self:flex-start;margin:0 0 12px}
  .cal-pronte button{padding:9px 9px}
  .cal-livelli{display:none;position:static;max-height:none;margin-bottom:12px}
  .cal-livelli.aperto{display:block}
}

/* filtri per persona, servizio, stato (Select2 multipli, stessi id di prima) */
.cal-filtro{width:200px;min-width:0}
.cal-filtro.stretto{width:160px}
.cal-filtro .select2-container{width:100%!important}
body.se-body .cal-filtro .select2-container--krajee-bs4 .select2-selection--multiple{min-height:32px}
/* Select2 multiplo in una riga di filtri: il campo di ricerca interno usciva dal bordo (visibile nel tema scuro) */
body.se-body .cal-filtro .select2-container--krajee-bs4 .select2-selection--multiple,body.se-body .vm-persone .select2-container--krajee-bs4 .select2-selection--multiple,body.se-body .rep-filtri .select2-container--krajee-bs4 .select2-selection--multiple{overflow:hidden}
body.se-body .cal-filtro .select2-container--krajee-bs4 .select2-selection--multiple .select2-search__field,body.se-body .vm-persone .select2-container--krajee-bs4 .select2-selection--multiple .select2-search__field,body.se-body .rep-filtri .select2-container--krajee-bs4 .select2-selection--multiple .select2-search__field{margin-top:5px;font-size:13px;background:transparent;max-width:100%}

/* ore per persona (chiuse sotto i numeri) */
details.adv.cal-ore{margin-bottom:14px}
details.adv.cal-ore summary .small{font-weight:400}

/* stato di presenze e giustificativi: pallino nel calendario e nella legenda */
.cal-st{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:1px;flex:none;background:var(--muted)}
.cal-st.warn{background:var(--warn)} .cal-st.info{background:var(--info)} .cal-st.ok{background:var(--ok)} .cal-st.muted{background:var(--line)}
.legend.cal-legenda{margin-top:10px}
.cal-nota{margin:6px 0 0}
.legend.cal-legenda i.cal-st{width:8px;height:8px;border-radius:50%;margin:0}

/* FullCalendar 3 (tema «standard») dentro una card, con i token */
.se-cal{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.se-cal .fc{font-size:13px;color:var(--ink)}
.se-cal .fc-toolbar.fc-header-toolbar{display:none}
.se-cal .fc-unthemed th,.se-cal .fc-unthemed td,.se-cal .fc-unthemed thead,.se-cal .fc-unthemed tbody,.se-cal .fc-unthemed .fc-divider,.se-cal .fc-unthemed .fc-row,.se-cal .fc-unthemed .fc-content,.se-cal .fc-unthemed .fc-popover,.se-cal .fc-unthemed .fc-list-view,.se-cal .fc-unthemed .fc-list-heading td{border-color:var(--line-2)}
.se-cal .fc-view>table{border:0}
.se-cal .fc-view-container{margin:-1px}
.se-cal th.fc-day-header,.se-cal .fc-axis.fc-widget-header{background:var(--surface-2);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 8px;text-align:left}
.se-cal .fc-agenda-view th.fc-day-header{text-align:center}
.se-cal .fc-day-top .fc-day-number,.se-cal .fc-ltr .fc-basic-view .fc-day-top .fc-day-number{float:left;margin:4px 0 0 6px;padding:1px 6px;border-radius:999px;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.se-cal .fc-day-top.fc-other-month .fc-day-number{color:var(--muted);opacity:.6}
.se-cal .fc-day-top.fc-today .fc-day-number,.se-cal .fc-ltr .fc-basic-view .fc-day-top.fc-today .fc-day-number{background:var(--ink);color:var(--surface);font-weight:600}
body.se-body .se-cal .fc-unthemed td.fc-today{background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
body.se-body .se-cal .fc-unthemed .fc-content-skeleton td.fc-today,body.se-body .se-cal .fc-unthemed .fc-bgevent-skeleton td.fc-today{background:transparent}
.se-cal .fc-unthemed .fc-disabled-day{background:var(--surface-2);opacity:1}
.se-cal .fc-basic-view .fc-body .fc-row{min-height:92px}
.se-cal .fc-highlight{background:var(--brand-soft);opacity:1}
.se-cal .fc-nonbusiness{background:var(--surface-2)}

/* un elemento: fondo tenue del suo colore, filetto a sinistra, testo inchiostro */
.se-cal .fc-event.se-ev{--c:var(--s1);background:color-mix(in srgb,var(--c) 16%,var(--surface));border:0;border-left:3px solid var(--c);border-radius:4px;color:var(--ink);font-size:12px;line-height:1.35;padding:1px 5px;margin:1px 4px 2px;cursor:pointer}
.se-cal a.fc-event.se-ev:hover,.se-cal .fc-event.se-ev:hover{color:var(--ink);text-decoration:none;background:color-mix(in srgb,var(--c) 26%,var(--surface))}
.se-cal .fc-event.se-ev .fc-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.se-cal .fc-event.se-ev .fc-time{font-weight:600;font-variant-numeric:tabular-nums;margin-right:3px}
.se-cal .fc-time-grid-event.se-ev{margin:0 1px;border-radius:4px}
.se-cal .fc-time-grid-event.se-ev .fc-content{white-space:normal}
.se-cal .fc-more{color:var(--info);font-size:12px;font-weight:600;margin:1px 6px;text-decoration:none}
.se-cal .fc-popover{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.se-cal .fc-popover .fc-header{background:var(--surface-2);padding:6px 10px;font-weight:600}
.se-cal .fc-popover .fc-header .fc-close{color:var(--muted)}

/* settimana e giorno: le ore */
.se-cal .fc-time-grid .fc-slats td{height:2.1em}
.se-cal .fc-axis{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}
.se-cal .fc-time-grid .fc-now-indicator-line{border-color:var(--bad)}
.se-cal .fc-time-grid .fc-now-indicator-arrow{border-color:var(--bad);border-top-color:transparent;border-bottom-color:transparent}
.se-cal .fc-divider.fc-widget-header{background:var(--surface-2);border-color:var(--line-2)}

/* agenda (elenco) */
.se-cal .fc-list-view{border:0}
.se-cal .fc-list-heading td.fc-widget-header{background:var(--surface-2);font-weight:600;color:var(--ink);padding:8px 12px}
.se-cal .fc-list-heading .fc-list-heading-alt{color:var(--muted);font-weight:500}
.se-cal .fc-list-item td{padding:8px 12px;border-color:var(--line-2)}
.se-cal .fc-list-item.se-ev{background:transparent;border:0;margin:0}
.se-cal .fc-list-item.se-ev:hover td{background:var(--surface-2)}
.se-cal .fc-list-item.se-ev .fc-event-dot{background:var(--c);border-radius:3px}
.se-cal .fc-list-item-time{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.se-cal .fc-list-item-title a{color:var(--ink);text-decoration:none;font-weight:500}
.se-cal .fc-list-empty{background:transparent;color:var(--muted)}

/* «carico il calendario…» mentre arrivano presenze e giustificativi */
.se-cal .fc-loading{position:absolute;z-index:5;top:8px;right:10px;background:var(--ink);color:var(--surface);font-size:12px;padding:3px 10px;border-radius:999px}

@media (max-width:760px){
  .cal-barra .sp{display:none}
  .cal-barra .cal-viste{width:100%}
  .cal-filtri .sp{display:none}
  .cal-filtro,.cal-filtro.stretto{width:100%}
  .se-cal .fc-basic-view .fc-body .fc-row{min-height:64px}
  .se-cal th.fc-day-header{padding:6px 2px;text-align:center;letter-spacing:.02em;font-size:10.5px}
  .se-cal .fc-day-top .fc-day-number,.se-cal .fc-ltr .fc-basic-view .fc-day-top .fc-day-number{margin:3px 0 0 2px;padding:1px 4px;font-size:11px}
  .cal-viste button{padding:0 9px}
  .se-cal .fc-event.se-ev{font-size:11px;margin:1px 1px 2px;padding:0 3px}
  .se-cal .fc-event.se-ev .fc-time{display:none}
}

/* ---------- verifica del mese (views/calendario/verifica_mensile.php) ---------- */
/* una colonna per giorno: la tabella scorre dentro il suo riquadro, i giorni non si nascondono */
.vm-filtri .vm-persone{width:260px;max-width:100%}
.vm-filtri .vm-persone .select2-container{width:100%!important}
body.se-body .vm-grid .se-tbl th,body.se-body .vm-grid .se-tbl td{padding:6px 7px}
body.se-body .vm-grid .se-tbl th.vm-g,body.se-body .vm-grid .se-tbl td.vm-g{text-align:center;min-width:36px;font-size:12px;letter-spacing:0}
body.se-body .vm-grid .se-tbl th.vm-festivo{color:var(--bad)}
body.se-body .vm-grid .se-tbl td.vm-festivo{box-shadow:inset 0 0 0 999px color-mix(in srgb,var(--bad) 6%,transparent)}
body.se-body .vm-grid .se-tbl tr.vm-cnt td{background:var(--surface-2)}
body.se-body .vm-grid .se-tbl tr.vm-giu td{background:var(--warn-soft)}
body.se-body .vm-grid .se-tbl tr.vm-dif.vm-pari td{background:var(--ok-soft)}
body.se-body .vm-grid .se-tbl tr.vm-dif.vm-piu td{background:var(--info-soft)}
body.se-body .vm-grid .se-tbl tr.vm-dif.vm-neg td{background:var(--bad-soft)}
body.se-body .vm-grid .se-tbl td.vm-persona{background:var(--surface)!important;vertical-align:top;box-shadow:none}
.vm-grid .diff_ok{color:var(--ok)}
.vm-grid .diff_pos{color:var(--info);font-weight:600}
.vm-grid .diff_neg,.vm-grid .diff_err{color:var(--bad);font-weight:600}
.vm-legenda{margin:0}
.vm-legenda .vm-l{border:1px solid var(--line)}
.vm-legenda .vm-l.cnt{background:var(--surface-2)} .vm-legenda .vm-l.giu{background:var(--warn-soft)}
.vm-legenda .vm-l.pari{background:var(--ok-soft)} .vm-legenda .vm-l.piu{background:var(--info-soft)} .vm-legenda .vm-l.neg{background:var(--bad-soft)}
.vm-legenda .vm-l.fest{background:color-mix(in srgb,var(--bad) 12%,var(--surface))}
@media (max-width:760px){.vm-filtri .vm-persone{width:100%}.vm-filtri .se-select{flex:1}}

/* ---------- report (Report › …: andamento eventi, centri di costo, contratti, servizi, budget ore) ---------- */
/* un blocco del report (grafico, riepilogo) con lo spazio sotto */
.rep-blocco{margin-bottom:14px}
details.adv.rep-blocco summary .small{font-weight:400}
details.adv.rep-blocco .bd.cols{padding-top:4px}
/* tabelle di riepilogo: totale in grassetto, risultato con segno colorato */
.tbl.rep-tbl{min-width:0}
.tbl.rep-tbl tr.rep-tot td{font-weight:650;background:var(--surface-2);border-top:1px solid var(--line)}
.rep-neg{color:var(--bad);font-weight:600}
.rep-pos{color:var(--ok);font-weight:600}
/* riga espandibile di kartik: l'icona del nuovo set */
body.se-body .kv-expand-icon svg,body.se-body .kv-expand-header-icon svg{width:16px;height:16px;color:var(--ink-2);vertical-align:middle}
body.se-body .kv-expand-icon{cursor:pointer}
.rep-nota{margin:10px 0 0}
body.se-body th.kv-expand-header-cell{background:var(--surface-2)!important}
body.se-body td.kv-expand-icon-cell{background:transparent!important}
/* centri di costo e ricavo (cont-centricosto/index_mon.php, _riepilogo_schermo.php, _columns_mon.php) */
.cc-costi{color:var(--bad)}
.cc-prog{color:var(--info)}
.cc-entrate{color:var(--ok)}
td.cc-barra{min-width:120px;width:16%}
.tbl.cc-riep tr.cc-sez td{background:var(--surface-3);font-weight:650}
.tbl.cc-riep td.cc-rientro{padding-left:22px}
/* riga dei totali di pagina di kartik (showPageSummary): tono neutro invece del giallo di table-warning */
body.se-body .se-tbl tr.kv-page-summary.rep-somma td{background:var(--surface-2);border-top:1px solid var(--line);font-weight:650}
body.se-body .se-tbl tr.kv-page-summary.rep-somma{border-top:0}
/* due stampe affiancate nella barra della griglia */
.rep-stampe{display:inline-flex;gap:8px;flex-wrap:wrap}
/* filtri di un report in una riga (Budget ore): Select2 a larghezza fissa */
.rep-filtri .rep-filtro{width:200px;max-width:100%}
.rep-filtri .rep-filtro .select2-container{width:100%!important}
@media (max-width:760px){.rep-filtri .rep-filtro{width:100%}.rep-filtri .se-select{flex:1}.rep-filtri .sp{display:none}}
/* budget ore (progetti-budget-ore/_dashboard_per_voce.php, _dashboard_per_dipendente.php) */
.bo-voce{display:flex;flex-direction:column;gap:14px}
.bo-dip-hd{margin-bottom:6px}
.bo-dip-hd .se-av{width:26px;height:26px;font-size:11px}
.se-card .hd .se-av{width:28px;height:28px;font-size:11px}
.tbl.bo-mesi th,.tbl.bo-mesi td{padding:7px 8px}
.tbl.bo-mesi td .sub{font-size:11px}
.tbl.bo-mesi td[data-tip]{cursor:help}
.tbl.bo-mesi td.bo-sforato{background:var(--bad-soft)}
.tbl.bo-mesi td.bo-sforato b{color:var(--bad)}

/* ---------- area: commesse ---------- */
/*
 * css/parti/commesse.css — componenti dell'area Commesse (commesse, contratti, servizi,
 * requisiti, mezzi e attrezzature) durante la conversione (30/09/2026).
 * Solo token (var(--...)), tema scuro compreso. Da riunire in se-ui.css parte 2.
 */

/* ---------- colore dell'ente senza style="" nella vista ----------
   Il quadratino .ent i prende il colore stabile dell'ente (Navigazione::coloreEnte) da una
   classe: ent-k<id % 6>. Stessa tavolozza e stesso ordine di coloreEnte(). DA RENDERE COMUNE. */
.ent i.ent-k0{background:var(--e1)} .ent i.ent-k1{background:var(--e2)} .ent i.ent-k2{background:var(--e3)}
.ent i.ent-k3{background:var(--info)} .ent i.ent-k4{background:var(--ok)} .ent i.ent-k5{background:var(--warn)}

/* ---------- elenchi: la colonna del titolo non si stringe fino a spezzare il sottotitolo ----------
   headerOptions ['class' => 'col-titolo'] sulla colonna che fa da titolo (nome + .sub sotto). */
.se-tbl th.col-titolo{min-width:180px}

/* ---------- scheda commessa (commesse-lavoro/scheda.php, scheda_dati.php) ---------- */
/* riga dei tag sopra il nome del record */
.rec-head .rec-tags{gap:6px;margin-bottom:6px}
/* dettagli nella colonna laterale: etichette strette, come nel mockup */
.kv.kv-stretta{grid-template-columns:110px minmax(0,1fr);font-size:13px}
.kv .sub{display:block;font-size:12px;color:var(--muted)}
.se-card .bd>p.nota-card{margin:0}
/* orario standard: il calendario e, di fianco, i servizi da trascinarci sopra */
.orario-servizi{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;align-items:start}
.orario-servizi-elenco .fc-event{margin:0 0 6px;padding:6px 8px;border-radius:6px;font-size:12.5px;cursor:grab;color:#fff}
@media (max-width:1040px){.orario-servizi{grid-template-columns:minmax(0,1fr)}}
/* il colore di un servizio (dato del servizio, lo stesso del calendario) accanto al nome */
.swatch{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:1px;box-shadow:0 0 0 1px var(--line)}
/* tabella semplice dentro una card stretta: niente larghezza minima (la .tbl ne ha 640) */
.tbl.compatta{min-width:0}
/* eventi della commessa: i dati sotto il valore (relatori, accreditato, scadenza) restano su una riga */
.tbl.eventi-commessa td.r .sub,.tbl.eventi-commessa td .pill+.sub{white-space:nowrap}
/* il calendario dell'orario scrive un suo titolo nella barra di fullcalendar: il titolo e' gia' nella card */
.orario-servizi .fc-toolbar{display:none}

/* ---------- Contratti (anagr-contratti/index.php) ---------- */
.contratti-nota{margin-bottom:14px}
/* un pulsante in fondo a una .note (es. «Scrivi un modello»): centrato, non si stringe. DA RENDERE COMUNE */
.note>.se-btn{align-self:center;flex:none}
/* il pannello «Genera i documenti» sotto la barra della selezione */
.genera-contratti{margin-bottom:12px}
.genera-contratti .genera-l{font-weight:600;font-size:13px;margin:0}
.genera-contratti .se-select{width:auto;min-width:220px;max-width:100%}
.genera-contratti .genera-nota{margin:8px 0 0}
/* riga spuntata nelle griglie kartik nuove (rowSelectedClass 'sel'), come .tbl tr.sel. DA RENDERE COMUNE */
.se-tbl tr.sel>td{background:var(--brand-soft)}
/* scheda contratto (anagr-contratti/view.php): il riquadro «Genera il documento» */
.genera-form{gap:10px}
.genera-form .se-btn{align-self:flex-start}
.se-card .bd .genera-dopo{margin:10px 0 0;display:inline-flex}
p.genera-dopo{display:block}
/* form del contratto (anagr-contratti/_form.php) */
.campi-nota{border-top:1px solid var(--line-2)}
.form-azioni{justify-content:flex-end}
.controparte{margin-top:12px}
/* scelta a due voci fatta di radio (Un soggetto / Un ente), stesso aspetto di .seg. DA RENDERE COMUNE */
.seg.seg-radio{align-self:flex-start}
.seg.seg-radio input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.seg.seg-radio label{display:flex;align-items:center;height:32px;padding:0 12px;margin:0;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer}
.seg.seg-radio label+input+label{border-left:1px solid var(--line)}
.seg.seg-radio input:checked+label{background:var(--surface-3);color:var(--ink);font-weight:600}
.seg.seg-radio input:focus-visible+label{outline:2px solid var(--focus);outline-offset:-2px}
/* il suggerimento sotto un campo di yii\widgets\ActiveForm (->hint()): piccolo e grigio come .field .hint.
   Il ponte veste .form-text di Bootstrap ma non .hint-block di Yii. DA RENDERE COMUNE */
body.se-body .hint-block{font-size:12px;line-height:1.4;color:var(--muted);margin-top:5px}

/* ---------- Requisiti (anagr-skill-requisiti/_columns_requisiti.php) ---------- */
/* una fila di pill che va a capo da sola */
.pill-riga{display:flex;flex-wrap:wrap;gap:5px}

/* ---------- form in modale (commesse, servizi, mezzi) ---------- */
/* il campo Ente, solo per chi vede tutti gli enti: in cima ed evidenziato (pattern C) */
.campo-ente{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:10px;padding:10px 12px 2px;margin-bottom:14px}
.form-modale .grid2,.form-modale .grid3{gap:0 14px}
.form-modale .ultima-modifica{margin:10px 0 0;border-top:1px solid var(--line-2);padding-top:8px}
/* form in modale aperto a pagina piena (commesse-lavoro/create, update) */
.form-pagina{max-width:860px}
.form-modale h3.sec{margin:8px 0 8px;padding-top:10px;border-top:1px solid var(--line-2)}
/* scheda servizio › Requisiti: la scelta delle competenze per categoria */
.requisiti-scelta .requisiti-azioni{justify-content:flex-end;margin-top:12px}
.requisiti-scelta .field label .pill{font-size:11.5px}

/* ---------- area: contabilita ---------- */
/*
 * css/parti/contabilita.css — Amministrazione: contabilita', fisco, note spese, budget, chiusure
 * (restyling 30/09). Caricato dopo se-ui.css (assets/SeUiAsset.php). Solo token, tema scuro
 * compreso: nessun colore scritto a mano. Da riunire nella parte 2 di se-ui.css.
 */

/* ---------- form a pagina piena con widget kartik (cont-pn, scontrini, liquidazione IVA) ----------
   Dentro le griglie .grid2/.grid3 lo spazio lo danno le griglie: il margine del form-group raddoppierebbe. */
.form-se form{display:flex;flex-direction:column;gap:14px}
body.se-body .form-se .form-group{margin-bottom:0}
.form-se .help-block:empty,.form-se .invalid-feedback:empty{display:none}
.form-se .req{color:var(--bad)}
.form-se .input-group>.input-group-append>.btn svg,.form-se .input-group>.input-group-prepend>.btn svg{width:15px;height:15px}
.form-piede{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;border-top:1px solid var(--line-2);padding-top:14px}
.form-piede .sp{flex:1}

/* ---------- nuova registrazione, primo passo (cont-pn/_form_base.php) ---------- */
.pn-base{grid-template-columns:minmax(0,1fr) 300px}
.pn-causale{display:grid;grid-template-columns:170px minmax(0,1fr);gap:14px}
.pn-esercizio{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:10px}
.pn-base .steps b{font-weight:600}
.se-btn svg:last-child:not(:first-child){margin-left:2px}

/* ---------- ultime registrazioni (cont-pn/_ultime_registrazioni.php) ---------- */
.pn-ultime{margin-top:18px}
.pn-ultime .tbl-wrap{border:0;border-radius:0 0 var(--r) var(--r)}
.pn-ultime .tbl{min-width:900px}
.pn-ultime .tbl td{vertical-align:top}
.pn-ultime td.nowrap{white-space:nowrap}
.pn-ultime td:nth-child(2){min-width:130px}
.pn-ultime td.strong{font-weight:600}
.pn-lati{font-size:12.5px;min-width:220px}
.pn-lato{display:flex;justify-content:space-between;gap:12px;line-height:1.5}
.pn-lato .c{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
.pn-lato .mono{font-size:11.5px;color:var(--muted)}
.pn-lato .num{white-space:nowrap}
.pn-lato.altre{font-style:italic;color:var(--muted)}
.pn-ritocco svg{width:12px;height:12px;color:var(--muted);vertical-align:-1px}
.pn-noprot{font-style:italic}
.pn-sogg{color:var(--ink-2)!important;font-weight:600}

/* ---------- prima nota: righe in dare e avere e quadratura (cont-pn/_form_primanota.php) ----------
   Una riga = importo | dare | avere | togli, e sotto la descrizione del conto. Ogni lato:
   C/F, conto (con la ricerca), estensione; sotto l'etichetta scritta dal javascript. */
.pn-mov{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px}
.pn-righe .container-items{display:flex;flex-direction:column}
.pn-riga{display:grid;grid-template-columns:130px minmax(0,1fr) minmax(0,1fr) 34px;gap:6px 12px;align-items:start;padding:10px 16px;border-bottom:1px solid var(--line-2)}
.pn-righe .container-items .pn-riga:last-child{border-bottom:0}
.pn-riga-hd{padding-top:9px;padding-bottom:9px;background:var(--surface-2);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pn-riga-hd small{font-size:10.5px;text-transform:none;letter-spacing:0;font-weight:500;margin-left:4px}
.pn-conto{display:grid;grid-template-columns:58px minmax(0,1fr) 64px;gap:6px}
.pn-conto select{padding:0 4px}
.pn-cerca{min-width:0}
.pn-sogg-campo{display:none}
.pn-etich{font-size:12px;color:var(--ink-2);font-weight:600;min-height:0}
.pn-etich:empty{display:none}
.pn-tolgo{padding-top:3px}
.pn-tolgo .se-btn svg{width:15px;height:15px}
.pn-descr{grid-column:2/4}
body.se-body .pn-descr .form-control,body.se-body .pn-descr .form-control[readonly]{height:auto;border:0;background:transparent;padding:0;font-size:12.5px;color:var(--muted)}
body.se-body .pn-descr .form-control:focus{outline:0}
/* barra della quadratura: fissa in fondo allo schermo, le quattro cifre e l'esito in chiaro */
.pn-quadra{position:sticky;bottom:12px;z-index:5;display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:12px 16px;box-shadow:var(--shadow)}
.pn-cifre{display:flex;gap:22px;flex-wrap:wrap}
.pn-cifre div{display:flex;flex-direction:column;gap:1px;min-width:96px}
.pn-cifre span{font-size:12px;color:var(--muted)}
.pn-cifre b{font-size:16px;font-weight:650}
.pn-cifre .g b{font-family:var(--f-display);font-size:20px}
.pn-esito{flex:1;min-width:220px;padding:9px 12px;border-radius:9px;background:var(--surface-2);font-size:13px;font-weight:600;color:var(--ink-2)}
.pn-quadra.ok{border-color:var(--ok)}
.pn-quadra.ok .pn-esito{background:var(--ok-soft);color:var(--ok)}
.pn-quadra.ok .g b{color:var(--ok)}
.pn-quadra.warn{border-color:var(--warn)}
.pn-quadra.warn .pn-esito{background:var(--warn-soft);color:var(--warn)}
.pn-quadra.warn .g b{color:var(--warn)}
@media (max-width:900px){.pn-mov{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .pn-riga-hd{display:none}
  .pn-riga{grid-template-columns:minmax(0,1fr) 34px;padding:12px 16px}
  .pn-riga>[data-l]{grid-column:1/2}
  .pn-riga>[data-l]::before{content:attr(data-l);display:block;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
  .pn-tolgo{grid-column:2;grid-row:1}
  .pn-descr{grid-column:1/-1}
  .pn-quadra{bottom:8px;gap:10px;padding:10px 12px}
  .pn-cifre{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;width:100%}
  .pn-cifre div{min-width:0}
  .pn-esito{min-width:0;width:100%}
}

/* ---------- riga dei filtri sopra un elenco (cont-memcn/_search.php, mastrino, ritenute) ----------
   Campi kartik (Select2, DateControl) affiancati, che vanno a capo; il pulsante in fondo alla riga. */
.filtri{padding:12px 14px;margin-bottom:14px}
.filtri-riga{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end}
.filtri-riga>.form-group,.filtri-riga>.field{flex:1 1 150px;min-width:140px;max-width:220px}
body.se-body .filtri-riga .form-group{margin-bottom:0}
.filtri-riga .f-eser{max-width:170px}
.filtri-riga .f-largo{flex:2 1 240px;max-width:360px}
.filtri-riga .f-azione{display:flex;gap:8px;align-items:flex-end;margin-left:auto}
.filtri-riga .invalid-feedback:empty,.filtri-riga .help-block:empty{display:none}
.filtri .filtri-riga+.filtri-riga{margin-top:10px}
.filtri-riga .f-est{flex:0 0 80px;min-width:70px}
.filtri-riga .f-clfo{flex:1 1 180px;min-width:160px;max-width:240px}
body.se-body .form-control.se-ro,body.se-body .form-control.se-ro[readonly]{background:var(--surface-2);color:var(--ink-2)}

/* ---------- mastrino (cont-memcn/schedacontabile.php) ---------- */
.mastrino-kpi .kpi.forte{border-color:var(--ink-2)}
.mastrino-kpi .kpi .d{font-weight:500}
.gap-b{margin-bottom:14px}
h2.sec{white-space:nowrap}
@media (max-width:640px){.filtri-riga>.form-group,.filtri-riga>.field,.filtri-riga .f-clfo,.filtri-riga .f-est{max-width:none;flex-basis:100%}.filtri-riga .f-azione{margin-left:0}}

/* ---------- ritenute, F24 e CU (cont-ritenute/*) ---------- */
.kpis.kpi3{grid-template-columns:repeat(3,minmax(0,1fr))}
/* linguette .views che restano tab di Bootstrap (data-toggle="tab", classe .active) */
.views.nav{flex-wrap:nowrap;padding:0}
.views a.active{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.tab-testa{margin-bottom:6px}
.tab-testa+.small.muted{margin:0 0 10px}
.rit-matita svg{width:12px;height:12px;color:var(--muted);vertical-align:-1px}
.rit-matita:hover svg{color:var(--ink)}
.cu-tbl{min-width:860px}
.cu-tbl tfoot td,.cu-tot td{font-weight:650;background:var(--surface-2)}
.cu-detail-row>td{background:var(--surface-2);padding:8px 12px}
.cu-det{min-width:0;font-size:12.5px;background:var(--surface);border:1px solid var(--line-2)}
@media (max-width:640px){body.se-body .kpis.kpi3{grid-template-columns:minmax(0,1fr)}}
.se-card .hd .anni{display:inline-flex;gap:2px;white-space:nowrap}

/* ---------- note spese (modules/scontrini) ---------- */
.ns-check{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}
.ns-file input[type=file]{height:auto;padding:7px 10px}
a.ns-elimina svg,.se-btn.ghost.sm svg{width:15px;height:15px}
a.ns-elimina{color:var(--bad)}
.rm-testa{margin:4px 0 10px}
.rm-gruppo{margin-bottom:14px}
.rm-gruppo .tbl-wrap{border:0;border-radius:0 0 var(--r) var(--r)}
.rm-totale{align-items:center}
.rm-tot td,.tbl tfoot .rm-tot td{font-weight:650;background:var(--surface-2)}

/* ---------- bilanci e chiusure (bilanci/index.php): il percorso di fine esercizio ---------- */
.chiusure-flow{margin:-4px 0 16px}
.chiusure-flow .ar svg{width:14px;height:14px}
.chiusure-flow .fx.on{border-color:var(--ink);box-shadow:inset 0 -2px 0 var(--brand)}
.chiusure-flow .fx:hover{border-color:var(--ink-2)}
@media (max-width:640px){.chiusure-flow{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.chiusure-flow .fx{min-width:150px;flex:none}}

/* ---------- stato patrimoniale e conto economico (bilancio-uffic/*): righe per livello ---------- */
.bil-tbl{min-width:0}
.bil-tbl td{padding-top:7px;padding-bottom:7px}
.bil-tbl td.voce{padding-left:30px}
.bil-tbl tr.lv2 td.voce{padding-left:44px}
.bil-tbl tr.lv3 td.voce{padding-left:58px}
.bil-tbl tr.lv4 td.voce{padding-left:72px}
.bil-tbl tr.lv5 td.voce,.bil-tbl tr.lv6 td.voce{padding-left:86px}
/* le voci a zero in tutti e due gli anni si nascondono (pulsante «Mostra anche le voci a zero») */
.bil-tbl.senza-zero tr.zero{display:none}
.bil-nm{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}
.bil-nm li{display:flex;gap:14px;justify-content:space-between;max-width:360px}
.bil-tbl tr.lv1 td{font-weight:650;background:var(--surface-2)}
.bil-tbl tr.lv2 td{font-weight:600}
.bil-tbl td.prec{color:var(--muted)}
.bil-tbl tr.has-figli{cursor:pointer}
.bil-tbl tr.has-figli td.voce svg{width:13px;height:13px;margin:0 5px -2px -18px;color:var(--muted);transition:transform .15s}
.bil-tbl tr.has-figli.chiuso td.voce svg{transform:rotate(-90deg)}
.bil-tbl tr.sez td{background:var(--info-soft);font-weight:650}
.bil-tbl tr.parz td{background:var(--warn-soft);font-weight:650}
.bil-tbl tr.ris.ok td,.bil-tbl tfoot tr.ris.ok td{background:var(--ok-soft);color:var(--ok);font-weight:650}
.bil-tbl tr.ris.bad td,.bil-tbl tfoot tr.ris.bad td{background:var(--bad-soft);color:var(--bad);font-weight:650}
.bil-tbl tfoot tr.totale td{font-weight:700;border-top:2px solid var(--line);background:var(--surface-2)}
.bil-sp .se-card .tbl-wrap{border:0;border-radius:0 0 var(--r) var(--r)}
.bilancio-uffic-ce .se-card .tbl-wrap{border:0;border-radius:0 0 var(--r) var(--r)}

@media (max-width:1040px){.pn-base{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){
  .pn-causale{grid-template-columns:minmax(0,1fr)}
}

/* ---------- area: documenti ---------- */
/* =====================================================================
   Documenti, Modelli, Comunicazioni, Organizzazione, Accessi
   (cantiere del restyling, 30/09): componenti nuovi di quest'area.
   Solo token, niente colori scritti a mano; valgono nel tema chiaro e scuro.
   ===================================================================== */

/* --- Archivio: i due riquadri dei numeri in testa ------------------- */
.doc-numeri{margin-bottom:16px}
.doc-numeri .viz{width:100%;height:auto;display:block}
/* le barre «Per classe» sono link che filtrano l'elenco */
body.se-body .hb a.r{color:var(--ink);text-decoration:none;border-radius:6px}
body.se-body .hb a.r:hover span:first-child{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.doc-nota{margin:10px 0 0}

/* --- Riquadro «Documenti» dentro le schede (_docuploads-grid) -------- */
.doc-box-hd{align-items:center;gap:8px;margin-bottom:8px}
.doc-box-hd h2.sec{margin:0}
/* scheda del cliente › Dati contabili: i documenti di vendita sotto il riquadro dei dati (3nt1) */
.cli-docs{margin-top:16px}
@media (min-width:900px){.cli-docs .kv-grid-table tbody td:first-child{white-space:nowrap}}

/* --- Modulo di caricamento (modale) ---------------------------------- */
/* l'ente scelto dal superadmin: in cima ed evidenziato, come nei form a pagina (pattern C) */
.doc-ente{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:var(--r);padding:10px 12px 2px;margin-bottom:14px}
.doc-date{gap:0 14px}
.doc-modifica{margin:6px 0 0}

/* --- Documento prodotto: il testo reso come un foglio ---------------- */
.doc-foglio{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:18px 20px;max-height:70vh;overflow:auto;font-size:13.5px;line-height:1.55}
.doc-foglio table{max-width:100%}
.doc-piede-form{margin-top:14px;gap:8px}
/* coppie etichetta/valore nelle card strette della colonna laterale */
.kv.doc-kv{grid-template-columns:104px minmax(0,1fr)}
/* un avviso in testa alla pagina, prima delle card */
.note.doc-avviso{margin-bottom:14px}

/* --- Modelli di documento -------------------------------------------- */
/* il testo coi segnaposto, mostrato come codice */
.doc-codice{font-family:var(--f-mono);font-size:12px;line-height:1.5;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;margin:4px 0 0;white-space:pre-wrap;word-break:break-word;max-height:12rem;overflow:auto}
.doc-codice.alto{max-height:26rem}
.doc-nota-su{margin:0 0 8px}
/* elenco variabile → spiegazione */
.doc-variabili{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;margin:0;font-size:12.5px}
.doc-variabili dt{font-weight:normal;min-width:0;overflow-wrap:anywhere}
.doc-variabili dd{margin:0;color:var(--muted)}
.se-card>details.adv>summary{padding:12px 16px}
.doc-bloccato{display:inline-flex;align-items:center;gap:6px}
.doc-bloccato svg{width:15px;height:15px;flex:none}

/* --- Editor del modello (documento-template/_form) ------------------- */
.dtpl-tabs{margin-bottom:16px}
.dtpl-tabs a{color:var(--muted)}
/* linguetta con un errore dopo il salvataggio */
.dtpl-tabs button.err::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--bad);margin-left:6px;vertical-align:middle}
.dtpl-pick{flex-wrap:wrap;gap:6px;margin-bottom:6px}
.dtpl-dove{margin-bottom:8px}
.dtpl-var-nota{margin-top:10px}
/* le variabili come etichette cliccabili (mockup «modello», classe .var) */
.dtpl-vars{display:flex;flex-wrap:wrap;gap:4px}
body.se-body .var{display:inline-block;font-family:var(--f-mono);font-size:11.5px;line-height:1.5;background:var(--brand-soft);color:var(--ink);border:1px solid var(--brand-line);border-radius:4px;padding:0 5px;cursor:pointer;max-width:100%;overflow-wrap:anywhere;text-align:left}
body.se-body .var:hover{border-color:var(--brand)}
/* la barra di Summernote sui token del tema */
.dtpl-pane .note-editor.note-frame{border-color:var(--line);border-radius:var(--r-sm);background:var(--surface)}
.dtpl-pane .note-editor .note-toolbar{background:var(--surface-2);border-bottom:1px solid var(--line)}
.dtpl-pane .note-editor .note-editing-area .note-editable{background:var(--surface);color:var(--ink)}
.dtpl-pane .note-editor .note-statusbar{background:var(--surface-2)}
/* catalogo dei contesti: schede affiancate */
.doc-catalogo{align-items:start}
.doc-prosa{margin:0;font-size:13.5px}

/* --- Classi documentali: il segno «richiesto» nelle colonne dei campi -- */
.doc-si{display:inline-flex;color:var(--ok)}
.doc-si svg{width:16px;height:16px}

/* --- Modelli dei messaggi -------------------------------------------- */
.tpl-variabili{margin:-4px 0 14px}
.doc-oggetto{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 10px;margin-top:4px;overflow-wrap:anywhere}
.doc-gruppo{margin:18px 0 10px}
.doc-agganci{margin-top:16px}
/* le righe delle regole dei destinatari (costruite dal JS del form) */
#regole-list .regola-row{border:1px solid var(--line-2);border-radius:var(--r-sm);padding:8px 6px 2px;margin:0 0 8px}
#regole-list .regola-del{font-size:18px;line-height:1;color:var(--bad)}

/* --- Guide (guida/comunicazioni, guida/documenti-contrattuali) -------- */
/* il testo a sinistra, l'indice a destra che resta in vista scorrendo */
.guida-lay{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;align-items:start}
.guida-indice{position:sticky;top:70px}
.guida-indice nav a{display:block;padding:5px 0;font-size:13px;color:var(--ink-2);border-bottom:1px dotted var(--line);text-decoration:none}
.guida-indice nav a:last-child{border-bottom:0}
.guida-indice nav a:hover{color:var(--ink);text-decoration:underline}
.guida>.bd{max-width:860px;font-size:14px}
.guida h2{font-family:var(--f-display);font-size:20px;margin:30px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line);scroll-margin-top:70px}
.guida h2:first-of-type{margin-top:4px}
.guida h3{font-size:15.5px;font-weight:650;margin:22px 0 6px;scroll-margin-top:70px}
.guida p,.guida li{line-height:1.65}
.guida code{background:var(--surface-3);color:var(--ink);padding:1px 5px;border-radius:4px;font-size:.87em}
.guida pre{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);padding:10px 14px;border-radius:var(--r-sm);font-size:12.5px;overflow-x:auto}
.guida pre code{background:none;padding:0}
.guida table{font-size:13px}
.guida table code{white-space:nowrap}
.guida .tabella-scorrevole{overflow-x:auto;margin:10px 0}
/* i riquadri della guida: nota (informazione), attenzione, trappola */
.guida .nota,.guida .attenzione,.guida .trappola{border-left:4px solid var(--info);background:var(--info-soft);padding:10px 14px;margin:14px 0;border-radius:0 var(--r-sm) var(--r-sm) 0}
.guida .attenzione{border-left-color:var(--warn);background:var(--warn-soft)}
.guida .trappola{border-left-color:var(--bad);background:var(--bad-soft)}
/* la catena dei passi (come funziona, in breve) */
.guida .catena{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;margin:16px 0}
.guida .catena .passo{flex:1 1 140px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px;font-size:12.5px}
.guida .catena .passo strong{display:block;font-size:13.5px;margin-bottom:3px}
.guida-avviso{margin-bottom:16px}
@media (max-width:960px){
  .guida-lay{grid-template-columns:minmax(0,1fr)}
  .guida-indice{position:static;order:-1}
}
@media print{
  .no-stampa,.side,.top,.se-foot,.scope-bar{display:none!important}
  .guida-lay{display:block}
}
/* l'indice delle guide: schede cliccabili */
body.se-body a.guida-scheda{display:block;color:var(--ink);text-decoration:none}
body.se-body a.guida-scheda:hover{border-color:var(--line-2);box-shadow:var(--shadow)}
a.guida-scheda .hd svg{width:16px;height:16px;color:var(--muted)}

/* --- Enti: elenco e scheda ------------------------------------------- */
.ente-nome{display:flex;align-items:center;gap:10px}
.ente-nome .pill{margin-left:4px}
img.ente-mini{width:28px;height:28px;object-fit:contain;border-radius:6px;background:var(--surface);border:1px solid var(--line);flex:none}
.ente-sezioni{min-width:0}
.ente-sez-tit{margin:18px 0 10px}
.ente-sez-tit:first-child{margin-top:0}
/* il logo: riquadro vuoto con le iniziali */
.ente-logo-vuoto{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 8px}
.ente-logo-vuoto span{width:84px;height:84px;border-radius:14px;display:grid;place-items:center;font-family:var(--f-display);font-size:30px;font-weight:700;background:var(--surface-3);color:var(--ink-2)}
.ente-logo-vuoto small{color:var(--muted)}
.ente-logo .se-row{gap:6px;margin-top:8px}
/* i dati dell'ente (DetailView a piu' colonne): sul telefono una voce sotto l'altra */
@media (max-width:640px){
  #tab-dati table.detail-view,#tab-dati table.detail-view tbody,#tab-dati table.detail-view tr{display:block;width:100%}
  #tab-dati table.detail-view th,#tab-dati table.detail-view td{display:block;width:100%!important;text-align:left!important;border:0}
  #tab-dati table.detail-view th{padding-bottom:0;color:var(--muted);font-weight:500}
  #tab-dati table.detail-view tr{border-bottom:1px solid var(--line-2);padding:4px 0}
}
.ente-logo .file-input{display:block}
.ente-logo .doc-nota{clear:both}

/* --- Impostazioni servizi (enti-impostazioni/update) ------------------ */
.imp-tabs button.err::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--bad);margin-left:6px;vertical-align:middle}
.imp-pane .se-row.between{align-items:center;margin-bottom:4px}
.imp-pane .se-row.between .ente-sez-tit{margin:0}

/* --- Console dei ruoli (rbac-console) --------------------------------- */
/* la matrice utenti × ruoli: intestazioni in verticale, prima colonna ancorata */
.matrice-legenda{display:flex;flex-wrap:wrap;gap:8px 22px;margin-bottom:12px;font-size:13px}
.matrice-avvolgi{overflow:auto;max-height:78vh;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.matrice{border-collapse:separate;border-spacing:0;font-size:12.5px;color:var(--ink)}
.matrice th,.matrice td{border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.matrice thead th{position:sticky;top:0;z-index:3;background:var(--surface);vertical-align:bottom;padding:0}
.matrice thead tr.gruppi th{top:0;z-index:4;text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);padding:4px 6px}
.matrice .ruolo-testa{height:12rem;width:1.9rem}
.matrice .ruolo-testa a{display:block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;padding:6px 2px;color:var(--ink);text-decoration:none}
.matrice .ruolo-testa a:hover{text-decoration:underline}
.matrice .col-utente{position:sticky;left:0;z-index:2;background:var(--surface);min-width:15rem;border-right:2px solid var(--line);padding:6px 10px;text-align:left}
.matrice thead .col-utente{z-index:5}
.matrice tbody tr:hover td{background:var(--surface-2)}
.matrice tbody tr:hover .col-utente{background:var(--surface-3)}
.matrice td.cella{text-align:center;padding:3px;width:1.9rem}
.matrice td.fam-funzionale{background:var(--info-soft)}
.matrice td.fam-mattone{background:var(--surface-2)}
.matrice td.cambiata{outline:2px solid var(--warn);outline-offset:-2px}
.matrice .eredita{color:var(--muted)}
.matrice .spento td{opacity:.55}
.matrice .riga-utente small{color:var(--muted)}
.barra-azioni{position:sticky;bottom:0;z-index:6;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r) var(--r);padding:10px 14px}
.matrice-igiene-tit{margin:22px 0 6px}
/* console dei ruoli, vista ad albero (15/10): ruoli e permessi in riga, persone in colonna */
.vista-switch{gap:0}.vista-switch .se-btn{border-radius:0}.vista-switch .se-btn:first-child{border-radius:var(--r) 0 0 var(--r)}.vista-switch .se-btn:last-child{border-radius:0 var(--r) var(--r) 0}
.albero-scelta{margin-bottom:12px}.albero-scelta>summary{cursor:pointer;list-style:none}
.albero-enti{display:flex;flex-wrap:wrap;gap:10px 18px;margin-bottom:10px}
.albero-ente{border:1px solid var(--line-2);border-radius:var(--r);padding:6px 10px;min-width:13rem}
.albero-ente legend{font-size:13px;font-weight:600;width:auto;padding:0 4px;margin:0}.albero-ente legend a{font-weight:400;margin-left:6px}
.albero-persona{display:block;font-size:13px;font-weight:400;margin:0}
.albero-tbl .col-nodo{position:sticky;left:0;z-index:2;background:var(--surface);min-width:26rem;max-width:40rem;border-right:2px solid var(--line);padding:5px 10px;text-align:left}
.albero-tbl thead .col-nodo{z-index:5;padding:8px 10px;vertical-align:bottom}.albero-tbl thead .albero-chiudi{float:right;font-size:11px;padding:2px 8px}
.albero-tbl th.col-persona{padding:6px 8px;text-align:center;font-weight:400;font-size:12px;min-width:6.5rem;white-space:nowrap}
.albero-tbl th.col-persona.spento{opacity:.55}
.albero-tbl .apri{display:inline-block;width:1.3rem;border:0;background:none;padding:0;color:var(--muted);cursor:pointer;font-size:12px}.albero-tbl .apri.vuoto{cursor:default}
.albero-tbl tr.nodo-area td{background:var(--surface-2);font-size:13px}.albero-tbl tr.nodo-area .col-nodo{background:var(--surface-2)}
.albero-tbl tr.nodo-ruolo .nome-ruolo{font-weight:600;color:var(--ink);margin-right:6px}
.albero-tbl tr.nodo-permesso .col-nodo{font-size:12px}
.albero-tbl td.conta{font-size:11px;color:var(--muted)}
.albero-tbl .ok-segno,.matrice-legenda .ok-segno{color:var(--ok);font-weight:600}
.aree-ordine{width:5.5rem;text-align:right;margin-left:auto}.aree-nuova td{background:var(--surface-2)}
/* ruolo spento dal pacchetto dell'ente: assegnato ma non conta */
.matrice td.cella-spenta{background:repeating-linear-gradient(135deg,var(--warn-soft) 0 4px,transparent 4px 8px)}.cella-spenta-legenda input{outline:2px dashed var(--warn);outline-offset:1px}
.transizione-voce{display:block;font-weight:400;margin:0;font-size:13px}.transizione-tbl td{vertical-align:top}.transizione-tbl details summary{cursor:pointer;color:var(--muted)}
/* transizione (18/10): le due parti della pagina e il motivo accanto alla voce da decidere */
.transizione-sez{font-size:15px;margin:14px 0 6px}.transizione-altre{margin:14px 0}.transizione-altre>summary{cursor:pointer;padding:8px 0}.transizione-motivo{display:block;margin-left:22px;white-space:normal}
.igiene-card{border-left:4px solid var(--line)}
.igiene-card.gravita-alta{border-left-color:var(--bad)}
.igiene-card.gravita-media{border-left-color:var(--warn)}
.igiene-card.gravita-bassa{border-left-color:var(--muted)}
.igiene-voci{list-style:none;margin:0;padding:0;font-size:12.5px}
.igiene-voci li{padding:2px 0}
.doc-si-t{color:var(--ok)}

/* --- Ruoli, permessi, assegnazioni (modulo admin) --------------------- */
/* le due liste con i pulsanti in mezzo */
.assegna{display:grid;grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);gap:14px;align-items:start;margin-bottom:16px}
.assegna .bd{display:flex;flex-direction:column;gap:8px}
.assegna select.list{height:auto;min-height:320px;font-family:var(--f-mono);font-size:12.5px;padding:6px}
.assegna select.list optgroup{color:var(--muted);font-family:var(--f-body);font-style:normal;font-weight:600}
.assegna select.list option{padding:3px 6px;color:var(--ink)}
.assegna-frecce{display:flex;flex-direction:column;gap:8px;padding-top:48px}
.assegna-frecce .se-btn{justify-content:center}
.assegna-frecce .se-spin{display:none;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:se-gira .8s linear infinite}
@keyframes se-gira{to{transform:rotate(360deg)}}
.assegna-utenti #list-users{font-size:13px;line-height:1.8}
.assegna-utenti #list-users a{margin-right:10px}
@media (max-width:760px){
  .assegna{grid-template-columns:minmax(0,1fr)}
  .assegna-frecce{padding-top:0;flex-direction:row;flex-wrap:wrap;align-items:center}
  .assegna select.list{min-height:200px}
}

/* ---------- area: eventi ---------- */
/*
 * css/parti/eventi.css — componenti dell'area Eventi (parti rimaste), del Check-in e della
 * casella «Comunicazioni ricevute», durante la conversione (30/09/2026).
 * Solo token (var(--...)), tema scuro compreso. Da riunire in se-ui.css parte 2.
 */

/* ---------- pulsanti-link ----------
   `body.se-body a` (0,1,1) vince su `.se-btn` (0,1,0): ogni <a class="se-btn"> usciva blu come un
   link nel testo. Qui il colore torna quello del pulsante. DA RENDERE COMUNE (se-ui.css parte 2). */
body.se-body a.se-btn,body.se-body a.se-btn:hover{color:var(--ink);text-decoration:none}
body.se-body a.se-btn.pri,body.se-body a.se-btn.pri:hover{color:var(--brand-ink)}
body.se-body a.se-btn.danger{color:var(--bad)}

/* ---------- Comunicazioni ricevute (notifica/index.php, view.php) ---------- */
/* la casella: righe .task come nel mockup «notifiche»; la riga intera e' il collegamento */
.casella{margin-top:12px}
.casella .task .tx{min-width:0;display:block}
.casella .task .t{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-weight:650}
.casella .task.letta .t{font-weight:400}
.casella .task .m{display:flex}
.casella .task .m svg{width:14px;height:14px;vertical-align:-2px}
.casella .task .estratto{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;min-width:0}
.casella .task .se-btn{pointer-events:none}
.notifica-avviso{margin-bottom:14px}
.corpo-notifica{line-height:1.6;overflow-wrap:anywhere}
.corpo-notifica img{max-width:100%;height:auto}
.corpo-notifica table{max-width:100%}
.notifica-kv{grid-template-columns:96px minmax(0,1fr)}
ul.destinatari{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
ul.destinatari li{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid var(--line-2);font-size:13px}
ul.destinatari li:first-child{border-top:0;padding-top:0}
/* invio massivo › Non raggiunti: l'elenco scorre dentro il suo riquadro */
ul.destinatari.inv-nonragg{max-height:240px;overflow:auto}
@media (max-width:640px){.casella .task{grid-template-columns:4px minmax(0,1fr)}.casella .task .se-btn{display:none}}

/* ---------- Check-in (pres-parevent/checkin.php, checkin-scegli.php) ---------- */
/* scelta dell'evento: una riga .evcard con il pulsante a destra */
.evcard.ck-ev{grid-template-columns:52px minmax(0,1fr) auto;align-items:center}
.evcard.ck-ev .m svg{width:13px;height:13px;vertical-align:-2px;margin-right:2px}
.evcard.ck-ev.oggi .t{font-size:15.5px}
.ck-conclusi{padding:0 0 4px}
.ck-conclusi>p{margin:0 16px 8px}
/* la schermata: testata scura con il conteggio, ricerca grande, righe con pulsanti grandi */
.ck-top{margin-bottom:12px}
.se-card.ck{overflow:hidden}
.ck-hd{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:18px 20px;background:var(--ink);color:var(--surface)}
.ck-hd .tx{flex:1;min-width:220px}
.ck-hd .small{font-size:12.5px;opacity:.72}
.ck-hd .nome{font-family:var(--f-display);font-size:21px;font-weight:650;line-height:1.2;text-wrap:balance}
.ck-hd .cnt{text-align:right}
.ck-hd .cnt .v{font-family:var(--f-display);font-size:30px;font-weight:700;line-height:1.1}
.ck-hd .cnt .v small{font-size:18px;opacity:.6;font-weight:600}
.ck-cerca{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ck-cerca .searchbox{flex:1 1 360px;min-width:0}
.ck-cerca .searchbox svg{top:16px}
.ck-cerca .se-input{height:48px;font-size:16px;padding-left:34px}
.ck-cerca .seg button{height:46px;padding:0 16px;font-size:14px}
.ck-arrivi .viz{max-height:150px}
.ck-list{display:flex;flex-direction:column}
.ck-p{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 4px;border-bottom:1px solid var(--line-2)}
.ck-p:last-of-type{border-bottom:0}
.ck-p .t{font-size:15.5px;font-weight:500}
.ck-p .m{font-size:12.5px;color:var(--muted);margin-top:2px;display:flex;gap:4px 8px;flex-wrap:wrap;align-items:center}
.ck-p.dentro .st{color:var(--ok);font-weight:600}
.ck-p.uscito .st{color:var(--ink-2)}
.ck-p .az{display:flex;gap:8px;align-items:center}
.ck-p .se-btn{height:42px;padding:0 16px;font-size:14px}
.ck-p .ck-az{min-width:110px;justify-content:center}
.ck-p .se-btn:disabled{opacity:.55;cursor:progress}
.ck-nota{margin-top:12px}
@media (max-width:640px){
  .ck-hd .cnt{text-align:left}
  .ck-cerca .searchbox{flex-basis:100%}
  .ck-p{gap:8px}
  .ck-p .az{flex-direction:column-reverse;align-items:stretch;gap:6px}
  .ck-p .se-btn{height:40px;padding:0 12px;justify-content:center}
  .ck-p .ck-az{min-width:92px}
  .evcard.ck-ev{grid-template-columns:52px minmax(0,1fr)}
  .evcard.ck-ev>.se-btn{grid-column:2;justify-self:start}
}

/* ---------- Luoghi e strutture (logistica-strutture/index.php, view.php, _form.php) ---------- */
.lg-spiega{margin-bottom:14px}
.lg-spiega .bd p{margin:0 0 6px}
.lg-usi{display:inline-flex;gap:4px;flex-wrap:wrap}
.lg-stato{margin-bottom:12px}
/* modulo: insegna larga + tipo stretto (e comune + CAP), due colonne che su telefono vanno a capo */
.lg-form-testa{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:0 14px}
.lg-usi-form .form-group{margin-bottom:4px}
.lg-nota{margin:0 0 10px}
/* i campi in sola lettura «contro Chrome» restano col fondo normale, solo in questa maschera */
body.se-body .logistica-strutture-form .form-control[data-noautofill][readonly]{background-color:var(--surface)}
@media (max-width:640px){.lg-form-testa{grid-template-columns:minmax(0,1fr)}}
/* icone della colonna azioni (ActionColumn con 'label' => Icona::svg(...), 'class' => 'iconbtn'): in fila, non una sotto l'altra */
.se-tbl td>a.iconbtn{display:inline-grid;width:30px;height:30px;vertical-align:middle}
.se-tbl td>a.iconbtn svg{width:15px;height:15px}

/* ---------- elenchi trasversali: Checklist e Logistica di tutti gli eventi ---------- */
.se-tbl tr.riga-chiusa td{color:var(--muted)}
.q-warn{color:var(--warn);font-weight:600}
.se-tbl .sub.q-bad,.se-tbl .sub.q-warn{font-weight:500}
.ck-sez{margin:24px 0 10px}
.se-tbl input.ck-dal{margin-bottom:4px}
.se-tbl span.strong{font-weight:600}
/* Logistica di tutti gli eventi: indicatore premuto, icona del tipo accanto a «Cosa si fa», riga Dal/Al */
a.kpi.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.lg-cosa{display:inline-flex;gap:8px;align-items:flex-start}
.lg-cosa svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--muted)}
form.lg-date{margin-bottom:10px}
form.lg-date label{margin:0;font-size:13px;color:var(--ink-2);white-space:nowrap}
body.se-body form.lg-date input.lg-data{width:130px;height:32px}

/* ---------- Importa corsi da Salavirtuale (salavirtuale-corsi/index.php, _anteprima.php) ---------- */
.slv-avvisi{gap:10px;margin-bottom:14px}
.slv-avvisi:empty{display:none}
.slv-modo{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--ink-2);font-weight:400;max-width:100%;min-width:0}
.slv-modo .se-select{min-width:0;max-width:100%;text-overflow:ellipsis}
.slv-testa{display:inline-flex;align-items:center;gap:6px;margin:0;white-space:nowrap;cursor:pointer;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit}
.se-tbl .slv-col{white-space:nowrap}
.slv-avanzamento{margin-bottom:14px}
.slv-progress{height:22px;border-radius:6px;background:var(--surface-3);overflow:hidden;margin-bottom:10px}
.slv-barra{height:100%;width:0;min-width:34px;background:var(--s1);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;padding:0 8px;white-space:nowrap;transition:width .3s}
.slv-barra.ok{background:var(--ok)} .slv-barra.warn{background:var(--warn)}
.slv-righe{max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.slv-fine{margin-top:8px}
.q-ok{color:var(--ok)}
.slv-anteprima{margin-bottom:14px}
.slv-anteprima .hd{flex-wrap:wrap}
.slv-piede{border-top:1px solid var(--line-2)}

/* ---------- Scheda evento: le linguette convertite il 30/09 ---------- */
/* Informazioni (progetti/view.php): elenco chiave-valore in lettura, la DetailView solo in modifica */
.ev-kv{grid-template-columns:210px minmax(0,1fr)}
.ev-kv dd .pill{vertical-align:1px}
.ev-kv dd svg{width:13px;height:13px;vertical-align:-2px}
.note.ev-blocco>svg{margin-top:2px}
@media (max-width:640px){.ev-kv{grid-template-columns:minmax(0,1fr)}}
/* Impostazioni RES (progetti-config/view.php, progetti-giornate/_riquadro.php): tre riquadri e le giornate */
.ev-kv-s{grid-template-columns:130px minmax(0,1fr);gap:7px 12px;font-size:13px}
.ev-res .se-card{min-width:0}
.ev-res-nota{margin:10px 0 0}
img.ev-logo{max-width:120px;max-height:60px;border-radius:6px;border:1px solid var(--line);background:#fff;padding:2px;display:block}
.ev-giornate{margin-top:16px}
.ev-giornate .hd{flex-wrap:wrap}
.ev-giorni-evento{grid-template-columns:110px minmax(0,1fr)}
ul.ev-giorni{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px}
.grid3.ev-res{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
@media (max-width:640px){.ev-kv-s{grid-template-columns:minmax(0,1fr)}}
/* Registrazioni presenze (pres-parevent/index.php, _lettura.php, _columns.php) */
.ev-chiudere{gap:6px}
.ev-lettura p{margin:0}
.ev-lettura-conti{font-weight:400;margin-left:6px}
.ev-pill{gap:6px}
.ev-ufficio{margin-top:4px}
#ajax-alert-presenze:empty{display:none}
/* Centri di costo (progetti-centri-costo/_tab.php): la ripartizione con il totale che si aggiorna */
.cdc-hd{align-items:flex-start;flex-wrap:wrap}
.cdc-totale{display:flex;flex-direction:column;align-items:flex-end;gap:1px;min-width:150px}
.cdc-totale .l{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.cdc-totale b{font-family:var(--f-display);font-size:21px;font-weight:650}
.cdc-totale .ok{color:var(--ok)} .cdc-totale .bad{color:var(--bad)}
#cdc-tabella{min-width:560px}
#cdc-tabella td{vertical-align:middle}
.cdc-perc-box{display:inline-flex;align-items:center;gap:6px}
.cdc-perc-box input{width:90px;text-align:right}
@media (max-width:640px){.cdc-totale{align-items:flex-start}}
.cdc-hd .grow{flex:1 1 320px}
/* Dati ECM (progetti/_tab_ecm.php): la riga del confronto che differisce, il piede dei riquadri */
.tbl tr.riga-warn td{background:var(--warn-soft)}
.ev-piede{border-top:1px solid var(--line-2)}
.ev-confronto td:first-child{width:28%}
/* tema scuro: .tag.ecm e .pill.brand scrivevano --brand-ink (quasi nero) su --brand-soft (scuro), illeggibili.
   DA RENDERE COMUNE (se-ui.css, blocco del tema scuro). */
:root[data-theme="dark"] .tag.ecm,:root[data-theme="dark"] .pill.brand{color:var(--brand)}
/* Salavirtuale (progetti/_tab_salavirtuale.php): tre riquadri e la barra degli esiti */
.grid3.ev-sv{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.ev-sv .bd{font-size:13.5px}
ul.ev-sv-quest{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.ev-stk{height:16px;margin-bottom:4px}
.ev-seg-superato{background:var(--s1)} .ev-seg-non-superato{background:var(--s2)} .ev-seg-non-svolto{background:var(--muted)}
/* Logistica della scheda (progetti-logistica/_camere.php, _riga_persona.php, _tabella_persone.php, _persone.php) */
.lg-camere{display:flex;flex-direction:column;gap:10px;margin:4px 0 10px}
.lg-conti{gap:6px}
.lg-conti .pill b{font-weight:700;margin-left:2px}
.rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.room{border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:10px 12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.room.eccesso{border-color:var(--bad);background:var(--bad-soft)}
.room.sfora{border-color:var(--warn)}
.room.nuova{border-style:dashed;background:transparent;justify-content:center;align-items:flex-start}
.room-hd{display:flex;align-items:center;gap:6px}
.room-hd .t{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;flex:1}
.room-hd .t svg{width:15px;height:15px;color:var(--muted);flex:none}
.room .ac,.lg-pers .ac{display:inline-flex;gap:0;flex:none}
.room .iconbtn,.lg-pers .iconbtn{width:28px;height:28px}
.room .iconbtn svg,.lg-pers .iconbtn svg{width:14px;height:14px}
.room-m{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:12.5px}
.lg-perslist{display:flex;flex-direction:column;border-top:1px solid var(--line-2)}
.lg-pers{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line-2);font-size:13px}
.lg-pers:last-child{border-bottom:0}
.lg-pers .tx{min-width:0;display:flex;flex-wrap:wrap;gap:2px 6px;align-items:center}
.lg-pers .nome{display:inline-flex;align-items:center;gap:5px;font-weight:500}
.lg-pers .nome svg{width:13px;height:13px;color:var(--muted)}
.lg-pers .sub{flex-basis:100%;font-size:12px;color:var(--muted)}
.lg-pers .sub svg{width:12px;height:12px;vertical-align:-2px;margin-right:3px}
.srv-bd>.lg-perslist{border-top:0}
.lg-persona{margin-bottom:12px}
.lg-persona .hd{flex-wrap:wrap}
.lg-chi{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.lg-chi svg{width:15px;height:15px;color:var(--muted)}
.lg-persona td svg{width:13px;height:13px;vertical-align:-2px;color:var(--muted)}
@media (max-width:640px){.lg-pers{grid-template-columns:minmax(0,1fr) auto}.lg-pers>.pill{grid-column:1;justify-self:start}}
/* Sponsor › dettaglio del contributo (progetti-sponsor/_voci_detail.php, dentro la riga espansa) */
.sp-voci{display:flex;flex-direction:column;gap:10px;padding:6px 2px;font-size:13px}
.sp-voci-tbl{min-width:520px}
.sp-voci-tbl tfoot td{border-top:1px solid var(--line);border-bottom:0;background:var(--surface-2)}
.sp-voci-tbl .sub svg{width:12px;height:12px;vertical-align:-2px}
.sp-zero{font-style:italic}
.sp-voci-tbl td.sp-dafare .iconbtn{color:var(--bad)}
/* le icone-pulsante nelle celle delle tabelle .tbl stanno in fila (l'.iconbtn e' un blocco a griglia) */
.tbl td .iconbtn{display:inline-grid;vertical-align:middle;width:28px;height:28px}
.tbl td .iconbtn svg{width:14px;height:14px}
.sp-voci-tbl td.acts{width:auto}

/* ---------- area: impostazioni ---------- */
/*
 * css/parti/impostazioni.css — Impostazioni (tabelle di configurazione, pattern E),
 * pagina di accesso e pagine d'errore. Caricato dopo se-ui.css (SeUiAsset).
 * Solo token, niente colori a mano; il tema scuro viene dai token.
 * A lavori finiti si riunisce nella parte 2 di se-ui.css.
 */

/* ---------- intestazione delle impostazioni: il ritorno a Impostazioni sopra il titolo ---------- */
body.se-body a.ph-su{display:inline-flex;align-items:center;gap:3px;margin:0 0 4px -3px;font-size:12.5px;font-weight:500;color:var(--muted);text-decoration:none}
body.se-body a.ph-su:hover{color:var(--ink);text-decoration:none}
.ph-su svg{width:14px;height:14px;flex:none}

/* ---------- righe delle tabelle di configurazione ---------- */
/* colonna delle azioni (Impostazioni::azioni): matita e cestino affiancati, stretta */
.se-tbl td.imp-az,.se-tbl th.imp-az{white-space:nowrap;width:1%;padding-left:4px;padding-right:8px}
.se-tbl td.imp-az .iconbtn{display:inline-grid;vertical-align:middle;width:30px;height:30px;margin:0}
body.se-body .se-tbl td.imp-az a.iconbtn{color:var(--ink-2)}
body.se-body .se-tbl td.imp-az a.iconbtn:hover{color:var(--ink)}
/* nome di una riga che l'ente non puo' modificare (di sistema, o di un altro ente) */
.imp-nm{font-weight:500;color:var(--ink)}
/* etichetta «Di sistema» accanto al nome */
.pill.imp-sis{height:20px;font-size:11px;font-weight:600;margin-left:4px;vertical-align:1px}
/* pallino del colore (categorie di evento) */
.imp-col{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:-1px;margin-right:6px;border:1px solid var(--line);background:var(--sw,var(--surface-3))}
/* un valore corto in grassetto tabellare (codici, aliquote, giorni) */
.se-tbl .imp-cod,.imp-cod{font-family:var(--f-mono);font-size:12.5px;font-weight:500;color:var(--ink-2);white-space:nowrap}

/* la riga piccola sotto un nome cliccabile resta leggera (il collegamento e' in grassetto) */
body.se-body .se-tbl a.rowlink .sub,body.se-body .se-tbl a.rowlink .tag{font-weight:400}
body.se-body .se-tbl a.rowlink .tag{font-weight:700}
/* testo d'avviso sotto un valore (ridefinita, vietata) */
.se-tbl .sub.imp-warn{color:var(--warn)}
.se-tbl .sub.imp-bad{color:var(--bad)}
.se-tbl .sub.imp-bad svg{width:13px;height:13px;vertical-align:-2px}
/* interruttore dentro una riga (.toggle di se-ui.css su un collegamento) */
a.toggle.imp-tg{display:inline-block;vertical-align:middle;margin-right:4px}
/* punteggio con la stella (competenze) */
.imp-stelle{display:inline-flex;align-items:center;gap:3px;font-variant-numeric:tabular-nums}
.imp-stelle svg{width:13px;height:13px;color:var(--warn)}
/* esito di un'operazione mostrato dalla pagina (flash strutturato, vedi cont-tabesercizi) */
.note.imp-esito{margin-bottom:14px}
/* testo piccolo e senza a capo in una cella (centri di costo: «usato da») */
.imp-piccolo{font-size:12px;color:var(--ink-2)}
.imp-nowrap{white-space:nowrap}
/* nome di una voce non attiva: barrato, leggibile */
.se-tbl td.imp-barrato .rowlink,.se-tbl td.imp-barrato .imp-nm{text-decoration:line-through;text-decoration-color:var(--muted);color:var(--muted)}
/* connettore Salavirtuale: indirizzo della piattaforma, riga attiva, nota informativa */
.imp-url{font-family:var(--f-mono);font-size:12px;color:var(--ink-2);word-break:break-all}
.tbl tr.imp-attiva td{background:var(--ok-soft)}
.tbl tr.imp-spenta td{color:var(--muted)}
.tbl .sub.imp-info{color:var(--info)}
.tbl .sub.imp-bad{color:var(--bad)}
.imp-connessioni .tbl{min-width:880px}
body.se-body .imp-connessioni .form-control{height:32px;font-size:13px}
.imp-anteprima-box:not(:empty){margin-bottom:14px}
.imp-nota-salva{margin:12px 0 0;color:var(--muted);max-width:90ch}
.imp-connessioni td:nth-child(1){min-width:200px;max-width:320px}
.imp-connessioni td:last-child select{min-width:130px}
/* riga spenta (voce non attiva): in grigio */
.se-tbl tr.imp-spenta td{color:var(--muted)}
.se-tbl tr.imp-spenta td .rowlink{color:var(--muted)}
/* spunta «si'» in una cella */
.imp-si{display:inline-flex;color:var(--ok)}
.imp-si svg{width:16px;height:16px}
/* spiegazione chiusa sopra un elenco («Come funziona») */
details.adv.imp-come{margin-bottom:14px}
details.adv.imp-come summary{font-weight:600;font-size:13.5px}
details.adv.imp-come .bd p{margin:0 0 8px;font-size:13px;color:var(--ink-2);max-width:78ch}
details.adv.imp-come .bd p:last-child{margin-bottom:0}

/* testo di spiegazione dentro una scheda, sopra o sotto la tabella (tariffario) */
.se-card .bd.imp-intro{font-size:13px;color:var(--ink-2);line-height:1.5;padding-top:10px;padding-bottom:12px}
.se-card .bd.imp-piede{border-top:1px solid var(--line-2);color:var(--muted)}
.tbl td.strong{font-weight:600}
/* tabella senza cornice dentro una scheda anche quando sta in un contenitore pjax */
.se-card .tbl-wrap.piatta{border:0;border-radius:0;border-top:1px solid var(--line-2)}
.tbl td.imp-az{width:1%;white-space:nowrap}
.tbl td.imp-az .iconbtn{display:inline-grid;width:30px;height:30px}

/* l'albero del piano dei conti (kartik TreeView) dentro una scheda */
/* kartik mette `form-control` sul contenitore dell'albero: senza height:auto prende i 34px dei campi e l'albero esce dal riquadro */
.imp-albero .kv-tree-wrapper{border:0}
body.se-body .imp-albero .kv-tree-wrapper.form-control{height:auto;padding:0}
/* l'albero kartik e il riquadro del nodo con i colori del design system: i suoi fondi bianchi (#fff, #f5f5f5)
   nel tema scuro lasciavano testo chiaro su bianco */
.imp-albero .kv-tree-container{border-color:var(--line-2)}
.imp-albero .kv-tree-root,.imp-albero .kv-tree-list,.imp-albero .kv-node-indicators{background:transparent}
.imp-albero .kv-tree li{border-color:var(--line)}
.imp-albero .kv-tree li ul{border-top-color:var(--line)}
.imp-albero .kv-tree>li:last-child ul,.imp-albero .kv-parent ul li:last-child ul{border-left-color:var(--surface)}
.imp-albero .kv-tree li.kv-parent{border-bottom-color:var(--surface)}
.imp-albero .kv-node-detail{border-radius:5px}
.imp-albero .kv-node-detail:focus,.imp-albero .kv-focussed{background:var(--brand-soft)}
.imp-albero .kv-node-detail:hover{background:var(--surface-3)}
.imp-albero .kv-highlight{color:var(--ink);background:var(--warn-soft)}
.imp-albero .kv-node-message{color:var(--muted)}
.imp-albero .kv-loading,.imp-albero .kv-loading-search{background-color:var(--surface)}
.imp-albero .kv-search-container .kv-search-clear{color:var(--muted);text-shadow:none}
.imp-albero .kv-detail-container{border-color:var(--line);border-radius:var(--r);padding:0 16px 14px}
.imp-albero .kv-detail-heading{margin:0 -16px 14px;padding:12px 16px;border-radius:var(--r) var(--r) 0 0;border-bottom-color:var(--line-2);background:var(--surface-2)}
.imp-albero .kv-detail-crumbs{font-size:15px;font-weight:650;color:var(--muted);padding:0;text-shadow:none}
.imp-albero .kv-detail-crumbs .kv-crumb-active{color:var(--ink);font-weight:650}
/* l'albero del Piano dei conti: le icone Font Awesome di kartik (piu'/meno, cartelle, voci) disegnate con le icone
   del design system, coi colori dei gettoni; stesso posto, stesso clic. Si disegna il ::before: l'<i> resta di
   kartik, che lo mostra e lo nasconde (display) secondo il ramo aperto o chiuso */
.imp-albero .kv-tree-wrapper .far::before,.imp-albero .kv-tree-wrapper .fas::before{content:"";display:inline-block;width:14px;height:14px;vertical-align:-2px;background:currentColor;-webkit-mask:var(--se-ic) center/contain no-repeat;mask:var(--se-ic) center/contain no-repeat}
.imp-albero .kv-tree-wrapper .fa-plus-square{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='3'/%3E%3Cpath d='M12 8v8M8 12h8'/%3E%3C/svg%3E");color:var(--muted)}
.imp-albero .kv-tree-wrapper .fa-minus-square{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='3'/%3E%3Cpath d='M8 12h8'/%3E%3C/svg%3E");color:var(--muted)}
.imp-albero .kv-tree-wrapper .fa-folder{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6a1 1 0 0 1 1-1h5l2 2h9a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E");color:var(--warn)}
.imp-albero .kv-tree-wrapper .fa-folder-open{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6a1 1 0 0 1 1-1h5l2 2h8a1 1 0 0 1 1 1v2'/%3E%3Cpath d='M3 6v12a1 1 0 0 0 1 1h13.5a1 1 0 0 0 1-.8L21 11H7.5a1 1 0 0 0-1 .8L4 19'/%3E%3C/svg%3E");color:var(--warn)}
.imp-albero .kv-tree-wrapper .fa-file,.imp-albero .kv-tree-wrapper .fa-list,.imp-albero .kv-tree-wrapper .fa-list-ul{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11M4 6h.01M4 12h.01M4 18h.01'/%3E%3C/svg%3E");color:var(--info)}
/* un'icona che non e' fra queste prende quella delle voci, non un quadrato pieno */
.imp-albero .kv-tree-wrapper{--se-ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11M4 6h.01M4 12h.01M4 18h.01'/%3E%3C/svg%3E")}


/* ---------- form nelle modali di Impostazioni ---------- */
/* scelta del colore di una categoria: il colore arriva da --sw (dato), l'anello dai token */
.imp-sws{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.imp-sw{width:30px;height:30px;border-radius:7px;border:0;padding:0;cursor:pointer;background:var(--sw);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 15%,transparent)}
.imp-sw:hover{transform:translateY(-1px)}
.imp-sw.on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}
.imp-anteprima-r{display:flex;align-items:center;gap:10px}
.imp-anteprima{display:inline-flex;align-items:center;height:24px;padding:0 12px;border-radius:6px;font-size:12px;font-weight:600;background:var(--sw);color:#fff}
/* il campo Ente, in cima e evidenziato (pattern C della guida) */
.field-ente{background:var(--brand-soft);padding:10px 12px 2px;border-radius:10px;margin-bottom:14px}
.field-ente .form-group{margin-bottom:8px}
/* pagine di Impostazioni a modulo unico (Impostazioni RES, conti per registrazioni automatiche) */
.imp-modulo{max-width:980px}
.imp-modulo .hint-block{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.4}
.imp-spiega{font-size:13px;color:var(--ink-2);margin:0 0 12px;max-width:80ch;line-height:1.5}
.tools.imp-scelta-ente{margin:0}
.tools.imp-scelta-ente label{font-size:13px;font-weight:600;color:var(--ink-2);margin:0}
.tools.imp-scelta-ente .se-select{width:auto;min-width:0;max-width:100%;flex:0 1 360px}
/* conti per registrazioni automatiche: una riga per conto — nome | sottoconto | estensione | lente | descrizione */
.imp-conti{display:flex;flex-direction:column}
.imp-conto{display:grid;grid-template-columns:minmax(0,1.3fr) 120px 72px 34px minmax(0,1.5fr);gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line-2)}
.imp-conto:last-child{border-bottom:0}
.imp-conto .imp-conto-l{margin:0;font-size:13px;font-weight:500;color:var(--ink)}
body.se-body .imp-conto .form-group{margin:0}
body.se-body .imp-conto .help-block:empty,body.se-body .imp-conto .invalid-feedback:empty{display:none}
body.se-body .imp-conto .form-control{font-family:var(--f-mono);font-size:12.5px;background:var(--surface-2)}
.imp-conto .imp-conto-d{font-size:12.5px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis}
.se-btn.imp-lente{width:34px;padding:0;justify-content:center}
.imp-soglia{max-width:260px;margin-top:14px}
.imp-soglia .hint-block{display:block;font-size:12px;color:var(--muted);margin-top:4px}
@media (max-width:760px){
  .imp-conto{grid-template-columns:minmax(0,1fr) 72px 34px;row-gap:4px}
  .imp-conto .imp-conto-l{grid-column:1/-1}
  .imp-conto .imp-conto-d{grid-column:1/-1}
}
/* la barra con «Salva» che resta in fondo allo schermo nei moduli lunghi */
.imp-piede-form.fisso{position:sticky;bottom:0;z-index:5;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);margin:14px -4px 0;padding:12px 4px}
/* piede di un modulo a pagina piena: Annulla e Salva in fondo a destra */
.imp-piede-form{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:8px;padding-top:14px;border-top:1px solid var(--line-2)}
/* una spiegazione accanto a un campo, allineata al campo */
.hint.imp-nota-campo{font-size:12.5px;color:var(--muted);margin:26px 0 0;line-height:1.45}
@media (max-width:640px){.hint.imp-nota-campo{margin-top:0}}
/* opzioni avanzate chiuse in fondo a un modulo */
details.adv.imp-adv{margin:4px 0 8px}
details.adv.imp-adv summary{font-size:13px}
/* due campi affiancati dentro una modale, uno sotto l'altro sul telefono */
.imp-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
@media (max-width:640px){.imp-2{grid-template-columns:minmax(0,1fr)}}

/* =====================================================================
   PAGINA DI ACCESSO (views/layouts/main_login.php + site/login, recupero password)
   Due colonne: a sinistra il marchio e cosa fa Smartevent, a destra il modulo.
   Sul telefono resta il modulo, con il logo sopra.
   ===================================================================== */
body.se-body.se-login-body{min-height:100vh}
.se-login{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh}
/* colonna del marchio */
.se-login .lg-brand{position:relative;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:56px clamp(32px,6vw,88px);background:var(--surface-2);border-right:1px solid var(--line);overflow:hidden}
.se-login .lg-brand::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--brand)}
.se-login .lg-logo{display:block;height:46px;width:auto;max-width:260px}
.se-login .lg-brand h1{font-family:var(--f-display);font-weight:650;font-size:clamp(28px,3vw,38px);line-height:1.12;letter-spacing:-.02em;margin:0;color:var(--ink);text-wrap:balance;max-width:14em}
.se-login .lg-brand h1 em{font-style:normal;background:linear-gradient(transparent 62%,var(--brand-soft) 62%);padding:0 2px}
.se-login .lg-brand p{margin:0;color:var(--ink-2);font-size:15px;line-height:1.55;max-width:30em}
.se-login .lg-feat{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.se-login .lg-feat li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-2)}
.se-login .lg-feat li svg{width:15px;height:15px;flex:none;padding:5px;box-sizing:content-box;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink)}
.se-login .lg-foot{margin-top:auto;padding-top:26px;font-size:12px;color:var(--muted)}
/* colonna del modulo */
.se-login .lg-form{display:flex;align-items:center;justify-content:center;padding:40px 24px;background:var(--surface)}
.se-login .lg-box{width:100%;max-width:380px}
.se-login .lg-box .lg-logo-m{display:none;margin:0 auto 28px;height:40px;width:auto}
.se-login .lg-box>a{display:block;text-align:center}
.se-login .tag.lg-env-tag{margin-bottom:12px;border-color:var(--bad);color:var(--bad)}
.se-login .lg-box .form-group{margin-bottom:14px}
.se-login .lg-box .invalid-feedback{display:block;font-size:12px;color:var(--bad);margin-top:4px}
body.se-body .se-login .lg-help a{color:var(--ink);font-weight:600}
.se-login .lg-box h2{font-family:var(--f-display);font-weight:650;font-size:24px;letter-spacing:-.015em;margin:0 0 4px;color:var(--ink)}
.se-login .lg-box .lg-sub{margin:0 0 22px;color:var(--muted);font-size:13.5px;line-height:1.5}
.se-login .lg-box .form-group{margin-bottom:14px}
.se-login .lg-box label{display:block}
.se-login .lg-box .form-control{height:40px;font-size:14px}
.se-login .lg-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 18px;flex-wrap:wrap}
.se-login .lg-row .form-group{margin:0}
.se-login .lg-row .custom-control-label{font-weight:500;color:var(--ink-2);font-size:13px;margin:0;cursor:pointer}
body.se-body .se-login a.lg-link{color:var(--ink);font-weight:600;font-size:13px;text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:2px;text-underline-offset:3px}
body.se-body .se-login a.lg-link:hover{color:var(--ink);text-decoration-color:var(--ink)}
.se-login .se-btn.lg-go{width:100%;justify-content:center;height:42px;font-size:14.5px}
.se-login .lg-help{margin:22px 0 0;text-align:center;font-size:12.5px;color:var(--muted)}
.se-login .lg-env{display:inline-flex;vertical-align:middle;margin-left:8px}
.se-login .lg-flash{margin-bottom:16px}
.se-login .lg-flash .note{margin-bottom:8px}
/* la password che si vede e non si vede (nuova password) */
.se-login .lg-pw{position:relative}
.se-login .lg-pw .form-control{padding-right:44px}
.se-login .lg-pw .lg-eye{position:absolute;right:4px;top:3px;width:34px;height:34px}
.se-login .lg-pw .lg-eye svg{width:16px;height:16px}
/* il logo giusto per il tema: a colori sul chiaro, in bianco sullo scuro (img.su-chiaro / img.su-scuro in se-ui.css) */
@media (max-width:860px){
  .se-login{grid-template-columns:minmax(0,1fr)}
  .se-login .lg-brand{display:none}
  .se-login .lg-form{align-items:flex-start;padding:48px 16px 32px}
  .se-login .lg-box .lg-logo-m{display:block}
  :root[data-theme="dark"] .se-login .lg-box .lg-logo-m.su-scuro{display:block}
  :root:not([data-theme="dark"]) .se-login .lg-box .lg-logo-m.su-chiaro{display:block}
}

/* =====================================================================
   PAGINE D'ERRORE (views/site/error.php): dentro il guscio per chi e' entrato,
   nella colonna del modulo di accesso per chi non e' entrato.
   ===================================================================== */
.se-err{max-width:620px;margin:6vh auto 0;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.se-err .code{font-family:var(--f-mono);font-size:12.5px;font-weight:500;color:var(--muted);letter-spacing:.04em}
.se-err h1{font-family:var(--f-display);font-weight:650;font-size:30px;line-height:1.15;letter-spacing:-.02em;margin:0;color:var(--ink);text-wrap:balance}
.se-err p{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.55}
.se-err .det{font-size:13px;color:var(--muted)}
.se-err .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.se-err details.adv{width:100%;margin-top:6px}
.se-err details.adv pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--f-mono);font-size:12px;color:var(--ink-2);max-height:260px;overflow:auto}
.se-login .se-err{margin:0;max-width:none}
.se-login .se-err h1{font-size:24px}
@media (max-width:640px){.se-err{margin-top:2vh}.se-err h1{font-size:24px}.se-err .acts .se-btn{flex:1 1 auto;justify-content:center}}

/* ---------- area: persone ---------- */
/* =====================================================================
   AREA PERSONE — elenco anagrafiche, scheda, pagine dell'area
   (css della conversione: caricato dopo se-ui.css, da riunire nella parte 2)
   Solo token, niente colori scritti a mano; il tema scuro segue da se'.
   ===================================================================== */

/* ---- elenco: la cella «Nome» con foto o iniziali, nome e riga sotto */
.pers-nome{display:flex;align-items:center;gap:10px;min-width:0}
.pers-nome .tt{min-width:0}
/* nome e riga sotto su una riga sola (tagliati coi puntini, il nome intero al passaggio del
   mouse): righe basse come nel mockup, e le colonne che non stanno le nasconde se-ui.js */
.pers-nome .rowlink{font-weight:600;display:block;max-width:min(320px,56vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pers-nome .sub{max-width:min(320px,56vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* celle con testi lunghi (mansioni): vanno a capo in una colonna stretta */
.se-tbl td.pers-lunga{max-width:220px;min-width:140px}
.pers-riga-foto{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:none;display:block}
/* i ruoli (tipi) di un'anagrafica, come pill piatte */
.pers-ruoli{display:flex;gap:4px;flex-wrap:wrap}
/* «Da guardare»: una frase corta in arancio, come nel mockup */
.pers-guarda{color:var(--warn);font-weight:500;font-size:12.5px}
/* variazione «da guardare» sotto un numero in testa (nel mockup il codice fiscale mancante) */
.kpi .d.warn{color:var(--warn)}
/* «Chi c'e' in archivio» (riquadro che si apre) fra i numeri e la griglia */
details.adv.pers-archivio{margin-bottom:14px}
details.adv.pers-archivio summary .small{font-weight:400}
/* il form «seleziona tutti i filtrati» sta nella barra della griglia: solo il pulsante si vede */
.pers-form-filtrati{display:inline-flex;margin:0}
.tools .btn-group .pers-form-filtrati + .se-btn,.tools .pers-form-filtrati + .se-btn{margin-left:6px}
/* ---- la barra della selezione (widgets/BarraSelezione.php): il carrello in sessione. Stesso
   aspetto della barra delle azioni di massa (.bulk, sospesa in basso): una sola barra di
   selezione in tutte le pagine. Sempre «aperta» (.show) e nascosta con l'attributo `hidden`:
   qui display va rimesso a none, perche' .bulk lo fissa a flex. Dentro: conteggio, «N in
   questo elenco», nota breve (la spiegazione al passaggio del mouse), azioni (la prima e' la
   primaria), «Svuota». */
.bulk.barra-selezione[hidden]{display:none}
.barra-selezione .sel-conta{font-variant-numeric:tabular-nums}
.barra-selezione .sel-qui{white-space:nowrap;opacity:.85;margin-right:4px}
.barra-selezione .sel-qui b{margin-right:0}
.barra-selezione .sel-nota{font-size:11.5px;opacity:.72;white-space:nowrap;margin-right:6px;cursor:help}
.barra-selezione form.sel-azione{display:inline-flex;margin:0}
/* i pulsanti-link (azioni in modale) nella barra scura: colore della barra, non dei link */
body.se-body .bulk a.se-btn,body.se-body .bulk a.se-btn:hover{color:var(--surface);text-decoration:none}
body.se-body .bulk a.se-btn.pri,body.se-body .bulk a.se-btn.pri:hover{color:var(--brand-ink)}
.bulk .se-btn.ghost{border-color:transparent}
:root[data-theme="dark"] .bulk .se-btn:not(.pri){border-color:rgba(0,0,0,.2)}
:root[data-theme="dark"] .bulk .se-btn:not(.pri):hover{background:rgba(0,0,0,.07)}
/* con una modale aperta la barra si toglie di mezzo (starebbe sopra il piede della modale) */
body.modal-open .bulk{visibility:hidden}
/* sul telefono le barre (questa e quella di seBulk) vanno a capo invece di scorrere di lato:
   tutte le azioni si vedono, e la pagina lascia spazio sotto */
@media (max-width:640px){
  .bulk{left:12px;right:12px;bottom:12px;max-width:none;flex-wrap:wrap;row-gap:6px;overflow-x:visible;transform:translateY(calc(100% + 24px))}
  .bulk.show{transform:none}
  body.se-body:has(.bulk.show:not([hidden])) .page{padding-bottom:190px}
}

/* ---- scheda: la testata della persona (rec-head con la foto o le iniziali a sinistra) */
.pers-testa{align-items:center}
.pers-testa-av{flex:none;display:block;border-radius:16px;text-decoration:none}
.pers-testa-av:hover{text-decoration:none}
.pers-testa-av .se-av{width:60px;height:60px;border-radius:16px;font-size:21px}
.pers-testa-av:hover .se-av,.pers-testa-av:hover .pers-testa-foto{outline:2px solid var(--brand);outline-offset:2px}
.pers-testa-foto{width:60px;height:60px;border-radius:16px;object-fit:cover;display:block}
.pers-tags{gap:6px;margin-bottom:6px}
/* gli altri ruoli della stessa anagrafica: pill che si cliccano (aprono la scheda in quel ruolo) */
a.pill.pers-altro-ruolo{text-decoration:none;border:1px dashed var(--line)}
a.pill.pers-altro-ruolo:hover{border-color:var(--ink-2);color:var(--ink);text-decoration:none}
/* il ruolo aperto: la pill «brand» di se-ui ha il testo scuro anche nel tema scuro (illeggibile) */
.pers-tags .pill.brand{color:var(--ink)}
.pers-sotto{color:var(--muted);font-size:13.5px;margin:-2px 0 8px}
/* la sezione aperta: i partial vecchi stanno nel ponte, qui solo lo spazio */
.pers-sezione{min-width:0}

/* ---- scheda › Panoramica */
.pers-panoramica .kv{grid-template-columns:180px minmax(0,1fr)}
.pers-in-card{border:0;border-radius:0}
.pers-in-card .tbl{width:100%;min-width:0;table-layout:fixed}
.pers-in-card .tbl td{padding:9px 16px;white-space:normal;overflow-wrap:anywhere}
.pers-in-card .tbl td.r{width:110px;white-space:nowrap}
.pers-collegamenti{display:flex;flex-direction:column;gap:9px;font-size:13.5px}
.pers-foto-errori:empty{display:none}
.pers-foto-nota{text-align:center;margin:4px 0 0}

/* ---- scheda › Eventi: i due grafici sopra l'elenco */
.pers-eventi-grafici{margin-bottom:4px}

@media (max-width:640px){
  .pers-testa-av .se-av,.pers-testa-foto{width:48px;height:48px;border-radius:13px;font-size:17px}
  .pers-panoramica .kv{grid-template-columns:minmax(0,1fr)}
}

/* ---- pagine dell'area: Competenze, Importa */
.se-tbl td.pers-skills{min-width:240px;width:55%}
.se-tbl td.pers-skills .pers-ruoli{max-width:640px}
.pill.pers-skill b{font-weight:700;margin-left:2px}
.pers-colonne-import{word-break:break-word;line-height:1.6}
.pers-form-azioni{margin-top:8px}

/* ---- «Nuova anagrafica» (modale) */
.pers-scegli-tipo{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/* il campo Ente in cima, evidenziato (pattern C: solo per chi sceglie l'ente) */
.pers-campo-ente{background:var(--brand-soft);padding:12px 12px 2px;border-radius:10px;margin-bottom:14px}
.pers-form-aiuto{margin:0 0 14px}

/* ---- scheda › Dati anagrafici: contatti, indirizzi, coordinate bancarie */
.pers-box{margin-top:18px}
.pers-sub-head{margin-bottom:10px;align-items:center}
.pers-sub-head h2.sec{margin:0}
.pers-sub-head .btn-toolbar{margin:0}

/* ---- scheda › Competenze: il riquadro per attribuirle sopra l'elenco */
.pers-attribuisci{margin-bottom:18px}
.pers-attribuisci .field{min-width:0}
.pers-attribuisci .grid4{align-items:end}

/* ---------- griglie: ordinamento discreto (30/09) ----------
   Le intestazioni ordinabili (link `a[data-sort]` di Yii e kartik, in tutte le griglie) a
   riposo non mostrano frecce: si capisce che si cliccano dal cursore e dal colore, che al
   passaggio del mouse passa da grigio a inchiostro, con una doppia freccina leggera. La
   colonna ordinata ha il titolo in inchiostro e una freccina piccola ▲ (crescente) o ▼
   (decrescente) accanto. Spariscono l'icona grande di kartik (`.kv-sort-icon`, Font
   Awesome) e il glifo Glyphicons di site.css (`a.asc:after`). Nelle colonne allineate a
   destra (numeri) la freccina sta prima del titolo (::before), che resta a filo dei numeri.
   Sul telefono, senza passaggio del mouse, la doppia freccina resta visibile appena. Le
   forme sono maschere SVG colorate con `currentColor`: niente colori scritti a mano. */
body.se-body{
  --se-sort-su:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'%3E%3Cpath d='M4 2.6 7.2 6.8H.8z'/%3E%3C/svg%3E");
  --se-sort-giu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'%3E%3Cpath d='M4 7.4 7.2 3.2H.8z'/%3E%3C/svg%3E");
  --se-sort-due:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'%3E%3Cpath d='M4 .8 6.8 4.1H1.2zM4 9.2 6.8 5.9H1.2z'/%3E%3C/svg%3E");
}
body.se-body .table thead th a[data-sort]{color:var(--muted);text-decoration:none;cursor:pointer;border-radius:4px;transition:color .12s}
body.se-body .table thead th a[data-sort]:hover,body.se-body .table thead th a[data-sort]:focus-visible{color:var(--ink);text-decoration:none}
body.se-body .table thead th a[data-sort] .kv-sort-icon{display:none}
body.se-body .table thead th a[data-sort]::after,
body.se-body .table thead th.kv-align-right a[data-sort]::before,body.se-body .table thead th.text-right a[data-sort]::before{content:"";display:inline-block;vertical-align:-1px;width:7px;height:9px;margin:0 0 0 5px;padding:0;position:static;top:auto;font:inherit;line-height:1;background:currentColor;-webkit-mask:var(--se-sort-due) center/contain no-repeat;mask:var(--se-sort-due) center/contain no-repeat;opacity:0;transition:opacity .12s}
body.se-body .table thead th.kv-align-right a[data-sort]::before,body.se-body .table thead th.text-right a[data-sort]::before{margin:0 5px 0 0}
body.se-body .table thead th.kv-align-right a[data-sort]::after,body.se-body .table thead th.text-right a[data-sort]::after{content:none;display:none}
body.se-body .table thead th:hover a[data-sort]::after,body.se-body .table thead th:hover a[data-sort]::before,
body.se-body .table thead th a[data-sort]:focus-visible::after,body.se-body .table thead th a[data-sort]:focus-visible::before{opacity:.45}
body.se-body .table thead th a[data-sort].asc,body.se-body .table thead th a[data-sort].desc{color:var(--ink)}
body.se-body .table thead th a[data-sort].asc::after,body.se-body .table thead th a[data-sort].asc::before{-webkit-mask-image:var(--se-sort-su);mask-image:var(--se-sort-su);opacity:.9}
body.se-body .table thead th a[data-sort].desc::after,body.se-body .table thead th a[data-sort].desc::before{-webkit-mask-image:var(--se-sort-giu);mask-image:var(--se-sort-giu);opacity:.9}
@media (hover:none){body.se-body .table thead th a[data-sort]:not(.asc):not(.desc)::after,body.se-body .table thead th a[data-sort]:not(.asc):not(.desc)::before{opacity:.3}}

/* ---------- area: oggi-progetti (3nt1) ---------- */
/*
 * 3nt1 — area «Oggi» (cruscotto) e «Progetti e campagne» (restyling 2026-09).
 * Solo token (var(--…)): il tema scuro viene da se'. Da riunire in se-ui.css parte 2.
 */

/* ---------- Oggi (views/site/index.php) ---------- */

/* gli avvisi di sistema sopra gli indicatori */
.oggi-avvisi{margin-bottom:16px}
/* la riga di spiegazione sotto un grafico */
.oggi-nota{margin:6px 0 0}
/* la seconda riga di una voce di feed (chi, quale documento) */
.feed .sub{display:block;font-size:12px;color:var(--muted);margin-top:1px}
/* una voce di feed che e' un link (diario → scheda della persona) */
body.se-body .feed a.fi{color:var(--ink);text-decoration:none}
body.se-body .feed a.fi:hover .small{text-decoration:underline;text-underline-offset:2px}
/* il calendarietto di un progetto senza data di fine */
.cal-d.oggi-senza-data i{background:var(--muted)}
/* l'area del compito (Progetti, Scadenze…) nella riga sotto il titolo */
.task .m .tag{height:18px;font-size:10.5px}
/* la seconda riga di una card progetto (l'ente erogatore) */
.evcard .m+.m{margin-top:2px}

/* ---------- Progetti e campagne — elenco (views/progetti/index.php, _columns.php) ---------- */

/* la categoria progettuale: pallino col colore scelto in Impostazioni (--c arriva dal dato) */
.pr-cat{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.pr-cat i{width:9px;height:9px;border-radius:50%;background:var(--c,var(--muted));flex:none}
/* i totali di pagina di valore e quota gestita */
.pr-tot{font-weight:650}
/* le azioni di riga (duplica, elimina) una accanto all'altra */
.pr-azioni{white-space:nowrap;text-align:right}
.pr-azioni .iconbtn{width:30px;height:30px}
.pr-azioni .iconbtn svg{width:15px;height:15px}
/* la card del budget per categoria, sotto la griglia */
.pr-budget-cat{margin-top:18px}
.pr-nota{margin:4px 0 0}
/* barre impilate: un pezzo per categoria progettuale, colore dal dato (--c) */
.hb.pr-stk .t{display:flex;gap:1px;height:12px}
.hb.pr-stk .t i{background:var(--c,var(--muted));border-radius:0}
.hb.pr-stk .t i:last-child{border-radius:0 4px 4px 0}
.hb.pr-stk .r{grid-template-columns:minmax(110px,32%) minmax(0,1fr) auto}
.pr-azioni .iconbtn{display:inline-grid;vertical-align:middle}
/* il titolo del progetto non si stringe fino a una parola per riga */
#crud-datatable td.col-titolo{min-width:220px}

/* ---------- Progetti — form in modale (views/progetti/_form.php) ---------- */

/* la scelta dell'ente, in cima ed evidenziata (solo per chi vede piu' enti) */
.field.pr-ente{background:var(--brand-soft);padding:12px 12px 2px;border-radius:10px;margin-bottom:12px}

/* ---------- Scheda progetto (views/progetti/scheda.php, view.php) ---------- */

/* la riga di tag e pill sopra il titolo */
.rec-head .pr-tags{gap:6px;margin-bottom:6px}
/* le etichette della scheda modificabile: una colonna stretta, il valore accanto */
.pr-info .pr-dv-l{width:30%;min-width:120px;color:var(--muted);font-weight:normal}
.pr-info .kv-detail-view td{overflow-wrap:anywhere}
@media (max-width:640px){.pr-info .pr-dv-l{width:40%}}
/* «Elimina il progetto» nel menu ⋯ */
.se-menu .mi.pr-elimina,#se-menu .mi.pr-elimina{color:var(--bad)}
.pr-info .kv-detail-view table{width:100%}
@media (max-width:640px){.pr-info .kv-detail-view table{table-layout:fixed}}
.pr-info .kv-detail-view th{vertical-align:top}
.pr-info .kv-detail-view td .form-control,.pr-info .kv-detail-view td .input-group,.pr-info .kv-detail-view td .select2-container{max-width:100%;min-width:0}
.pr-info .kv-detail-view td .input-group{flex-wrap:nowrap}

/* ---------- Scheda progetto › Budget e attribuito (views/budget-prog/index.php) ---------- */

.pr-kpis{margin-bottom:0}
.pr-kpis .kpi .d{font-weight:500}
.pr-budget-graf{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.pr-budget-graf>.se-card{min-width:0}
@media (min-width:1500px){.pr-budget-graf{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
/* l'avanzamento dell'attribuito: barretta e percentuale */
.pr-barra{display:flex;align-items:center;gap:8px;min-width:110px}
.pr-barra .bar{flex:1}
.pr-cat-t td:first-child{max-width:220px}
/* il riepilogo economico: due tabelle affiancate */
.pr-riep .tbl-wrap{overflow-x:auto}
.pr-riep-t td.num,.pr-riep-t th.num{text-align:right;white-space:nowrap}
.pr-riep-t tfoot td{font-weight:650;border-top:1px solid var(--line)}
.pr-ris{font-weight:650}
.pr-pos{color:var(--ok)}
/* il titolo a sinistra nella riga strumenti della griglia */
.tools .pr-tools-t{margin:0}
/* dentro la scheda lo spazio e' poco: le due tabelle una sotto l'altra, affiancate solo su schermi larghi */
.pr-riep{grid-template-columns:minmax(0,1fr)}
@media (min-width:1500px){.pr-riep{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
/* tag e pill nelle celle non vanno a capo */
.se-tbl td .tag,.se-tbl td .pill{white-space:nowrap}
.pr-riep-t{width:100%;min-width:500px}
/* le tabelle strette della scheda scorrono dentro il loro riquadro, non la pagina */
.pr-budget-graf .tbl-wrap,.pr-riep .tbl-wrap{overflow-x:auto}
.pr-cat-t{width:100%;min-width:400px}

/* ---------- Report › Andamento dei progetti (views/progetti/index_monprogetti.php) ---------- */

.pr-mon-graf{margin-bottom:16px}
.pr-mon-graf>.se-card{min-width:0}
.pr-mon-riep{margin-bottom:16px}
@media (max-width:1040px){.pr-mon-graf{grid-template-columns:minmax(0,1fr)}}

/* ---------- Report › Rendicontazione dei progetti (views/site/report.php) ---------- */

/* le tabelle del report scorrono dentro la card, non la pagina */
.rd-scorre{overflow-x:auto}
.rd-prog{width:100%;min-width:720px}
.rd-prog td.num,.rd-prog th.num,.pr-cat-t td.num,.pr-cat-t th.num{text-align:right;white-space:nowrap}
.rd-prog .rowlink{font-weight:600}

/* ---------- area: terzo-settore (3nt1: diario, donazioni, magazzino, negozio) ---------- */
/*
 * css/parti/terzo-settore.css — pagine che ha solo 3nt1: diario dei beneficiari,
 * donazioni, magazzino, negozio Diomira (restyling 2026-09).
 * Caricato dopo se-ui.css. Solo token (var(--...)), niente colori scritti a mano:
 * il tema scuro segue da se'. A lavori finiti si riunisce nella parte 2 di se-ui.css.
 */

/* pulsanti scritti come collegamento (Html::a con .se-btn): il colore del pulsante,
   non il blu dei link (stessa regola di css/parti/eventi.css di SmartEvent: da rendere comune) */
body.se-body a.se-btn,body.se-body a.se-btn:hover{color:var(--ink);text-decoration:none}
body.se-body a.se-btn.pri,body.se-body a.se-btn.pri:hover{color:var(--brand-ink)}
body.se-body a.se-btn.danger{color:var(--bad)}

/* =====================================================================
   DIARIO — la griglia degli eventi (views/diary/index.php). La cronologia per mese
   e il suo pannello «Cerca e filtra» sono stati tolti l'08/10/2026 (Alessio: meglio
   una griglia filtrabile).
   ===================================================================== */
/* titolo di sezione del diario dentro una scheda */
.ts-sez{margin-bottom:10px}
/* la descrizione puo' essere lunga: va a capo e non allarga la colonna oltre misura */
.ts-diario .se-tbl td.ts-descr{min-width:160px;max-width:420px;white-space:normal;overflow-wrap:anywhere}
/* la descrizione apre l'evento: nel colore del testo, come i titoli delle altre griglie */
body.se-body .ts-diario a.ts-apri{color:var(--ink);text-decoration:none}
body.se-body .ts-diario a.ts-apri:hover{text-decoration:underline;text-underline-offset:2px}
.modal-footer .ts-elimina{margin-right:auto}
/* sul telefono i filtri della griglia si stringono con la loro colonna (la tendina della categoria
   allargava la tabella e le icone finivano fuori schermo) */
@media (max-width:640px){.ts-diario .se-tbl td.ts-descr{min-width:0}.ts-diario .se-tbl .filters .select2-container{width:0!important;min-width:100%}.ts-diario .se-tbl .ts-azioni{display:none}.ts-diario .se-tbl .filters .form-control{min-width:0}}
/* le azioni delle righe (modifica, elimina) in grigio, non nel blu dei collegamenti */
body.se-body .ts-diario a.iconbtn,body.se-body .ts-lista a.iconbtn{color:var(--ink-2)}
body.se-body .ts-diario a.iconbtn:hover,body.se-body .ts-lista a.iconbtn:hover{color:var(--ink);background:var(--surface-3)}
/* matita e cestino affiancati nelle griglie (l'.iconbtn e' un blocco: andava a capo) */
.ts-diario .se-tbl .iconbtn,.ts-lista .se-tbl .iconbtn{display:inline-grid;vertical-align:middle}

/* =====================================================================
   MAGAZZINO
   ===================================================================== */
/* due date (dal / al) nel filtro di una colonna */
.ts-date2{display:flex;gap:4px;min-width:220px}
.ts-date2 .form-control{min-width:0;flex:1;padding-left:6px;padding-right:4px}
/* due campi affiancati in una modale, uno sotto l'altro sul telefono (come imp-2 di impostazioni.css) */
.imp-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
@media (max-width:640px){.imp-2{grid-template-columns:minmax(0,1fr)}}
/* testo lungo sotto un nome (descrizione dell'articolo): due righe, il resto nel title */
.se-tbl .sub.ts-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:46ch}

/* =====================================================================
   NEGOZIO DIOMIRA (impostazioni prodotti e questionario)
   ===================================================================== */
/* icona del prodotto (classe Font Awesome scelta nel modulo) accanto al nome */
.ts-neg-ico{width:18px;margin-right:6px;color:var(--ink-2);text-align:center}
/* un elenco di etichette (ruoli) che va a capo */
.ts-ruoli{display:flex;gap:4px;flex-wrap:wrap}

/* =====================================================================
   NEGOZIO — VETRINA (views/layouts/store.php e views/store/*)
   Il negozio pubblico di 3nt1 con lo stesso design system dell'applicazione:
   niente barra laterale, una barra alta, il contenuto, il piede. Solo token.
   ===================================================================== */
body.se-body.neg-body{display:flex;flex-direction:column;min-height:100vh}
.neg-wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 24px}
/* ---- barra alta */
.neg-top{position:sticky;top:0;z-index:40;background:var(--surface);border-bottom:1px solid var(--line)}
.neg-top-in{display:flex;align-items:center;gap:14px;height:60px}
.neg-logo{display:flex;align-items:center;flex:none}
.neg-logo img{height:30px;width:auto;display:block}
.neg-nav{flex:1;display:flex;align-items:center;gap:6px;min-width:0}
.neg-acts{display:flex;align-items:center;gap:8px;flex:none}
/* tendina senza JavaScript (details): «Funzionalità» e il menu dell'utente */
.neg-dd{position:relative}
.neg-dd>summary{list-style:none;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px;border-radius:8px;font-size:13.5px;font-weight:500;color:var(--ink-2);cursor:pointer;user-select:none}
.neg-dd>summary::-webkit-details-marker{display:none}
.neg-dd>summary:hover,.neg-dd[open]>summary{background:var(--surface-3);color:var(--ink)}
.neg-dd>summary svg{width:15px;height:15px}
.neg-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:50;min-width:250px;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:6px}
.neg-dd-menu.neg-dd-right{left:auto;right:0}
.neg-dd-menu .mg{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px;font-weight:600}
.neg-dd-menu .ms{height:1px;background:var(--line-2);margin:5px 4px}
body.se-body .neg-dd-menu .mi{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;font-size:13.5px;color:var(--ink);text-decoration:none}
body.se-body .neg-dd-menu .mi:hover{background:var(--surface-3);color:var(--ink);text-decoration:none}
.neg-dd-menu .mi svg{width:16px;height:16px;color:var(--ink-2)}
.neg-fa{width:16px;text-align:center;color:var(--ink-2);flex:none}
.neg-dd-user .se-av{width:28px;height:28px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);font-weight:700;font-size:11px;display:grid;place-items:center}
/* ---- contenuto e piede */
.neg-main{flex:1;display:flex;flex-direction:column}
.neg-page{padding:22px 24px 70px;flex:1}
.neg-flash{padding-top:16px}
.neg-flash .note{margin-bottom:10px}
.neg-foot{border-top:1px solid var(--line);padding:18px 0;font-size:12.5px;color:var(--muted);background:var(--surface)}
.neg-foot-in{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
body.se-body .neg-foot a{color:var(--ink-2)}
.neg-ph{margin-top:4px}
.neg-ph-c{text-align:center;margin:8px 0 22px}
.neg-ph-c h1{font-family:var(--f-display);font-weight:650;font-size:26px;letter-spacing:-.015em;margin:0;text-wrap:balance}
.neg-ph-c p{max-width:44em;margin:6px auto 0}
.neg-center{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:22px}
.neg-center-s{text-align:center;margin-top:10px}
.neg-center-s svg{width:13px;height:13px;vertical-align:-2px}
body.se-body .neg-link{display:inline-flex;align-items:center;gap:4px;color:var(--info);font-weight:500;text-decoration:none}
.neg-link svg{width:14px;height:14px}
/* ---- pagina iniziale: la testa con l'anteprima */
.neg-hero{background:linear-gradient(160deg,var(--brand-soft) 0%,var(--bg) 60%);padding:52px 0 40px}
.neg-hero-in{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.neg-hero-tx h1{font-family:var(--f-display);font-weight:750;font-size:44px;line-height:1.08;letter-spacing:-.02em;margin:0 0 14px;text-wrap:balance;color:var(--ink)}
.neg-hero-tx h1 em{font-style:normal;text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:6px;text-underline-offset:6px}
.neg-hero-tx p{font-size:16px;line-height:1.55;color:var(--ink-2);max-width:34em;margin:0}
.neg-hero-tx .tag{height:22px;font-size:11.5px}
.neg-badge{margin-bottom:14px}
.neg-badge svg{width:12px;height:12px}
.neg-cta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0 0}
.neg-kpis{margin:26px 0 0}
.neg-kpis .kpi .v{font-size:20px}
body.se-body .neg-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.neg-hero-vis{position:relative;padding:14px 0}
.neg-win{padding:0;overflow:visible}
.neg-win-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line-2)}
.neg-win-bar i{width:10px;height:10px;border-radius:50%;background:var(--muted);opacity:.6}
.neg-win-bar i:nth-child(1){background:var(--bad)} .neg-win-bar i:nth-child(2){background:var(--warn)} .neg-win-bar i:nth-child(3){background:var(--ok)}
.neg-win-bar span{margin-left:auto;font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.neg-win .feed{padding:2px 14px}
.neg-win .feed .fi{align-items:center}
.neg-win .feed .ico{color:var(--brand-ink);background:var(--brand-soft)}
.neg-chip{position:absolute;display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:12.5px;font-weight:600;box-shadow:var(--shadow);color:var(--ink)}
.neg-chip svg{width:14px;height:14px;color:var(--ok)}
.neg-chip-1{top:-6px;left:-18px}
.neg-chip-2{bottom:-6px;right:-10px}
/* ---- sezioni della vetrina */
.neg-sec{padding:44px 0}
.neg-sec-alt{background:var(--surface-2);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.neg-sec-h{text-align:center;margin-bottom:26px}
.neg-sec-h h2{font-family:var(--f-display);font-weight:650;font-size:30px;letter-spacing:-.015em;margin:0;text-wrap:balance}
.neg-sec-h p{color:var(--muted);font-size:15px;margin:6px 0 0}
.neg-sec-row{margin-bottom:16px}
.neg-ico{width:36px;height:36px;border-radius:10px;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;flex:none;font-size:15px}
.neg-ico svg{width:16px;height:16px}
.neg-ico.lg{width:48px;height:48px;border-radius:14px;font-size:20px}
.neg-ico.lg svg{width:22px;height:22px}
.neg-p{font-size:14.5px;line-height:1.65;color:var(--ink-2);margin:0}
.neg-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.neg-list li{display:flex;gap:8px;align-items:flex-start;font-size:14px}
.neg-list li svg{width:16px;height:16px;color:var(--ok);flex:none;margin-top:2px}
/* i moduli a schede */
.neg-mod{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}
.neg-mod-tabs{display:flex;flex-direction:column;gap:2px}
.neg-tab{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;border:0;background:none;color:var(--ink-2);font:inherit;font-size:13.5px;text-align:left;cursor:pointer;width:100%}
.neg-tab span{flex:1;min-width:0}
.neg-tab>svg{width:14px;height:14px;color:var(--muted)}
.neg-tab:hover{background:var(--surface-3);color:var(--ink)}
.neg-tab.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:inset 3px 0 0 var(--brand),0 0 0 1px var(--line)}
.neg-pane{display:none}
.neg-pane.on{display:block}
.neg-pane .hd{align-items:center}
.neg-pane .hd h2{font-family:var(--f-display);font-size:18px}
/* le card dei moduli */
.neg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.neg-grid-4{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.neg-grid-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.neg-prod{padding:18px;display:flex;flex-direction:column;gap:8px}
.neg-prod h3{font-size:15.5px;font-weight:650;margin:0}
.neg-prod p{margin:0}
.neg-prod-acts{margin-top:auto;padding-top:8px;display:flex;gap:6px;flex-wrap:wrap}
body.se-body a.neg-prod-link{color:inherit;text-decoration:none}
body.se-body a.neg-prod-link:hover{border-color:var(--ink-2);text-decoration:none}
/* come funziona */
.neg-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.neg-steps li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}
.neg-steps .n{width:40px;height:40px;border-radius:50%;background:var(--brand);color:var(--brand-ink);font-family:var(--f-display);font-weight:700;font-size:18px;display:grid;place-items:center;margin-bottom:6px}
.neg-steps b{font-size:15px}
.neg-steps li>span:not(.n){color:var(--muted);font-size:13.5px}
.neg-steps-v{grid-template-columns:minmax(0,1fr);gap:14px}
.neg-steps-v li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:2px 12px;text-align:left;align-items:start}
.neg-steps-v .n{width:32px;height:32px;font-size:14px;margin:0;grid-row:1/3}
/* l'invito */
.neg-cta{padding:40px 24px;text-align:center;background:linear-gradient(135deg,var(--brand-soft),var(--surface))}
.neg-cta h2{font-family:var(--f-display);font-weight:650;font-size:26px;margin:0;letter-spacing:-.015em;text-wrap:balance}
.neg-cta p{color:var(--muted);margin:6px 0 18px}
/* la scheda del modulo */
.neg-hero-prod{padding-top:0}
.neg-crumbs{font-size:13px;padding:18px 0 22px}
body.se-body .neg-crumbs a{color:var(--ink-2);text-decoration:none}
.neg-crumbs span{color:var(--muted);margin:0 6px}
.neg-feat{display:grid;grid-template-columns:5fr 7fr;gap:30px;align-items:start}
.neg-feat-tx h2{font-family:var(--f-display);font-weight:650;font-size:26px;letter-spacing:-.015em;margin:6px 0 12px;text-wrap:balance}
.neg-feat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.neg-feat-it{padding:14px;display:flex;gap:10px;align-items:flex-start;font-size:13.5px}
.neg-modal-t{display:flex;align-items:center;gap:10px;margin:0}
.neg-pre{white-space:pre-wrap;margin:0;color:var(--ink-2)}
/* ---- moduli con campi (questionario, pagamento) */
.neg-form .field label{font-size:13px;font-weight:600}
.neg-form .req,.neg-q .req{color:var(--bad)}
.neg-form .invalid-feedback{color:var(--bad);font-size:12px}
.neg-form .field .hint code{font-family:var(--f-mono);font-size:12px}
.neg-indirizzo{grid-template-columns:2fr .7fr 1.3fr}
.neg-nascosta{display:none!important}
.neg-q{display:flex;gap:10px;align-items:flex-start;font-size:15px;font-weight:600;margin:0 0 12px}
.neg-q-n{width:26px;height:26px;border-radius:50%;background:var(--brand);color:var(--brand-ink);font-size:12.5px;font-weight:700;display:grid;place-items:center;flex:none}
.q-card.has-error{border-color:var(--bad)}
.q-card .q-error{margin-bottom:12px}
.neg-opts{display:flex;flex-direction:column;gap:8px}
.neg-num{max-width:160px}
.neg-pay{display:flex;flex-direction:column;gap:12px}
.neg-pay .custom-control-label b,.neg-pay .custom-control-label span{display:block}
/* ---- la scelta dei moduli */
.neg-sel{padding:16px;display:flex;flex-direction:column;gap:10px}
.neg-sel.is-selected{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.neg-sel-h{display:grid;grid-template-columns:auto 36px minmax(0,1fr);gap:10px;align-items:flex-start}
.neg-sel-h .custom-control{min-height:0;margin-top:9px}
.neg-sel-tx{min-width:0}
.neg-sel-n{font-weight:600;cursor:pointer;margin:0;display:block;line-height:1.3}
.neg-sel-n .tag{margin-left:4px;vertical-align:1px}
.neg-sel-p{display:flex;align-items:center;gap:8px}
.neg-sel-o{border-top:1px solid var(--line-2);padding-top:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.neg-sel-pk{flex-direction:column;align-items:stretch;gap:6px}
body.se-body .neg-qty{width:80px;height:32px}
.neg-bar{position:fixed;left:0;right:0;bottom:0;z-index:1040;background:var(--ink);color:var(--surface);padding:10px 0;box-shadow:0 -4px 16px rgba(0,0,0,.18)}
.neg-bar-in{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.neg-bar .muted{color:inherit;opacity:.7}
.neg-bar-sp{height:64px}
/* ---- carrello e pagamento */
.neg-cols{grid-template-columns:minmax(0,1fr) 340px}
.neg-riga{padding:14px 16px;display:flex;gap:12px;align-items:center}
.neg-riga-tx{flex:1;min-width:0}
.neg-riga-p{text-align:right;display:flex;flex-direction:column;flex:none}
.neg-riepilogo{position:sticky;top:76px}
.neg-kv{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;font-size:13.5px}
.neg-kv dd{text-align:right}
.neg-kv-tot{border-top:1px solid var(--line-2);padding-top:10px;margin-top:10px}
.neg-kv .neg-tot{font-weight:700;color:var(--ink);font-size:16px}
body.se-body .neg-btn-block{width:100%;justify-content:center;margin-top:14px;height:40px}
/* ---- ordine completato */
.neg-ok{max-width:560px;margin:30px auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.neg-ok-ico{width:80px;height:80px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center}
.neg-ok-ico svg{width:36px;height:36px}
.neg-ok h1{font-family:var(--f-display);font-weight:650;font-size:30px;margin:0;letter-spacing:-.015em}
.neg-ok p{margin:0;max-width:34em}
.neg-ok-card{width:100%;text-align:left;margin-top:8px}
.neg-trust{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;margin-top:20px}
.neg-trust span{display:inline-flex;align-items:center;gap:5px}
.neg-trust svg{width:14px;height:14px}
/* ---- telefono e tablet */
@media (max-width:900px){
  .neg-hero-in,.neg-feat,.neg-cols{grid-template-columns:minmax(0,1fr)}
  .neg-hero-vis{display:none}
  .neg-riepilogo{position:static}
}
@media (max-width:800px){
  .neg-mod{grid-template-columns:minmax(0,1fr)}
  .neg-mod-tabs{flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:6px}
  .neg-tab{width:auto;white-space:nowrap;flex:none}
  .neg-tab>svg{display:none}
  .neg-tab.on{box-shadow:inset 0 -3px 0 var(--brand),0 0 0 1px var(--line)}
}
@media (max-width:640px){
  .neg-wrap{padding:0 16px}
  .neg-page{padding:18px 16px 70px}
  .neg-top-in{height:auto;min-height:56px;flex-wrap:wrap;padding:8px 0;row-gap:8px}
  .neg-nav{order:3;flex-basis:100%}
  .neg-acts{margin-left:auto}
  .neg-user-n{display:none}
  .neg-hero{padding:32px 0 28px}
  .neg-hero-tx h1{font-size:30px}
  .neg-hero-tx p{font-size:15px}
  body.se-body .neg-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .neg-kpis .kpi{padding:10px}
  .neg-kpis .kpi .v{font-size:16px}
  .neg-sec{padding:32px 0}
  .neg-sec-h h2,.neg-cta h2,.neg-feat-tx h2,.neg-ok h1{font-size:24px}
  .neg-steps,.neg-feat-grid,.neg-indirizzo{grid-template-columns:minmax(0,1fr)}
  .neg-bar-sp{height:96px}
}

/* =====================================================================
   RELAZIONE DI MISSIONE (modules/relazione-missione)
   ===================================================================== */
.ts-rm-avviso{margin-bottom:14px;align-items:flex-start}
.ts-rm-avviso>svg{width:18px;height:18px;flex:none;color:var(--warn);margin-top:1px}
.ts-rm-avviso .se-btn.sm{margin-left:6px;vertical-align:middle}
.ts-rm-form{max-width:520px}
.ts-rm-az{margin-top:16px}
.se-tbl span.iconbtn.muted{display:inline-grid;opacity:.5;cursor:default}

/* ---------- viste di 3nt1 unite a mano il 30/09 (dai file css/parti/*3.css) ---------- */
/* ---- 3nt1 · commesse */
/* Scheda commessa › Panoramica › «Orario standard dei servizi»: css/calendari.css (di
   prima) mette il calendario su fondo bianco fisso; nel tema scuro le ore e le righe
   non si leggevano. Il fondo e il testo vengono dal tema. */
body.se-body #calendario,body.se-body #calendario-dati-contrattuali,body.se-body #calendario-servizi-contrattualizzati{background:var(--surface);color:var(--ink)}
body.se-body #calendario .fc-axis,body.se-body #calendario-dati-contrattuali .fc-axis,body.se-body #calendario-servizi-contrattualizzati .fc-axis{color:var(--muted)}
body.se-body #calendario .fc-unthemed .fc-disabled-day,body.se-body #calendario-dati-contrattuali .fc-unthemed .fc-disabled-day,body.se-body #calendario-servizi-contrattualizzati .fc-unthemed .fc-disabled-day{background:var(--surface-2);opacity:1}
/* Scheda del personale › Contratti e orari (08/10): la lista dei servizi da trascinare senza l'altezza fissa e lo
   scorrimento di calendari.css (tagliavano la voce trascinata), e la x per eliminare una fascia dell'orario */
body.se-body .calendario-dip-contratto-index #external-events{height:auto;overflow:visible;left:0;padding:14px 16px}
body.se-body .calendario-dip-contratto-index #external-events .fc-event{padding:4px 8px;border-radius:6px;margin:0}
body.se-body #calendar_contratto .removeEvent{float:left;margin-right:4px;font-weight:700;cursor:pointer}
/* testo delle fasce leggibile anche in poco spazio (Alessio, 08/10): la descrizione aveva 9px scritti nel JS */
body.se-body #calendar_contratto .fc-event{font-size:12px;line-height:1.3}
body.se-body #calendar_contratto .fc-event .fc-time,body.se-body #calendar_contratto .fc-event .fc-title{font-weight:600}
body.se-body #calendar_contratto .fc-event .fc-title span{font-size:11px!important;font-weight:400}
body.se-body #calendar_contratto .fc-toolbar.fc-header-toolbar{display:none}
body.se-body #calendar_contratto a.fc-event,body.se-body #calendar_contratto a.fc-event:hover{color:#fff}
/* ---- 3nt1 · contabilita */
/* Azioni di riga negli elenchi dei movimenti (cont-memcn/_columnsTutti.php,
   _columnsFTDett.php): «Riapri» e «Attribuzioni» affiancate, non una sotto l'altra
   (.iconbtn e' un blocco). */
.se-tbl td.cont-azioni{white-space:nowrap}
.se-tbl td.cont-azioni a.iconbtn{display:inline-grid;width:30px;height:30px;vertical-align:middle}

/* Centri di costo e ricavo (cont-centricosto/index_mon.php, _columns_mon.php,
   _riepilogo_monitor.php). I colori dei numeri sono gia' in se-ui.css (cc-costi,
   cc-prog, cc-entrate, rep-pos, rep-neg). */
.cc-forte{font-weight:650}
.cc-criterio{margin-bottom:14px}
/* la doppia linea fra il blocco dei progetti e quello del centro di costo: le tre colonne
   dei progetti si leggono fra loro, le tre del centro no («double» vuole almeno 3px) */
body.se-body .se-tbl .cc-div,.tbl.cc-riep .cc-div{border-left:3px double var(--muted)}
/* l'intestazione dei due blocchi, sopra i nomi delle colonne */
body.se-body .se-tbl tr.cc-blocchi th,.tbl.cc-riep tr.cc-blocchi th{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center;background:var(--surface-2);border-bottom:1px solid var(--line-2)}
/* le barre del saldo per gruppo o per anno: verde avanzo, rosso disavanzo */
.hb .t i.cc-pos{background:var(--ok)}
.hb .t i.cc-neg{background:var(--bad)}
/* il riquadro dei movimenti di una riga espansa mentre si carica un'altra pagina */
.cc-detail-box.cc-carica{opacity:.45;transition:opacity .15s}
/* il riepilogo a nove colonne sta nella pagina: le intestazioni vanno a capo */
.tbl.cc-riep thead th{white-space:normal;vertical-align:bottom}
/* la griglia del monitor: con le intestazioni dei blocchi se-ui.js non nasconde colonne,
   quindi le undici colonne stanno nella pagina andando a capo nelle intestazioni */
body.se-body .se-tbl.cc-mon thead th{white-space:normal;vertical-align:bottom}
body.se-body .se-tbl.cc-mon select.form-control{min-width:80px}

/* Prima nota (cont-pn/_form_primanota.php) — il resto e' in se-ui.css (.pn-*) */
/* la descrizione della riga (3nt1): sotto conti ed etichette, larga quanto la riga */
.pn-nota{grid-column:1/4}
@media (max-width:760px){.pn-nota{grid-column:1/-1}}
/* registrazione di sola consultazione (NO_UPDDEL): campi fermi, ricerche e Select2 spenti */
body.se-body #dynamic-form.pn-sola-lettura input.form-control,body.se-body #dynamic-form.pn-sola-lettura select,body.se-body #dynamic-form.pn-sola-lettura textarea{background:var(--surface-2);pointer-events:none}
#dynamic-form.pn-sola-lettura [role="modal-remote"],#dynamic-form.pn-sola-lettura .input-group-append{pointer-events:none}
#dynamic-form.pn-sola-lettura .select2-container{pointer-events:none;opacity:.7}
/* ---- 3nt1 · persone e documenti */
/* Scheda dell'ente › Panoramica: l'icona al posto del timbro che manca (views/enti/_cruscotto.php),
   nel riquadro delle iniziali del logo; senza misura l'SVG riempiva tutto il riquadro */
.ente-logo-vuoto span svg{width:34px;height:34px;color:var(--muted)}

/* Modulo del documento: l'anteprima del file gia' caricato (views/docuploads/_form.php;
   prima misure scritte nella vista) */
.docuploads-form .doc-anteprima{height:160px;width:auto;max-width:100%}
.docuploads-form .doc-anteprima-pdf{width:213px;height:160px;max-width:100%;border:0}
/* ---- 3nt1 · vendite */
/* Il riepilogo a destra. In 3nt1 i totali sono campi NumberControl in sola lettura
   (li scrive lo script, riepilogoGen(), e si salvano con il documento): qui si vestono
   come le righe `.tot` del mockup — etichetta a sinistra, cifra a destra, niente
   riquadro. La casella nascosta di NumberControl sta in un div a parte e non conta. */
.fatt-riep{display:flex;flex-direction:column;gap:6px}
body.se-body .fatt-riep .form-group{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px;margin:0}
body.se-body .fatt-riep .form-group>label{flex:1 1 0;min-width:0;margin:0;font-size:13.5px;font-weight:400;color:var(--ink-2)}
body.se-body .fatt-riep .form-group>input.form-control[readonly]{flex:0 0 auto;width:13ch;height:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;text-align:right;font-variant-numeric:tabular-nums;font-size:13.5px;color:var(--ink)}
body.se-body .fatt-riep .form-group>.invalid-feedback{flex-basis:100%}
/* totale documento: la cifra grande, come `.tot .g` */
body.se-body .fatt-riep .form-group.g{border-top:1px solid var(--line);padding-top:10px;margin-top:4px}
body.se-body .fatt-riep .form-group.g>label{font-weight:650;color:var(--ink)}
body.se-body .fatt-riep .form-group.g>input.form-control[readonly]{width:11ch;font-family:var(--f-display);font-size:22px;font-weight:650}
/* totale netto, dopo sconto o maggiorazione sul totale */
body.se-body .fatt-riep .form-group.netto>label{font-weight:600;color:var(--ink)}
body.se-body .fatt-riep .form-group.netto>input.form-control[readonly]{font-size:15px;font-weight:600}
/* il bollo virtuale: un dato a parte, non entra nei totali */
body.se-body .fatt-riep .form-group.piccolo>label,
body.se-body .fatt-riep .form-group.piccolo>input.form-control[readonly]{font-size:12.5px;color:var(--muted)}
/* tema scuro: il ponte scuro di se-ui.css da' a ogni casella fondo, bordo e colore con
   !important; nel riepilogo le cifre restano senza riquadro */
:root[data-theme="dark"] body.se-body .fatt-riep .form-group>input.form-control[readonly]{background-color:transparent!important;border-color:transparent!important}
:root[data-theme="dark"] body.se-body .fatt-riep .form-group.piccolo>input.form-control[readonly]{color:var(--muted)!important}

/* =====================================================================
   PRODUZIONE (01/10/2026, solo 3nt1) — views/produzione/*, components/ui/Produzione
   Le task a pacchetti: riga di una task (.prd-t), riquadro del pacchetto (.prd-pac) con la
   barra di completamento (.prd-bar), la card in modale (.prd-card), le righe dei modelli e
   della modale delle prime task (.prd-rg). Prefisso prd- (pr- e' gia' dei progetti).
   ===================================================================== */
/* barra di completamento */
.prd-avanz{display:inline-flex;align-items:center;gap:8px;min-width:0}
.prd-bar{display:inline-block;width:120px;height:8px;border-radius:4px;background:var(--surface-3);overflow:hidden;flex:none}
.prd-bar i{display:block;height:100%;background:var(--info);border-radius:4px}
.prd-bar.ok i{background:var(--ok)}
.prd-pct{font-weight:650;font-size:13px;min-width:34px}
.prd-conta{font-size:12px;white-space:nowrap}
/* scadenza di una card */
.prd-when{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;white-space:nowrap;color:var(--ink-2);font-variant-numeric:tabular-nums}
.prd-when svg{width:13px;height:13px;color:var(--muted)}
.prd-when b{font-weight:600;font-size:11.5px}
.prd-when.bad,.prd-when.bad svg{color:var(--bad)} .prd-when.warn,.prd-when.warn svg{color:var(--warn)}
.prd-when.info b{color:var(--muted);font-weight:500} .prd-when.muted{color:var(--muted)}
/* tag e tipo */
.prd-tag{--c:var(--s1);display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;color:var(--c);background:var(--surface-3)}
@supports (background:color-mix(in srgb,#fff 50%,transparent)){.prd-tag{background:color-mix(in srgb,var(--c) 14%,var(--surface))}}
.tag.prd-tipo{gap:4px;letter-spacing:0}
.tag.prd-tipo svg{width:12px;height:12px}
.se-av.prd-nessuno{background:var(--surface-3);color:var(--muted);border:1px dashed var(--line)}
/* la casella fatta / da fare */
.prd-box{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--muted);background:var(--surface);display:grid;place-items:center;padding:0;cursor:pointer;color:transparent;flex:none;transition:background .12s,border-color .12s}
.prd-box svg{width:13px;height:13px;stroke-width:2.6}
.prd-box:hover:not(:disabled){border-color:var(--ok);color:var(--ok)}
.prd-box:disabled{cursor:not-allowed;opacity:.55}
.done>.prd-box,.done .prd-card-h .prd-box,.prd-box[aria-pressed="true"]{background:var(--ok);border-color:var(--ok);color:#fff}
.prd-box.lg{width:26px;height:26px;border-radius:8px}
.prd-box.lg svg{width:16px;height:16px}
.prd-box.sm{width:17px;height:17px;border-radius:5px}
.prd-box.sm svg{width:11px;height:11px}
/* una task in elenco */
.prd-lista{display:flex;flex-direction:column}
.prd-t{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid var(--line-2)}
.prd-lista>.prd-t:first-child{border-top:0}
.prd-t:hover{background:var(--surface-2)}
.prd-tx{min-width:0}
.prd-tt{font-weight:500;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.prd-tt:hover{text-decoration:underline;text-underline-offset:2px;color:var(--ink)}
.prd-t.done .prd-tt{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}
.prd-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:3px}
.prd-meta:empty{display:none}
.prd-seg,.prd-pac-nome{display:inline-flex;align-items:center;gap:3px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.prd-seg svg,.prd-pac-nome svg{width:12px;height:12px}
.prd-seg.ok{color:var(--ok)}
.prd-side{display:flex;align-items:center;gap:10px}
.prd-vuoto{padding:18px 16px}
details.prd-fatte{border-top:1px solid var(--line-2)}
details.prd-fatte summary{padding:9px 16px;font-size:12.5px;color:var(--muted);cursor:pointer;list-style:none}
details.prd-fatte summary::-webkit-details-marker{display:none}
details.prd-fatte summary::before{content:"▸ ";transition:transform .15s}
details.prd-fatte[open] summary::before{content:"▾ "}
/* il riquadro del pacchetto */
.prd-pacchetti,.prd-tab{gap:14px}
.se-card.prd-pac>.hd{flex-wrap:wrap;gap:8px 14px}
.prd-pac-t{display:flex;align-items:center;gap:8px;flex:1 1 280px;min-width:0;flex-wrap:wrap}
.prd-pac-t h2{font-size:14.5px;font-weight:650;margin:0;min-width:0;overflow-wrap:anywhere}
.prd-pac-t h2 a{color:var(--ink);text-decoration:none}
.prd-pac-t h2 a:hover{text-decoration:underline;text-underline-offset:2px}
.prd-cli{display:inline-flex;align-items:center;gap:4px;font-size:12.5px}
.prd-cli svg{width:13px;height:13px}
.prd-pac-n{display:flex;align-items:center;gap:10px}
.prd-pac-a{display:flex;align-items:center;gap:4px}
.prd-pac-a .se-btn.sm svg{width:14px;height:14px}
/* viste rapide in testa alla pagina: numeri che si cliccano */
.prd-viste{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:10px;margin-bottom:14px}
.prd-vi{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:inherit;text-decoration:none;min-width:0}
.prd-vi:hover{border-color:var(--muted);text-decoration:none;color:inherit}
.prd-vi .l{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prd-vi .l small{font-size:11px}
.prd-vi b{font-family:var(--f-display);font-size:22px;font-weight:650;line-height:1.1}
.prd-vi.bad b{color:var(--bad)} .prd-vi.warn b{color:var(--warn)} .prd-vi.ok b{color:var(--ok)}
.prd-vi.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.prd-vi-tutte{justify-content:center;align-items:center}
.prd-vi-tutte .l{color:var(--ink-2);font-weight:600}
.prd-rit{color:var(--bad)}
.prd-filtri{align-items:flex-end}
.prd-f{display:flex;flex-direction:column;gap:3px;margin:0;min-width:150px}
.prd-f>span{font-size:11.5px;color:var(--muted);font-weight:600}
.prd-f-q{flex:1 1 220px}
/* --- Produzione a board (08/10/2026): una colonna per cartella o pacchetto, le task come card con la
   checklist dentro; si scorre in orizzontale (sul telefono una colonna alla volta), niente trascinamento */
.prd-modo{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;align-self:flex-end;flex:none}
.prd-modo .prd-pj{display:inline-flex;align-items:center;gap:5px;padding:0 11px;height:32px;font-size:12.5px;font-weight:600;color:var(--ink-2);text-decoration:none;background:var(--surface)}
.prd-modo .prd-pj+.prd-pj{border-left:1px solid var(--line)}
.prd-modo .prd-pj svg{width:14px;height:14px}
.prd-modo .prd-pj:hover{color:var(--ink);text-decoration:none}
.prd-modo .prd-pj.on{background:var(--ink);color:var(--surface)}
.prd-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(280px,310px);gap:14px;overflow-x:auto;align-items:start;padding:2px 2px 12px;scroll-snap-type:x proximity}
.prd-col{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r);display:flex;flex-direction:column;min-width:0;scroll-snap-align:start}
.prd-col-hd{display:flex;flex-direction:column;gap:6px;padding:10px 12px 8px}
.prd-col-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:30px}
.prd-col-t .sp{flex:1}
.prd-col-hd h2{font-size:14.5px;font-weight:650;margin:0;overflow-wrap:anywhere;line-height:1.3}
.prd-col-hd h2 a{color:var(--ink);text-decoration:none}
.prd-col-hd h2 a:hover{text-decoration:underline;text-underline-offset:2px}
.prd-col-n{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.prd-col-n .prd-bar{width:80px}
.prd-col-bd{display:flex;flex-direction:column;gap:8px;padding:0 10px 10px;min-height:0}
.prd-bc{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 11px;display:flex;flex-direction:column;gap:7px}
.prd-bc-h{display:grid;grid-template-columns:20px minmax(0,1fr);gap:9px;align-items:start}
.prd-bc-h .prd-tt{line-height:1.35;color:var(--ink)}
.prd-bc.done .prd-tt{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}
.prd-bc .prd-meta{margin:0}
.prd-bc-f{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.prd-bc-f .sp{flex:1}
.prd-bvoci{display:flex;flex-direction:column;gap:5px;padding-left:29px}
.prd-bvo{display:grid;grid-template-columns:17px minmax(0,1fr);gap:7px;align-items:start;font-size:12.5px;color:var(--ink-2)}
.prd-bvo .t{overflow-wrap:anywhere;line-height:1.35}
.prd-bvo.done .t{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}
.prd-bvoci .altre{font-size:12px}
.prd-col .prd-col-add{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 10px 10px;padding:8px;border:1px dashed var(--line);border-radius:9px;font-size:12.5px;color:var(--ink-2);text-decoration:none}
.prd-col .prd-col-add:hover{border-color:var(--muted);color:var(--ink);text-decoration:none}
.prd-col-add svg{width:14px;height:14px}
.prd-col-vuota{font-size:12.5px;color:var(--muted);margin:2px 2px 0}
@media (min-width:761px){.prd-col{max-height:calc(100vh - 230px)}.prd-col-bd{overflow-y:auto}}
@media (max-width:760px){.prd-board{grid-auto-columns:86%;scroll-snap-type:x mandatory}.prd-modo{align-self:flex-start}}
/* la card in modale */
.prd-card{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:22px;align-items:start}
.prd-card-main{min-width:0;display:flex;flex-direction:column;gap:8px}
.prd-card-main h3.sec{margin:14px 0 2px}
.prd-card-h{display:flex;gap:12px;align-items:flex-start}
.prd-card-h h3{font-family:var(--f-display);font-size:20px;font-weight:650;margin:0;line-height:1.25;overflow-wrap:anywhere}
.prd-card.done .prd-card-h h3{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}
.prd-desc{line-height:1.55;overflow-wrap:anywhere}
.prd-desc p{margin:0 0 8px} .prd-desc ul,.prd-desc ol{margin:0 0 8px;padding-left:22px}
.prd-desc a{color:var(--brand-ink);text-decoration:underline}
.prd-desc-vuota{margin:0}
.prd-card-side{margin:0;padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);display:grid;grid-template-columns:minmax(0,1fr);gap:3px}
.prd-card-side dt{font-size:11.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-top:8px}
.prd-card-side dt:first-child{margin-top:0}
.prd-card-side dd{margin:0;display:flex;flex-direction:column;gap:3px;align-items:flex-start;overflow-wrap:anywhere}
.prd-card-side dd.prd-chi{flex-direction:row;align-items:center;gap:8px}
.prd-card-side dd.prd-tags{flex-direction:row;flex-wrap:wrap;gap:5px}
/* checklist, file, commenti dentro la card */
.prd-voci,.prd-files,.prd-comm{display:flex;flex-direction:column;gap:2px}
.prd-voci-n{font-size:12px}
.prd-vo{display:grid;grid-template-columns:17px minmax(0,1fr) auto;gap:10px;align-items:center;padding:4px 0}
.prd-vo.done .t{color:var(--muted);text-decoration:line-through}
.prd-vo.done .prd-box{background:var(--ok);border-color:var(--ok);color:#fff}
.iconbtn.prd-x{width:28px;height:28px;opacity:.55}
.iconbtn.prd-x:hover{opacity:1}
.iconbtn.prd-x svg{width:14px;height:14px}
.prd-add{display:flex;gap:8px;margin-top:4px}
.prd-add .se-input{flex:1}
.prd-file{display:flex;align-items:center;gap:8px;padding:4px 0;min-width:0;flex-wrap:wrap}
.prd-file>svg{width:14px;height:14px;color:var(--muted);flex:none}
.prd-file a{overflow-wrap:anywhere}
.prd-file .muted{font-size:12px}
.prd-files .prd-carica{align-self:flex-start;margin-top:4px;cursor:pointer}
.prd-files .prd-carica svg{width:14px;height:14px}
.prd-files .prd-hint{font-size:12px}
.prd-files.carica{opacity:.6;pointer-events:none}
.prd-cm{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2)}
.prd-cm-h{font-size:12.5px}
.prd-cm-h .muted{font-size:12px}
.prd-cm-t{overflow-wrap:anywhere;margin-top:2px}
.prd-cm-nuovo{display:flex;flex-direction:column;gap:6px;align-items:flex-end;margin-top:6px}
.prd-cm-nuovo textarea{min-height:60px}
/* form: colori dei tag, elenco dei tag, modelli */
.prd-colori{display:flex;flex-wrap:wrap;gap:6px}
.prd-colore{margin:0;cursor:pointer}
.prd-colore input{position:absolute;opacity:0;pointer-events:none}
.prd-colore span{--c:var(--s1);display:inline-flex;align-items:center;height:28px;padding:0 11px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--c);border:1.5px solid transparent;background:var(--surface-3)}
@supports (background:color-mix(in srgb,#fff 50%,transparent)){.prd-colore span{background:color-mix(in srgb,var(--c) 14%,var(--surface))}}
.prd-colore input:checked+span{border-color:var(--c)}
.prd-colore input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.prd-elenco{display:flex;flex-direction:column}
.prd-el{display:flex;align-items:center;gap:12px;padding:8px 16px;border-top:1px solid var(--line-2)}
.prd-el:first-child{border-top:0}
.prd-el .muted{font-size:12.5px}
.prd-el-a{margin-left:auto;display:flex;gap:2px}
.prd-el-a .iconbtn,.prd-modelli .hd .iconbtn{width:30px;height:30px}
.prd-el-a svg,.prd-modelli .hd .iconbtn svg{width:15px;height:15px}
.prd-mod-uso{margin:0 0 8px;font-size:12.5px}
.prd-mod-voci{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:5px}
.prd-mod-voci li{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.prd-mod-voci .num{font-size:12px;margin-left:auto}
/* righe: task tipo di un modello, e modale delle prime task */
.prd-righe{display:flex;flex-direction:column;gap:6px;margin:6px 0 8px}
.prd-rg{display:grid;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--line-2);border-radius:9px;background:var(--surface)}
.prd-rg-mod{grid-template-columns:minmax(0,1fr) 104px minmax(0,1.2fr) 30px}
.prd-gg{display:flex;align-items:center;gap:4px;margin:0;font-size:12px;color:var(--muted)}
.prd-gg .se-input{width:60px}
.prd-rg-tag{display:flex;flex-wrap:wrap;gap:4px}
.prd-tagchk{margin:0;cursor:pointer}
.prd-tagchk input{position:absolute;opacity:0;pointer-events:none}
.prd-tagchk span{--c:var(--s1);display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:11.5px;font-weight:600;color:var(--muted);border:1px solid var(--line)}
.prd-tagchk input:checked+span{color:var(--c);border-color:var(--c)}
.prd-tagchk input:focus-visible+span{outline:2px solid var(--focus);outline-offset:1px}
.prd-rg .iconbtn{width:30px;height:30px}
.prd-rg .iconbtn svg{width:14px;height:14px}
.prd-frase{margin:0 0 12px;color:var(--ink-2)}
.prd-modello{margin-bottom:12px;max-width:460px}
.prd-righe-h,.prd-rg-prop{grid-template-columns:24px minmax(0,1fr) 150px minmax(0,190px)}
.prd-righe-h{display:grid;gap:8px;padding:0 9px;font-size:11.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.prd-rg-prop{opacity:.72}
.prd-rg-prop.on,.prd-rg-prop:has(input[data-prd-on]:checked){opacity:1;border-color:var(--line)}
.prd-rg-on{margin:0;display:grid;place-items:center}
.prd-rg-on input{width:17px;height:17px}
.prd-rg-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.prd-rg-t small{font-size:11px}
.prd-nota{margin:10px 0 0}
.prd-tab-h{margin-bottom:12px}
/* il ponte veste i <button> con il colore del testo: la spunta resta invisibile finche' non e' fatta */
body.se-body .prd-box{color:transparent}
body.se-body .prd-box:hover:not(:disabled){color:var(--ok)}
body.se-body .done>.prd-box,body.se-body .done .prd-card-h .prd-box,body.se-body .prd-vo.done .prd-box,body.se-body .prd-box[aria-pressed="true"]{color:#fff}
body.se-body .prd-card-main h3.sec{margin:16px 0 4px}
@media (max-width:760px){
  .prd-card{grid-template-columns:minmax(0,1fr)}
  .prd-viste{grid-template-columns:repeat(3,minmax(0,1fr))}
  .prd-rg-mod{grid-template-columns:minmax(0,1fr) 104px 30px}
  .prd-rg-mod .prd-rg-tag{grid-column:1/-1;grid-row:2}
}
@media (max-width:640px){
  .prd-t{grid-template-columns:20px minmax(0,1fr);padding:10px 12px}
  .prd-t .prd-side{grid-column:2;justify-content:flex-start}
  .prd-bar{width:80px}
  .prd-pac-n{flex:1 1 100%}
  .prd-f{min-width:0;flex:1 1 45%}
  .prd-righe-h{display:none}
  .prd-rg-prop{grid-template-columns:24px minmax(0,1fr)}
  .prd-rg-prop>input[type="date"],.prd-rg-prop>select{grid-column:2}
  .prd-pac-a .lbl{display:none}
}

/* =========================================================================
   FORMAZIONE (08/10/2026, solo 3nt1): corsi, requisiti, incarichi (.frm-*)
   Righe a griglia dentro le card: il nome a sinistra con i dettagli sotto, poche
   colonne strette a destra, le azioni in fondo. Sul telefono le colonne vanno
   sotto il nome, ciascuna con la sua etichetta (data-l); le vuote si nascondono.
   ========================================================================= */
.frm-el{list-style:none;margin:0;padding:0}
.frm-r{display:grid;grid-template-columns:minmax(0,1fr) 190px 64px;gap:4px 14px;align-items:center;padding:10px 16px;border-top:1px solid var(--line-2)}
.frm-r.frm-r4{grid-template-columns:minmax(0,1fr) 170px 100px 64px}
.frm-el>.frm-r:first-child{border-top:0}
.frm-testa{padding-top:7px;padding-bottom:7px;background:var(--surface-2);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.frm-t{min-width:0}
.frm-t>b,.frm-t>.frm-nome{font-size:14px;font-weight:600;color:var(--ink)}
body.se-body a.frm-nome{color:var(--ink)}
body.se-body a.frm-nome:hover{color:var(--brand-ink);text-decoration:underline}
.frm-t .meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:4px;font-size:12px;color:var(--muted)}
.frm-nota{margin-top:3px;font-size:12px;line-height:1.45;color:var(--muted)}
.frm-c{min-width:0;font-size:13px;color:var(--ink-2)}
.frm-c .sub{display:block;margin-top:1px;font-size:12px;color:var(--muted)}
.frm-a{display:flex;justify-content:flex-end;gap:2px}
.frm-a .iconbtn{width:30px;height:30px}
.frm-a svg{width:15px;height:15px}
.frm-r.spento .frm-t>b,.frm-r.spento .frm-c{color:var(--muted)}
/* incarichi: il titolo di ogni gruppo di persone */
.frm-chi{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:9px 16px 7px;border-top:1px solid var(--line);background:var(--surface-2);font-size:13px}
.frm-chi .muted{font-size:12px}
.se-card .hd+.frm-chi{border-top:0}
/* requisiti: il «chi» a sinistra, i suoi corsi a destra */
.frm-req{display:grid;grid-template-columns:230px minmax(0,1fr);gap:4px 18px;padding:10px 16px;border-top:1px solid var(--line-2)}
.se-card .hd+.frm-req{border-top:0}
.frm-req-chi{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding-top:5px}
.frm-req-chi b{font-size:13.5px;font-weight:600;color:var(--ink)}
.frm-req-chi .muted{font-size:12px}
.frm-req-corsi{list-style:none;margin:0;padding:0;min-width:0}
.frm-req-corsi li{display:grid;grid-template-columns:minmax(0,1fr) auto 64px;gap:4px 12px;align-items:center;min-height:34px;padding:3px 0}
.frm-req-corsi li+li{border-top:1px dashed var(--line-2)}
.frm-req-corsi .t{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;min-width:0;font-size:13.5px}
.frm-req-corsi .t b{font-weight:500;color:var(--ink)}
.frm-req-corsi .t .muted{font-size:12px}
.frm-req-corsi li.spento .t b{color:var(--muted)}
/* il riquadro in testa a una finestra */
.note.frm-sopra{margin-bottom:14px}
/* registro: i filtri sopra la griglia, l'attestato, le righe che non contano piu' */
.frm-filtri{align-items:flex-end}
.frm-f{display:flex;flex-direction:column;gap:3px;margin:0;min-width:180px}
.frm-f>span{font-size:11.5px;font-weight:600;color:var(--muted)}
.frm-f .se-select{width:auto;max-width:300px}
.frm-f-anno{min-width:110px}
.frm-att{display:inline-flex;align-items:center;gap:5px;font-size:13px}
.frm-att svg{width:15px;height:15px;flex:none}
.se-tbl tr.frm-riga-spenta td{color:var(--muted)}
.se-tbl tr.frm-riga-spenta .rowlink{color:var(--ink-2)}
.se-tbl td.frm-azioni{width:1%;white-space:nowrap;text-align:right}
.frm-attestato input[type=file]{height:auto;padding:7px}
.frm-att-ora{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px}
.frm-att-ora svg{width:16px;height:16px;flex:none}
.frm-scollega{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:12.5px;font-weight:400;color:var(--ink-2)}
.frm-collega{margin-top:6px}
.modal-footer .frm-togli{margin-right:auto}
.field .frm-scollega{font-weight:400}
.se-tbl a.rowlink.frm-corso{font-weight:500}
/* situazione: i numeri per stato, che sono anche il filtro */
.frm-numeri{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}
.frm-num{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);text-decoration:none}
body.se-body a.frm-num{color:var(--ink);text-decoration:none}
body.se-body a.frm-num:hover{border-color:var(--ink-2)}
.frm-num .l{font-size:12px;color:var(--muted)}
.frm-num .num{font-size:20px;font-weight:650;line-height:1.2}
.frm-num.ok .num{color:var(--ok)} .frm-num.warn .num{color:var(--warn)} .frm-num.bad .num{color:var(--bad)}
.frm-num.zero .num{color:var(--muted)}
body.se-body a.frm-num.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.frm-f-q{flex:1 1 200px}
.frm-f-q .se-input{width:100%}
/* situazione: la tabella a semaforo, prima colonna e intestazioni ferme */
.frm-mat-card{overflow:hidden}
.frm-mat-wrap{overflow:auto;max-height:calc(100vh - 250px)}
.frm-mat{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13px}
.frm-mat th,.frm-mat td{padding:0;border-bottom:1px solid var(--line-2)}
.frm-mat thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);vertical-align:bottom}
.frm-mat .frm-mat-p{position:sticky;left:0;z-index:1;min-width:210px;max-width:270px;padding:8px 12px;border-right:1px solid var(--line-2);background:var(--surface);text-align:left;font-weight:400}
.frm-mat thead .frm-mat-p{z-index:3;background:var(--surface-2);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.frm-mat .frm-mat-p .sub{display:block;max-width:250px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;color:var(--muted)}
.frm-mat tbody tr:hover .frm-mat-p,.frm-mat tbody tr:hover td{background:var(--surface-2)}
.frm-mat .frm-mat-h{width:46px;min-width:46px;height:180px;padding:8px 0}
.frm-mat .frm-mat-h span{display:block;max-height:168px;margin:0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;writing-mode:vertical-rl;transform:rotate(180deg);font-size:11.5px;font-weight:600;color:var(--ink-2)}
.frm-mat .frm-mat-c{padding:4px;text-align:center}
/* la colonna vuota in fondo prende lo spazio che avanza: nomi e corsi restano stretti */
.frm-mat .frm-mat-x{width:100%}
.frm-sem{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:42px;height:24px;padding:0 5px;border-radius:5px;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;text-decoration:none}
.frm-sem svg{width:11px;height:11px;flex:none}
.frm-sem.s-valido,.frm-chip.s-valido{background:var(--ok-soft);color:var(--ok)}
.frm-sem.s-in_scadenza,.frm-chip.s-in_scadenza{background:var(--warn-soft);color:var(--warn)}
.frm-sem.s-scaduto,.frm-chip.s-scaduto{background:var(--bad-soft);color:var(--bad)}
.frm-sem.s-mancante,.frm-chip.s-mancante{background:transparent;color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad)}
.frm-sem.s-raccomandato,.frm-chip.s-raccomandato{background:var(--surface-3);color:var(--muted)}
body.se-body a.frm-sem:hover,body.se-body a.frm-chip:hover{text-decoration:none;filter:brightness(.94)}
.frm-legenda{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 14px;border-top:1px solid var(--line-2);font-size:12px;color:var(--ink-2)}
.frm-legenda>span{display:inline-flex;align-items:center;gap:6px}
.frm-legenda .frm-sem{min-width:16px;height:12px;padding:0}
.frm-legenda svg{width:12px;height:12px}
/* situazione sul telefono: una scheda per persona con i suoi corsi */
.frm-lista{display:none}
.frm-lp{padding:10px 12px}
.frm-lp-h{display:flex;flex-direction:column;gap:1px;margin-bottom:8px}
.frm-lp-h .muted{font-size:12px}
.frm-lp-c{display:flex;flex-wrap:wrap;gap:6px}
.frm-chip{display:inline-flex;align-items:baseline;gap:6px;padding:4px 8px;border-radius:6px;font-size:12px;line-height:1.3;text-decoration:none}
.frm-chip b{font-weight:650;font-variant-numeric:tabular-nums}
/* la sezione Formazione della scheda */
.frm-r.frm-rs{grid-template-columns:minmax(0,1fr) 130px 120px 40px}
.frm-sch-h{flex-wrap:wrap;gap:8px}
/* sessioni: il giorno a sinistra, il corso con orario, luogo e iscritti, lo stato, l'esito */
.frm-r.frm-ses{grid-template-columns:56px minmax(0,1fr) 130px auto}
.frm-ses-d{display:flex;flex-direction:column;align-items:center;justify-content:center;width:52px;padding:6px 0;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);line-height:1.15}
.frm-ses-d b{font-size:18px;font-weight:650;color:var(--ink)}
.frm-ses-d span{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--ink-2)}
.frm-ses-d small{font-size:10px;color:var(--muted)}
.frm-ses .meta svg{vertical-align:-2px}
.frm-ses-a .se-btn{white-space:nowrap}
.frm-nota-iscritti{font-size:13px;color:var(--ink-2)}
/* l'esito di una sessione: presente, persona, esito */
.frm-agg{margin:0 0 12px}
.frm-esito td{vertical-align:middle}
.frm-esito .frm-esito-p{width:76px;text-align:center}
.frm-esito .frm-esito-p input{width:17px;height:17px;margin:0}
.frm-esito .se-select{min-width:150px}
.field .frm-esito-nome,.frm-esito-nome{margin:0;font-size:13.5px;font-weight:500;color:var(--ink);cursor:pointer}
/* da organizzare: chi e' gia' in una sessione */
.frm-pian{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:9px 16px;border-top:1px solid var(--line-2);font-size:12.5px;color:var(--muted)}
.se-card .hd+.frm-pian{border-top:0}
@media (max-width:760px){
  .frm-mat-card{display:none}
  .frm-lista{display:flex;flex-direction:column;gap:10px}
  .frm-numeri{grid-template-columns:repeat(3,minmax(0,1fr))}
  .frm-f{min-width:0;flex:1 1 45%}
  .frm-f .se-select{width:100%;max-width:none}
  .frm-r,.frm-r.frm-r4,.frm-r.frm-rs{grid-template-columns:minmax(0,1fr) auto;padding:10px 12px}
  .frm-r>.frm-t{grid-column:1;grid-row:1}
  .frm-r>.frm-a{grid-column:2;grid-row:1;align-self:start}
  .frm-r>.frm-c{grid-column:1/-1}
  .frm-c[data-l]::before{content:attr(data-l);display:inline-block;min-width:80px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
  .frm-c[data-l] .sub{display:inline;margin-left:6px}
  .frm-c.vuoto{display:none}
  .frm-testa{display:none}
  .frm-testa+.frm-r{border-top:0}
  .frm-chi{padding:9px 12px 7px}
  .frm-req{grid-template-columns:minmax(0,1fr);padding:10px 12px}
  .frm-req-chi{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding-top:0}
  .frm-req-corsi li{grid-template-columns:minmax(0,1fr) auto}
  .frm-req-corsi li>.pill{grid-column:1;grid-row:2;justify-self:start}
  .frm-req-corsi li>.frm-a{grid-column:2;grid-row:1/3}
  .frm-r.frm-ses{grid-template-columns:56px minmax(0,1fr)}
  .frm-r.frm-ses>.frm-ses-d{grid-column:1;grid-row:1/4;align-self:start}
  .frm-r.frm-ses>.frm-t{grid-column:2;grid-row:1}
  .frm-r.frm-ses>.frm-c{grid-column:2;grid-row:2}
  .frm-r.frm-ses>.frm-a{grid-column:2;grid-row:3;justify-content:flex-start}
  .frm-r.frm-ses>.frm-a:empty{display:none}
}
/* sul telefono il pulsante del riquadro va sotto il testo, allineato al testo; le icone del registro
   non ci stanno (si modifica dal nome del corso, si toglie dalla finestra) */
@media (max-width:640px){.note.frm-az{flex-wrap:wrap}.note.frm-az>.grow{flex-basis:calc(100% - 26px)}.note.frm-az>.se-btn{margin-left:26px}.se-tbl .frm-azioni{display:none}}

/* =========================================================================
   AVVISI AUTOMATICI (Comunicazioni › Avvisi automatici, 08/10/2026; stessa vista in SmartEvent e 3nt1)
   Per ogni avviso: il messaggio e a chi, quando parte, l'interruttore (.toggle del design system).
   Sul telefono: messaggio e interruttore sulla stessa riga, «quando parte» sotto.
   ========================================================================= */
.avv-nota-top{margin-bottom:14px}
.avv-gruppo{margin-bottom:16px}
.avv-lista{display:flex;flex-direction:column}
.avv-riga{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(240px,1.6fr) 170px;gap:6px 22px;align-items:start;padding:12px 16px;border-top:1px solid var(--line)}
.avv-riga:first-child{border-top:0}
.avv-t{font-weight:600;line-height:1.35;color:var(--ink)}
.avv-t a{color:inherit}
.avv-t a:hover{color:var(--brand-ink);text-decoration:underline}
.avv-t .pill{margin-left:6px;vertical-align:1px}
.avv-riga.spento .avv-t,.avv-riga.spento .avv-t a{color:var(--muted)}
.avv-chi{margin-top:3px;font-size:12.5px;line-height:1.45;color:var(--muted)}
.avv-chi+.avv-chi{margin-top:0}
.avv-quando{font-size:13px;line-height:1.45;color:var(--ink-2)}
.avv-et{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:2px}
.avv-chi .avv-et{display:inline;font-size:inherit;font-weight:600;text-transform:none;letter-spacing:0;margin:0 4px 0 0}
.avv-int{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.avv-int form{display:flex;align-items:center;gap:8px;margin:0}
.avv-stato{font-size:13px;color:var(--muted);min-width:56px}
.avv-riga:not(.spento) .avv-stato{color:var(--ok);font-weight:600}
.toggle[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.toggle:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.avv-nota{flex-basis:100%;text-align:right;font-size:12px;color:var(--muted)}
.avv-piede{margin-top:6px}
@media (max-width:760px){
  .avv-riga{grid-template-columns:1fr auto;gap:8px 12px;padding:12px}
  .avv-msg{grid-column:1;grid-row:1}
  .avv-int{grid-column:2;grid-row:1}
  .avv-quando{grid-column:1 / -1;grid-row:2}
  .avv-stato{min-width:0}
  .avv-nota{text-align:left}
}

/* ---------- anteprima dei documenti (12/10): finestra aperta dal titolo, se-ui.js ---------- */
dialog.se-ant{width:min(1040px,96vw);height:min(92vh,1200px);max-width:none;max-height:none;padding:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);overflow:hidden}
dialog.se-ant[open]{display:flex;flex-direction:column}
dialog.se-ant::backdrop{background:rgba(20,19,16,.55)}
.se-ant-hd{display:flex;align-items:center;gap:8px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--line);flex:none}
.se-ant-t{font-size:14.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.se-ant-hd .se-btn{flex:none}
.se-ant-x{font-size:22px;line-height:1;width:32px;height:32px;border:0;background:none;color:var(--ink-2);cursor:pointer;border-radius:7px;flex:none}
.se-ant-x:hover{background:var(--surface-3);color:var(--ink)}
.se-ant-bd{flex:1;min-height:0;background:var(--surface-2);display:flex}
.se-ant-bd iframe{flex:1;width:100%;height:100%;border:0;background:#fff}
.se-ant-img{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:16px}
.se-ant-img img{max-width:100%;height:auto;border-radius:6px;background:#fff}
.se-ant-msg{margin:auto;max-width:440px;padding:24px;text-align:center}
@media (max-width:640px){
  dialog.se-ant{width:100vw;height:100dvh;border-radius:0;border:0}
  .se-ant-hd{flex-wrap:wrap;padding:8px 10px 8px 14px}
  .se-ant-t{flex:1 1 calc(100% - 44px);order:0}
  .se-ant-x{order:1}
  .se-ant-hd .sp{display:none}
  .se-ant-hd .se-btn{order:2;flex:1;justify-content:center}
}

/* ---------- sottomenu d'area sul telefono (12/10): bottone + pannello dal basso, shell/area-sel.php ---------- */
.area-sel{display:none}
dialog.se-sheet{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:none;max-height:86dvh;padding:0 0 env(safe-area-inset-bottom,0);border:0;border-radius:16px 16px 0 0;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);overflow:hidden}
dialog.se-sheet[open]{display:flex;flex-direction:column;animation:se-sheet-su .18s ease-out}
dialog.se-sheet::backdrop{background:rgba(20,19,16,.5)}
/* con la ricerca (aree lunghe) l altezza resta ferma mentre si filtra: niente salti con la tastiera aperta */
dialog.se-sheet:has(.sh-cerca){height:86dvh}
@keyframes se-sheet-su{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.se-sheet .sh-grip{width:36px;height:4px;border-radius:2px;background:var(--line);margin:8px auto 2px;flex:none}
.se-sheet .sh-hd{display:flex;align-items:center;justify-content:space-between;padding:4px 10px 6px 18px;flex:none;font-size:16px}
.se-sheet .sh-cerca{padding:0 14px 8px;flex:none}
.se-sheet .sh-cerca input{width:100%;height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font-size:16px;background:var(--surface-2);color:var(--ink)}
.se-sheet .sh-voci{overflow-y:auto;padding:0 8px 14px;-webkit-overflow-scrolling:touch}
.se-sheet .g{font-size:12px;font-weight:700;color:var(--muted);text-transform:none;padding:12px 10px 4px}
.se-sheet .sh-voci a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 10px;border-radius:9px;font-size:15px;color:var(--ink);text-decoration:none}
.se-sheet .sh-voci a svg{width:18px;height:18px;flex:none;color:var(--muted)}
.se-sheet .sh-voci a:active,.se-sheet .sh-voci a:hover{background:var(--surface-3);text-decoration:none;color:var(--ink)}
.se-sheet .sh-voci a.on{background:var(--surface-3);font-weight:600;box-shadow:inset 3px 0 0 var(--brand)}
.se-sheet .sh-vuoto{padding:14px 10px;margin:0}
.se-sheet [hidden]{display:none!important}
@media (max-width:960px){
  .area-sel{display:flex;align-items:center;gap:6px;width:100%;min-height:44px;margin:-4px 0 16px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:14.5px;text-align:left;cursor:pointer}
  .area-sel .a{color:var(--muted);white-space:nowrap}
  .area-sel .s{color:var(--muted)}
  .area-sel b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .area-sel svg{width:16px;height:16px;margin-left:auto;flex:none;color:var(--muted)}
  body.se-body .area-views,body.se-body .area-hub>.subnav{display:none}
  /* le sezioni di una scheda (shell/sez-sel.php, 15/10): il bottone al posto della fila da scorrere */
  .sez-sel{margin:0 0 14px}
  body.se-body .hub.con-sel>.subnav{display:none}
  body.se-body .se-navsel{display:none!important}
}
.se-sheet .sh-hd b{min-width:0}
.se-sheet .sh-hd .iconbtn{flex:none}
.se-sheet .sh-voci a .n{margin-left:auto;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}

/* ---------- «La mia giornata» (12/10): riquadro «Il mio lavoro» e stellina dei preferiti ---------- */
.se-card.mio{margin-bottom:18px}
.mio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 24px}
body.se-body .mio-col h3{font-size:12.5px;font-weight:700;color:var(--muted);margin:0 0 6px;padding:0 8px;letter-spacing:0}
.mio-l{display:flex;flex-direction:column;gap:1px}
.mio-l a{display:flex;align-items:center;gap:10px;min-height:36px;padding:0 8px;border-radius:8px;font-size:14px;color:var(--ink);text-decoration:none;min-width:0}
body.se-body .mio-l a{color:var(--ink)}
.mio-l a:hover{background:var(--surface-3);text-decoration:none}
.mio-l a svg{width:16px;height:16px;flex:none;color:var(--muted)}
.mio-l a span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mio-l a .n{margin-left:auto;flex:none;font-size:11.5px;font-weight:700;color:#fff;background:var(--bad);border-radius:10px;padding:1px 7px}
.mio-p{display:flex;align-items:center;min-width:0}
.mio-p a{flex:1}
.mio-p a svg{color:var(--brand)}
.mio-p .iconbtn{opacity:.55;flex:none;width:30px;height:30px}
.mio-p:hover .iconbtn,.mio-p .iconbtn:focus{opacity:1}
.mio-vuoto{margin:4px 8px}
.mio-vuoto svg{width:13px;height:13px;vertical-align:-2px}
.mio [hidden]{display:none!important}
.se-stella.on svg{color:var(--brand);fill:var(--brand)}
@media (max-width:960px){.mio-grid{grid-template-columns:minmax(0,1fr);gap:14px}.mio-l a{min-height:44px}.mio-p .iconbtn{opacity:1;width:40px;height:40px}}

/* ---------- Check-up digitale (13/10): pagine pubbliche, layouts/checkup.php e views/checkup ---------- */
.ck-body{background:var(--bg);min-height:100vh;display:flex;flex-direction:column}
.ck-wrap{max-width:880px;margin:0 auto;padding:0 20px;width:100%}
.ck-top{background:var(--surface);border-bottom:1px solid var(--line)}
.ck-top-in{display:flex;align-items:center;gap:12px;height:64px}
.ck-logo img{height:34px;width:auto;display:block}
.ck-main{flex:1;padding:28px 0 48px}
.ck-foot{border-top:1px solid var(--line);padding:16px 0;font-size:12.5px;color:var(--muted);background:var(--surface)}
.ck-hero{margin:0 0 20px}
body.se-body .ck-hero h1{font-size:30px;line-height:1.15;margin:8px 0 10px;letter-spacing:-.01em}
.ck-hero p{font-size:15.5px;color:var(--ink-2);max-width:680px;margin:0}
.ck-kicker{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink-2);background:var(--surface-3);border-radius:20px;padding:4px 10px}
.ck-kicker svg{width:14px;height:14px}
.ck-errore{margin-bottom:16px}
.ck-passi{list-style:none;display:flex;gap:6px;padding:0;margin:0 0 16px;counter-reset:none;scroll-margin-top:16px}
.ck-passi li{flex:1;display:flex;align-items:center;gap:8px;min-width:0;padding:8px 10px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:13px;color:var(--muted)}
.ck-passi .n{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--surface-3);color:var(--ink-2)}
.ck-passi .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ck-passi li.on{border-color:var(--ink);color:var(--ink);font-weight:600}
.ck-passi li.on .n{background:var(--brand);color:#1c1b17}
.ck-passi li.fatto .n{background:var(--ink);color:var(--surface)}
.ck-form.ck-js .ck-passo{display:none}
.ck-form.ck-js .ck-passo.on{display:block}
.ck-form:not(.ck-js) [data-ck-avanti],.ck-form:not(.ck-js) [data-ck-indietro]{display:none}
.ck-passo{margin-bottom:14px}
.ck-passo h2{font-size:20px;margin:0 0 4px}
.ck-sub{margin:0 0 14px}
.ck-d{border:0;padding:0;margin:0 0 20px;min-width:0}
.ck-d legend{font-size:15px;font-weight:600;margin:0 0 10px;padding:0;color:var(--ink)}
.ck-max{margin:-6px 0 8px}
.ck-opz{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.ck-opt{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;font-size:14.5px;line-height:1.3;color:var(--ink)}
.ck-opt:hover{border-color:var(--ink-2)}
.ck-opt input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--ink)}
.ck-opt:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--surface-2)}
.ck-griglia{display:flex;flex-direction:column;gap:6px}
.ck-gr-riga{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--surface-2)}
.ck-gr-nome{font-size:14px;font-weight:600}
.ck-gr-scelte{display:flex;flex-wrap:wrap;gap:6px}
.ck-pill{position:relative;display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:18px;background:var(--surface);font-size:13px;cursor:pointer;color:var(--ink-2)}
.ck-pill input{position:absolute;opacity:0;pointer-events:none}
.ck-pill:hover{border-color:var(--ink-2);color:var(--ink)}
.ck-pill:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.ck-pill:has(input:checked){background:var(--ink);border-color:var(--ink);color:var(--surface);font-weight:600}
.ck-pill.fuori:has(input:checked){background:var(--surface-3);color:var(--ink);border-color:var(--ink-2)}
.ck-campi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-bottom:14px}
.ck-campo{display:flex;flex-direction:column;gap:5px;font-size:13.5px;font-weight:600;color:var(--ink)}
.ck-campo em{font-style:normal;font-weight:400;color:var(--muted)}
.ck-campo input,.ck-campo textarea{font:inherit;font-weight:400;font-size:15px;border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:var(--surface);color:var(--ink);width:100%}
.ck-campo input:focus,.ck-campo textarea:focus{outline:2px solid var(--focus);outline-offset:0;border-color:transparent}
.ck-largo{grid-column:1/-1}
.ck-consenso{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4;padding:10px 12px;border-radius:10px;background:var(--surface-2);cursor:pointer}
.ck-consenso input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:var(--ink)}
.ck-manca>legend,.ck-manca .ck-gr-nome,.ck-campo.ck-manca{color:var(--bad)}
.ck-campo.ck-manca input{border-color:var(--bad)}
.ck-gr-riga.ck-manca{box-shadow:inset 3px 0 0 var(--bad)}
.ck-consenso.ck-manca{box-shadow:inset 0 0 0 1px var(--bad)}
.ck-nav{display:flex;align-items:center;gap:10px;position:sticky;bottom:0;padding:12px 0;background:var(--bg)}
.ck-msg{font-size:13px;color:var(--bad)}
.ck-esca{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.ck-barra-profilo{display:flex;gap:4px;margin:0 0 18px;border-radius:10px;overflow:hidden}
.ck-barra-profilo span{min-width:0;padding:8px 10px;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ck-barra-profilo .bad{background:var(--bad-soft);color:var(--bad)}
.ck-barra-profilo .warn{background:var(--warn-soft);color:var(--warn)}
.ck-barra-profilo .ok{background:var(--ok-soft);color:var(--ok)}
.ck-aree{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}
.ck-area .bd{display:flex;flex-direction:column;gap:6px}
.ck-area.parti{box-shadow:inset 0 0 0 2px var(--brand)}
.ck-area-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.ck-area-hd h2{font-size:16px;margin:0}
.ck-area p{margin:0}
.ck-segni{display:flex;flex-wrap:wrap;gap:6px}
.ck-segno{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--ink-2);background:var(--surface-3);border-radius:12px;padding:2px 8px}
.ck-segno.parti{background:var(--brand);color:#1c1b17}
.ck-segno svg{width:13px;height:13px}
.ck-dopo{margin-top:18px}
.ck-dopo h2{font-size:18px;margin:0 0 8px}
.ck-dopo ol{margin:0 0 12px;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.ck-azioni{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.ck-dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 16px;margin:0}
.ck-dl dt{font-weight:400;color:var(--muted);font-size:13px}
.ck-dl dd{margin:0;font-size:13.5px}
.ck-stato{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.ck-stato .se-btn{align-self:flex-start;margin-top:4px}
@media (max-width:760px){
  body.se-body .ck-hero h1{font-size:24px}
  .ck-passi .t{display:none}
  .ck-passi li{justify-content:center;padding:8px 4px}
  .ck-passi li.on .t{display:inline}
  .ck-passi li.on{flex:3}
  .ck-gr-riga{grid-template-columns:minmax(0,1fr)}
  .ck-campi,.ck-aree,.ck-dl{grid-template-columns:minmax(0,1fr)}
  .ck-nav{padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px))}
  .ck-nav .ck-msg{position:absolute;left:0;right:0;bottom:100%;text-align:center;background:var(--bg);padding:4px 0}
  .ck-nav .ck-msg:empty{display:none}
}
@media print{.ck-top,.ck-foot,.ck-azioni{display:none}.ck-body{background:#fff}.ck-area{break-inside:avoid}}

/* ---------- pagina d'ingresso prima del login (13/10): views/site/benvenuto.php, layout checkup ---------- */
.bv-body .ck-main{padding:0}
.bv-hero{background:linear-gradient(135deg,var(--brand-soft) 0%,var(--bg) 70%);border-bottom:1px solid var(--line)}
.bv-hero-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:40px;align-items:center;padding-top:56px;padding-bottom:56px}
.bv-body .ck-wrap{max-width:1120px}
body.se-body .bv-hero h1{font-size:40px;line-height:1.1;letter-spacing:-.02em;margin:14px 0 14px}
body.se-body .bv-hero h1 em{font-style:normal;background:linear-gradient(transparent 62%,var(--brand-soft) 62%)}
.bv-sub{font-size:17px;line-height:1.55;color:var(--ink-2);margin:0 0 22px;max-width:560px}
.bv-azioni{display:flex;flex-wrap:wrap;gap:10px}
.bv-azioni .se-btn,.bv-banda .se-btn{height:46px;padding:0 18px;font-size:15px;border-radius:10px}
.bv-sito{margin:16px 0 0;font-size:13.5px;color:var(--muted)}
.bv-sito svg{width:13px;height:13px;vertical-align:-2px}
.bv-vetrina{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.bv-vt-hd{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.bv-vt-hd .d{width:9px;height:9px;border-radius:50%;background:var(--surface-3)}
.bv-vt-riga{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line-2)}
.bv-vt-riga:last-child{border-bottom:0}
.bv-vt-t{display:flex;flex-direction:column;min-width:0}
.bv-vt-t b{font-size:14.5px}
.bv-vt-t span{font-size:12.5px;color:var(--muted)}
.bv-ic{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink)}
.bv-ic svg{width:18px;height:18px}
.bv-sez{padding:48px 0}
.bv-sez h2{font-size:24px;margin:0 0 20px;text-align:center}
.bv-alt{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.bv-funzioni{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bv-funzione{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:8px}
.bv-funzione b{font-size:15.5px}
.bv-funzione p{margin:0;font-size:14px;color:var(--ink-2);line-height:1.5}
.bv-passi{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;text-align:center}
.bv-passi li{display:flex;flex-direction:column;align-items:center;gap:8px}
.bv-passi .n{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:17px;background:var(--brand);color:#1c1b17}
.bv-passi b{font-size:16px}
.bv-passi span:not(.n){font-size:14px;color:var(--ink-2);max-width:300px}
.bv-banda{text-align:center;background:linear-gradient(135deg,var(--brand-soft),var(--surface));border:1px solid var(--line);border-radius:16px;padding:36px 20px}
.bv-banda h2{margin-bottom:8px}
.bv-banda p{margin:0 0 18px;color:var(--ink-2)}
@media (max-width:860px){
  .bv-hero-in{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:32px;padding-bottom:36px}
  body.se-body .bv-hero h1{font-size:30px}
  .bv-funzioni,.bv-passi{grid-template-columns:minmax(0,1fr)}
  .bv-sez{padding:36px 0}
  .bv-azioni .se-btn{flex:1 1 100%;justify-content:center}
}
@media (max-width:560px){.ck-top-cta{display:none}}

/* ---------- Check-up: editor (13/10; sezioni e punti 15/10), views/checkup/domande|domanda|sezione|area ---------- */
.ck-ed{margin-bottom:16px;scroll-margin-top:80px}
.ck-ed .hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ck-ed.spenta>.hd h2,.ck-ed.spenta>.bd{opacity:.6}
.ck-ed-intro{margin:0 0 14px;font-size:13.5px;max-width:820px}
.ck-ed-tit{min-width:0;flex:1 1 220px}
.ck-ed-tit h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ck-ed-n{display:inline-grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:var(--surface-3);color:var(--ink-2);font-size:12px;font-weight:700;margin-right:6px}
.ck-ed-tit h2 .ck-ed-n{margin-right:0}
.ck-ed .hd>.sp{flex:1 1 0}
.ck-ed-riga{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-top:1px solid var(--line-2)}
.ck-ed-riga:first-of-type{border-top:0}
.ck-ed-riga.spenta .ck-ed-t{opacity:.6}
.ck-ed-sp{display:flex;flex-direction:column;flex:none}
.ck-ed-sp .iconbtn{width:26px;height:22px}
.ck-ed-sp .ck-off{opacity:.25;display:inline-grid;place-items:center}
.ck-ed-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ck-ed-dom{font-weight:600;color:var(--ink);text-decoration:none}
.ck-ed-dom:hover{text-decoration:underline}
.ck-ed-voti{color:var(--ink-2);font-weight:600}
.ck-ed-opz{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.ck-ed-opz .chip{display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px 6px;max-width:100%;white-space:normal;height:auto;min-height:24px;padding-top:3px;padding-bottom:3px;line-height:1.3}
.ck-ed-a{font-style:normal;color:var(--muted);font-size:12px}
.ck-pt{display:inline-block;min-width:22px;text-align:center;padding:0 5px;border-radius:8px;font-size:11.5px;font-weight:700;background:var(--surface-3);color:var(--ink-2)}
.ck-pt.pos{background:var(--ok-soft);color:var(--ok)}
.ck-pt.neg{background:var(--bad-soft);color:var(--bad)}
.ck-pt.esc{background:var(--warn-soft);color:var(--warn);font-weight:600}
.ck-ed-az{display:flex;align-items:center;gap:4px;flex:none}
.ck-ed-vl{margin:4px 0 2px;padding-left:18px;font-size:13px;display:flex;flex-direction:column;gap:2px}
.ck-ed-vl li.spenta{opacity:.6}
.ck-ed-voti-area{border-top:1px solid var(--line-2);padding-top:12px}
.ck-ed-voti-area h3{font-size:15px;margin:0 0 6px}
.ck-inline{display:inline}
.ck-ed-form{max-width:820px}
.ck-ed-form .bd{display:flex;flex-direction:column;gap:14px}
.ck-ed-form>.se-card{margin-bottom:14px}
.ck-ed-form .ck-d{margin:0}
.ck-ed-form [hidden]{display:none!important}
.ck-ed-form .ck-campo textarea,.ck-ed-form .ck-campo .se-select,.ck-ed-form .ck-consenso span{font-weight:400}
.ck-opz-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ck-opt-2{align-items:flex-start}
.ck-opt-2 input{margin-top:2px}
.ck-opt-2 span{display:flex;flex-direction:column;gap:2px}
.ck-opt-2 small{font-size:12.5px;color:var(--muted);font-weight:400}
.ck-max-campo{max-width:260px;margin-top:10px}
.ck-nota-griglia{margin:0 0 14px}
.ck-risp{display:flex;flex-direction:column;gap:6px}
.ck-risp-hd,.ck-risp-riga{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:6px;align-items:center}
.ck-risp.con-punti .ck-risp-hd,.ck-risp.con-punti .ck-risp-riga{grid-template-columns:minmax(0,1fr) 150px 36px}
.ck-risp.con-punti.con-area .ck-risp-hd,.ck-risp.con-punti.con-area .ck-risp-riga{grid-template-columns:minmax(0,1fr) minmax(0,200px) 150px 36px}
.ck-risp-hd{font-size:12px;font-weight:600;color:var(--muted)}
.ck-risp-riga input[type=text]{font:inherit;font-size:14.5px;border:1px solid var(--line);border-radius:9px;padding:8px 11px;background:var(--surface);color:var(--ink);width:100%;min-width:0}
.ck-risp-riga .se-select{width:100%;min-width:0}
.ck-portata{margin:0;padding:10px 12px;border-radius:10px;background:var(--surface-2);font-size:13.5px;color:var(--ink)}
.ck-soglie{display:flex;flex-direction:column;gap:12px}
.ck-soglie-barra{display:flex;gap:3px;border-radius:10px;overflow:hidden}
.ck-soglie-barra span{min-width:0;padding:7px 10px;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ck-soglie-barra .bad{background:var(--bad-soft);color:var(--bad)}
.ck-soglie-barra .warn{background:var(--warn-soft);color:var(--warn)}
.ck-soglie-barra .ok{background:var(--ok-soft);color:var(--ok)}
.ck-soglie-campi{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}
.ck-perc{display:flex;align-items:center;gap:6px;font-weight:400}
.ck-perc input{width:90px!important}
.ck-dett{margin-top:2px}
@media (max-width:760px){
  .ck-ed-riga{flex-wrap:wrap}
  .ck-ed-az{width:100%;justify-content:flex-end}
  .ck-ed .hd .ck-ed-lbl,.ck-ed-az .ck-ed-lbl{display:none}
  .ck-opz-3{grid-template-columns:minmax(0,1fr)}
  .ck-risp-hd{display:none!important}
  .ck-risp .ck-risp-riga,.ck-risp.con-punti .ck-risp-riga,.ck-risp.con-punti.con-area .ck-risp-riga{grid-template-columns:minmax(0,1fr) 36px;padding:8px;border-radius:10px;background:var(--surface-2)}
  .ck-risp-riga input[type=text]{grid-column:1/2}
  .ck-risp-riga>.iconbtn{grid-column:2;grid-row:1}
  .ck-risp-riga .se-select{grid-column:1/-1}
}
