/* ==========================================================================
   Vento Digitale — Tema "Talisman" (direzione 1a · Azzurro)
   Derivato da ___docs/design_tema_talisman/vd-theme.css: stessi token e
   componenti, con i selettori adattati per convivere con Bootstrap 4
   (usato dalle viste esistenti) e con lo strato di compatibilità legacy.
   Uso:  <html data-theme="light|dark" data-density="compact|comfortable">
   Ordine di caricamento: bootstrap.min.css → app.css → talisman.css →
   talisman-icons.css → talisman-utilities.css
   ========================================================================== */

/* ---------- Token: chiaro (default) ---------- */
:root{
  --bg:#f5f6f8; --surface:#ffffff; --surface2:#f2f4f6; --surface3:#ebedf0;
  --line:#e2e5e9; --line-strong:#c4c8ce;
  --ink:#1c2230; --ink2:#4f5665; --ink3:#6d7480;

  --accent:oklch(0.56 0.15 250);
  --accent-ink:#ffffff;
  --accent-soft:color-mix(in oklch, var(--accent) 12%, transparent);
  --accent-strong:oklch(0.46 0.15 250);

  --success:oklch(0.6 0.16 150);  --success-ink:oklch(0.46 0.14 150);
  --warning:oklch(0.74 0.15 70);  --warning-ink:oklch(0.5 0.12 60);
  --danger:oklch(0.6 0.16 25);    --danger-ink:oklch(0.46 0.14 25);
  --info:oklch(0.6 0.16 235);     --info-ink:oklch(0.46 0.14 235);
  --success-soft:color-mix(in oklch, var(--success) 14%, transparent);
  --warning-soft:color-mix(in oklch, var(--warning) 14%, transparent);
  --danger-soft:color-mix(in oklch, var(--danger) 14%, transparent);
  --info-soft:color-mix(in oklch, var(--info) 14%, transparent);

  --band:linear-gradient(120deg, oklch(0.56 0.15 248), oklch(0.49 0.14 258));
  --band-ink:#fff; --band-ink2:oklch(1 0 0 / .8); --band-shape:oklch(1 0 0 / .07);
  --band-btn:oklch(1 0 0 / .14); --band-btn-line:oklch(1 0 0 / .3);
  --band-solid:#fff; --band-solid-ink:oklch(0.45 0.15 250);

  --sb-bg:oklch(0.255 0.022 255); --sb-ink:oklch(0.93 0.01 255); --sb-ink2:oklch(0.7 0.015 255);
  --sb-hover:oklch(1 0 0 / .06); --sb-active:var(--accent); --sb-active-ink:#fff;
  --sb-line:oklch(1 0 0 / .08); --sb-sub:oklch(1 0 0 / .04); --logo-filter:brightness(0) invert(1);

  --shadow:0 1px 2px oklch(0.2 0.02 255 / .06), 0 6px 20px oklch(0.2 0.02 255 / .06);
  --shadow-pop:0 24px 64px oklch(0 0 0 / .3);
  --overlay:oklch(0.2 0.02 255 / .45);

  --r:10px; --r-sm:6px; --r-btn:8px;
  --font:'Geist', system-ui, sans-serif; --mono:'Geist Mono', ui-monospace, monospace;

  --row-py:7px; --fs:13px; --ctl:32px; --card-p:14px; --gap:14px; --nav-h:34px;
  --sb-w:252px; --sb-w-collapsed:68px; --topbar-h:56px; --page-x:32px;
}
[data-density="comfortable"]{ --row-py:12px; --fs:14px; --ctl:38px; --card-p:20px; --gap:20px; --nav-h:40px; }

/* ---------- Token: scuro ---------- */
[data-theme="dark"]{
  color-scheme:dark;
  --bg:oklch(0.165 0.008 255); --surface:oklch(0.205 0.01 255); --surface2:oklch(0.235 0.011 255); --surface3:oklch(0.27 0.012 255);
  --line:oklch(0.29 0.012 255); --line-strong:oklch(0.42 0.012 255);
  --ink:oklch(0.95 0.005 255); --ink2:oklch(0.79 0.01 255); --ink3:oklch(0.64 0.012 255);
  --accent:oklch(0.68 0.15 250); --accent-ink:oklch(0.17 0.03 250);
  --accent-soft:color-mix(in oklch, var(--accent) 22%, transparent); --accent-strong:oklch(0.84 0.105 250);
  --success-ink:oklch(0.84 0.12 150); --warning-ink:oklch(0.84 0.12 70); --danger-ink:oklch(0.84 0.12 25); --info-ink:oklch(0.84 0.12 235);
  --success-soft:color-mix(in oklch, var(--success) 22%, transparent); --warning-soft:color-mix(in oklch, var(--warning) 22%, transparent);
  --danger-soft:color-mix(in oklch, var(--danger) 22%, transparent);   --info-soft:color-mix(in oklch, var(--info) 22%, transparent);
  --band:linear-gradient(120deg, oklch(0.36 0.1 250), oklch(0.29 0.08 258));
  --band-solid:oklch(0.96 0.005 255);
  --sb-bg:oklch(0.185 0.01 255); --sb-active-ink:var(--accent-ink);
  --shadow:0 1px 2px oklch(0 0 0 / .4), 0 8px 24px oklch(0 0 0 / .3);
  --overlay:oklch(0.08 0 0 / .62);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{font-size:62.5%;-webkit-text-size-adjust:100%}           /* 1rem = 10px: le viste esistenti usano questa base */
body{margin:0;min-height:100%;font:400 14px/1.45 var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-align:left}
button,input,select,textarea,optgroup{font-family:inherit}
a{color:var(--accent-strong);text-decoration:none}
a:hover{color:var(--accent-strong);text-decoration:underline}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{color:inherit;font-weight:600;letter-spacing:-.01em;line-height:1.25;margin-top:0}
h1,.h1{font-size:26px} h2,.h2{font-size:22px} h3,.h3{font-size:19px} h4,.h4{font-size:17px} h5,.h5{font-size:15px} h6,.h6{font-size:14px}
small,.small{font-size:12px}
hr{border:0;border-top:1px solid var(--line)}
label{color:var(--ink2)}
::selection{background:var(--accent-soft)}
code,kbd,pre,samp,.mono{font-family:var(--mono)}
code{color:var(--accent-strong)}
.num{font-variant-numeric:tabular-nums}
.ms{font-family:'Material Symbols Rounded';font-size:20px;line-height:1;font-weight:normal;font-style:normal;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;-webkit-font-feature-settings:'liga';font-feature-settings:'liga';user-select:none;display:inline-block;vertical-align:middle;overflow:hidden;width:1em}
.ms.fill{font-variation-settings:'FILL' 1}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:10px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-track{background:transparent}
.tl-cloak{display:none!important}

/* ==========================================================================
   SHELL
   ========================================================================== */
.tl-app{min-height:100vh}
.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:1040;width:var(--sb-w);display:flex;flex-direction:column;background:var(--sb-bg);color:var(--sb-ink);border-right:1px solid var(--sb-line);transition:width .18s ease, transform .2s ease;overflow:hidden}
.main-col{margin-left:var(--sb-w);min-width:0;min-height:100vh;display:flex;flex-direction:column;transition:margin-left .18s ease}
.tl-app.is-collapsed .sidebar{width:var(--sb-w-collapsed)}
.tl-app.is-collapsed .main-col{margin-left:var(--sb-w-collapsed)}
.tl-app.is-collapsed .sidebar .nav-label,.tl-app.is-collapsed .sidebar .nav-chev,.tl-app.is-collapsed .sidebar .nav-sub,.tl-app.is-collapsed .sidebar .sb-logo,.tl-app.is-collapsed .sidebar .sb-foot,.tl-app.is-collapsed .sidebar .nav-group-title span{display:none!important}
.tl-app.is-collapsed .sidebar .nav-group-title{padding:0;height:1px;margin:8px 6px;background:var(--sb-line)}
.tl-app.is-collapsed .sb-head{justify-content:center;padding:0}
.tl-app.is-collapsed .sb-toggle{margin:0}

.sb-head{height:var(--topbar-h);flex:none;display:flex;align-items:center;gap:8px;padding:0 12px 0 18px;border-bottom:1px solid var(--sb-line)}
.sb-logo{height:24px;width:auto;filter:var(--logo-filter);flex:none}
.sb-toggle{margin-left:auto;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--r-sm);background:transparent;color:var(--sb-ink2);cursor:pointer}
.sb-toggle:hover{background:var(--sb-hover);color:var(--sb-ink)}
.sb-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 10px 16px;display:flex;flex-direction:column;gap:2px;margin:0;list-style:none}
.sb-nav::-webkit-scrollbar-thumb{background:oklch(1 0 0 / .18)}
.sb-nav ul{list-style:none;margin:0;padding:0}
.sb-nav li{list-style:none}
.nav-group-title{padding:14px 10px 6px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--sb-ink2);white-space:nowrap}
.sidebar .nav-link{display:flex;align-items:center;gap:12px;height:var(--nav-h);padding:0 10px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--sb-ink);font-size:13.5px;font-weight:500;cursor:pointer;text-align:left;white-space:nowrap;width:100%;text-decoration:none!important}
.sidebar .nav-link:hover{background:var(--sb-hover);color:var(--sb-ink)}
.sidebar .nav-link.active{background:var(--sb-active);color:var(--sb-active-ink);font-weight:600}
.sidebar .nav-link.active .ms{font-variation-settings:'FILL' 1}
.sidebar .nav-link > .ms{font-size:20px;flex:none}
.nav-label{flex:1;overflow:hidden;text-overflow:ellipsis}
.nav-chev{font-size:18px!important;opacity:.7;transition:transform .15s;flex:none}
.sidebar .nav-link[aria-expanded="true"] .nav-chev{transform:rotate(90deg)}
.nav-sub{display:flex;flex-direction:column;gap:1px;margin:2px 0 4px!important;padding:2px 0!important;border-radius:var(--r-sm);background:var(--sb-sub)}
.nav-sub.collapse:not(.show){display:none}
.nav-sub.collapsing{display:flex;overflow:hidden}
.nav-sub .nav-link{height:32px;padding-left:42px;font-size:13px;color:var(--sb-ink2)}
.nav-sub .nav-link.active{color:var(--sb-active-ink)}
.nav-sub .nav-link > .ms{display:none}
.sb-foot{flex:none;padding:12px 18px;border-top:1px solid var(--sb-line);font-size:11.5px;color:var(--sb-ink2);display:flex;justify-content:space-between;white-space:nowrap}
.sb-backdrop{display:none}

