/* =====================================================================
   WeHouse — Gestionale · Foglio di stile (rinnovo 2025)
   Direzione "Workspace priorità". Sovrascrive Bootstrap 4.6.
   Carattere: Inter + Roboto Mono. Marchio: bordeaux WeHouse.
   NB: questo file SOSTITUISCE il vecchio bundle Datta Able.
   Le pagine caricano: Bootstrap 4.6 (grid/utility), Font Awesome 6,
   DataTables/selectize/datepicker, e questo style.css per ultimo.
   ===================================================================== */

:root{
  --wh-brand:#7a1620;        /* bordeaux marchio */
  --wh-brand-2:#9c2230;      /* hover/accento più chiaro */
  --wh-brand-deep:#4c0d14;   /* sidebar/topbar scuri */
  --wh-brand-deep2:#360a0f;
  --wh-ink:#211e1d;
  --wh-muted:#6f6a67;
  --wh-faint:#9a948f;
  --wh-line:#e7e3e0;
  --wh-line2:#f0edea;
  --wh-bg:#f2f0ed;
  --wh-card:#ffffff;
  --wh-ok:#1f9d57;  --wh-ok-bg:#e8f4ec;  --wh-ok-tx:#176b3d;
  --wh-warn:#cf7a16;--wh-warn-bg:#fbf0df; --wh-warn-tx:#8f5408;
  --wh-bad:#cf3a44; --wh-bad-bg:#fbe8ea;  --wh-bad-tx:#992730;
  --wh-info:#2f6db0;--wh-info-bg:#e9f0f8; --wh-info-tx:#285a8f;
  --wh-neu:#75706c; --wh-neu-bg:#eeeae7;  --wh-neu-tx:#55504c;
  --wh-sb:248px;
}

/* ---------- reset / base ---------- */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
/* riserva sempre lo spazio della barra di scorrimento: la larghezza non cambia
   e gli elementi centrati (es. logo in alto) non si spostano */