/* Topbar */
.topbar{height:var(--topbar-h);flex:none;display:flex;align-items:center;gap:6px;padding:0 14px 0 10px;background:var(--surface);border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;z-index:1030;min-width:0}
.tb-group{display:flex;align-items:center;gap:2px}
.tb-btn{position:relative;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink2);cursor:pointer;text-decoration:none!important;flex:none}
.tb-btn:hover,.tb-btn:focus{background:var(--surface2);color:var(--ink);outline:none}
.tb-btn .ms{font-size:21px}
.tb-badge{position:absolute;top:4px;right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;border:2px solid var(--surface)}
.tb-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--danger);border:2px solid var(--surface)}
.tb-sep{width:1px;height:22px;background:var(--line);margin:0 8px;flex:none}
.tb-link{height:32px;padding:0 10px;display:inline-flex;align-items:center;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink2);font-size:13px;font-weight:500;cursor:pointer;text-decoration:none!important}
.tb-link:hover{background:var(--surface2);color:var(--ink)}
.tb-link.is-active{background:var(--accent-soft);color:var(--accent-strong)}
.tb-spacer{flex:1}
.topbar-search{display:flex;align-items:center;gap:8px;height:34px;flex:0 1 320px;min-width:140px;padding:0 10px;border-radius:var(--r-btn);background:var(--surface2);border:1px solid var(--line);color:var(--ink3);position:relative;margin:0}
.topbar-search:focus-within{border-color:var(--accent)}
.topbar-search .ms{font-size:19px}
.topbar-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-size:13px;color:var(--ink);padding:0;height:auto;box-shadow:none}
.kbd{font:500 11px/1 var(--mono);padding:3px 5px;border-radius:4px;border:1px solid var(--line-strong);color:var(--ink3)}
.tb-search-results{position:absolute;left:0;right:0;top:40px;max-height:60vh;overflow:auto}
.tb-lang{width:auto;padding:0 8px;display:flex;gap:5px;font-size:12.5px;font-weight:600}
.tb-user{position:relative;margin-left:6px;padding-left:10px;border-left:1px solid var(--line)}
.tb-user-btn{display:flex;align-items:center;gap:9px;height:40px;padding:0 6px 0 4px;border:0;border-radius:var(--r-btn);background:transparent;cursor:pointer;color:var(--ink)}
.tb-user-btn:hover,.tb-user-btn:focus{background:var(--surface2);outline:none}
.tb-avatar{position:relative;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none;background-size:cover;background-position:center}
.tb-avatar::after{content:"";position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;background:var(--success);border:2px solid var(--surface)}
.topbar-user-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}
.topbar-user-text b{font-size:13px;font-weight:600}
.topbar-user-text small{font-size:11px;color:var(--ink3)}
.tb-menu-toggle{display:none}
@media (max-width:1290px){ .topbar-links,.topbar-user-text,.topbar-links-sep{display:none!important} }
@media (max-width:1010px){ .topbar-search{display:none!important} }

/* Menu a tendina (kit) */
.menu{position:absolute;right:0;top:34px;z-index:1050;min-width:180px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1px;animation:vdIn .12s ease}
.menu.up{top:auto;bottom:34px}
.menu[hidden]{display:none}
.menu-item{display:flex;align-items:center;gap:10px;height:32px;padding:0 10px;border:0;border-radius:var(--r-sm);background:transparent;font-size:13px;text-align:left;color:var(--ink);cursor:pointer;white-space:nowrap;text-decoration:none!important;width:100%}
.menu-item .ms{font-size:18px;color:var(--ink2)}
.menu-item:hover,.menu-item:focus{background:var(--surface2);color:var(--ink);outline:none}
.menu-item.is-danger,.menu-item.is-danger .ms{color:var(--danger-ink)} .menu-item.is-danger:hover{background:var(--danger-soft)}
.menu-item.is-active{color:var(--accent-strong);font-weight:600}
.menu-sep{height:1px;background:var(--line);margin:4px 0}
.menu-head{padding:6px 10px 4px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}
.tb-user .menu{top:46px;width:230px}

.main{flex:1;min-width:0;position:relative}

/* Pannello rapido (ex quick panel di destra) */
.quick-panel-sidebar{position:fixed;top:0;right:0;bottom:0;width:300px;max-width:90vw;z-index:1045;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-pop);transform:translateX(105%);transition:transform .2s ease;overflow-y:auto;padding:8px 0;display:block!important}
.quick-panel-sidebar.is-open{transform:none}
.quick-panel-sidebar .list-group-item{border:0;background:transparent;color:var(--ink)}
.quick-panel-sidebar .subheader{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);padding-top:16px}
.quick-panel-sidebar .h1{font-size:15px;color:var(--ink2)}
.quick-panel-sidebar .h2{font-size:30px;font-weight:600;color:var(--ink)}
.quick-panel-sidebar .divider{height:1px;background:var(--line);margin:6px 0}
.tl-overlay{position:fixed;inset:0;background:var(--overlay);z-index:1039;display:none}
.tl-overlay.is-on{display:block}

/* Mobile: sidebar fuori schermo */
@media (max-width:991.98px){
  .sidebar{transform:translateX(-100%);width:var(--sb-w)!important}
  .tl-app.is-mobile-open .sidebar{transform:none}
  .tl-app.is-mobile-open .sidebar .nav-label,.tl-app.is-mobile-open .sidebar .nav-chev,.tl-app.is-mobile-open .sidebar .sb-logo{display:initial!important}
  .main-col,.tl-app.is-collapsed .main-col{margin-left:0}
  .tb-menu-toggle{display:grid}
  .sb-toggle{display:none}
  :root{--page-x:16px}
}

/* ==========================================================================
   BANDA PAGINA (+ mapping dell'header legacy .page-header / .top-bg)
   ========================================================================== */
.band,
.main .page-header{position:relative;overflow:hidden;background:var(--band)!important;background-image:var(--band)!important;color:var(--band-ink)!important;padding:22px var(--page-x) 70px!important;margin:0!important;min-height:0!important;height:auto!important;max-height:none!important;width:auto;flex-wrap:wrap}
.band::before,.band::after,
.main .page-header::before,.main .page-header::after{content:"";position:absolute;transform:rotate(32deg);background:var(--band-shape);pointer-events:none}
.band::before,.main .page-header::before{right:-120px;top:-160px;width:520px;height:520px;border-radius:48px}
.band::after,.main .page-header::after{right:180px;top:40px;width:340px;height:340px;border-radius:40px}
.band > *,.main .page-header > *{position:relative;z-index:1}
.band-crumbs{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--band-ink2);margin-bottom:12px;flex-wrap:wrap}
.band-crumbs .ms{font-size:16px;opacity:.7}
.band-crumbs a{color:var(--band-ink2)}
.band-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.band-icon{width:46px;height:46px;flex:none;border-radius:var(--r);background:var(--band-btn);border:1px solid var(--band-btn-line);display:grid;place-items:center;color:var(--band-ink)}
.band-icon .ms{font-size:26px}
.band-text{flex:1;min-width:240px}
.band-title,.main .page-header .doc-title{margin:0;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-.015em;text-wrap:pretty;color:var(--band-ink)}
.band-sub{margin-top:4px;font-size:13.5px;color:var(--band-ink2)}
.band-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.band .text-muted,.main .page-header .text-muted{color:var(--band-ink2)!important}
.band a:not(.btn),.main .page-header a:not(.btn):not(.dropdown-item){color:var(--band-ink)}

/* header legacy "semplice": h2.doc-title + pulsanti */
.main .page-header{display:flex;align-items:center;gap:12px 16px}
.main .page-header > .doc-title{flex:1 1 auto;min-width:200px}
.main .page-header > .band-crumbs{flex:0 0 100%}
.main .page-header > .band-icon + .doc-title{flex:1}
.main .page-header .description,.main .page-header .doc-subtitle,.main .page-header .page-subtitle{color:var(--band-ink2);font-size:13.5px}
.main .page-header h1,.main .page-header h2,.main .page-header h3,.main .page-header h4,.main .page-header .h4,.main .page-header .h3,.main .page-header .h2{color:var(--band-ink)}
.main .page-header label{color:var(--band-ink2)}
.main .page-header .form-control,.main .page-header select{color:var(--band-ink);border-bottom-color:var(--band-btn-line)}
.main .page-header .form-control::placeholder{color:var(--band-ink2)}
.main .page-header select option{color:var(--ink);background:var(--surface)}
.main .page-header [class*="col"]:has(> .band-icon){display:flex;align-items:center;gap:16px}
.main .page-header [class*="col"]:has(> .band-icon) > .doc-title{flex:1}
/* header legacy "carded": logo + testo */
.main .page-header .logo{display:flex;align-items:center;gap:16px;flex-wrap:nowrap}
.main .page-header .logo-icon{width:46px;height:46px;flex:none;border-radius:var(--r);background:var(--band-btn);border:1px solid var(--band-btn-line);display:grid;place-items:center;margin:0!important;color:var(--band-ink)}
.main .page-header .logo-icon i,.main .page-header .logo-icon .ms{font-size:26px!important;width:26px!important;height:26px!important;line-height:26px!important;color:var(--band-ink)}
.main .page-header .logo-text .h4,.main .page-header .logo-text h4{font-size:26px;font-weight:600;letter-spacing:-.015em;margin:0;line-height:1.15;color:var(--band-ink)}
.main .page-header .logo-text > div:not(.h4),.main .page-header .logo-text span:not(.h4){font-size:13.5px;color:var(--band-ink2)}
.main .page-header .search-wrapper:empty{display:none}
.main .page-header .search-wrapper .input-group,.main .page-header .search-wrapper .search{display:flex;align-items:center;gap:8px;height:36px;max-width:420px;margin-left:auto;padding:0 12px;border-radius:var(--r-btn);background:var(--band-btn);border:1px solid var(--band-btn-line);color:var(--band-ink)}
.main .page-header .search-wrapper .form-control,.main .page-header .search-wrapper input{border:0!important;box-shadow:none!important;background:transparent!important;color:var(--band-ink);height:34px;padding:0}
.main .page-header .search-wrapper i,.main .page-header .search-wrapper .btn{color:var(--band-ink)!important;background:transparent;border:0;padding:0;height:auto}
.main .page-header ul.m_top_15{padding:0;margin:14px 0 0}
.main .page-header .btn-light,.main .page-header .btn-secondary,.main .page-header .btn-default,.main .page-header .btn-outline-light{background:var(--band-btn);border-color:var(--band-btn-line);color:var(--band-ink)}
.main .page-header .btn-light:hover,.main .page-header .btn-secondary:hover{background:oklch(1 0 0 / .22);color:var(--band-ink)}
.main .page-header .btn-success,.main .page-header .btn-primary{background:var(--band-solid);color:var(--band-solid-ink);border-color:transparent;box-shadow:0 2px 8px oklch(0 0 0 / .15)}
.main .page-header .nav-tabs{border:0;margin-top:8px}
.main .page-header .nav-tabs .nav-link{color:var(--band-ink2);border:0}
.main .page-header .nav-tabs .nav-link.active,.main .page-header .nav-tabs .nav-link:hover{color:var(--band-ink);background:var(--band-btn);border-radius:var(--r-btn)}
.top-bg{display:none!important}
.page-layout .header-bg,.main .page-header .header-bg{display:none}

/* Pulsanti sulla banda */
.btn-band{background:var(--band-btn)!important;border:1px solid var(--band-btn-line)!important;color:var(--band-ink)!important}
.btn-band:hover,.btn-band:focus{background:oklch(1 0 0 / .22)!important;color:var(--band-ink)!important}
.btn-band-solid{background:var(--band-solid)!important;color:var(--band-solid-ink)!important;border:0!important;box-shadow:0 2px 8px oklch(0 0 0 / .15)!important}
.btn-band-solid:hover,.btn-band-solid:focus{filter:brightness(.97);color:var(--band-solid-ink)!important}

/* Contenuto che risale sulla banda */
.page{position:relative;margin-top:-46px;padding:0 var(--page-x) 40px;display:flex;flex-direction:column;gap:var(--gap)}
.content-wrapper,.content,.page-layout,.page-content-wrapper{position:relative;background:transparent!important;width:auto!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:0;display:block}
.page-layout{padding-bottom:40px}
.page-layout .page-content{position:relative;z-index:2;margin:-46px var(--page-x) 0!important;padding:0!important;background:transparent!important;box-shadow:none!important;width:auto!important;max-width:none;flex:none!important;overflow:visible!important;height:auto!important;max-height:none!important}
.page-layout .page-content.row{margin-left:calc(var(--page-x) - 15px)!important;margin-right:calc(var(--page-x) - 15px)!important}
.page-layout .page-content-card{position:relative;z-index:2;margin:-46px var(--page-x) 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:visible!important;height:auto!important;max-height:none!important;min-height:0!important}
.page-layout .page-content-card > .page-content{margin:0!important;padding:var(--card-p)!important}
.page-layout .page-content-card .page-content.row{margin:0!important;padding:var(--card-p) 0!important}
.page-layout .page-header ~ .alert,.page-layout .page-header ~ .col-xs-12.alert{position:relative;z-index:3;margin:-46px var(--page-x) 60px!important;box-shadow:var(--shadow)}
.main .page-header ~ .alert ~ .page-content,.main .page-header ~ .alert ~ .page-content-card{margin-top:0!important}
.main .page-header ~ .alert + .alert{margin-top:-52px!important}
/* layout con colonna laterale interna (es. dashboard, file manager) */
.page-layout.left-sidebar,.page-layout.right-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 300px;column-gap:var(--gap);align-items:start}
.page-layout.left-sidebar{grid-template-columns:300px minmax(0,1fr)}
.page-layout.left-sidebar > .page-content-wrapper,.page-layout.right-sidebar > .page-content-wrapper{display:contents!important}
.page-layout.left-sidebar .page-header,.page-layout.right-sidebar .page-header{grid-column:1 / -1;grid-row:1}
.page-layout.right-sidebar .page-content{grid-column:1;grid-row:2;margin-right:0!important}
.page-layout.left-sidebar .page-content{grid-column:2;grid-row:2;margin-left:0!important}
.page-layout.right-sidebar > .page-sidebar{grid-column:2;grid-row:2;margin:-46px var(--page-x) 0 0}
.page-layout.left-sidebar > .page-sidebar{grid-column:1;grid-row:2;margin:-46px 0 0 var(--page-x)}
.page-layout > .page-sidebar{position:relative;z-index:2;width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;background:var(--surface)!important;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;transform:none!important}
.page-sidebar .widget{border:0!important;box-shadow:none!important;border-radius:0!important}
.widget-now .month,.widget-now .year{font-size:15px;color:var(--ink2)!important}
.widget-now .day{font-size:52px;font-weight:600;line-height:1.1;color:var(--ink)!important}
@media (max-width:1199.98px){
  .page-layout.left-sidebar,.page-layout.right-sidebar{grid-template-columns:minmax(0,1fr)}
  .page-layout.left-sidebar .page-content,.page-layout.right-sidebar .page-content{grid-column:1;margin:-46px var(--page-x) 0!important}
  .page-layout.right-sidebar > .page-sidebar,.page-layout.left-sidebar > .page-sidebar{grid-column:1;grid-row:3;margin:var(--gap) var(--page-x) 0}
}
.main .page-header.flex-column{align-items:stretch}
.main .page-header .h2,.main .page-header > .row .h2{font-size:26px;font-weight:600;letter-spacing:-.015em;color:var(--band-ink)}
.main .page-header .selected-project{display:inline-flex;align-items:center;height:30px;padding:0 12px!important;margin-top:8px;border-radius:var(--r-btn);background:var(--band-btn);border:1px solid var(--band-btn-line);font-size:13px;font-weight:600;color:var(--band-ink)}
.main .page-header .project-selector .btn-icon{color:var(--band-ink);margin-top:8px}

/* contenitori "example" delle viste legacy = card */
.example,.page-content .widget,.card,.page-content > .bg-white,.dash-card,.kpi-card{background:var(--surface)!important;color:var(--ink);border:1px solid var(--line)!important;border-radius:var(--r)!important;box-shadow:var(--shadow)!important}
.example{padding:0;margin-bottom:var(--gap);overflow:visible;height:auto!important;min-height:0!important}
.example > .pad_20,.example > form > .pad_20{padding:var(--card-p) calc(var(--card-p) + 6px)!important}
.example > table,.example > .table-responsive,.example > .dataTables_wrapper{margin:0}
.page-content > [class*="col"]{margin-bottom:var(--gap)}
.page-content > [class*="col"] > .example:last-child{margin-bottom:0}
.content.custom-scrollbar,.custom-scrollbar{overflow:visible}

/* ---------- Card (kit) ---------- */
.card{overflow:visible}
.card-head,.card-header{display:flex;align-items:center;gap:12px;padding:14px var(--card-p);border-bottom:1px solid var(--line);background:transparent;border-radius:var(--r) var(--r) 0 0}
.card-title{font-size:14px;font-weight:600;margin:0;color:var(--ink)}
.card-sub,.card-subtitle{font-size:12px;color:var(--ink3);margin-top:2px}
.card-body{padding:var(--card-p)}
.card-foot,.card-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px var(--card-p);border-top:1px solid var(--line);background:var(--surface2);border-radius:0 0 var(--r) var(--r)}
.kpi{display:flex;gap:14px;align-items:flex-start;padding:var(--card-p)}
.kpi-icon{width:40px;height:40px;flex:none;border-radius:var(--r-sm);display:grid;place-items:center}
.kpi-value{font-size:26px;font-weight:600;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi-label{margin-top:6px;font-size:13px;font-weight:600}
.kpi-hint{margin-top:2px;font-size:12px;color:var(--ink3)}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--gap)}