html{scrollbar-gutter:stable}
body{
  background:var(--wh-bg);
  color:var(--wh-ink);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
}
a{color:var(--wh-brand);text-decoration:none}
a:hover{color:var(--wh-brand-2)}
h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.01em;color:var(--wh-ink)}
.loader-bg{display:none !important}            /* preloader Datta non usato */
.text-white{color:#fff !important}
.f-w-300{font-weight:400 !important}
.num,.mono{font-family:'Roboto Mono',monospace}

/* ---------- icone: mappa classi feather -> Font Awesome 6 ---------- */
.feather{
  font-family:'Font Awesome 6 Free';font-weight:900;font-style:normal;
  display:inline-block;line-height:1;font-variant:normal;text-rendering:auto;
}
.feather::before{font-family:'Font Awesome 6 Free';font-weight:900}
.feather.icon-monitor::before{content:"\f3fd"}
.feather.icon-home::before{content:"\f015"}
.feather.icon-users::before{content:"\f0c0"}
.feather.icon-package::before{content:"\f466"}
.feather.icon-book::before{content:"\f56c"}
.feather.icon-settings::before{content:"\f013"}
.feather.icon-mail::before{content:"\f0e0"}
.feather.icon-edit-2::before{content:"\f044"}
.feather.icon-navigation::before{content:"\f1d8"}
.feather.icon-printer::before{content:"\f02f"}
.feather.icon-unlock::before{content:"\f09c"}
.feather.icon-user-plus::before{content:"\f234"}
.feather.icon-user::before{content:"\f007"}
.feather.icon-log-out::before{content:"\f2f5"}
.feather.x-circle::before,.feather.icon-x-circle::before{content:"\f057"}
/* dimensioni / colori d'aiuto del vecchio tema */
.f-30{font-size:20px !important}
.f-20{font-size:16px !important}
.m-r-10{margin-right:8px !important}
.text-c-green{color:var(--wh-ok) !important}
.text-c-blue{color:var(--wh-info) !important}
.text-c-red{color:var(--wh-bad) !important}
.text-c-yellow{color:var(--wh-warn) !important}
.text-c-purple{color:var(--wh-brand) !important}
.text-c-info{color:var(--wh-info) !important}

/* =====================================================================
   SIDEBAR
   ===================================================================== */
.pcoded-navbar{
  position:fixed;top:0;left:0;bottom:0;width:var(--wh-sb);z-index:1030;
  background:linear-gradient(180deg,var(--wh-brand-deep),var(--wh-brand-deep2));
  color:#fff;display:flex;flex-direction:column;overflow:hidden;
}
.pcoded-navbar .navbar-wrapper{display:flex;flex-direction:column;height:100%}
.pcoded-navbar .navbar-brand{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:22px 18px 16px;position:relative;flex-shrink:0;
}
.pcoded-navbar .b-brand{display:block;line-height:0}
.pcoded-navbar .wh-logo{width:126px;height:auto;display:block}
.pcoded-navbar .wh-brand-cap{
  font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
.pcoded-navbar .mobile-menu{display:none}
.pcoded-navbar .navbar-content{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:14px;display:flex;flex-direction:column}
/* il gruppo "Sistema" (Configurazione) va spinto in fondo, staccato dalle altre voci */
.wh-nav-bottom{margin-top:auto}
.pcoded-navbar .navbar-content::-webkit-scrollbar{width:6px}
.pcoded-navbar .navbar-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:3px}
.wh-nav-sec{
  font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.36);padding:16px 22px 7px;
}
.pcoded-navbar .pcoded-inner-navbar{list-style:none;margin:0;padding:0 12px;display:flex;flex-direction:column;gap:1px}
.pcoded-navbar .nav-item{margin:0}
.pcoded-navbar .nav-link{
  position:relative;display:flex;align-items:center;gap:12px;
  padding:9px 13px;border-radius:7px;color:rgba(255,255,255,.74);
  font-size:13.5px;font-weight:500;
}
.pcoded-navbar .nav-link .pcoded-micon i{width:18px;text-align:center;font-size:14px;opacity:.88}
.pcoded-navbar .nav-link:hover{background:rgba(255,255,255,.07);color:#fff}
.pcoded-navbar .nav-link.active{background:rgba(255,255,255,.13);color:#fff;font-weight:600}
.pcoded-navbar .nav-link.active::before{
  content:"";position:absolute;left:-12px;top:7px;bottom:7px;width:3px;
  border-radius:0 3px 3px 0;background:#e8a0a8;
}
.wh-sb-foot{
  margin-top:auto;flex-shrink:0;padding:14px 18px;
  border-top:1px solid rgba(255,255,255,.09);
  display:flex;align-items:center;gap:10px;font-size:12.5px;color:rgba(255,255,255,.62);
}
.wh-sb-foot .av{
  width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.14);
  display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:12px;flex:none;
}
.wh-sb-foot small{font-size:11px;opacity:.7}

/* =====================================================================
   TOPBAR
   ===================================================================== */
.wh-topbar{
  position:fixed;top:0;left:var(--wh-sb);right:0;height:58px;z-index:1020;
  background:#fff;border-bottom:1px solid var(--wh-line);
  display:flex;align-items:center;gap:12px;padding:0 22px;
}
.wh-burger{
  width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  color:var(--wh-muted);border:1px solid transparent;background:transparent;cursor:pointer;font-size:16px;
}
.wh-burger:hover{background:#f3f1ef;color:var(--wh-brand)}
.wh-top-title{font-size:15px;font-weight:700;color:var(--wh-ink)}
.wh-top-spacer{flex:1}
.wh-top-ic{
  width:36px;height:36px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  color:var(--wh-muted);border:1px solid var(--wh-line);background:#fff;font-size:14px;
}
.wh-top-ic:hover{border-color:#cfc9c5;color:var(--wh-brand)}
/* Logo centrato nella barra superiore, ricolorato in bordeaux (maschera CSS) */
.wh-top-logo{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:220px;height:46px;display:block;
  background-color:var(--wh-brand);
  -webkit-mask:url(/static/assets/images/logo-white.png) center/contain no-repeat;
  mask:url(/static/assets/images/logo-white.png) center/contain no-repeat;
}
.wh-top-logo:hover{opacity:.85}

/* =====================================================================
   CONTENT WRAPPER
   ===================================================================== */
.pcoded-main-container{margin-left:var(--wh-sb);padding-top:58px;min-height:100vh}
.pcoded-wrapper{max-width:1480px;margin:0 auto;padding:24px 28px 48px}
/* neutralizza il container Bootstrap dentro l'app: la spaziatura la dà il wrapper */
.pcoded-wrapper .container{max-width:none;width:100%;padding-left:0;padding-right:0;margin:0}
.pcoded-content,.pcoded-inner-content,.main-body,.page-wrapper{display:block;width:100%}

/* intestazione di pagina */
.wh-phead{display:flex;align-items:flex-end;gap:14px;margin:0 0 18px;flex-wrap:wrap}
.wh-phead h1,.wh-phead h2,.wh-phead h3{margin:0;font-size:21px;font-weight:800;letter-spacing:-.02em}
.wh-phead p{margin:3px 0 0;font-size:13px;color:var(--wh-muted)}
.wh-phead .spacer{flex:1}
/* i vecchi titoli h3 centrati delle pagine: li riallineo a sinistra, sobri */
.pcoded-wrapper h3.text-center{text-align:left !important;font-size:21px;font-weight:800;margin:0 0 18px}

/* collapse sidebar (toggle topbar) */
body.wh-collapsed .pcoded-navbar{width:74px}
body.wh-collapsed .pcoded-navbar .wh-logo{width:40px}
/* da barra minimizzata il logo non si centra bene: lo nascondiamo */
body.wh-collapsed .pcoded-navbar .navbar-brand{display:none}
body.wh-collapsed .pcoded-navbar .navbar-content{padding-top:14px}
body.wh-collapsed .pcoded-navbar .wh-brand-cap,
body.wh-collapsed .wh-nav-sec,
body.wh-collapsed .pcoded-navbar .pcoded-mtext,
body.wh-collapsed .wh-sb-foot > div:not(.av){display:none}
body.wh-collapsed .pcoded-navbar .nav-link{justify-content:center;padding:10px}
body.wh-collapsed .wh-sb-foot{justify-content:center}
body.wh-collapsed .pcoded-main-container{margin-left:74px}
body.wh-collapsed .wh-topbar{left:74px}

/* =====================================================================
   CARD
   ===================================================================== */
.card{
  background:var(--wh-card);border:1px solid var(--wh-line);border-radius:9px;
  box-shadow:0 1px 2px rgba(40,10,15,.03);margin-bottom:20px;overflow:hidden;
}
.card-header{
  display:flex;align-items:center;gap:10px;padding:13px 16px;
  background:#fff;border-bottom:1px solid var(--wh-line2);border-radius:9px 9px 0 0;
}
.card-header h3,.card-header h4,.card-header h5{margin:0;font-size:14px;font-weight:700}
.card-header .card-text{margin:0}
.card-block,.card-body{padding:16px}
.card-title{font-size:15px;font-weight:700;margin:0 0 10px}
.card-text{color:var(--wh-muted);font-size:13px}

/* header colorati del vecchio tema -> barre tinte sobrie con testo bianco */
.card-header.bg-warning{background:linear-gradient(90deg,var(--wh-brand),var(--wh-brand-2));border:0}
.card-header.bg-success{background:#1f7a48;border:0}
.card-header.bg-danger {background:#b23036;border:0}
.card-header.bg-info   {background:#2f6db0;border:0}
.card-header.bg-dark   {background:#3a322f;border:0}
.card-header.bg-warning *,.card-header.bg-success *,.card-header.bg-danger *,
.card-header.bg-info *,.card-header.bg-dark *{color:#fff !important}
.card.border-warning{border-color:#e7c9cc}

/* KPI card del vecchio tema */
.daily-sales{border:1px solid var(--wh-line)}
.daily-sales h6{font-size:12.5px;color:var(--wh-muted);font-weight:600;margin-bottom:10px}
.daily-sales h3{font-size:26px;font-weight:800}

/* =====================================================================
   BOTTONI
   ===================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font-family:inherit;font-size:13px;font-weight:600;line-height:1;
  padding:9px 15px;border-radius:7px;border:1px solid transparent;cursor:pointer;
  text-decoration:none;transition:background .12s,border-color .12s,color .12s;
}
.btn:focus{outline:0;box-shadow:0 0 0 3px rgba(122,22,32,.15)}
.btn-lg{padding:11px 20px;font-size:14px}
.btn-sm{padding:6px 11px;font-size:12px;border-radius:6px}
.btn-primary{background:var(--wh-brand);border-color:var(--wh-brand);color:#fff}
.btn-primary:hover{background:var(--wh-brand-2);border-color:var(--wh-brand-2);color:#fff}
.btn-success{background:#1f8a4d;border-color:#1f8a4d;color:#fff}
.btn-success:hover{background:#1a743f;color:#fff}
.btn-danger{background:#fff;border-color:#eccccf;color:var(--wh-bad-tx)}
.btn-danger:hover{background:var(--wh-bad-bg);color:var(--wh-bad-tx)}
.btn-info{background:#fff;border-color:var(--wh-line);color:var(--wh-info-tx)}
.btn-info:hover{background:var(--wh-info-bg)}
.btn-outline-info{background:#fff;border-color:var(--wh-line);color:var(--wh-ink)}
.btn-outline-info:hover{border-color:#cfc9c5;background:#faf8f6}
.btn-secondary{background:#fff;border-color:var(--wh-line);color:var(--wh-ink)}
.btn-secondary:hover{border-color:#cfc9c5}
/* btn-warning = "pill ID" (usato dai link ID, anche generati via JS) */
.btn-warning{
  background:#f6edee;border-color:#efdcde;color:var(--wh-brand);
  font-family:'Roboto Mono',monospace;font-weight:600;font-size:12px;
  padding:4px 9px;border-radius:6px;white-space:nowrap;
}
.btn-warning:hover{background:#f0e0e2;color:var(--wh-brand)}
.shadow-2{box-shadow:none}

/* =====================================================================
   TABELLE
   ===================================================================== */
.table{width:100%;margin:0;border-collapse:collapse;color:var(--wh-ink);font-size:13px}
.table thead th{
  text-align:left;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--wh-faint);padding:8px 9px;border:0;border-bottom:1px solid var(--wh-line);white-space:normal;
}
.table td,.table th{padding:8px 9px;border-top:0;border-bottom:1px solid var(--wh-line2);vertical-align:middle;
  word-break:break-word;overflow-wrap:anywhere}
/* Desktop: le tabelle si adattano alla larghezza, niente scroll orizzontale */
.table-responsive{overflow-x:visible}
.table tbody tr:last-child td{border-bottom:0}
.table-striped tbody tr:nth-of-type(odd){background:#faf8f7}
.table tbody tr:hover{background:#f6f2f1}
.table tr.unread{font-weight:500}
.table-responsive{border-radius:9px}

/* =====================================================================
   BADGE — soft con pallino
   ===================================================================== */
.badge{
  display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 9px;
  border-radius:999px;font-size:12px;font-weight:600;line-height:1.4;white-space:nowrap;
}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.badge-success,.badge.bg-success{background:var(--wh-ok-bg);color:var(--wh-ok-tx)}
.badge-warning,.badge.bg-warning{background:var(--wh-warn-bg);color:var(--wh-warn-tx)}
.badge-danger,.badge.bg-danger{background:var(--wh-bad-bg);color:var(--wh-bad-tx)}
.badge-info,.badge.bg-info{background:var(--wh-info-bg);color:var(--wh-info-tx)}
.badge-primary,.badge.bg-primary{background:#f6edee;color:var(--wh-brand)}
.badge-secondary,.badge.bg-secondary,.badge-light{background:var(--wh-neu-bg);color:var(--wh-neu-tx)}
.badge-success::before{background:var(--wh-ok)}
.badge-warning::before{background:var(--wh-warn)}
.badge-danger::before{background:var(--wh-bad)}
.badge-info::before{background:var(--wh-info)}
.badge-primary::before{background:var(--wh-brand)}
.badge-secondary::before,.badge-light::before{background:var(--wh-neu)}
/* pill di stato (ATTIVO/CONCLUSO/GESTITO) cliccabile */
.wh-stato{cursor:pointer}

/* =====================================================================
   FORM
   ===================================================================== */
.form-group{margin-bottom:0;display:flex;flex-direction:column;gap:6px}
.form-group label,label{font-size:12.5px;font-weight:600;color:#4a4542;margin:0}
.form-control{
  font-family:inherit;font-size:13.5px;color:var(--wh-ink);background:#fff;
  border:1px solid var(--wh-line);border-radius:7px;padding:9px 11px;width:100%;height:auto;line-height:1.4;
}
.form-control:focus{outline:0;border-color:var(--wh-brand);box-shadow:0 0 0 3px rgba(122,22,32,.1)}
.form-control[readonly]{background:#f6f4f2;color:var(--wh-muted)}
select.form-control{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236f6a67' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:30px}
textarea.form-control{min-height:90px;line-height:1.6}
input[type="checkbox"].checkbox,input[type="checkbox"]{width:16px;height:16px;accent-color:var(--wh-brand);vertical-align:-2px;margin-right:4px}
input[type="file"]{font-size:13px}
.form-check-label{font-weight:500;color:var(--wh-ink);margin-right:6px}

/* spinner di caricamento */
@keyframes wh-spin{to{transform:rotate(360deg)}}
.wh-spinner{width:42px;height:42px;border-radius:50%;border:4px solid #efdcde;border-top-color:var(--wh-brand);animation:wh-spin .8s linear infinite;margin:0 auto 12px}

/* radio/checkbox in linea */
.wh-radio-row{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.wh-radio{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border:1px solid var(--wh-line);border-radius:8px;background:#fff;font-size:13px;font-weight:500;cursor:pointer}
.wh-radio:hover{border-color:#cfc9c5}
.wh-radio label{margin:0;font-weight:500;cursor:pointer}
.wh-days{display:flex;flex-wrap:wrap;gap:8px}
.wh-days .wh-radio{padding:7px 12px}

/* griglia form a due colonne (wrapper opzionale) */
.wh-fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
.wh-fgrid .form-group.full,.wh-fgrid .full{grid-column:1/-1}
.wh-formwrap{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}
.wh-formwrap .wh-main{min-width:0}
.wh-formwrap .wh-rail{display:flex;flex-direction:column;gap:0}
.wh-meta .m{display:flex;justify-content:space-between;gap:10px;padding:10px 16px;border-bottom:1px solid var(--wh-line2);font-size:13px}
.wh-meta .m:last-child{border-bottom:0}
.wh-meta .m .k{color:var(--wh-muted)}
.wh-meta .m .v{font-weight:600;font-family:'Roboto Mono',monospace;font-size:12.5px}
.wh-footer-bar{display:flex;align-items:center;gap:10px;padding:14px 16px;background:#fff;border:1px solid var(--wh-line);border-radius:9px;margin-top:4px}
.wh-dz{display:flex;align-items:center;gap:10px;border:1.5px dashed #d8d2cd;border-radius:8px;padding:13px;color:var(--wh-muted);font-size:13px;background:#faf8f6}

/* =====================================================================
   TAB / segmented (anni, periodi)
   ===================================================================== */
.nav-tabs{border-bottom:0;display:inline-flex;gap:2px;background:#f0edea;border-radius:8px;padding:3px;flex-wrap:wrap}
.nav-tabs .nav-item{margin:0}
.nav-tabs .nav-link,.nav-tabs .btn.nav-link{
  border:0;background:transparent;font-family:inherit;font-size:12.5px;font-weight:600;
  color:var(--wh-muted);padding:6px 13px;border-radius:6px;cursor:pointer;
}
.nav-tabs .nav-link:hover{color:var(--wh-brand)}
.nav-tabs .nav-link.active,.nav-tabs .btn.nav-link.active{
  background:#fff;color:var(--wh-brand);box-shadow:0 1px 2px rgba(0,0,0,.08);
}

/* =====================================================================
   DASHBOARD (workspace priorità)
   ===================================================================== */
.wh-dash{display:grid;grid-template-columns:1fr 336px;gap:20px;align-items:start}
.wh-dash .wh-col{grid-column:1;min-width:0}
.wh-dash .wh-rail{grid-column:2;display:flex;flex-direction:column;gap:20px}
.wh-hero{border-radius:10px;overflow:hidden;border:1px solid #e7c9cc;
  box-shadow:0 12px 32px -20px rgba(122,22,32,.55);margin-bottom:20px;background:#fff}
.wh-hero-h{background:linear-gradient(110deg,var(--wh-brand-deep),var(--wh-brand));color:#fff;
  padding:16px 20px;display:flex;align-items:center;gap:14px}
.wh-hero-h .ic{width:42px;height:42px;border-radius:10px;background:rgba(255,255,255,.16);
  display:flex;align-items:center;justify-content:center;font-size:18px;flex:none}
.wh-hero-h h3{margin:0;font-size:16px;color:#fff}
.wh-hero-h p{margin:3px 0 0;font-size:12.5px;color:rgba(255,255,255,.84)}
.wh-hero-h .cnt{margin-left:auto;font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1;color:#fff}
.wh-tipo-gruppo{border-top:1px solid var(--wh-line2)}
.wh-tipo-gruppo:first-of-type{border-top:0}
.wh-tipo-h{display:flex;align-items:center;gap:12px;padding:12px 20px;background:#faf6f6}
.wh-tipo-h h4{margin:0;font-size:14px;font-weight:700;color:var(--wh-brand);display:flex;align-items:center;gap:8px}
.wh-tipo-h h4 .badge{font-size:11px}
.wh-tipo-h .btn{margin-left:auto}
.wh-tipo-gruppo .table{margin-bottom:0}
.wh-kpi{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--wh-line2)}
.wh-kpi:last-child{border-bottom:0}
.wh-kpi .ic{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  background:#f6edee;color:var(--wh-brand);font-size:15px;flex:none}
.wh-kpi .lbl{font-size:12.5px;color:var(--wh-muted);font-weight:500}
.wh-kpi .n{margin-left:auto;font-size:21px;font-weight:800;letter-spacing:-.01em}
.wh-cta{background:linear-gradient(160deg,var(--wh-brand),var(--wh-brand-deep));color:#fff;border:0;padding:18px}
.wh-cta h3,.wh-cta h5{margin:0 0 3px;font-size:15px;color:#fff;font-weight:700}
.wh-cta p{margin:0 0 13px;font-size:12.5px;color:rgba(255,255,255,.84)}
.wh-cta .btn{background:#fff;color:var(--wh-brand);width:100%}
.wh-cta .btn:hover{background:#f4ece8}
.wh-mini{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;border-bottom:1px solid var(--wh-line2);font-size:13px}
.wh-mini:last-child{border-bottom:0}
.wh-mini .y{font-family:'Roboto Mono',monospace;color:var(--wh-muted)}
.wh-mini .v{font-weight:700}
.wh-idbtn{display:inline-block;font-family:'Roboto Mono',monospace;font-size:12px;font-weight:600;
  color:var(--wh-brand);background:#f6edee;border:1px solid #efdcde;border-radius:6px;padding:3px 8px}
.wh-sec-card .card-header i{color:var(--wh-brand)}

/* Dashboard a tutta larghezza: KPI in alto + colonna unica + riga finale 2 pannelli */
.wh-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.wh-kpis .wh-kpi{border-bottom:0}
.wh-stack{display:flex;flex-direction:column;gap:20px}
.wh-stack>.wh-hero{margin-bottom:0}
.wh-cols2{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.table td.num,.table .num{white-space:nowrap}
/* Stato (Elenco notifiche): nome intero, ma a finestra stretta solo l'iniziale A/C/G */
.wh-stato{white-space:nowrap}
.wh-stato-ab{display:none}
@media(max-width:1200px){
  .wh-stato-full{display:none}
  .wh-stato-ab{display:inline}
}
.wh-vedi-tutte{margin-left:auto;font-weight:600;font-size:13px;color:var(--wh-brand);text-decoration:none}
.wh-vedi-tutte:hover{color:var(--wh-brand-deep)}
/* Anteprima nota su una riga: non sfasa la tabella; testo completo nel tooltip al passaggio del mouse */
.wh-note-prev{display:inline-block;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;cursor:help}
/* Email di incarico collegata */
.wh-email-box{border:1px solid var(--wh-line);border-radius:8px;padding:12px 14px;background:#faf8f7;margin-bottom:12px}
.wh-email-box .ei-ogg{font-weight:600}
.wh-email-box .ei-meta{font-size:12.5px;color:var(--wh-muted);margin:2px 0 10px}
.wh-email-box .ei-actions{display:flex;gap:8px;flex-wrap:wrap}
.ei-lista{max-height:52vh;overflow:auto}
.ei-item{padding:10px 12px;border:1px solid var(--wh-line);border-radius:8px;margin-bottom:8px;cursor:pointer}
.ei-item:hover{border-color:var(--wh-brand);background:#faf6f6}
.ei-item-ogg{font-weight:600;font-size:14px}
.ei-item-meta{font-size:12.5px;color:var(--wh-muted);margin-top:2px}
/* Lista allegati notifica */
.wh-allegati{list-style:none;margin:0 0 10px;padding:0}
.wh-allegati li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 2px;border-bottom:1px solid var(--wh-line2)}
.wh-allegato-del{color:var(--wh-bad)}
/* Menu a tendina compatto dei tre puntini (Invia/Stampa) */
.wh-azioni-menu{position:fixed;z-index:3000;background:#fff;border:1px solid var(--wh-line);border-radius:8px;
  box-shadow:0 10px 28px -10px rgba(0,0,0,.3);padding:6px;min-width:160px}
.wh-azioni-menu a{display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:6px;color:var(--wh-ink);font-size:13.5px;text-decoration:none}
.wh-azioni-menu a:hover{background:#f3f1ef;color:var(--wh-brand)}
/* Toast (messaggi flash): piccoli popup in alto a destra, si chiudono da soli */
.wh-toasts{position:fixed;top:14px;right:14px;z-index:4000;display:flex;flex-direction:column;gap:10px;max-width:360px}
.wh-toast{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid var(--wh-line);
  border-left:4px solid var(--wh-muted);border-radius:10px;box-shadow:0 12px 30px -12px rgba(0,0,0,.3);
  padding:12px 14px;font-size:13.5px;line-height:1.4;color:var(--wh-ink);
  opacity:0;transform:translateX(20px);transition:opacity .25s,transform .25s}
.wh-toast.show{opacity:1;transform:none}
.wh-toast i{font-size:16px;margin-top:1px;flex:none}
.wh-toast-success{border-left-color:var(--wh-ok)} .wh-toast-success i{color:var(--wh-ok)}
.wh-toast-error{border-left-color:var(--wh-bad)} .wh-toast-error i{color:var(--wh-bad)}
.wh-toast-warning{border-left-color:var(--wh-warn)} .wh-toast-warning i{color:var(--wh-warn)}
.wh-toast-info{border-left-color:var(--wh-info)} .wh-toast-info i{color:var(--wh-info)}
/* Elenco notifiche: ricerca a sinistra, annualità in linea a destra */
.wh-listtop{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.wh-listtop .wh-anno-lbl{margin-left:auto;margin-bottom:0;font-size:13px;color:var(--wh-muted);font-weight:600}
.wh-anno{border:1px solid var(--wh-line);border-radius:7px;padding:8px 12px;font-size:13px;
  background:#fff;color:var(--wh-ink);font-family:inherit;cursor:pointer}
.wh-anno:focus{outline:0;border-color:var(--wh-brand);box-shadow:0 0 0 3px rgba(122,22,32,.1)}
.wh-search{border:1px solid var(--wh-line);border-radius:7px;padding:8px 12px;font-size:13px;
  min-width:240px;background:#fff;color:var(--wh-ink);font-family:inherit}
.wh-search:focus{outline:0;border-color:var(--wh-brand);box-shadow:0 0 0 3px rgba(122,22,32,.1)}
.wh-search::placeholder{color:var(--wh-faint)}
/* filtri per colonna nell'elenco notifiche */
.wh-filtri th{padding:4px 6px 8px;background:#fff}
.wh-colf{width:100%;font-size:12px;padding:4px 7px;border:1px solid var(--wh-line);border-radius:6px;
  background:#fff;color:var(--wh-ink);font-family:inherit;font-weight:400}
.wh-colf:focus{outline:0;border-color:var(--wh-brand);box-shadow:0 0 0 2px rgba(122,22,32,.12)}
.wh-colf::placeholder{color:var(--wh-faint)}
/* righe di elenco interamente cliccabili */
tr.wh-row-link{cursor:pointer}
tr.wh-row-link:hover>td{background:#f3ece9}
@media(max-width:1200px){.wh-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.wh-kpis{grid-template-columns:1fr}.wh-cols2{grid-template-columns:1fr}}

/* azioni in tabella (icone) */
.table a .feather,.wh-act{color:var(--wh-muted)}
.table a:hover .feather{color:var(--wh-brand)}

/* =====================================================================
   DATATABLES — controlli
   ===================================================================== */
.dataTables_wrapper{padding:0}
/* La tabella riempie sempre il contenitore (niente spazio bianco a destra
   dopo aver nascosto delle colonne) */
table.dataTable{width:100% !important}
.dataTables_wrapper .dataTables_filter{float:none;text-align:left;margin:0 0 12px}
.dataTables_wrapper .dataTables_filter label{display:flex;align-items:center;gap:8px;font-size:0;color:var(--wh-muted)}
.dataTables_wrapper .dataTables_filter input{
  margin:0;font-size:13px;border:1px solid var(--wh-line);border-radius:7px;padding:8px 11px;min-width:260px;background:#fff;
}
.dataTables_wrapper .dataTables_filter input:focus{outline:0;border-color:var(--wh-brand);box-shadow:0 0 0 3px rgba(122,22,32,.1)}
.dataTables_wrapper .dataTables_length{display:none}  /* nasconde "Show 10 entries" (freccia sovrapposta) */
.dataTables_wrapper .dataTables_length select{border:1px solid var(--wh-line);border-radius:6px;padding:5px 8px;margin:0 6px}
.dataTables_wrapper .dataTables_info{font-size:12.5px;color:var(--wh-muted);padding-top:14px}
.dataTables_wrapper .dataTables_paginate{padding-top:10px}
.dataTables_wrapper .dataTables_paginate .pagination{margin:0}
/* il <li> e' solo contenitore: nessuna cornice (evita il doppio bordo) */
.dataTables_wrapper .dataTables_paginate .paginate_button{
  border:0 !important;background:transparent !important;padding:0 !important;margin:0 3px !important;
}
/* unica cornice arrotondata sul bottone vero (.page-link) */
.dataTables_wrapper .dataTables_paginate .page-link{
  border:1px solid var(--wh-line) !important;border-radius:6px !important;background:#fff !important;
  color:var(--wh-ink) !important;font-size:12.5px;padding:6px 11px !important;margin:0 !important;
}
.dataTables_wrapper .dataTables_paginate .page-item.active .page-link{
  background:var(--wh-brand) !important;border-color:var(--wh-brand) !important;color:#fff !important;
}
.dataTables_wrapper .dataTables_paginate .page-link:hover{
  background:#f3f1ef !important;color:var(--wh-brand) !important;border-color:#cfc9c5 !important;
}
.dataTables_wrapper .dataTables_paginate .page-link:focus{box-shadow:none !important;outline:0}
.dataTables_wrapper .dataTables_paginate .page-item.disabled .page-link{opacity:.5}
table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after{opacity:.4;font-size:11px}

/* =====================================================================
   SELECTIZE
   ===================================================================== */
.selectize-input{
  border:1px solid var(--wh-line) !important;border-radius:7px !important;
  padding:8px 11px !important;box-shadow:none !important;font-size:13.5px;
}
.selectize-input.focus{border-color:var(--wh-brand) !important;box-shadow:0 0 0 3px rgba(122,22,32,.1) !important}
.selectize-dropdown{border:1px solid var(--wh-line);border-radius:7px;font-size:13.5px;box-shadow:0 8px 24px -12px rgba(0,0,0,.25)}
.selectize-dropdown .active{background:var(--wh-brand-bg,#f6edee);color:var(--wh-brand)}

/* =====================================================================
   DATEPICKER
   ===================================================================== */
.datepicker{font-family:inherit;border-radius:9px;border:1px solid var(--wh-line);padding:8px;box-shadow:0 8px 24px -12px rgba(0,0,0,.25)}
.datepicker table tr td.active.active,.datepicker table tr td.today{
  background:var(--wh-brand) !important;border-color:var(--wh-brand) !important;color:#fff !important;
}
.datepicker table tr td:hover{background:#f3f1ef}

/* =====================================================================
   CKEDITOR
   ===================================================================== */
.cke.cke_chrome{border:1px solid var(--wh-line) !important;border-radius:8px !important;overflow:hidden;box-shadow:none !important}
.cke_top{background:#faf8f6 !important;border-bottom:1px solid var(--wh-line2) !important}
.cke_bottom{background:#faf8f6 !important;border-top:1px solid var(--wh-line2) !important}

/* =====================================================================
   AUTH (login / register / change password / errori)
   ===================================================================== */
.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(1200px 600px at 80% -10%,#651017,var(--wh-brand-deep2)) ,var(--wh-brand-deep2);
  padding:24px;position:relative;overflow:hidden}
.auth-content{position:relative;z-index:2;width:100%;max-width:420px}
.auth-bg,.auth-bg .r{display:none}                 /* niente blob animati del vecchio tema */
.auth-wrapper .card{border:0;border-radius:14px;box-shadow:0 30px 70px -25px rgba(0,0,0,.55);margin:0}
.auth-wrapper .card-body{padding:40px 36px}
.auth-wrapper .auth-icon,.auth-wrapper .feather.auth-icon{
  display:inline-flex;align-items:center;justify-content:center;width:62px;height:62px;border-radius:16px;
  background:#f6edee;color:var(--wh-brand);font-size:24px;margin:0 auto;
}
.auth-wrapper h3{font-size:22px;font-weight:800;letter-spacing:-.02em}
.auth-wrapper .text-muted{color:var(--wh-muted) !important;font-size:13.5px}
.auth-wrapper .input-group{display:block;margin-bottom:14px}
.auth-wrapper .input-group .form-control{width:100%}
.auth-wrapper .btn-primary{width:100%;padding:11px;font-size:14px}
.wh-auth-brand{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:8px}
.wh-auth-brand img{width:120px;height:auto}

/* =====================================================================
   varie utility
   ===================================================================== */
.text-center{text-align:center}
.float-left{float:left}.float-right{float:right}
.pt-2{padding-top:8px}.pt-3{padding-top:12px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}
.mt-4{margin-top:16px}.mt-5{margin-top:0}   /* mt-5 dei .container azzerato: la spaziatura la dà il wrapper */
.mb-0{margin-bottom:0}.mb-4{margin-bottom:16px}.pb-3{padding-bottom:12px}.pb-5{padding-bottom:24px}
.wh-clear{clear:both}

/* responsive: sotto i 1100px comprimi la sidebar e impila i rail */
@media (max-width:1180px){
  .wh-dash{grid-template-columns:1fr}.wh-dash .wh-rail{grid-column:1}
  .wh-formwrap{grid-template-columns:1fr}.wh-formwrap .wh-rail{grid-column:1}
}
@media (max-width:920px){
  :root{--wh-sb:74px}
  .pcoded-navbar .wh-logo{width:40px}
  .pcoded-navbar .wh-brand-cap,.wh-nav-sec,.pcoded-navbar .pcoded-mtext,.wh-sb-foot div{display:none}
  .pcoded-navbar .nav-link{justify-content:center;padding:10px}
  .wh-fgrid{grid-template-columns:1fr}
}