/* ==========================================================================
   PULSANTI (kit + Bootstrap)
   ========================================================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:var(--ctl);padding:0 14px;border-radius:var(--r-btn);border:1px solid transparent;font-size:13px;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap;text-transform:none;letter-spacing:0;box-shadow:none;transition:filter .12s,background .12s,color .12s;text-decoration:none!important;vertical-align:middle}
.btn:focus,.btn.focus{box-shadow:0 0 0 3px var(--accent-soft);outline:none}
.btn .ms{font-size:19px}
.btn > i[class*="icon-"]{font-size:19px;width:19px;height:19px;line-height:19px;color:inherit!important}
.btn-primary,.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active{background:var(--accent);border-color:transparent;color:var(--accent-ink)}
.btn-primary:hover,.btn-primary:focus{background:var(--accent);border-color:transparent;color:var(--accent-ink);filter:brightness(1.08)}
.btn-secondary,.btn-default,.btn-light,.btn-outline-secondary,.btn-outline-dark,.btn-outline-light{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}
.btn-secondary:hover,.btn-default:hover,.btn-light:hover,.btn-outline-secondary:hover,.btn-outline-dark:hover,.btn-outline-light:hover,
.btn-secondary:focus,.btn-light:focus,.btn-secondary:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled):active{background:var(--surface3);border-color:var(--line-strong);color:var(--ink)}
.btn-dark{background:var(--ink);color:var(--bg);border-color:transparent} .btn-dark:hover{background:var(--ink);color:var(--bg);filter:brightness(1.15)}
.btn-tonal,.btn-outline-primary,.btn-info{background:var(--accent-soft);color:var(--accent-strong);border-color:transparent}
.btn-tonal:hover,.btn-outline-primary:hover,.btn-info:hover,.btn-outline-primary:focus,.btn-info:focus{background:var(--accent-soft);color:var(--accent-strong);border-color:transparent;filter:brightness(.96)}
.btn-text,.btn-link{background:transparent;color:var(--accent-strong);padding:0 12px;border-color:transparent}
.btn-text:hover,.btn-link:hover{background:var(--accent-soft);color:var(--accent-strong)}
.btn-success,.btn-success:not(:disabled):not(.disabled):active{background:var(--success);color:#fff;border-color:transparent}
.btn-danger,.btn-danger:not(:disabled):not(.disabled):active{background:var(--danger);color:#fff;border-color:transparent}
.btn-success:hover,.btn-danger:hover,.btn-success:focus,.btn-danger:focus{color:#fff;border-color:transparent;filter:brightness(1.06)}
.btn-success:hover{background:var(--success)} .btn-danger:hover{background:var(--danger)}
.btn-warning,.btn-outline-warning{background:var(--warning-soft);color:var(--warning-ink);border-color:transparent}
.btn-warning:hover,.btn-outline-warning:hover{background:var(--warning-soft);color:var(--warning-ink);filter:brightness(.96)}
.btn-outline-success{background:var(--success-soft);color:var(--success-ink);border-color:transparent} .btn-outline-success:hover{background:var(--success-soft);color:var(--success-ink);filter:brightness(.96)}
.btn-outline-danger{background:var(--danger-soft);color:var(--danger-ink);border-color:transparent} .btn-outline-danger:hover{background:var(--danger-soft);color:var(--danger-ink);filter:brightness(.96)}
.btn-outline-info{background:var(--info-soft);color:var(--info-ink);border-color:transparent} .btn-outline-info:hover{background:var(--info-soft);color:var(--info-ink)}
.btn-sm,.btn-group-sm > .btn{height:28px;padding:0 10px;font-size:12px}
.btn-lg,.btn-group-lg > .btn{height:44px;padding:0 20px;font-size:14px}
.btn-xs{height:24px;padding:0 8px;font-size:11.5px}
.btn-block{display:flex;width:100%}
.btn:disabled,.btn.disabled,.btn.is-disabled{background:var(--surface2)!important;border-color:var(--line)!important;color:var(--ink3)!important;cursor:not-allowed;filter:none;opacity:1}
/* pulsanti solo icona (legacy .btn-icon) */
.btn-icon,.icon-btn{width:30px;height:30px;min-width:30px;padding:0;display:inline-grid;place-items:center;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink2);cursor:pointer}
.btn-icon:hover,.icon-btn:hover,.btn-icon:focus,.icon-btn:focus{background:var(--accent-soft);color:var(--accent-strong)}
.icon-btn.is-danger:hover{background:var(--danger-soft);color:var(--danger-ink)}
.btn-icon i,.btn-icon .ms,.icon-btn .ms,.icon-btn i{font-size:19px!important;width:19px!important;height:19px!important;line-height:19px!important;color:inherit!important;margin:0!important}
.btn-icon.btn-success,.btn-icon.btn-primary{color:#fff}
/* FAB legacy rimasti: diventano pulsanti tondi coerenti col tema */
.btn-fab{width:40px;height:40px;padding:0;border-radius:50%;display:inline-grid;place-items:center;box-shadow:var(--shadow)}
.btn-fab i{color:inherit!important;font-size:22px;width:22px;height:22px;line-height:22px}
.btn-group{display:inline-flex;vertical-align:middle}
.btn-group > .btn{border-radius:0}
.btn-group > .btn:first-child{border-radius:var(--r-btn) 0 0 var(--r-btn)}
.btn-group > .btn:last-child{border-radius:0 var(--r-btn) var(--r-btn) 0}
.btn-group > .btn:only-child{border-radius:var(--r-btn)}
.btn-group > .btn + .btn{margin-left:-1px}
.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r-btn);overflow:hidden}
.seg > button{height:32px;padding:0 12px;border:0;background:transparent;color:var(--ink2);font-size:12.5px;font-weight:500;cursor:pointer}
.seg > button + button{border-left:1px solid var(--line-strong)}
.seg > button.is-active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}
.close{color:var(--ink2);opacity:.7;text-shadow:none;font-size:22px;font-weight:400}
.close:hover{color:var(--ink);opacity:1}

/* ---------- Badge / chip / avatar / progress ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:600;line-height:1;background:var(--surface3);color:var(--ink2);white-space:nowrap;vertical-align:middle}
.badge.dot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge-sm{height:20px;padding:0 8px;font-size:11.5px}
.badge-success{background:var(--success-soft);color:var(--success-ink)}
.badge-warning{background:var(--warning-soft);color:var(--warning-ink)}
.badge-danger{background:var(--danger-soft);color:var(--danger-ink)}
.badge-info{background:var(--info-soft);color:var(--info-ink)}
.badge-primary,.badge-accent{background:var(--accent-soft);color:var(--accent-strong)}
.badge-secondary,.badge-light{background:var(--surface3);color:var(--ink2)}
.badge-dark{background:var(--ink);color:var(--bg)}
.badge-pill{border-radius:999px}
.counter{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:700}
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--line);font-size:12.5px;color:var(--ink2);background:transparent;cursor:pointer}
.chip.is-on{background:var(--accent-soft);border-color:transparent;color:var(--accent-strong);font-weight:500}
.code-tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--r-sm);border:1px solid var(--line-strong);color:var(--ink2);font:500 11.5px var(--mono)}
.tl-avatar{width:28px;height:28px;flex:none;border-radius:50%;display:inline-grid;place-items:center;font-size:11px;font-weight:700;background:var(--accent-soft);color:var(--accent-strong)}
img.avatar{border-radius:50%;object-fit:cover}
.progress{height:6px;border-radius:3px;background:var(--surface3);overflow:hidden}
.progress > span,.progress-bar{display:block;height:100%;background:var(--accent);border-radius:3px;color:#fff;font-size:10px}
.progress-bar.bg-success{background:var(--success)!important} .progress-bar.bg-danger{background:var(--danger)!important} .progress-bar.bg-warning{background:var(--warning)!important} .progress-bar.bg-info{background:var(--info)!important}

/* ==========================================================================
   CAMPI (stile sottolineato) — kit + markup legacy delle viste
   ========================================================================== */
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field-label{font-size:12px;font-weight:500;color:var(--ink2)}
.req{color:var(--danger)}
.input,.select,.textarea,
.form-control,.custom-select{display:block;width:100%;height:34px;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;background:transparent;outline:none;font-size:14px;line-height:1.4;color:var(--ink);padding:0;box-shadow:none;transition:border-color .12s, box-shadow .12s}
textarea.form-control,.textarea{height:auto;min-height:34px;padding:6px 0;line-height:1.5;resize:vertical}
select.form-control,.select,.custom-select{appearance:none;-webkit-appearance:none;padding-right:22px;cursor:pointer;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%236d7480' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right 2px center/16px 16px}
select.form-control[multiple],select.form-control[size]:not([size="1"]){height:auto;background-image:none;padding-right:0}
select.form-control option{background:var(--surface);color:var(--ink)}
.input:focus,.select:focus,.textarea:focus,.form-control:focus,.custom-select:focus{border-bottom-color:var(--accent);box-shadow:0 1px 0 0 var(--accent);background-color:transparent;color:var(--ink);outline:none}
.form-control::placeholder{color:var(--ink3);opacity:1}
.form-control:disabled,.form-control[readonly],.input:disabled{background-color:transparent;color:var(--ink3);border-bottom-style:dashed;opacity:1}
.form-control-sm,.input-sm{height:28px;font-size:13px}
.form-control-lg{height:42px;font-size:16px}
.form-control-file{font-size:13px;color:var(--ink2)}
input[type="checkbox"],input[type="radio"]{accent-color:var(--accent);width:16px;height:16px;vertical-align:middle}
input[type="color"].form-control{width:60px;height:34px;padding:2px;cursor:pointer}
.field:focus-within .field-label{color:var(--accent-strong)}
.field.is-error .input,.field.is-error .select,.field.is-error .textarea{border-bottom-color:var(--danger)}
.field-error{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--danger-ink)}
.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:22px}
.span-1{grid-column:span 1}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:span 12}
@media (max-width:760px){ .form-grid > *{grid-column:span 12} }
.form-section{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}
.switch{width:32px;height:18px;border-radius:999px;border:0;padding:2px;background:var(--line-strong);cursor:pointer;display:inline-flex;flex:none}
.switch::after{content:"";width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px oklch(0 0 0 / .25);transition:transform .15s}
.switch[aria-checked="true"]{background:var(--accent)} .switch[aria-checked="true"]::after{transform:translateX(14px)}

/* form-group legacy: input prima della label → etichetta sopra il campo */
.form-group{position:relative;margin-bottom:18px}
.form-group:not(.row):not(.form-check){display:flex;flex-direction:column;gap:4px}
.form-group:not(.row) > label,.form-group:not(.row) > .col-form-label,.form-group:not(.row) > .control-label{order:-1;margin:0;font-size:12px;font-weight:500;color:var(--ink2);line-height:1.4;padding:0;position:static;transform:none;pointer-events:auto}
.form-group:not(.row) > .input-group > label{display:none}
.form-group:focus-within > label{color:var(--accent-strong)}
.form-group.required > label::after,.form-group.required > .col-form-label::after{content:" *";color:var(--danger)}
.required label{color:var(--ink2)!important}
.required input::placeholder{color:var(--ink3)!important}
.form-group:not(.row) > .form-control::placeholder,.form-group:not(.row) > .form-control::-webkit-input-placeholder{color:transparent!important}
.form-group:not(.row) > .form-control:focus::placeholder,.form-group:not(.row) > .form-control:focus::-webkit-input-placeholder{color:var(--ink3)!important}
.form-group > .form-check,.form-group > .custom-control,.form-group > .btn{align-self:flex-start}
.form-group > select.form-control + label{order:-1}
.form-group.row{align-items:center}
.form-group.row > label,.col-form-label{font-size:12.5px;font-weight:500;color:var(--ink2);padding-top:0;padding-bottom:0}
.col-form-legend,legend{font-size:12px;font-weight:600;color:var(--ink2);padding:0;margin-bottom:6px;border:0;width:auto;letter-spacing:.02em}
fieldset{border:0;padding:0;margin:0;min-width:0}
.invalid-feedback{display:none;align-items:center;gap:4px;font-size:12px;color:var(--danger-ink);margin-top:2px;order:5}
.was-validated .form-control:invalid ~ .invalid-feedback,.form-control.is-invalid ~ .invalid-feedback,.was-validated .custom-control-input:invalid ~ .invalid-feedback{display:flex}
.was-validated .form-control:invalid,.form-control.is-invalid{border-bottom-color:var(--danger)!important;box-shadow:0 1px 0 0 var(--danger)}
.was-validated .form-control:valid,.form-control.is-valid{border-bottom-color:var(--line-strong);box-shadow:none}
.was-validated .form-control:valid:focus{border-bottom-color:var(--accent);box-shadow:0 1px 0 0 var(--accent)}
.valid-feedback{font-size:12px;color:var(--success-ink)}
.form-text,.help-block{font-size:12px;color:var(--ink3)}
.dv_form_errors{color:var(--danger-ink);font-size:12.5px}
.input-group{display:flex;align-items:stretch;flex-wrap:nowrap;width:100%}
.input-group > .form-control{flex:1 1 auto;width:1%}
.input-group-addon,.input-group-text,.input-group-prepend .input-group-text,.input-group-append .input-group-text{display:flex;align-items:center;padding:0 8px;background:transparent;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;color:var(--ink3);font-size:13px}
.input-group-btn,.input-group-append,.input-group-prepend{display:flex;align-items:center}
.input-group-btn .btn,.input-group-append .btn{margin-left:6px}
/* checkbox / radio custom (markup Bootstrap 4 beta usato dalle viste legacy) */
.custom-control{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:22px;padding-left:0;margin-right:16px;cursor:pointer;color:var(--ink);font-size:13.5px}
.custom-control-input{position:absolute;opacity:0;width:1px;height:1px;z-index:-1}
.custom-control-indicator,.custom-control-label::before{content:"";position:relative;flex:none;width:18px;height:18px;border:2px solid var(--line-strong);border-radius:4px;background:var(--surface);transition:background .12s,border-color .12s;display:inline-block;top:0;left:0}
.custom-radio .custom-control-indicator,.custom-radio .custom-control-label::before{border-radius:50%}
.custom-control-input:checked ~ .custom-control-indicator,.custom-control-input:checked ~ .custom-control-label::before{background:var(--accent);border-color:var(--accent)}
.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator,.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") no-repeat center/14px}
.custom-radio .custom-control-input:checked ~ .custom-control-indicator{box-shadow:inset 0 0 0 3px var(--surface)}
.custom-control-input:focus ~ .custom-control-indicator,.custom-control-input:focus ~ .custom-control-label::before{box-shadow:0 0 0 3px var(--accent-soft)}
.custom-control-input:disabled ~ .custom-control-indicator{opacity:.5}
.custom-control-description,.custom-control-label{color:var(--ink);font-size:13.5px;margin:0;line-height:1.3}
.custom-control-label{display:inline-flex;align-items:center;gap:8px;position:relative}
.custom-control-label::after{content:"";position:absolute;left:0;top:50%;width:18px;height:18px;margin-top:-9px;border-radius:4px;background:none}
.custom-controls-stacked{display:flex;flex-direction:column;gap:6px}
.form-check{padding-left:0;display:flex;align-items:center;gap:8px;margin-bottom:6px}
.form-check-input{position:static;margin:0}
.form-check-label{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:13.5px;margin:0}
.form-check-description{color:var(--ink)}
.checkbox-icon{display:none}
/* interruttori custom-switch del modulo ticketing */
.custom-switch-slider{background:var(--line-strong)!important}
input:checked + .custom-switch-slider{background:var(--accent)!important}

/* ==========================================================================
   TABELLE / DATATABLE
   ========================================================================== */
.table-toolbar{display:flex;align-items:center;gap:10px;padding:12px var(--card-p);border-bottom:1px solid var(--line);flex-wrap:wrap}
.table-search{display:flex;align-items:center;gap:8px;height:var(--ctl);flex:1;max-width:360px;border-bottom:1px solid var(--line-strong);color:var(--ink3)}
.table-search input{flex:1;border:0;outline:none;background:transparent;font-size:13.5px;color:var(--ink)}
.table-scroll,.table-responsive{overflow-x:auto}
.table,.dt{width:100%;max-width:100%;margin:0;border-collapse:collapse;font-size:var(--fs);color:var(--ink);background:transparent}
.table thead th,.dt th{height:40px;padding:0 14px;vertical-align:middle;text-align:left;font-size:12px;font-weight:600;color:var(--ink2);background:var(--surface2);border:0;border-bottom:1px solid var(--line);white-space:nowrap}
.table th,.table td,.dt td{padding:var(--row-py) 14px;border-top:0;border-bottom:1px solid var(--line);vertical-align:middle}
.table thead th:first-child,.table tbody td:first-child,.dt th:first-child,.dt td:first-child{padding-left:var(--card-p)}
.table thead th:last-child,.table tbody td:last-child,.dt th:last-child,.dt td:last-child{padding-right:var(--card-p)}
.table tbody tr:hover,.dt tbody tr:hover{background:var(--surface2)}
.table-striped tbody tr:nth-of-type(odd){background:transparent}
.table-striped tbody tr:hover{background:var(--surface2)}
.table-bordered,.table-bordered td,.table-bordered th{border:1px solid var(--line)}
.table-sm td,.table-sm th{padding:4px 10px}
.table .thead-light th,.table .thead-dark th{background:var(--surface2);color:var(--ink2);border-color:var(--line)}
.table-active,.table-active > td{background:var(--accent-soft)!important}
.table-success,.table-success > td{background:var(--success-soft)!important} .table-danger,.table-danger > td{background:var(--danger-soft)!important}
.table-warning,.table-warning > td{background:var(--warning-soft)!important} .table-info,.table-info > td{background:var(--info-soft)!important}
.table tfoot td,.table tfoot th{font-weight:600;background:var(--surface2)}
.table-header{display:flex;align-items:center;gap:4px}
.column-title{font-size:12px;font-weight:600;color:var(--ink2)}
.secondary-text{color:var(--ink2)!important}
.dt th.sortable{cursor:pointer} .dt th.sortable::after{content:"swap_vert";font-family:'Material Symbols Rounded';font-size:15px;opacity:.35;margin-left:4px;vertical-align:-3px}
.dt th[aria-sort="ascending"]{color:var(--ink)} .dt th[aria-sort="ascending"]::after{content:"arrow_upward";opacity:1}
.dt th[aria-sort="descending"]{color:var(--ink)} .dt th[aria-sort="descending"]::after{content:"arrow_downward";opacity:1}
.dt .t-strong{font-weight:600} .dt .t-muted{color:var(--ink2)} .dt .t-right{text-align:right}
.row-actions{display:flex;justify-content:flex-end;align-items:center;gap:2px;position:relative}
.row-actions .hover-only{display:flex;gap:2px;opacity:0;transition:opacity .12s}
tbody tr:hover .hover-only,tbody tr:focus-within .hover-only,.row-actions.is-open .hover-only{opacity:1}
@media (hover:none){ .row-actions .hover-only{opacity:1} }
.table-foot{display:flex;align-items:center;gap:12px;padding:10px var(--card-p);font-size:13px;color:var(--ink2);flex-wrap:wrap}
.pager{margin-left:auto;display:flex;align-items:center;gap:4px}
.pager button{min-width:32px;height:32px;padding:0 8px;border:0;border-radius:var(--r-btn);background:transparent;color:var(--ink2);font-size:13px;font-weight:600;cursor:pointer}
.pager button.is-active{background:var(--accent);color:var(--accent-ink)}
.pager button.nav{border:1px solid var(--line);background:var(--surface)}
.pager button:disabled{opacity:.4;cursor:default}
.empty{padding:40px;text-align:center;color:var(--ink3);display:flex;flex-direction:column;align-items:center;gap:8px}
/* ordinamento DataTables con le icone del tema */
table.dataTable{width:100%!important;border-collapse:collapse!important;margin:0!important}
table.dataTable thead th{position:relative;cursor:default}
table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;background-image:none!important}
table.dataTable thead .sorting_disabled::after,.dataTables_scrollBody thead th::after,table.dataTable thead th .dataTables_sizing + *{display:none!important}
.dataTables_scrollBody thead th{background:transparent!important;border:0!important}
table.dataTable thead th .table-header{display:inline-flex}
table.dataTable thead .sorting::after,table.dataTable thead .sorting_asc::after,table.dataTable thead .sorting_desc::after{content:"swap_vert";position:static;display:inline-block;margin-left:4px;vertical-align:-3px;font-family:'Material Symbols Rounded';font-size:15px;line-height:1;opacity:.35;font-weight:normal}
table.dataTable thead .sorting_asc::after{content:"arrow_upward";opacity:1}
table.dataTable thead .sorting_desc::after{content:"arrow_downward";opacity:1}
table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{color:var(--ink)}
table.dataTable.no-footer{border-bottom:0}
table.dataTable tbody tr.selected{background:var(--accent-soft)}
.dataTables_wrapper{position:relative;clear:both;font-size:13px;color:var(--ink2)}
.dataTables_wrapper::after{content:"";display:table;clear:both}
.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{padding:12px var(--card-p);display:inline-flex;align-items:center}
.dataTables_wrapper .dataTables_length{float:left}
.dataTables_wrapper .dataTables_filter{float:right}
.dataTables_wrapper .dataTables_filter label,.dataTables_wrapper .dataTables_length label{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;color:var(--ink2);font-weight:400}
.dataTables_wrapper .dataTables_filter input{width:260px;max-width:50vw;height:var(--ctl);border:0;border-bottom:1px solid var(--line-strong);background:transparent;outline:none;font-size:13.5px;color:var(--ink);padding:0 0 0 26px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%236d7480' d='M15.5 14h-.79l-.28-.27A6.5 6.5 0 1 0 9.5 16a6.47 6.47 0 0 0 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14'/%3E%3C/svg%3E") no-repeat left 2px center/18px}
.dataTables_wrapper .dataTables_filter input:focus{border-bottom-color:var(--accent);box-shadow:0 1px 0 0 var(--accent)}
.dataTables_wrapper .dataTables_length select{height:30px;border:0;border-bottom:1px solid var(--line-strong);background:transparent;color:var(--ink);padding:0 4px;outline:none}
.dataTables_wrapper .dataTables_info{float:left;padding:14px var(--card-p);font-size:13px;color:var(--ink2)}
.dataTables_wrapper .dataTables_paginate{float:right;padding:10px var(--card-p);display:flex;align-items:center;gap:4px}
.dataTables_wrapper .dataTables_paginate span{display:flex;gap:4px}
.dataTables_wrapper .dataTables_paginate .paginate_button{min-width:32px;height:32px;padding:0 10px;display:inline-grid;place-items:center;border:0!important;border-radius:var(--r-btn);background:transparent!important;color:var(--ink2)!important;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none!important;box-shadow:none!important}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:var(--surface2)!important;color:var(--ink)!important}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{background:var(--accent)!important;color:var(--accent-ink)!important}
.dataTables_wrapper .dataTables_paginate .paginate_button.previous,.dataTables_wrapper .dataTables_paginate .paginate_button.next{border:1px solid var(--line)!important;background:var(--surface)!important}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{opacity:.4;cursor:default;background:var(--surface)!important;color:var(--ink2)!important}
.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:10px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);color:var(--ink2);z-index:5}
.dataTables_wrapper .dataTables_scroll{clear:both}
.dataTables_wrapper .dataTables_scrollBody{border-bottom:0!important}
.dataTables_empty{padding:40px!important;text-align:center;color:var(--ink3)}
.dt-buttons{display:inline-flex;gap:6px;padding:12px 0 12px var(--card-p);float:left}
.dt-button{display:inline-flex!important;align-items:center;height:28px;padding:0 10px!important;border-radius:var(--r-btn);border:1px solid var(--line-strong)!important;background:var(--surface)!important;color:var(--ink)!important;font-size:12px;font-weight:600;cursor:pointer}
.dt-button:hover{background:var(--surface3)!important}
table.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child::before,table.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child::before{content:"add";font-family:'Material Symbols Rounded';background:var(--accent-soft)!important;color:var(--accent-strong)!important;border:0!important;box-shadow:none!important;border-radius:50%;width:18px;height:18px;line-height:18px;font-size:16px;text-indent:0;top:50%;margin-top:-9px}
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child::before{content:"remove";background:var(--danger-soft)!important;color:var(--danger-ink)!important}
table.dataTable > tbody > tr.child ul.dtr-details{display:block;list-style:none;margin:0;padding:0}
table.dataTable > tbody > tr.child ul.dtr-details > li{border-bottom:1px solid var(--line);padding:6px 0}
table.dataTable > tbody > tr.child span.dtr-title{display:inline-block;min-width:140px;font-weight:600;color:var(--ink2)}
.example > .dataTables_wrapper > table,.example table.dataTable{border-radius:0}

/* ==========================================================================
   DROPDOWN, MODALI, TAB, AVVISI, TOAST, TOOLTIP
   ========================================================================== */
.dropdown-menu{min-width:180px;padding:6px;margin-top:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);font-size:13px;color:var(--ink);z-index:1060}
.dropdown-menu.show{animation:vdIn .12s ease}
.dropdown-item,.dropdown-menu > li > a{display:flex!important;align-items:center;gap:10px;min-height:32px;padding:0 10px!important;border-radius:var(--r-sm);color:var(--ink)!important;font-size:13px;white-space:nowrap;background:transparent;text-decoration:none!important;clear:none;line-height:1.3}
.dropdown-item:hover,.dropdown-item:focus,.dropdown-menu > li > a:hover,.dropdown-menu > li > a:focus{background:var(--surface2)!important;color:var(--ink)!important}
.dropdown-item.active,.dropdown-item:active{background:var(--accent-soft)!important;color:var(--accent-strong)!important}
.dropdown-item i,.dropdown-menu > li > a i,.dropdown-item .ms{font-size:18px!important;width:18px!important;height:18px!important;line-height:18px!important;color:var(--ink2)!important;margin:0!important}
.dropdown-menu > li{list-style:none}
.dropdown-menu > li > a[onclick*="_del("],.dropdown-menu > li > a[onclick*="del("],.dropdown-item.is-danger,.dropdown-item.text-danger{color:var(--danger-ink)!important}
.dropdown-menu > li > a[onclick*="_del("] i,.dropdown-menu > li > a[onclick*="del("] i{color:var(--danger-ink)!important}
.dropdown-menu > li > a[onclick*="_del("]:hover,.dropdown-menu > li > a[onclick*="del("]:hover{background:var(--danger-soft)!important}
.dropdown-divider,.dropdown-menu > .divider{height:1px;margin:4px 0;background:var(--line);border:0;overflow:hidden}
.dropdown-header{padding:6px 10px 4px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}
.dropdown-toggle::after{border:0;content:"expand_more";font-family:'Material Symbols Rounded';font-size:18px;vertical-align:middle;margin-left:4px;width:auto;height:auto;line-height:1}
.btn-icon.dropdown-toggle::after,.dropdown > .btn-icon::after{display:none}
.pull-right{float:right!important} .pull-left{float:left!important}
.floatleft{float:left} .floatright{float:right}

.modal-backdrop{background:var(--overlay)!important}
.modal-backdrop.show{opacity:1}
.modal-dialog{margin:6vh auto;max-width:520px;padding:0 20px}
.modal-lg{max-width:860px} .modal-xl{max-width:1180px} .modal-sm{max-width:380px}
.modal.fade .modal-dialog{transform:translateY(10px) scale(.985);transition:transform .16s ease}
.modal.show .modal-dialog{transform:none}
.modal-content{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-pop);overflow:visible}
.modal-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);border-radius:var(--r) var(--r) 0 0}
.modal-title{flex:1;font-size:16px;font-weight:600;margin:0;line-height:1.3;color:var(--ink)}
.modal-header .close{margin:0;padding:0;width:30px;height:30px;display:grid;place-items:center;border-radius:var(--r-sm);font-size:0;order:9}
.modal-header .close::before{content:"close";font-family:'Material Symbols Rounded';font-size:20px;color:var(--ink2)}
.modal-header .close:hover{background:var(--surface2)}
.modal-header .close span{display:none}
.modal-body{padding:22px 20px}
.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--line);background:var(--surface2);border-radius:0 0 var(--r) var(--r)}
.modal-footer > :not(:first-child),.modal-footer > :not(:last-child){margin:0}
.modal-footer .hint{margin-right:auto;font-size:12px;color:var(--ink3)}
.modal-icon{width:36px;height:36px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-strong);display:grid;place-items:center;flex:none}
.modal-icon.is-danger{background:var(--danger-soft);color:var(--danger-ink)}
.modal-open .sidebar{z-index:1040}

.nav-tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line);margin-bottom:var(--gap)}
.nav-tabs .nav-item{margin-bottom:-1px}
.nav-tabs .nav-link{display:flex;align-items:center;gap:6px;height:40px;padding:0 14px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--ink2);font-size:13px;font-weight:600;text-decoration:none!important}
.nav-tabs .nav-link:hover{color:var(--ink);border-bottom-color:var(--line-strong)}
.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--accent-strong);background:transparent;border-bottom-color:var(--accent)}
.nav-pills .nav-link{border-radius:var(--r-btn);color:var(--ink2);font-weight:600;font-size:13px}
.nav-pills .nav-link.active,.nav-pills .show > .nav-link{background:var(--accent-soft);color:var(--accent-strong)}
.tab-content{color:var(--ink)}

.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:0;border-radius:var(--r-sm);font-size:13px;margin-bottom:var(--gap);position:relative}
.alert-info,.alert-primary{background:var(--info-soft);color:var(--info-ink)} .alert-success{background:var(--success-soft);color:var(--success-ink)}
.alert-warning{background:var(--warning-soft);color:var(--warning-ink)} .alert-danger{background:var(--danger-soft);color:var(--danger-ink)}
.alert-secondary,.alert-light,.alert-dark{background:var(--surface2);color:var(--ink2)}
.page-layout .alert-info,.page-layout .alert-success,.page-layout .alert-warning,.page-layout .alert-danger{background-color:var(--surface);background-image:linear-gradient(var(--info-soft),var(--info-soft))}
.page-layout .alert-success{background-image:linear-gradient(var(--success-soft),var(--success-soft))}
.page-layout .alert-warning{background-image:linear-gradient(var(--warning-soft),var(--warning-soft))}
.page-layout .alert-danger{background-image:linear-gradient(var(--danger-soft),var(--danger-soft))}
.alert-dismissible{padding-right:40px}
.alert-dismissible .close{position:absolute;top:8px;right:8px;padding:0;width:24px;height:24px;font-size:0;color:inherit}
.alert-dismissible .close::before{content:"close";font-family:'Material Symbols Rounded';font-size:18px}
.alert .alert-link{color:inherit;font-weight:600}

.toast-stack{position:fixed;right:20px;bottom:20px;z-index:2000;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;max-width:420px;padding:12px 16px;border-radius:var(--r);background:var(--ink);color:var(--bg);box-shadow:0 12px 32px oklch(0 0 0 / .25);font-size:13.5px;line-height:1.4;animation:vdIn .18s ease;pointer-events:auto;opacity:1}
.toast .ms{font-variation-settings:'FILL' 1;flex:none}
.toast .toast-close{margin-left:6px;border:0;background:transparent;color:inherit;opacity:.6;cursor:pointer;padding:0;display:grid;place-items:center}
.toast .toast-close:hover{opacity:1}
.toast .toast-close .ms{font-size:18px;font-variation-settings:'FILL' 0}
.toast.is-leaving{opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s}
.toast-success .ms{color:var(--success)} .toast-info .ms{color:var(--info)} .toast-warning .ms{color:var(--warning)} .toast-danger .ms{color:var(--danger)}

.tooltip{font-family:var(--font);font-size:12px}
.tooltip-inner{background:var(--ink);color:var(--bg);border-radius:var(--r-sm);padding:6px 9px;max-width:280px}
.bs-tooltip-top .arrow::before,.tooltip.bs-tooltip-top .arrow::before{border-top-color:var(--ink)}
.bs-tooltip-bottom .arrow::before{border-bottom-color:var(--ink)}
.bs-tooltip-left .arrow::before{border-left-color:var(--ink)} .bs-tooltip-right .arrow::before{border-right-color:var(--ink)}
.popover{font-family:var(--font);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.popover-header{background:var(--surface2);border-bottom:1px solid var(--line);font-size:13px;color:var(--ink)}
.popover-body{color:var(--ink);font-size:13px}

.list-group-item{background:var(--surface);border-color:var(--line);color:var(--ink)}
.list-group-item.active{background:var(--accent-soft);border-color:var(--line);color:var(--accent-strong)}
.list-group-item-action:hover{background:var(--surface2)}
.pagination{display:flex;gap:4px;padding:0;margin:0;list-style:none}
.page-link{min-width:32px;height:32px;padding:0 10px;display:grid;place-items:center;border:0;border-radius:var(--r-btn)!important;background:transparent;color:var(--ink2);font-size:13px;font-weight:600}
.page-link:hover{background:var(--surface2);color:var(--ink)}
.page-item.active .page-link{background:var(--accent);color:var(--accent-ink)}
.page-item.disabled .page-link{background:transparent;opacity:.4}
.breadcrumb{background:transparent;padding:0;margin:0;font-size:12.5px}
.jumbotron{background:var(--surface2);border-radius:var(--r)}

/* ==========================================================================
   COMPATIBILITÀ con classi legacy usate nelle viste
   ========================================================================== */
.bg-white{background-color:var(--surface)!important}
.bg-light,.bg-gray,.bck-white{background-color:var(--surface2)!important}
.bg-dark{background-color:var(--ink)!important;color:var(--bg)!important}
.bg-primary,.bg-secondary,.bg-primary-500{background-color:var(--accent)!important;color:#fff}
.bg-success,.bg-green{background-color:var(--success)!important}
.bg-green-300{background-color:var(--success-soft)!important}
.bg-danger{background-color:var(--danger)!important}
.bg-warning{background-color:var(--warning)!important}
.bg-info{background-color:var(--info)!important}
.text-primary{color:var(--accent-strong)!important}
.text-secondary,.text-muted,.color-aaa,.color-777,.color-gray{color:var(--ink3)!important}
.text-success,.text-green{color:var(--success-ink)!important}
.text-danger{color:var(--danger-ink)!important}
.text-warning,.text-amber-600{color:var(--warning-ink)!important}
.text-info{color:var(--info-ink)!important}
.text-dark,.color-black{color:var(--ink)!important}
.text-white,.color-white{color:#fff!important}
.text-auto{color:inherit}
.light-fg{color:var(--band-ink)}
.border,.border-gray-1,.b-grey{border-color:var(--line)!important}
.border-top{border-top-color:var(--line)!important} .border-bottom{border-bottom-color:var(--line)!important}
.rounded{border-radius:var(--r-sm)!important}
.shadow,.md-elevation-8{box-shadow:var(--shadow)!important}
.font-weight-medium{font-weight:500} .bold,.text-bold{font-weight:600} .italic{font-style:italic}
.h-100pc{height:100%!important} .w-100pc{width:100%!important}
.align-center,.text-centered{text-align:center}
.displaynone{display:none} .displayblock,.display-block{display:block} .display-inline{display:inline}
.divider{height:1px;background:var(--line);margin:8px 0}
.ripple{position:relative}
.doc-title{color:var(--ink)}
.description-text{color:var(--ink2)}
.info-line{display:flex;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line)}
.info-line:last-child{border-bottom:0}
.info-line .title{min-width:140px;font-size:12px;font-weight:600;color:var(--ink3)}
.info-line .info{color:var(--ink)}
.profile-box,.info-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:var(--gap);overflow:hidden}
.profile-box > header,.info-box > header,.profile-box .header,.widget-header{display:flex;align-items:center;gap:10px;padding:12px var(--card-p);border-bottom:1px solid var(--line);background:transparent!important;color:var(--ink)!important;font-size:14px;font-weight:600}
.profile-box > header *,.info-box > header *{color:var(--ink)!important}
.profile-box .content,.info-box .content,.widget-content{padding:var(--card-p)}
.widget-footer{padding:10px var(--card-p);border-top:1px solid var(--line);background:var(--surface2);font-size:12.5px;color:var(--ink2)}
.widget{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.widget .h1,.widget .h2,.widget .h3,.widget .count{color:var(--ink)}
.timeline-item,.activity,.post-media{border-color:var(--line)!important}
.tag{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface3);color:var(--ink2)}
.label-info{background:var(--info-soft);color:var(--info-ink)!important;border-radius:999px}
.ps__scrollbar-x-rail,.ps__scrollbar-y-rail{display:none!important}
/* card del modulo knowledgebase / registry */
.card-small{border-radius:var(--r)}
/* lettere di paginazione anagrafiche nella banda */
.main .page-header li.btn{list-style:none;min-width:30px;height:26px;padding:0 8px;margin:0 2px 4px 0;font-size:12px;background:var(--band-btn);border:1px solid var(--band-btn-line);color:var(--band-ink)}
.main .page-header li.btn.btn-success{background:var(--band-solid);color:var(--band-solid-ink);border-color:transparent}

/* nvd3 */
.nvd3 text,.nvtooltip{font-family:var(--font)!important;fill:var(--ink2)}
.nvd3 .nv-axis line,.nvd3 .nv-axis path{stroke:var(--line)}
.nvtooltip{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--r-sm)!important;color:var(--ink)!important;box-shadow:var(--shadow)!important}
/* fullcalendar */
.fc{font-family:var(--font);font-size:13px;color:var(--ink)}
.fc-unthemed th,.fc-unthemed td,.fc-unthemed thead,.fc-unthemed tbody,.fc-unthemed .fc-divider,.fc-unthemed .fc-row,.fc-unthemed .fc-content,.fc-unthemed .fc-popover,.fc-unthemed .fc-list-view,.fc-unthemed .fc-list-heading td{border-color:var(--line)}
.fc-unthemed .fc-today{background:var(--accent-soft)!important}
.fc th{padding:8px 4px;font-size:12px;font-weight:600;color:var(--ink2);background:var(--surface2)}
.fc-toolbar h2{font-size:20px;font-weight:600}
.fc button,.fc-button{height:32px!important;padding:0 12px!important;border-radius:var(--r-btn)!important;border:1px solid var(--line-strong)!important;background:var(--surface)!important;color:var(--ink)!important;font-size:13px!important;font-weight:600;text-shadow:none!important;box-shadow:none!important;text-transform:none}
.fc button:hover{background:var(--surface3)!important}
.fc-state-active,.fc-button-active,.fc button.fc-state-active{background:var(--accent-soft)!important;color:var(--accent-strong)!important;border-color:transparent!important}
.fc-event{border-radius:var(--r-sm);font-size:12px;border-width:0;padding:1px 3px}
.fc-sat,.fc-sun{background-color:color-mix(in oklch, var(--danger) 5%, transparent)!important}
/* select2 */
.select2-container--default .select2-selection--single,.select2-container--default .select2-selection--multiple{border:0!important;border-bottom:1px solid var(--line-strong)!important;border-radius:0!important;background:transparent!important;min-height:34px}
.select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--ink)!important;line-height:34px!important;padding-left:0!important}
.select2-container--default .select2-selection--single{height:34px!important}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:32px!important}
.select2-container--default.select2-container--focus .select2-selection--multiple,.select2-container--default.select2-container--open .select2-selection--single{border-bottom-color:var(--accent)!important;box-shadow:0 1px 0 0 var(--accent)}
.select2-container--default .select2-selection--multiple .select2-selection__choice{background:var(--accent-soft)!important;border:0!important;color:var(--accent-strong)!important;border-radius:999px!important;padding:0 8px!important;font-size:12px}
.select2-dropdown{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--r)!important;box-shadow:var(--shadow);color:var(--ink);overflow:hidden;z-index:2050}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--accent-soft)!important;color:var(--accent-strong)!important}
.select2-container--default .select2-results__option[aria-selected=true]{background:var(--surface2)!important}
.select2-container--default .select2-search--dropdown .select2-search__field{border:0!important;border-bottom:1px solid var(--line-strong)!important;background:transparent;color:var(--ink);outline:none}
/* TinyMCE e editor: superficie neutra */
.tox-tinymce{border-color:var(--line)!important;border-radius:var(--r-sm)!important}

/* ---------- Workflow (righe trascinabili) ---------- */
.drag-handle{color:var(--ink3);cursor:grab}
tr.is-dragging{background:var(--accent-soft)}
tr.is-drop-target{box-shadow:inset 0 2px 0 var(--accent)}
.flag{width:38px;height:30px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:var(--r-sm);background:transparent;color:var(--ink3);cursor:pointer}
.flag[aria-pressed="true"]{border-color:transparent;background:var(--accent-soft);color:var(--accent-strong)}
.flag[aria-pressed="true"] .ms{font-variation-settings:'FILL' 1}
.flag.is-warning[aria-pressed="true"]{background:var(--warning-soft);color:var(--warning-ink)}

/* ---------- Tema scuro: correzioni per stili inline / Bootstrap ---------- */
[data-theme="dark"] .table,[data-theme="dark"] .modal-content,[data-theme="dark"] .card{color:var(--ink)}
[data-theme="dark"] [style*="background-color:#fff"],[data-theme="dark"] [style*="background-color: #fff"],[data-theme="dark"] [style*="background-color:#FFF"],[data-theme="dark"] [style*="background:#fff"],[data-theme="dark"] [style*="background-color:white"],[data-theme="dark"] [style*="background-color: white"],[data-theme="dark"] [style*="background-color:#ffffff"],[data-theme="dark"] [style*="background-color: #ffffff"]{background-color:var(--surface)!important}
[data-theme="dark"] [style*="color:#000"],[data-theme="dark"] [style*="color: #000"],[data-theme="dark"] [style*="color:black"],[data-theme="dark"] [style*="color:#333"],[data-theme="dark"] [style*="color: #333"]{color:var(--ink)!important}
[data-theme="dark"] [style*="background-color:#f"],[data-theme="dark"] [style*="background-color: #f"],[data-theme="dark"] [style*="background-color:#e"],[data-theme="dark"] [style*="background-color: #e"],[data-theme="dark"] [style*="background:#f"],[data-theme="dark"] [style*="background: #f"]{background-color:var(--surface2)!important}
[data-theme="dark"] .fc-sat,[data-theme="dark"] .fc-sun{background-color:color-mix(in oklch, var(--danger) 8%, transparent)!important}
[data-theme="dark"] img.sb-logo{filter:var(--logo-filter)}

/* ---------- Pagina di accesso (login e area clienti) ---------- */
.tl-auth{min-height:100vh;background:var(--band);position:relative;overflow-x:hidden}
.tl-auth::before,.tl-auth::after{content:"";position:fixed;transform:rotate(32deg);background:var(--band-shape);pointer-events:none}
.tl-auth::before{right:-160px;top:-200px;width:640px;height:640px;border-radius:56px}
.tl-auth::after{left:-140px;bottom:-220px;width:520px;height:520px;border-radius:48px}
.auth-wrap{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;gap:72px;padding:40px 24px;flex-wrap:wrap}
.auth-intro{flex:0 1 460px;color:var(--band-ink)}
.auth-logo{height:44px;width:auto;filter:var(--logo-filter);margin-bottom:28px}
.auth-title{font-size:30px;font-weight:400;letter-spacing:.04em}
.auth-title strong{font-weight:700}
.auth-text{margin-top:14px;font-size:16px;line-height:1.5;color:var(--band-ink2)}
.auth-card{width:420px;max-width:100%;box-shadow:var(--shadow-pop)!important}
.auth-card .card-body{padding:36px 36px 30px}
.auth-logo-sm{display:none;height:30px;width:auto;margin-bottom:22px}
.auth-card-title{font-size:22px;font-weight:600;margin:0 0 4px}
.auth-card-sub{font-size:13.5px;color:var(--ink3);margin-bottom:26px}
.auth-card .alert{margin:12px 0 22px}
.auth-card form .form-group{margin-bottom:22px}
.auth-submit{margin-top:22px}
[data-theme="dark"] .auth-logo-sm{filter:var(--logo-filter)}
@media (max-width:991.98px){ .auth-intro{display:none} .auth-logo-sm{display:block} }

/* ---------- Stampa ---------- */
@media print{
  .sidebar,.topbar,.toast-stack,.quick-panel-sidebar,.noprint{display:none!important}
  .main-col{margin:0!important}
  .main .page-header,.band{background:none!important;color:#000!important;padding:0 0 10px!important}
  .main .page-header::before,.main .page-header::after,.band::before,.band::after{display:none}
  .page-layout .page-content,.page-layout .page-content-card{margin:0!important}
}

@keyframes vdIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes vdModal{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ *{animation:none!important;transition:none!important} }

/* ---------- Rifiniture header legacy con toolbar (calendario, file manager…) ---------- */
.main .page-header .btn-icon{color:var(--band-ink)!important}
.main .page-header .btn-icon:hover,.main .page-header .btn-icon:focus{background:var(--band-btn)!important;color:var(--band-ink)!important}
.main .page-header .header-content{flex:1 1 100%;min-width:0;gap:10px}
.main .page-header .header-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.main .page-header .header-top .toolbar{display:flex;align-items:center;gap:2px}
.main .page-header .header-bottom{display:flex;align-items:center;justify-content:center;gap:8px;margin:0}
.main .page-header .logo-text h4{display:flex;align-items:center;gap:16px}
.main .page-header h4 > i.logo-icon{flex:none}
.main .page-header .h5,.main .page-header h5{color:var(--band-ink)}
.fc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.fc .fc-toolbar{padding:10px var(--card-p);margin:0}
.fc td,.fc th{border-color:var(--line)!important}
.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-popover .fc-header,.fc-unthemed .fc-list-heading td{background:var(--surface2)}
.fc-time-grid .fc-slats td{height:2.2em}
.fc-axis{color:var(--ink3);font-size:12px}

/* header legacy fuori da .page-layout (knowledge base, email2todo, password) */
.main .page-header + .row,.main .page-header + .container-fluid{position:relative;z-index:2;margin-top:-46px;margin-left:calc(var(--page-x) - 15px);margin-right:calc(var(--page-x) - 15px)}
.main .page-header + .e2t-container{position:relative;z-index:2;margin-top:-66px}
.e2t-filters,.e2t-group{background:var(--surface)!important;border:1px solid var(--line);box-shadow:var(--shadow)!important;border-radius:var(--r)!important}
.main .page-header .header.bg-secondary,.main .page-header .bg-secondary{background:transparent!important}
.main .page-header .search-bar{display:flex;align-items:center;gap:8px;height:38px;max-width:640px;margin-top:6px;padding:0 10px;border-radius:var(--r-btn);background:var(--band-btn)!important;border:1px solid var(--band-btn-line);color:var(--band-ink)}
.main .page-header .search-bar input,.main .page-header .search-bar .form-control{flex:1;border:0!important;box-shadow:none!important;background:transparent!important;color:var(--band-ink)!important;height:34px;outline:none}
.main .page-header .search-bar input::placeholder{color:var(--band-ink2)!important}
.main .page-header .search-bar i,.main .page-header .search-bar .btn{color:var(--band-ink)!important}
.main .page-header > p,.main .page-header > .description,.main .page-header .text-auto{color:var(--band-ink2)}

/* intestazione delle card legacy: .example > .description > .description-text */
.example > .description,.card > .description{display:flex;align-items:center;gap:10px;padding:12px var(--card-p);border-bottom:1px solid var(--line);background:transparent!important;border-radius:var(--r) var(--r) 0 0}
.example > .description .description-text,.example > .description .description-text h5,.example > .description h5{font-size:14px;font-weight:600;margin:0;color:var(--ink)}
img.avatar{width:40px;height:40px;min-width:40px;border-radius:50%;object-fit:cover;vertical-align:middle}
img.avatar.avatarsquare{width:150px;height:150px;border-radius:var(--r-sm)}
.profile-image img.avatar,.avatar.huge{width:120px;height:120px}
.main .page-header > [class*="col-"]:has(> .doc-title){flex:1 1 auto;max-width:none;width:auto;padding:0}
.custom-control-description i[class*="icon-"],.form-check-description i[class*="icon-"]{font-size:18px;width:18px;height:18px;line-height:18px;margin-right:4px;vertical-align:-4px;display:inline-block}
.main .page-header .breadcrumb{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;color:var(--band-ink)}
.main .page-header .breadcrumb a{color:var(--band-ink)}
.main .page-header .breadcrumb .band-title{font-size:26px}
