/*
Template Name: Velzon - Admin & Dashboard Template
Author: Themesbrand
Website: https://themesbrand.com/
Contact: support@themesbrand.com
File: Custom Css File
*/
/* CasaSuite: override colori primari del tema */
:root,
[data-bs-theme="light"] {
  --vz-blue: var(--cs-primary);
  --vz-cyan: var(--cs-primary);
  --vz-primary: var(--cs-primary);
  --vz-primary-rgb: var(--cs-primary-rgb);
  --vz-primary-text-emphasis: var(--cs-primary);
  --vz-info-text-emphasis: var(--cs-primary);
  --vz-secondary: var(--cs-secondary);
  --vz-secondary-rgb: var(--cs-secondary-rgb);
  --vz-secondary-text-emphasis: var(--cs-secondary);
  --vz-success: var(--cs-success);
  --vz-success-rgb: var(--cs-success-rgb);
  --vz-warning: var(--cs-warning);
  --vz-warning-rgb: var(--cs-warning-rgb);
  --vz-danger: var(--cs-danger);
  --vz-danger-rgb: var(--cs-danger-rgb);
  --vz-info: var(--cs-info);
  --vz-info-rgb: var(--cs-info-rgb);
  /* Testo secondario/muted: allineato al canonico --cs-text-secondary (§3.2, §27)
     Evita il #878a99 del tema (contrasto 3.4:1 su bianco, sotto AA). */
  --vz-secondary-color: var(--cs-text-secondary);
  --vz-secondary-color-rgb: 100, 116, 139;
  /* Menu sidebar (§6, Fase 3): base/hover/attivo mappati sui token canonici.
     La voce attiva usa un solo colore (--cs-primary) su un solo sfondo
     (--cs-primary-soft), identico ai bottoni e ai grafici. */
  --vz-vertical-menu-item-color: var(--cs-text-secondary);
  --vz-vertical-menu-sub-item-color: var(--cs-text-secondary);
  --vz-vertical-menu-item-hover-color: var(--cs-primary);
  --vz-vertical-menu-item-active-color: var(--cs-primary);
  --vz-vertical-menu-sub-item-hover-color: var(--cs-primary);
  --vz-vertical-menu-sub-item-active-color: var(--cs-primary);
  --vz-topnav-item-active-color: var(--cs-primary);

  /* Link e paginazione Bootstrap/DataTables */
  --vz-link-color: var(--cs-primary);
  --vz-link-hover-color: var(--cs-primary);
  --vz-pagination-active-bg: var(--cs-primary);
  --vz-pagination-active-border-color: var(--cs-primary);
}
.page-content{
  background-color: var(--cs-page-bg);
  min-height: calc(100vh - 120px);
}
[data-bs-theme="dark"] .page-content{
  background-color: transparent;
}



/* CasaSuite: override gradiente overlay nella login */
.auth-one-bg .bg-overlay {
  background: -webkit-gradient(linear, left top, right top, from(var(--cs-primary-700)), to(var(--cs-primary)));
  background: linear-gradient(to right, var(--cs-primary-700), var(--cs-primary));
  opacity: 0.9;
}


/* CasaSuite: override gradiente di base per auth-bg-cover */
.auth-bg-cover{
  background: linear-gradient(-45deg, var(--cs-primary), var(--vz-secondary));
}

a,
.navbar-menu .navbar-nav .nav-link[data-bs-toggle=collapse][aria-expanded=true] {
    color: var(--vz-vertical-menu-item-active-color);
}


/* Sidebar: hover/attivo voci principali e sub-item */
.navbar-menu .navbar-nav .nav-link:hover,
.navbar-menu .navbar-nav .nav-link.active,
.navbar-menu .navbar-nav .nav-link:focus {
  color: var(--vz-vertical-menu-item-hover-color);
}
.navbar-menu .navbar-nav .nav-sm .nav-link:hover,
.navbar-menu .navbar-nav .nav-sm .nav-link.active,
.navbar-menu .navbar-nav .nav-sm .nav-link:focus {
  color: var(--vz-vertical-menu-sub-item-hover-color);
}



/* CasaSuite: override Button Animation */
.btn-primary.btn-animation {
    background-color: var(--cs-primary);
    border-color: var(--cs-primary) !important;
}


/* DataTables: paginazione (integrazione Bootstrap 5) */
/* DataTables: paginazione (integrazione Bootstrap 5) - forziamo override anche contro !important del tema */
.dataTables_wrapper .dataTables_paginate .page-item.active .page-link {
  background-color: var(--cs-primary) !important;
  border-color: var(--cs-primary) !important;
  color: var(--cs-text-on-accent);
}
.dataTables_wrapper .dataTables_paginate .page-link {
  color: var(--vz-link-color);
}
.dataTables_wrapper .dataTables_paginate .page-link:hover,
.dataTables_wrapper .dataTables_paginate .page-link:focus {
  color: var(--vz-link-hover-color);
  border-color: var(--cs-primary);
}


/* Paginazione globale Bootstrap (copre altre liste oltre DataTables) */
.pagination .page-item.active .page-link {
  background-color: var(--cs-primary) !important;
  border-color: var(--cs-primary) !important;
  color: var(--cs-text-on-accent);
}
.pagination .page-link {
  color: var(--vz-link-color);
}
.pagination .page-link:hover,
.pagination .page-link:focus {
  color: var(--vz-link-hover-color);
  border-color: var(--cs-primary);
}

.nav-tabs-custom .nav-item .nav-link.active {
    color: var(--cs-primary);
}
.nav-tabs-custom .nav-item .nav-link::after {
    background-color: var(--cs-primary);
}
.profile-wid-bg::before,
.modal-team-cover::before, .profile-offcanvas .team-cover::before, .team-box .team-cover::before {
  background: var(--cs-primary);
    background: -webkit-gradient(linear, left bottom, left top, from(var(--cs-primary)), to(var(--vz-secondary)));
    background: linear-gradient(-45deg, var(--cs-primary), var(--vz-secondary));
}
.profile-foreground { pointer-events: none; }
.form-check-input:checked {
    background-color: var(--cs-primary);
    border-color: var(--cs-primary);
}


/* CasaSuite: badge "Tipo Log" (soft style con bordo e arrotondamento) */
.badge-type {
  --badge-opacity: 0.7;
  border: 1px solid transparent;
  border-radius: var(--cs-radius-pill);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.badge-type i { line-height: 1; font-size: 1em; }

.badge-type-primary {
  background-color: rgba(var(--cs-primary-rgb), var(--badge-opacity)) !important;
  border-color: rgb(var(--cs-primary-rgb)) !important;
}
.badge-type-success {
  background-color: rgba(var(--vz-success-rgb), var(--badge-opacity)) !important;
  border-color: rgb(var(--vz-success-rgb)) !important;
}
.badge-type-info {
  background-color: rgba(var(--vz-info-rgb), var(--badge-opacity)) !important;
  border-color: rgb(var(--vz-info-rgb)) !important;
}
.badge-type-warning {
  background-color: rgba(var(--vz-warning-rgb), var(--badge-opacity)) !important;
  border-color: rgb(var(--vz-warning-rgb)) !important;
}
.badge-type-danger {
  background-color: rgba(var(--vz-danger-rgb), var(--badge-opacity)) !important;
  border-color: rgb(var(--vz-danger-rgb)) !important;
}
.badge-type-secondary {
  background-color: rgba(var(--vz-secondary-rgb), var(--badge-opacity)) !important;
  border-color: rgb(var(--vz-secondary-rgb)) !important;
}




/* CasaSuite: Patch campi form */
.autoComplete_wrapper > input{
  width: 100% !important;
  font-size: var(--cs-font-body) !important;
}
.dropzone .dz-preview.dz-image-preview {
    background: var(--cs-page-bg) !important;
    padding: 0px 10px 10px !important;
    border-radius: var(--cs-radius-md) !important;
    border: 1px solid var(--cs-border) !important; 
    margin: 10px !important;
}
/* CasaSuite: override bordo container dropzone contro CSS vendor */
.dropzone {
  border: 2px dashed var(--vz-border-color) !important;
}





.cs-contatto-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background-color: rgba(255, 255, 255, 0.14);
  padding: 0.42rem 0.9rem;
  border-radius: var(--cs-radius-pill);
  color: var(--cs-text-on-accent) !important;
  border: 1px solid rgba(255, 255, 255, 0.2);
  text-decoration: none;
}
.cs-contatto-link:hover,
.cs-contatto-link:focus {
  background-color: rgba(255, 255, 255, 0.26);
  color: var(--cs-text-on-accent);
}

.seller-owner-badge {
  font-size: var(--cs-font-meta) !important;
}
.seller-col .autoComplete_wrapper > ul > li {
  font-size: var(--cs-font-label) !important;
  line-height: 1.3;
  white-space: normal !important;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.profile-wid-bg, .profile-wid-img { pointer-events: none; }

#page-topbar { z-index: 10050 !important; pointer-events: auto; }
#page-topbar .topnav-hamburger { position: relative; z-index: 10051; pointer-events: auto; }

/* ======= SIDEBAR / TOPBAR ======= */
.app-menu.navbar-menu {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(18px);
  border-right: 1px solid rgba(148, 163, 184, 0.14);
  box-shadow: 10px 0 28px rgba(15, 23, 42, 0.04);
}

.navbar-brand-box {
  border-bottom: 1px solid rgba(148, 163, 184, 0.12);
}

.navbar-menu .navbar-nav {
  gap: 0.18rem;
}

/* Titolo di gruppo (§6, Fase 3): 12px (minimo assoluto del DS), uppercase,
   tracking canonico +0.04em. */
.navbar-menu .navbar-nav .menu-title {
  margin: var(--cs-space-4) 0 var(--cs-space-1);
  padding: 0 var(--cs-space-3);
}

.navbar-menu .navbar-nav .menu-title span {
  display: inline-block;
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cs-text-secondary);
}

/* Voce di navigazione canonica (§6, Fase 3): una sola altezza (40px), un solo
   raggio (--cs-radius-sm), una sola transizione. */
.navbar-menu .navbar-nav .nav-link.menu-link,
.navbar-menu .navbar-nav .nav-sm .nav-link {
  min-height: 2.5rem;
  border-radius: var(--cs-radius-sm);
  transition: background-color 0.18s ease, color 0.18s ease;
}

.navbar-menu .navbar-nav .nav-link.menu-link {
  margin: 0 var(--cs-space-3);
  padding: 0.5rem var(--cs-space-3);
  font-weight: 600;
  color: var(--cs-text-secondary);
}

.navbar-menu .navbar-nav .nav-link.menu-link i {
  width: 1.125rem;
  min-width: 1.125rem;
  font-size: 1.125rem;
  text-align: center;
  margin-right: 0.6rem;
}

/* Un solo hover (neutro + testo primario) e un solo stato attivo
   (--cs-primary su sfondo --cs-primary-soft) in tutta l'admin. */
.navbar-menu .navbar-nav .nav-link.menu-link:hover,
.navbar-menu .navbar-nav .nav-link.menu-link:focus {
  background: var(--cs-surface-muted);
  color: var(--cs-primary);
}

.navbar-menu .navbar-nav .nav-link.menu-link.active {
  background: var(--cs-primary-soft);
  color: var(--cs-primary);
  box-shadow: none;
}

/* Il gruppo aperto segnala solo il contesto (testo primario): nessun secondo
   livello di sfondo. */
.navbar-menu .navbar-nav .nav-link.menu-link[aria-expanded="true"] {
  background: transparent;
  color: var(--cs-primary);
  box-shadow: none;
}

.navbar-menu .navbar-nav .menu-dropdown {
  padding-top: 0.3rem;
  padding-bottom: 0.35rem;
}

.navbar-menu .navbar-nav .nav-sm {
  position: relative;
  margin: 0 var(--cs-space-3) var(--cs-space-1);
  padding: var(--cs-space-1) var(--cs-space-1) var(--cs-space-1) var(--cs-space-3);
  border-radius: var(--cs-radius-sm);
  background: var(--cs-surface-soft);
}

.navbar-menu .navbar-nav .nav-sm::before {
  content: "";
  position: absolute;
  top: 0.7rem;
  bottom: 0.7rem;
  left: var(--cs-space-4);
  width: 1px;
  background: var(--cs-border);
}

.navbar-menu .navbar-nav .nav-sm .nav-link {
  position: relative;
  margin: 0 0 0 var(--cs-space-2);
  padding: 0.5rem var(--cs-space-2) 0.5rem var(--cs-space-4) !important;
  font-size: var(--cs-font-body);
  color: var(--cs-text-secondary);
  box-shadow: none;
}

.navbar-menu .navbar-nav .nav-sm .nav-link::before {
  content: none !important;
}

.navbar-menu .navbar-nav .nav-sm .nav-link::after {
  content: "";
  position: absolute;
  top: 50%;
  left: -0.15rem;
  width: 0.38rem;
  height: 0.38rem;
  border-radius: var(--cs-radius-pill);
  background: var(--cs-text-muted);
  transform: translateY(-50%);
  transition: background-color 0.18s ease;
}

.navbar-menu .navbar-nav .nav-sm .nav-link:hover,
.navbar-menu .navbar-nav .nav-sm .nav-link:focus {
  background: var(--cs-surface-muted);
  color: var(--cs-primary);
}

.navbar-menu .navbar-nav .nav-sm .nav-link.active {
  background: var(--cs-primary-soft);
  color: var(--cs-primary);
}

.navbar-menu .navbar-nav .nav-sm .nav-link.active::after,
.navbar-menu .navbar-nav .nav-sm .nav-link:hover::after,
.navbar-menu .navbar-nav .nav-sm .nav-link:focus::after {
  background: var(--cs-primary);
}

.navbar-menu .navbar-nav .nav-link.menu-link.sidebar-coming-soon,
.navbar-menu .navbar-nav .nav-link.menu-link.sidebar-coming-soon:hover,
.navbar-menu .navbar-nav .nav-link.menu-link.sidebar-coming-soon:focus,
.navbar-menu .navbar-nav .nav-link.menu-link.sidebar-coming-soon[aria-expanded="true"] {
  color: var(--cs-text-secondary) !important;
  background: rgba(var(--cs-neutral-rgb), 0.08) !important;
  box-shadow: none !important;
  transform: none !important;
}

.navbar-menu .navbar-nav .nav-link.menu-link.sidebar-coming-soon i,
.navbar-menu .navbar-nav .nav-link.menu-link.sidebar-coming-soon span {
  color: inherit !important;
}

.navbar-menu .navbar-nav .sidebar-coming-soon-submenu {
  background: rgba(248, 250, 252, 0.72);
}

.navbar-menu .navbar-nav .nav-sm .nav-link.sidebar-coming-soon-link,
.navbar-menu .navbar-nav .nav-sm .nav-link.sidebar-coming-soon-link:hover,
.navbar-menu .navbar-nav .nav-sm .nav-link.sidebar-coming-soon-link:focus,
.navbar-menu .navbar-nav .nav-sm .nav-link.sidebar-coming-soon-link.active {
  color: var(--cs-text-secondary) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.navbar-menu .navbar-nav .nav-sm .nav-link.sidebar-coming-soon-link::after,
.navbar-menu .navbar-nav .nav-sm .nav-link.sidebar-coming-soon-link:hover::after,
.navbar-menu .navbar-nav .nav-sm .nav-link.sidebar-coming-soon-link:focus::after,
.navbar-menu .navbar-nav .nav-sm .nav-link.sidebar-coming-soon-link.active::after {
  background: rgba(148, 163, 184, 0.55) !important;
  transform: translateY(-50%) !important;
}

#page-topbar {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(148, 163, 184, 0.14);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
}

#page-topbar .navbar-header {
  height: 70px;
}

#page-topbar .topnav-hamburger,
#page-topbar .topbar-utility-btn,
#page-topbar .topbar-user-trigger {
  border-radius: var(--cs-radius-pill);
}

#page-topbar .topnav-hamburger,
#page-topbar .topbar-utility-btn {
  background: var(--cs-surface-soft);
  border: 1px solid var(--cs-border-soft);
  color: var(--cs-neutral-600);
}

#page-topbar .topnav-hamburger:hover,
#page-topbar .topnav-hamburger:focus,
#page-topbar .topbar-utility-btn:hover,
#page-topbar .topbar-utility-btn:focus {
  background: rgba(239, 246, 255, 0.96);
  border-color: rgba(var(--cs-primary-rgb), 0.2);
  color: var(--cs-primary);
}

#page-topbar .topbar-user-trigger {
  padding: 0.4rem 0.55rem 0.4rem 0.45rem;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(148, 163, 184, 0.14);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
}

#page-topbar .topbar-user-trigger:hover,
#page-topbar .topbar-user-trigger:focus {
  background: var(--cs-surface);
  border-color: rgba(var(--cs-primary-rgb), 0.18);
}

#page-topbar .header-profile-user {
  border: 2px solid rgba(var(--cs-primary-rgb), 0.16);
}

#page-topbar .user-name-text {
  color: var(--cs-text);
}

#page-topbar .user-name-sub-text {
  color: var(--cs-text-secondary);
}

#page-topbar .topbar-user-menu {
  margin-top: 0.65rem;
  padding: 0.45rem;
  border: 1px solid var(--cs-border);
  border-radius: var(--cs-radius-lg);
  box-shadow: var(--cs-shadow-float);
}

#page-topbar .topbar-user-menu .dropdown-item {
  border-radius: var(--cs-radius-md);
  padding: 0.72rem 0.9rem;
}

#page-topbar .topbar-user-menu .dropdown-item:hover,
#page-topbar .topbar-user-menu .dropdown-item:focus {
  background: rgba(248, 250, 252, 0.96);
}




/* ======= GENERALE / AUTOCOMPLETE ======= */
.autoComplete_wrapper {
  width: 100%;
}

.autoComplete_wrapper {
  position: relative;
  display: block;
}

.autoComplete_wrapper > ul {
  z-index: 2005 !important;
}

.autoComplete_wrapper > input {
  width: 100% !important;
  border: 1px solid var(--cs-border);
  padding: 0.5rem 0.9rem;
  border-radius: var(--cs-radius-sm);
  font-size: var(--cs-font-label);
}

.autoComplete_wrapper > input:focus {
  border-color: rgba(var(--cs-primary-rgb), 0.42);
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(var(--cs-primary-rgb), 0.12);
}

.autoComplete_wrapper > input::selection,
.autoComplete_wrapper > input:focus::selection {
  background-color: rgba(var(--cs-primary-rgb), 0.16);
  color: var(--cs-text);
}

.autoComplete_wrapper input.form-control {
  background-image: none !important;
  box-shadow: none !important;
  border: 1px solid var(--cs-border) !important;
  border-radius: var(--cs-radius-sm) !important;
  padding: .5rem .75rem !important;
  height: calc(1.5em + .75rem + 2px) !important;
  line-height: 1.5 !important;
  color: var(--cs-text) !important;
  background-color: var(--cs-surface) !important;
}

.autoComplete_wrapper input.form-control::placeholder {
  color: var(--cs-text-secondary) !important;
}

.tags-autocomplete .choices__inner {
  overflow: visible !important;
  position: relative;
}

.tags-autocomplete .choices__list--dropdown {
  display: none !important;
}

.tags-autocomplete .tags-suggest-list {
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  right: 0;
  background: var(--cs-surface);
  border: 1px solid var(--cs-border);
  border-top: none;
  max-height: 200px;
  overflow: auto;
  box-shadow: var(--cs-shadow-float);
  z-index: 1003;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tags-autocomplete .tags-suggest-list li {
  padding: 8px 10px;
  cursor: pointer;
}

.tags-autocomplete .tags-suggest-list li:hover {
  background: var(--cs-surface-soft);
}

.seller-col .autoComplete_wrapper {
  font-size: var(--cs-font-body);
}

.seller-col .autoComplete_wrapper .autoComplete_result {
  line-height: 1.2;
}

.autoComplete_wrapper > ul > li mark {
  background-color: transparent !important;
  color: var(--cs-primary) !important;
  font-weight: 700 !important;
}

.autoComplete_wrapper > ul > li:hover,
.autoComplete_wrapper > ul > li[aria-selected="true"] {
  background-color: rgba(var(--cs-primary-rgb), 0.10) !important;
  color: var(--cs-text) !important;
}




/* ======= DESIGN SYSTEM ADMIN: TOKEN E FONDAMENTA ======= */
/* Unica sorgente di verita: i token canonici (Design System §34).
   I token storici italiani e --vz-* sono solo ALIAS (§35): nessun valore proprio. */
:root,
[data-bs-theme="light"] {
  /* Brand blu — rampa (canonico §34) */
  --cs-primary-50: #EAF3FF;
  --cs-primary-100: #D5E7FF;
  --cs-primary-200: #AACFFF;
  --cs-primary-300: #7BB3FF;
  --cs-primary-400: #4792FA;
  --cs-primary-500: #0A6AEC;
  --cs-primary-600: #0857C4;
  --cs-primary-700: #06459B;
  --cs-primary-800: #053573;
  --cs-primary-900: #04264F;
  --cs-primary: var(--cs-primary-500);
  --cs-primary-rgb: 10, 106, 236;
  --cs-primary-soft: var(--cs-primary-50);
  --cs-primary-strong: var(--cs-primary-600);

  /* Brand viola — rampa (canonico §34) */
  --cs-secondary-50: #F4EEFF;
  --cs-secondary-100: #E9DCFF;
  --cs-secondary-200: #D0B6FE;
  --cs-secondary-300: #B48CFB;
  --cs-secondary-400: #925EF2;
  --cs-secondary-500: #5E21D5;
  --cs-secondary-600: #4C16B1;
  --cs-secondary-700: #3B0F8A;
  --cs-secondary-800: #2B0A64;
  --cs-secondary-900: #1C0640;
  --cs-secondary: var(--cs-secondary-500);
  --cs-secondary-rgb: 94, 33, 213;
  --cs-secondary-soft: var(--cs-secondary-50);

  /* Dominio: accent semantici non-brand (§40) */
  --cs-domain-terracotta: #E2562B;
  --cs-domain-terracotta-rgb: 226, 86, 43;
  --cs-domain-terracotta-soft: #FBE7DF;
  --cs-domain-terracotta-strong: #8A3418;
  --cs-domain-teal: #0D9488;
  --cs-domain-teal-rgb: 13, 148, 136;
  --cs-domain-teal-soft: #D7F0ED;

  /* Semantici: uno per significato, condivisi da tutti i layer UI */
  --cs-success: #10B981;
  --cs-success-rgb: 16, 185, 129;
  --cs-success-soft: #D9F5EC;
  --cs-success-strong: #0B7A57;
  --cs-warning: #F59E0B;
  --cs-warning-rgb: 245, 158, 11;
  --cs-warning-soft: #FDF0D5;
  --cs-warning-strong: #A66908;
  --cs-danger: #EF4444;
  --cs-danger-rgb: 239, 68, 68;
  --cs-danger-soft: #FCE2E2;
  --cs-danger-strong: #B91C1C;
  --cs-info: #0EA5E9;
  --cs-info-rgb: 14, 165, 233;
  --cs-info-soft: #D6EFFB;
  --cs-info-strong: #0369A1;
  --cs-neutral: #64748B;
  --cs-neutral-rgb: 100, 116, 139;

  /* Neutri — rampa */
  --cs-neutral-50: #F8FAFC;
  --cs-neutral-100: #F1F5F9;
  --cs-neutral-200: #E2E8F0;
  --cs-neutral-300: #CBD5E1;
  --cs-neutral-400: #94A3B8;
  --cs-neutral-500: #64748B;
  --cs-neutral-600: #475569;
  --cs-neutral-700: #334155;
  --cs-neutral-800: #1E293B;
  --cs-neutral-900: #0F172A;

  /* Surfaces */
  --cs-page-bg: #F6F8FA;
  --cs-surface: #FFFFFF;
  --cs-surface-soft: #F8FAFC;
  --cs-surface-muted: #F1F5F9;

  /* Text */
  --cs-text: #0F172A;
  --cs-text-secondary: #64748B;
  --cs-text-muted: #94A3B8;
  --cs-text-on-accent: #FFFFFF;

  /* Borders */
  --cs-border: rgba(148, 163, 184, 0.18);
  --cs-border-soft: rgba(148, 163, 184, 0.12);

  /* Radius (scala 6/8/12/16/20px) */
  --cs-radius-xs: .375rem;
  --cs-radius-sm: .5rem;
  --cs-radius-md: .75rem;
  --cs-radius-lg: 1rem;
  --cs-radius-xl: 1.25rem;
  --cs-radius-pill: 999px;

  /* Shadow */
  --cs-shadow-card: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.05);
  --cs-shadow-card-hover: 0 2px 4px rgba(15, 23, 42, 0.05), 0 14px 34px rgba(15, 23, 42, 0.08);
  --cs-shadow-float: 0 18px 42px rgba(15, 23, 42, 0.12);

  /* Motion */
  --cs-transition-fast: 160ms ease;
  --cs-transition-base: 200ms ease;

  /* Tipografia (min 12px, base 15px) */
  --cs-font-display: 1.875rem;
  --cs-font-page: 1.5rem;
  --cs-font-section: 1.125rem;
  --cs-font-card: .9375rem;
  --cs-font-body: .9375rem;
  --cs-font-label: .8125rem;
  --cs-font-meta: .75rem;

  /* Spacing */
  --cs-space-1: .25rem;
  --cs-space-2: .5rem;
  --cs-space-3: .75rem;
  --cs-space-4: 1rem;
  --cs-space-5: 1.25rem;
  --cs-space-6: 1.5rem;
  --cs-space-8: 2rem;
  --cs-space-10: 2.5rem;

  /* --- Alias legacy (§35): canonico -> storico --- */
  --cs-superficie-principale: var(--cs-page-bg);
  --cs-superficie-secondaria: var(--cs-surface-soft);
  --cs-superficie-elevata: var(--cs-surface);
  --cs-superficie-contrasto: var(--cs-surface-muted);

  --cs-testo-principale: var(--cs-text);
  --cs-testo-secondario: var(--cs-text-secondary);

  --cs-contorno-soft: var(--cs-border-soft);

  --cs-raggio-standard: var(--cs-radius-lg);
  --cs-raggio-accentuato: var(--cs-radius-xl);

  --cs-ombra-card: var(--cs-shadow-card);
  --cs-ombra-card-hover: var(--cs-shadow-card-hover);
  --cs-ombra-soft: var(--cs-shadow-card);

  --cs-colore-primario: var(--cs-primary);
  --cs-colore-primario-soft: var(--cs-primary-soft);
  --cs-colore-secondario: var(--cs-domain-terracotta);
  --cs-colore-secondario-soft: var(--cs-domain-terracotta-soft);
  --cs-colore-terziario: var(--cs-domain-teal);
  --cs-colore-terziario-soft: var(--cs-domain-teal-soft);

  --cs-avviso-soft: var(--cs-domain-terracotta-soft);
  --cs-avviso-testo: var(--cs-domain-terracotta-strong);
  --cs-gradiente-primario: linear-gradient(135deg, var(--cs-primary-strong) 0%, var(--cs-primary) 100%);
}

[data-bs-theme="dark"] {
  /* Canonici v2 (superfici/testo/bordi/ombre) */
  --cs-page-bg: #11151f;
  --cs-surface: #171c28;
  --cs-surface-soft: #1d2431;
  --cs-surface-muted: #232b3b;
  --cs-text: #EEF2FF;
  --cs-text-secondary: #AEB7CB;
  --cs-text-muted: #8592a9;
  --cs-border: rgba(255, 255, 255, 0.10);
  --cs-border-soft: rgba(255, 255, 255, 0.07);
  --cs-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.3), 0 10px 28px rgba(0, 0, 0, 0.28);
  --cs-shadow-card-hover: 0 2px 4px rgba(0, 0, 0, 0.32), 0 14px 34px rgba(0, 0, 0, 0.34);
  --cs-shadow-float: 0 18px 42px rgba(0, 0, 0, 0.4);
  --cs-primary-soft: rgba(var(--cs-primary-rgb), 0.16);
  --cs-secondary-soft: rgba(var(--cs-secondary-rgb), 0.20);

  /* Alias legacy (§35): canonico -> storico */
  --cs-superficie-principale: var(--cs-page-bg);
  --cs-superficie-secondaria: var(--cs-surface-soft);
  --cs-superficie-elevata: var(--cs-surface);
  --cs-superficie-contrasto: var(--cs-surface-muted);
  --cs-testo-principale: var(--cs-text);
  --cs-testo-secondario: var(--cs-text-secondary);
  --cs-contorno-soft: var(--cs-border-soft);
  --cs-ombra-card: var(--cs-shadow-card);
  --cs-ombra-card-hover: var(--cs-shadow-card-hover);
  --cs-ombra-soft: var(--cs-shadow-card);
  --cs-avviso-soft: rgba(226, 86, 43, 0.2);
  --cs-avviso-testo: #ffd4c9;
}

.pagina-gestionale,
.dashboard-home {
  color: var(--cs-testo-principale);
  padding-bottom: 1.5rem;
}

.pagina-gestionale a:not(.btn),
.dashboard-home a:not(.btn) {
  color: inherit;
}

/* ======= DESIGN SYSTEM ADMIN: COMPONENTI SHARED ======= */

/* --- Componente canonico: titolo di pagina (§5) ---
   Unica implementazione: la pagina usa il titolo del layout condiviso. */
.cs-page-title,
.page-title-box h4 {
  font-size: var(--cs-font-page);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--cs-text);
  margin-bottom: 0;
}

.pagina-gestionale-compatta .page-title-box {
  min-height: auto;
  margin: 0 0 0.75rem;
  padding: 0.15rem 0 0.35rem;
}

.pagina-gestionale-compatta .page-title-right {
  display: none;
}

.pagina-gestionale-compatta .cs-page-title,
.pagina-gestionale-compatta .page-title-box h4 {
  font-size: clamp(1.2rem, 1.08rem + 0.45vw, 1.42rem);
}

.blocco-sezione,
.dashboard-section {
  margin-bottom: 2rem;
}

.pagina-gestionale-compatta .blocco-sezione {
  margin-bottom: 1rem;
}

/* --- Componente canonico: card (§11.1) ---
   Unica implementazione. Le classi storiche sono alias, non stili paralleli. */
.cs-card,
.scheda-tonale,
.sezione-form,
.cs-form-section,
.barra-filtri,
.scheda-tabella,
.scheda-riepilogo,
.scheda-contenuto,
.scheda-analitica,
.pannello-laterale,
.dashboard-tonal-card,
.dashboard-widget-card,
.dashboard-analytics-card,
.card {
  background: var(--cs-surface);
  border: 0;
  border-radius: var(--cs-radius-lg) !important;
  box-shadow: var(--cs-shadow-card);
}

/* Modifier 1 — card a filo: contenitori densi (tabelle, grafici, liste).
   Bordo soft al posto dell'ombra (§8: mai bordo e ombra insieme). */
.cs-card--flush {
  box-shadow: none;
  border: 1px solid var(--cs-border-soft);
}

/* Modifier 2 — pannello di sezione: raggruppa blocchi dentro una pagina,
   superficie tonale, senza ombra. */
.cs-card--section {
  background: var(--cs-surface-soft);
  box-shadow: none;
  border: 1px solid var(--cs-border-soft);
}

/* Blocco tonale annidato (§11.2): nessuna ombra, raggio di uno step inferiore.
   Sostituisce le "card dentro card". */
.cs-tonal-block {
  background: var(--cs-surface-soft);
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-sm);
}

.link-esteso,
.dashboard-kpi-link,
.dashboard-shortcut-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.pagina-operativa-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.pagina-operativa-head-main {
  min-width: 0;
}

.pagina-operativa-head .titolo-sezione-form {
  margin-bottom: 0.15rem;
}

.pagina-operativa-head .descrizione-sezione-form,
.pagina-operativa-head .meta-tabella {
  max-width: 72ch;
}

.pagina-operativa-head-actions,
.barra-filtri-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.sezione-hero,
.dashboard-hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--cs-radius-lg);
  padding: 2rem;
  background: var(--cs-gradiente-primario);
  color: var(--cs-text-on-accent);
}

.sezione-hero.sezione-hero-compatta {
  padding: 1.15rem 1.35rem;
}

.sezione-hero::before,
.sezione-hero::after,
.dashboard-hero::before,
.dashboard-hero::after {
  content: '';
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--cs-radius-pill);
  pointer-events: none;
}

.sezione-hero::before,
.dashboard-hero::before {
  width: 16rem;
  height: 16rem;
  top: -5rem;
  right: -3rem;
}

.sezione-hero::after,
.dashboard-hero::after {
  width: 10rem;
  height: 10rem;
  top: 1rem;
  right: 4rem;
}

.sezione-hero-interna,
.dashboard-hero-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.titolo-hero,
.dashboard-hero-title {
  font-size: var(--cs-font-page);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 0.5rem;
  color: var(--cs-text-on-accent);
}

.sezione-hero.sezione-hero-compatta .titolo-hero {
  font-size: var(--cs-font-section);
  margin-bottom: 0.35rem;
}

.testo-hero,
.dashboard-hero-text {
  max-width: 42rem;
  font-size: var(--cs-font-body);
  line-height: 1.65;
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.92);
}

.sezione-hero.sezione-hero-compatta .testo-hero {
  font-size: var(--cs-font-label);
  line-height: 1.55;
}

.pill-contesto,
.dashboard-hero-scope {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.7rem 1.15rem;
  border-radius: var(--cs-radius-pill);
  background: rgba(255, 255, 255, 0.96);
  color: var(--cs-primary);
  font-size: var(--cs-font-label);
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.08);
}

.avviso-morbido,
.dashboard-warning {
  border: 0;
  border-radius: var(--cs-raggio-standard);
  background: var(--cs-avviso-soft);
  color: var(--cs-avviso-testo);
}

.avviso-operativo,
.dashboard-agency-alert {
  border: 0;
  border-radius: var(--cs-radius-lg);
  padding: 1.1rem 1.25rem;
  background: var(--cs-danger-soft);
  color: var(--cs-danger-strong);
  box-shadow: var(--cs-shadow-card);
}

.icona-avviso-operativo,
.dashboard-agency-alert-icon {
  width: 3rem;
  height: 3rem;
  border-radius: var(--cs-radius-md);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--cs-danger-rgb), 0.14);
  color: var(--cs-danger-strong);
  flex-shrink: 0;
}

.titolo-avviso-operativo,
.dashboard-agency-alert-title {
  font-size: var(--cs-font-card);
  font-weight: 800;
  margin-bottom: 0.2rem;
  color: var(--cs-danger-strong);
}

.testo-avviso-operativo,
.dashboard-agency-alert-text {
  font-size: var(--cs-font-label);
  line-height: 1.65;
  margin-bottom: 0;
  color: var(--cs-danger-strong);
}

.avviso-operativo .btn,
.dashboard-agency-alert .btn {
  border-radius: var(--cs-radius-pill);
  font-weight: 700;
  white-space: nowrap;
}

/* --- Componente canonico: KPI card (§12) --- */
.cs-kpi-card,
.scheda-riepilogo,
.dashboard-kpi-card {
  position: relative;
  overflow: hidden;
  height: 100%;
  padding: var(--cs-space-6);
  transition: transform var(--cs-transition-base), box-shadow var(--cs-transition-base);
}

.cs-kpi-card::before,
.statistiche-area-page .statistiche-immobili-kpi-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--cs-kpi-accent, var(--cs-primary));
}

.cs-kpi-card--primary    { --cs-kpi-accent: var(--cs-primary);              --cs-kpi-accent-soft: rgba(var(--cs-primary-rgb), 0.10); }
.cs-kpi-card--success    { --cs-kpi-accent: var(--cs-success);              --cs-kpi-accent-soft: rgba(var(--cs-success-rgb), 0.12); }
.cs-kpi-card--warning    { --cs-kpi-accent: var(--cs-warning);              --cs-kpi-accent-soft: rgba(var(--cs-warning-rgb), 0.14); }
.cs-kpi-card--danger     { --cs-kpi-accent: var(--cs-danger);               --cs-kpi-accent-soft: rgba(var(--cs-danger-rgb), 0.10); }
.cs-kpi-card--secondary  { --cs-kpi-accent: var(--cs-secondary);            --cs-kpi-accent-soft: rgba(var(--cs-secondary-rgb), 0.10); }
.cs-kpi-card--terracotta { --cs-kpi-accent: var(--cs-domain-terracotta);    --cs-kpi-accent-soft: rgba(var(--cs-domain-terracotta-rgb), 0.10); }
.cs-kpi-card--teal       { --cs-kpi-accent: var(--cs-domain-teal);          --cs-kpi-accent-soft: rgba(var(--cs-domain-teal-rgb), 0.10); }

.link-esteso:hover .scheda-riepilogo,
.dashboard-kpi-link:hover .dashboard-kpi-card {
  transform: translateY(-3px);
  box-shadow: var(--cs-ombra-card-hover);
}

.icona-riepilogo,
.dashboard-kpi-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.9rem;
  height: 2.9rem;
  border-radius: var(--cs-radius-md);
  margin-bottom: 1rem;
}

/* Il chip eredita l'accent dalla variante .cs-kpi-card--* impostata sulla card */
.dashboard-kpi-chip {
  background: var(--cs-kpi-accent-soft, rgba(var(--cs-primary-rgb), 0.10));
  color: var(--cs-kpi-accent, var(--cs-primary));
}

.cs-eyebrow,
.etichetta-riepilogo,
.dashboard-kpi-label,
.heading-analitica,
.dashboard-analytics-heading,
.sopracciglio-elemento,
.dashboard-widget-eyebrow {
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--cs-text-secondary);
}

.cs-kpi-value,
.valore-riepilogo,
.dashboard-kpi-value {
  font-size: var(--cs-font-display);
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--cs-text);
  margin-bottom: 0.6rem;
}

.cs-section-title,
.cs-card-title,
.titolo-riepilogo,
.dashboard-kpi-title,
.titolo-elemento,
.dashboard-widget-title,
.titolo-sezione,
.dashboard-title,
.titolo-analitica,
.dashboard-analytics-title {
  color: var(--cs-text);
  letter-spacing: -0.02em;
  margin-bottom: 0;
}

.cs-card-title,
.titolo-riepilogo,
.dashboard-kpi-title,
.titolo-elemento,
.dashboard-widget-title {
  font-size: var(--cs-font-card);
  font-weight: 700;
  margin-bottom: 0.2rem;
}

.testo-riepilogo,
.dashboard-kpi-description,
.dashboard-kpi-secondary,
.meta-elemento,
.dashboard-widget-subtitle,
.dashboard-widget-meta,
.dashboard-widget-description,
.sottotitolo-sezione,
.dashboard-title-subtle,
.meta-tabella {
  font-size: var(--cs-font-meta);
  color: var(--cs-text-secondary);
  margin-bottom: 0;
}

.cs-section-title,
.titolo-sezione,
.dashboard-title {
  font-size: var(--cs-font-section);
  font-weight: 700;
}

.sottotitolo-sezione,
.dashboard-title-subtle {
  margin-top: 0.18rem;
}

.griglia-scorciatoie,
.dashboard-shortcut-grid {
  display: grid;
  grid-template-columns: repeat(var(--dashboard-shortcut-columns, 5), minmax(0, 1fr));
  gap: 1rem;
}

.scheda-scorciatoia,
.dashboard-shortcut-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55rem;
  height: 100%;
  min-height: 100%;
  padding: 1rem 1rem 0.95rem;
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-lg);
  background: var(--cs-surface);
  box-shadow: var(--cs-shadow-card);
  text-align: left;
  transition: transform 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.dashboard-shortcut-head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.link-esteso:hover .scheda-scorciatoia,
.dashboard-shortcut-link:hover .dashboard-shortcut-item {
  background: var(--cs-surface-soft);
  border-color: rgba(var(--cs-primary-rgb), 0.18);
  transform: translateY(-2px);
  box-shadow: var(--cs-shadow-float);
}

.dashboard-shortcut-link:focus-visible {
  outline: none;
}

.dashboard-shortcut-link:focus-visible .dashboard-shortcut-item {
  border-color: rgba(var(--cs-primary-rgb), 0.38);
  box-shadow: 0 0 0 3px rgba(var(--cs-primary-rgb), 0.14), var(--cs-shadow-card);
}

.dashboard-shortcut-link:hover {
  text-decoration: none;
}

.icona-scorciatoia,
.dashboard-shortcut-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--cs-radius-sm);
  background: var(--cs-surface-soft);
  border: 1px solid var(--cs-border-soft);
  color: var(--cs-primary-700);
}

.titolo-scorciatoia,
.dashboard-shortcut-title {
  font-size: var(--cs-font-card);
  font-weight: 700;
  color: var(--cs-text);
  margin-bottom: 0;
}

.descrizione-scorciatoia,
.dashboard-shortcut-description {
  font-size: var(--cs-font-meta);
  color: var(--cs-text-secondary);
  margin-bottom: 0;
}

.dashboard-shortcut-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: var(--cs-radius-pill);
  background: var(--cs-surface-soft);
  color: var(--cs-text-secondary);
  border: 1px solid var(--cs-border-soft);
  transition: transform 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.dashboard-shortcut-link:hover .dashboard-shortcut-chevron,
.dashboard-shortcut-link:focus-visible .dashboard-shortcut-chevron {
  transform: translateX(2px);
  color: var(--cs-primary-700);
  border-color: rgba(var(--cs-primary-rgb), 0.18);
}

.dashboard-shortcut-action {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: auto;
  padding: 0.34rem 0.7rem;
  border-radius: var(--cs-radius-pill);
  background: var(--cs-surface-soft);
  border: 1px solid var(--cs-border-soft);
  color: var(--cs-text);
  font-size: var(--cs-font-meta);
  font-weight: 600;
}

.dashboard-shortcut-item[data-tone="primary"] .dashboard-shortcut-icon,
.dashboard-shortcut-item[data-tone="primary"] .dashboard-shortcut-action {
  background: var(--cs-primary-soft);
  border-color: rgba(var(--cs-primary-rgb), 0.14);
  color: var(--cs-primary-700);
}

.dashboard-shortcut-item[data-tone="success"] .dashboard-shortcut-icon,
.dashboard-shortcut-item[data-tone="success"] .dashboard-shortcut-action {
  background: rgba(var(--cs-success-rgb), 0.12);
  border-color: rgba(var(--cs-success-rgb), 0.14);
  color: var(--cs-success-strong);
}

.dashboard-shortcut-item[data-tone="warning"] .dashboard-shortcut-icon,
.dashboard-shortcut-item[data-tone="warning"] .dashboard-shortcut-action {
  background: rgba(var(--cs-warning-rgb), 0.14);
  border-color: rgba(var(--cs-warning-rgb), 0.16);
  color: var(--cs-warning-strong);
}

.dashboard-shortcut-item[data-tone="info"] .dashboard-shortcut-icon,
.dashboard-shortcut-item[data-tone="info"] .dashboard-shortcut-action {
  background: rgba(var(--cs-info-rgb), 0.12);
  border-color: rgba(var(--cs-info-rgb), 0.16);
  color: var(--cs-info-strong);
}

.dashboard-shortcut-item[data-tone="secondary"] .dashboard-shortcut-icon,
.dashboard-shortcut-item[data-tone="secondary"] .dashboard-shortcut-action {
  background: var(--cs-secondary-soft);
  border-color: rgba(var(--cs-secondary-rgb), 0.14);
  color: var(--cs-secondary-700);
}

.scheda-contenuto,
.dashboard-widget-card,
.scheda-analitica,
.dashboard-analytics-card {
  height: 100%;
  padding: 1.75rem;
}

.lista-contenuto,
.dashboard-widget-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.35rem;
}

.elemento-contenuto,
.dashboard-widget-item {
  display: block;
  padding: 1rem 1.1rem;
  color: inherit;
  text-decoration: none;
  border: 0;
  border-radius: var(--cs-raggio-standard);
  background: var(--cs-superficie-secondaria);
  transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.elemento-contenuto:hover,
.dashboard-widget-item:hover {
  background: var(--cs-superficie-elevata);
  transform: translateY(-2px);
  box-shadow: var(--cs-ombra-soft);
}

.elemento-contenuto:first-child,
.elemento-contenuto:last-child,
.dashboard-widget-item:first-child,
.dashboard-widget-item:last-child {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.meta-elemento,
.dashboard-widget-subtitle,
.dashboard-widget-meta,
.dashboard-widget-description {
  font-size: var(--cs-font-meta);
}

.sopracciglio-elemento,
.dashboard-widget-eyebrow {
  font-size: var(--cs-font-meta);
  margin-bottom: 0.45rem;
}

.contenitore-grafico,
.dashboard-chart-container {
  min-height: 290px;
}

.dashboard-source-list {
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
}

.dashboard-source-row {
  display: grid;
  grid-template-columns: minmax(150px, 1.1fr) minmax(180px, 2fr) auto;
  align-items: center;
  gap: 1rem;
}

.dashboard-source-label,
.dashboard-source-value {
  font-size: var(--cs-font-meta);
  font-weight: 600;
  color: var(--cs-text);
}

.dashboard-source-track {
  position: relative;
  height: 1rem;
  border-radius: var(--cs-radius-pill);
  background: var(--cs-superficie-secondaria);
  overflow: hidden;
}

.dashboard-source-bar {
  height: 100%;
  border-radius: inherit;
  background: color-mix(in srgb, var(--dashboard-source-color) 88%, white 12%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.dashboard-funnel-flow {
  display: flex;
  align-items: stretch;
  gap: 0.85rem;
  min-height: 290px;
}

.dashboard-funnel-step {
  flex: 1 1 0;
  min-width: 0;
}

.dashboard-funnel-step-inner {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 1.25rem 0.9rem;
  text-align: center;
  border-radius: var(--cs-radius-lg);
  background: color-mix(in srgb, var(--dashboard-step-color) 16%, var(--cs-surface) 84%);
  border: 1px solid color-mix(in srgb, var(--dashboard-step-color) 22%, var(--cs-border-soft) 78%);
  box-shadow: var(--cs-shadow-card);
}

.dashboard-funnel-step-icon {
  width: 2.8rem;
  height: 2.8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--cs-radius-pill);
  color: var(--dashboard-step-color);
  background: color-mix(in srgb, var(--dashboard-step-color) 14%, var(--cs-surface) 86%);
  border: 1px solid color-mix(in srgb, var(--dashboard-step-color) 18%, var(--cs-border-soft) 82%);
}

.dashboard-funnel-step-label {
  font-size: var(--cs-font-meta);
  font-weight: 700;
  color: var(--cs-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.dashboard-funnel-step-value {
  font-size: clamp(1.7rem, 2vw, 2.2rem);
  font-weight: 800;
  line-height: 1;
  color: var(--cs-text);
}

.dashboard-funnel-step-percent {
  font-size: var(--cs-font-meta);
  font-weight: 700;
  color: var(--dashboard-step-color);
}

.dashboard-funnel-arrow {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cs-text-secondary);
  font-size: 1.35rem;
}

.contenitore-grafico-compatto,
.dashboard-chart-compact {
  min-height: 240px;
}

.blocco-vuoto,
.dashboard-empty-block {
  display: flex;
  min-height: 12.5rem;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  border-radius: var(--cs-raggio-standard);
  background: var(--cs-superficie-secondaria);
  color: var(--cs-testo-secondario);
  padding: 1.5rem;
}

.blocco-vuoto .empty-icon,
.dashboard-empty-block .empty-icon {
  font-size: var(--cs-font-display);
  margin-bottom: 0.8rem;
}

.titolo-analitica,
.dashboard-analytics-title {
  font-size: var(--cs-font-card);
  font-weight: 700;
  margin-bottom: 1rem;
}

.scheda-analitica,
.dashboard-analytics-card {
  text-align: center;
}

.heading-analitica,
.dashboard-analytics-heading {
  font-size: var(--cs-font-meta);
  margin-bottom: 1.25rem;
  color: var(--cs-text-secondary);
}

.lista-compatta li + li,
.dashboard-chart-fallback li + li {
  margin-top: 0.35rem;
}

.spazio-finale-pagina,
.page-bottom-spacing {
  height: 0.5rem;
}

.intestazione-sezione {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.elemento-nascosto {
  display: none;
}

.tabella-estesa {
  width: 100% !important;
}

/* --- Componente canonico: sezione di form (§15, Fase 2) ---
   Raggruppa campi correlati in un blocco leggibile: superficie card (dall'alias
   `.sezione-form` in §11.1), padding da token, gap verticale tra blocchi
   --cs-space-6. `.sezione-form` resta l'alias storico dello stesso componente. */
.layout-form,
.cs-form {
  display: flex;
  flex-direction: column;
  gap: var(--cs-space-6);
}

.cs-form-section,
.sezione-form {
  padding: var(--cs-space-6);
}

.sidebar-card-compatta {
  padding: 1.5rem 0.8rem;
}

.sidebar-card-compatta > .card-body {
  padding: 0;
}

.titolo-sezione-form {
  font-size: var(--cs-font-card);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--cs-text);
  margin-bottom: 0.2rem;
}

.descrizione-sezione-form,
.aiuto-campo {
  font-size: var(--cs-font-label);
  line-height: 1.6;
  color: var(--cs-text-secondary);
}

/* Asterisco di campo obbligatorio (§15): unica implementazione canonica. */
.campo-obbligatorio,
.required-asterisk {
  color: var(--cs-danger);
  margin-left: 0.15rem;
}

.stato-inline,
.badge-stato-ui {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.75rem;
  border-radius: var(--cs-radius-pill);
  background: var(--cs-surface-muted);
  color: var(--cs-text);
  font-size: var(--cs-font-meta);
  font-weight: 700;
}

.badge-stato-ui.is-neutro {
  background: var(--cs-surface-muted);
  color: var(--cs-neutral-600);
}

.badge-stato-ui.is-primario {
  background: var(--cs-primary-soft);
  color: var(--cs-primary);
}

.badge-stato-ui.is-accento {
  background: var(--cs-secondary-soft);
  color: var(--cs-secondary);
}

.badge-stato-ui.is-successo {
  background: var(--cs-success-soft);
  color: var(--cs-success-strong);
}

.badge-stato-ui.is-attenzione {
  background: var(--cs-warning-soft);
  color: var(--cs-warning-strong);
}

.badge-stato-ui.is-pericolo {
  background: var(--cs-danger-soft);
  color: var(--cs-danger-strong);
}

.sezione-hero .badge-stato-ui {
  background: var(--cs-surface);
  border: 1px solid var(--cs-border-soft);
}

.barra-filtri,
.scheda-tabella,
.pannello-laterale {
  padding: 1.25rem 1.35rem;
}

.griglia-filtri {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.toolbar-tabella {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.griglia-riepilogo-operativo {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.griglia-dettaglio-operativo {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.blocco-dettaglio-operativo {
  grid-column: span 6;
  padding: 1.15rem 1.1rem;
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-sm);
  background: var(--cs-surface-soft);
  box-shadow: none;
}

.scheda-dettaglio-operativo {
  padding: 1.25rem 1.25rem;
  background: var(--cs-surface);
  border: 0;
  border-radius: var(--cs-radius-lg);
  box-shadow: var(--cs-shadow-card);
}

.blocco-dettaglio-operativo.is-evidenza {
  background: var(--cs-surface-muted);
}

.blocco-dettaglio-operativo.is-economico {
  background: var(--cs-success-soft);
  border: 1px solid rgba(var(--cs-success-rgb), 0.18);
}

.blocco-dettaglio-operativo.is-collegamento {
  background: var(--cs-primary-soft);
  border: 1px solid rgba(var(--cs-primary-rgb), 0.18);
}

.blocco-dettaglio-operativo.is-esteso {
  grid-column: 1 / -1;
}

.etichetta-dettaglio-operativo {
  display: block;
  margin-bottom: 0.35rem;
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cs-text-secondary);
}

.valore-dettaglio-operativo {
  color: var(--cs-testo-principale);
  font-weight: 600;
  line-height: 1.6;
}

.valore-dettaglio-operativo.is-valuta {
  font-size: var(--cs-font-section);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

.blocco-dettaglio-operativo.is-economico .etichetta-dettaglio-operativo {
  color: var(--cs-success-strong);
}

.blocco-dettaglio-operativo.is-economico .valore-dettaglio-operativo.is-valuta {
  color: var(--cs-success-strong);
}

.blocco-dettaglio-operativo.is-collegamento .etichetta-dettaglio-operativo {
  color: var(--cs-primary-strong);
}

.valore-dettaglio-operativo a {
  color: var(--cs-primary) !important;
  text-decoration: none;
}

.valore-dettaglio-operativo a:hover,
.valore-dettaglio-operativo a:focus {
  text-decoration: underline;
}

.blocco-note-operativo {
  padding: 1.05rem 1.1rem;
  background: var(--cs-surface-soft);
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-md);
  color: var(--cs-text);
  line-height: 1.65;
}

.lista-collegamenti-operativi {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.elemento-collegamento-operativo {
  padding: 1rem 1.05rem;
  background: var(--cs-surface);
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-md);
}

.meta-collegamento-operativo {
  margin-top: 0.3rem;
  font-size: var(--cs-font-label);
  color: var(--cs-text-secondary);
}

.scheda-kpi-operativa {
  border-radius: var(--cs-radius-lg);
  border: 1px solid var(--cs-border-soft);
  box-shadow: none;
  height: 100%;
}

.valore-kpi-operativo {
  font-size: var(--cs-font-display);
  font-weight: 700;
  line-height: 1;
}

.nota-kpi-operativa {
  color: var(--cs-text-secondary);
  font-size: var(--cs-font-label);
}

.scheda-categoria-diagnostica {
  border: 0;
  border-radius: var(--cs-radius-lg);
  box-shadow: var(--cs-shadow-card);
}

.filtro-pillole {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.filtro-rapido-item {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  height: 100%;
}

.filtro-rapido-label {
  display: flex;
  align-items: flex-start;
  min-height: 0;
  margin-bottom: 0;
  line-height: 1.3;
}

.filtro-rapido-controllo {
  display: flex;
  align-items: flex-start;
  width: 100%;
}

.filtro-rapido-select {
  width: 100%;
}

.filtro-rapido-controllo > .form-control,
.filtro-rapido-controllo > .form-select,
.filtro-rapido-controllo > .filtro-rapido-select {
  width: 100%;
}

.filtro-rapido-pillole {
  gap: 0.4rem;
  align-items: flex-start;
}

.timeline-operativa {
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  height: min(62vh, 720px);
  max-height: min(62vh, 720px);
  overflow-y: auto;
  overflow-x: hidden;
}

.timeline-operativa-item {
  width: 100%;
  border-left: 1px solid var(--cs-border);
  padding-left: 14px;
  background: transparent;
}

.timeline-operativa-item::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
}

.tabella-tecnica td.text-wrap {
  white-space: normal;
}

.anteprima-tabella-media {
  width: 5rem;
  height: 4rem;
  object-fit: cover;
  border-radius: var(--cs-radius-md);
}

.anteprima-media-compatta {
  max-width: 150px;
  height: auto;
}

.legenda-operativa,
.calendario-operativo {
  height: 100%;
  padding: 1.25rem 1.35rem;
}

.lista-legenda-operativa {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.voce-legenda-operativa {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-md);
  background: var(--cs-surface);
}

.marcatore-legenda-operativa {
  width: 0.9rem;
  height: 0.9rem;
  margin-top: 0.25rem;
  border-radius: var(--cs-radius-pill);
  flex-shrink: 0;
  background: var(--cs-primary);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}

.marcatore-legenda-operativa.is-outline {
  background: rgba(var(--cs-primary-rgb), 0.18);
  border: 2px solid var(--cs-primary);
  box-shadow: none;
}

.marcatore-legenda-operativa.is-solid {
  background: var(--cs-primary);
}

.marcatore-legenda-operativa.is-completato {
  background: rgba(var(--cs-primary-rgb), 0.75);
}

.marcatore-legenda-operativa.is-annullato {
  background: var(--cs-neutral-400);
}

.tabella-tecnica td,
.tabella-tecnica th {
  vertical-align: top;
}

@media (max-width: 767.98px) {
  .griglia-dettaglio-operativo {
    grid-template-columns: 1fr;
  }

  .blocco-dettaglio-operativo,
  .blocco-dettaglio-operativo.is-esteso {
    grid-column: auto;
  }
}

.azioni-sticky {
  position: sticky;
  bottom: 1rem;
  z-index: 15;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.15rem;
  border: 0;
  border-radius: var(--cs-radius-lg);
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(10px);
  box-shadow: var(--cs-shadow-float);
}

[data-bs-theme="dark"] .azioni-sticky {
  background: rgba(34, 43, 59, 0.92);
}

.azioni-primarie,
.azioni-secondarie {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

/* --- Componente canonico: bottone (§14) ---
   Una sola altezza (40px standard, 44px nei form), un solo raggio, uno stile
   per variante. Le varianti sono: primario, secondario, ghost, pericolo;
   accento/attenzione restano per enfasi e avviso. */
/* I bottoni Bootstrap legacy (`.btn`, `.btn-sm`, outline) condividono lo stesso
   raggio dei bottoni gestionali: un solo raggio in tutta l'admin. */
.btn {
  border-radius: var(--cs-radius-sm);
}

.btn-gestionale {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.5rem;
  padding: 0.6rem 1.1rem;
  border-radius: var(--cs-radius-sm);
  border: 1px solid transparent;
  font-weight: 700;
  line-height: 1.15;
  transition: transform 0.16s ease, box-shadow 0.18s ease, background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

/* Nei form i bottoni hanno la stessa altezza dei campi (44px, §15). */
.layout-form .btn-gestionale,
.cs-form-section .btn-gestionale,
.form-modale-gestionale .btn-gestionale,
.sezione-form .btn-gestionale {
  min-height: 2.75rem;
  padding: 0.7rem 1.15rem;
}

.btn-gestionale:hover,
.btn-gestionale:focus {
  transform: translateY(-1px);
}

.btn-gestionale:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(var(--cs-primary-rgb), 0.14);
}

.btn-gestionale-compatto {
  min-height: 2.35rem;
  padding: 0.5rem 0.9rem;
  border-radius: var(--cs-radius-sm);
  font-size: var(--cs-font-body);
}

.btn-gestionale-iconica {
  min-height: 2.1rem;
  min-width: 2.1rem;
  padding: 0.38rem;
  border-radius: var(--cs-radius-sm);
}

.btn-gestionale-primario {
  color: var(--cs-text-on-accent);
  background: var(--cs-primary);
  border-color: var(--cs-primary);
  box-shadow: 0 10px 22px rgba(var(--cs-primary-rgb), 0.20);
}

.btn-gestionale-primario:hover,
.btn-gestionale-primario:focus {
  color: var(--cs-text-on-accent);
  background: var(--cs-primary);
  border-color: var(--cs-primary);
  box-shadow: 0 14px 24px rgba(var(--cs-primary-rgb), 0.24);
}

.btn-gestionale-secondario {
  color: var(--cs-text);
  background: var(--cs-surface);
  border-color: var(--cs-border-soft);
  box-shadow: 0 8px 18px rgba(25, 27, 36, 0.06);
}

.btn-gestionale-secondario:hover,
.btn-gestionale-secondario:focus {
  color: var(--cs-text);
  background: var(--cs-surface);
  border-color: rgba(var(--cs-primary-rgb), 0.22);
  box-shadow: 0 12px 22px rgba(25, 27, 36, 0.08);
}

/* Variante ghost: azioni terziarie dentro card e toolbar, senza peso visivo. */
.btn-gestionale-ghost {
  color: var(--cs-text-secondary);
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}

.btn-gestionale-ghost:hover,
.btn-gestionale-ghost:focus {
  color: var(--cs-primary);
  background: var(--cs-primary-soft);
  border-color: transparent;
  box-shadow: none;
}

.btn-gestionale-accento {
  color: var(--cs-primary);
  background: rgba(var(--cs-primary-rgb), 0.12);
  border-color: rgba(var(--cs-primary-rgb), 0.18);
  box-shadow: 0 10px 22px rgba(var(--cs-primary-rgb), 0.12);
}

.btn-gestionale-accento:hover,
.btn-gestionale-accento:focus {
  color: var(--cs-primary);
  background: rgba(var(--cs-primary-rgb), 0.16);
  border-color: rgba(var(--cs-primary-rgb), 0.24);
  box-shadow: 0 14px 24px rgba(var(--cs-primary-rgb), 0.16);
}

.btn-gestionale-pericolo {
  color: var(--cs-text-on-accent);
  background: var(--cs-danger);
  border-color: var(--cs-danger);
  box-shadow: 0 10px 22px rgba(var(--cs-danger-rgb), 0.18);
}

.btn-gestionale-pericolo:hover,
.btn-gestionale-pericolo:focus {
  color: var(--cs-text-on-accent);
  background: var(--cs-danger);
  border-color: var(--cs-danger);
  box-shadow: 0 14px 24px rgba(var(--cs-danger-rgb), 0.22);
}

.btn-gestionale-attenzione {
  color: var(--cs-warning-strong);
  background: rgba(var(--cs-warning-rgb), 0.18);
  border-color: rgba(var(--cs-warning-rgb), 0.34);
  box-shadow: 0 10px 22px rgba(var(--cs-warning-rgb), 0.14);
}

.btn-gestionale-attenzione:hover,
.btn-gestionale-attenzione:focus {
  color: var(--cs-warning-strong);
  background: rgba(var(--cs-warning-rgb), 0.24);
  border-color: rgba(var(--cs-warning-rgb), 0.42);
  box-shadow: 0 14px 24px rgba(var(--cs-warning-rgb), 0.18);
}

.btn-gestionale-filtro {
  min-height: 2rem;
  padding: 0.34rem 0.72rem;
  border-radius: var(--cs-radius-sm);
  font-size: var(--cs-font-label);
  font-weight: 600;
  line-height: 1.2;
  color: var(--cs-secondary-700);
  background: var(--cs-secondary-soft);
  border-color: rgba(var(--cs-secondary-rgb), 0.18);
  box-shadow: none;
}

.btn-gestionale-filtro:hover,
.btn-gestionale-filtro:focus {
  color: var(--cs-secondary-700);
  background: rgba(var(--cs-secondary-rgb), 0.16);
  border-color: rgba(var(--cs-secondary-rgb), 0.24);
  box-shadow: none;
  transform: none;
}

.btn-gestionale-filtro:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(var(--cs-secondary-rgb), 0.14);
}

.btn-gestionale-filtro.is-selected {
  color: var(--cs-text-on-accent);
  background: var(--cs-secondary);
  border-color: var(--cs-secondary);
  box-shadow: none;
}

.btn-gestionale-filtro.is-selected:hover,
.btn-gestionale-filtro.is-selected:focus {
  color: var(--cs-text-on-accent);
  background: var(--cs-secondary-600);
  border-color: var(--cs-secondary-600);
  box-shadow: none;
  transform: none;
}

/* --- Label e testo di aiuto (§15) ---
   Label 13px/600 sempre sopra il campo; help text 12px in --cs-text-secondary
   (in tema chiaro --cs-text-muted non raggiunge il contrasto AA a 12px). */
.form-label,
.sezione-form .form-label,
.barra-filtri .form-label,
.form-modale-gestionale .form-label {
  font-size: var(--cs-font-label);
  font-weight: 600;
  color: var(--cs-text);
  margin-bottom: var(--cs-space-2);
}

.form-text,
.sezione-form .form-text,
.barra-filtri .form-text {
  font-size: var(--cs-font-meta);
  color: var(--cs-text-secondary) !important;
}

/* --- Contrasto: utility di testo semantico (§3.1, §27) ---
   Il tema applica la tinta 500 (#10b981/#f59e0b/#ef4444/#0ea5e9) anche come
   testo su bianco o su sfondo soft: 2.2–3.4:1, sotto la soglia AA.
   In tema chiaro si usa la variante -strong: stessa tinta, contrasto >= 4.5:1.
   In tema scuro la tinta 500 ha già contrasto sufficiente e resta invariata. */
:root:not([data-bs-theme="dark"]) .text-success {
  color: var(--cs-success-strong) !important;
}

:root:not([data-bs-theme="dark"]) .text-warning {
  color: var(--cs-warning-strong) !important;
}

:root:not([data-bs-theme="dark"]) .text-danger {
  color: var(--cs-danger-strong) !important;
}

:root:not([data-bs-theme="dark"]) .text-info {
  color: var(--cs-info-strong) !important;
}

/* --- Componente canonico: campo di form (§15) ---
   Un solo raggio, un solo focus, una sola altezza (44px), nessuna ombra propria.
   Vale per i campi nativi e per quelli generati da librerie (autocomplete,
   choices, filtri DataTables) presenti nell'admin. */
.form-control,
.form-select,
.autoComplete_wrapper > input,
.choices__inner,
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  min-height: 2.75rem;                 /* 44px: area di tocco */
  padding: 0.625rem 0.875rem;
  font-size: var(--cs-font-body);
  color: var(--cs-text);
  background-color: var(--cs-surface);
  border: 1px solid var(--cs-border);
  border-radius: var(--cs-radius-sm);
  box-shadow: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

textarea.form-control {
  min-height: 6rem;
}

.autoComplete_wrapper > input {
  min-height: 2.75rem !important;
  height: 2.75rem !important;
  padding: 0.625rem 0.875rem !important;
  line-height: 1.5 !important;
  color: var(--cs-text) !important;
  background-color: var(--cs-surface) !important;
  background-image: none !important;
  border: 1px solid var(--cs-border) !important;
  border-radius: var(--cs-radius-sm) !important;
}

.form-control:focus,
.form-select:focus,
.autoComplete_wrapper > input:focus,
.choices__inner:focus-within,
.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus {
  border-color: rgba(var(--cs-primary-rgb), 0.42);
  box-shadow: 0 0 0 0.2rem rgba(var(--cs-primary-rgb), 0.12);
}

/* Variante compatta: unica alternativa ammessa (filtri, toolbar compatte).
   Mantiene raggio e focus canonici, riduce solo altezza e tipografia. */
.form-control-sm,
.form-select-sm {
  min-height: 2.25rem;
  padding: 0.4rem 0.7rem;
  font-size: var(--cs-font-label);
  border-radius: var(--cs-radius-sm);
}

/* --- Stati di validazione (§15): bordo + messaggio, mai solo colore --- */
.form-control.is-invalid,
.form-select.is-invalid,
.was-validated .form-control:invalid,
.was-validated .form-select:invalid {
  border-color: var(--cs-danger);
  background-image: none;
}

.form-control.is-invalid:focus,
.form-select.is-invalid:focus,
.was-validated .form-control:invalid:focus,
.was-validated .form-select:invalid:focus {
  border-color: var(--cs-danger);
  box-shadow: 0 0 0 0.2rem rgba(var(--cs-danger-rgb), 0.12);
}

.invalid-feedback {
  margin-top: 0.35rem;
  font-size: var(--cs-font-meta);
  color: var(--cs-danger-strong);
}

.was-validated .form-control:valid,
.was-validated .form-select:valid {
  border-color: var(--cs-border);
  background-image: none;
}

.ck-editor__editable,
.dropzone {
  border-radius: var(--cs-radius-sm) !important;
}

.dropzone {
  background: var(--cs-surface-soft);
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  min-height: 2.75rem;
  padding: 0.45rem 0.85rem;
}

.table > :not(caption) > * > * {
  padding-top: 0.9rem;
  padding-bottom: 0.9rem;
  border-bottom-color: var(--cs-border-soft);
}

.table thead th {
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cs-text-secondary);
  background: transparent;
}

.pagina-lista-riepilogo {
  border: 1px solid rgba(var(--cs-primary-rgb), 0.08);
}

.pagina-gestionale-compatta .pagina-lista-riepilogo {
  padding: 0.95rem 1rem !important;
  background: var(--cs-surface-soft);
  border: 1px solid var(--cs-border-soft);
  box-shadow: none;
}

.lista-autocomplete-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  z-index: 2100;
  max-height: 230px;
  overflow: auto;
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-md);
  box-shadow: var(--cs-shadow-float);
}

.lista-autocomplete-menu .list-group-item {
  border-inline: 0;
}

.lista-autocomplete-menu .list-group-item:first-child {
  border-top: 0;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info {
  color: var(--cs-text-secondary);
  font-size: var(--cs-font-label);
}

.dataTables_wrapper .dataTables_filter label,
.dataTables_wrapper .dataTables_length label {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-weight: 700;
}

.dataTables_wrapper .dataTables_filter {
  margin-bottom: 0.8rem;
}

.dataTables_wrapper .dataTables_info {
  padding-top: 1rem;
}

.dataTables_wrapper .dataTables_paginate {
  padding-top: 0.7rem;
}

.dataTables_wrapper .pagination {
  gap: 0.35rem;
  flex-wrap: wrap;
}

.dataTables_wrapper .pagination .page-link {
  border-radius: var(--cs-radius-sm);
  min-width: 2.35rem;
  text-align: center;
}

.scheda-tabella .table-responsive {
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-md);
  overflow: hidden;
  background: var(--cs-surface);
}

.scheda-tabella table.dataTable {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.scheda-tabella .table thead th {
  background: rgba(var(--cs-primary-rgb), 0.04);
}

.scheda-tabella .table tbody tr:hover {
  background: rgba(var(--cs-primary-rgb), 0.025);
}

.scheda-tabella .btn.btn-sm,
.scheda-tabella .btn-gestionale {
  border-radius: var(--cs-radius-sm);
}

.scheda-tabella .azioni-tabella {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.scheda-tabella .azioni-tabella .btn-gestionale {
  min-height: 2.1rem;
  min-width: 2.1rem;
  padding: 0.38rem;
  box-shadow: none;
}

.scheda-tabella .azioni-tabella .btn-gestionale.btn-gestionale-primario {
  color: var(--cs-primary);
  background: rgba(var(--cs-primary-rgb), 0.12);
  border-color: rgba(var(--cs-primary-rgb), 0.16);
}

.scheda-tabella .azioni-tabella .btn-gestionale.btn-gestionale-primario:hover,
.scheda-tabella .azioni-tabella .btn-gestionale.btn-gestionale-primario:focus {
  color: var(--cs-primary);
  background: rgba(var(--cs-primary-rgb), 0.16);
  border-color: rgba(var(--cs-primary-rgb), 0.22);
  box-shadow: none;
}

.scheda-tabella .azioni-tabella .btn-gestionale.btn-gestionale-accento {
  color: var(--cs-secondary);
  background: rgba(var(--cs-secondary-rgb), 0.1);
  border-color: rgba(var(--cs-secondary-rgb), 0.16);
}

.scheda-tabella .azioni-tabella .btn-gestionale.btn-gestionale-accento:hover,
.scheda-tabella .azioni-tabella .btn-gestionale.btn-gestionale-accento:focus {
  color: var(--cs-secondary);
  background: rgba(var(--cs-secondary-rgb), 0.14);
  border-color: rgba(var(--cs-secondary-rgb), 0.24);
  box-shadow: none;
}

.scheda-tabella .azioni-tabella .btn-gestionale.btn-gestionale-attenzione {
  box-shadow: none;
}

.scheda-tabella .azioni-tabella .btn-gestionale.btn-gestionale-pericolo {
  color: var(--cs-danger-strong);
  background: rgba(var(--cs-danger-rgb), 0.1);
  border-color: rgba(var(--cs-danger-rgb), 0.16);
}

.scheda-tabella .azioni-tabella .btn-gestionale.btn-gestionale-pericolo:hover,
.scheda-tabella .azioni-tabella .btn-gestionale.btn-gestionale-pericolo:focus {
  color: var(--cs-danger-strong);
  background: rgba(var(--cs-danger-rgb), 0.14);
  border-color: rgba(var(--cs-danger-rgb), 0.24);
  box-shadow: none;
}

.scheda-tabella .stato-tabella {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.36rem 0.64rem;
  border-radius: var(--cs-radius-pill);
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid transparent;
}

.scheda-tabella .badge-stato-ui {
  padding: 0.36rem 0.64rem;
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.scheda-tabella .stato-tabella--pronto {
  color: var(--cs-primary);
  background: rgba(var(--cs-primary-rgb), 0.10);
  border-color: rgba(var(--cs-primary-rgb), 0.16);
}

.scheda-tabella .stato-tabella--bozza {
  color: var(--cs-warning-strong);
  background: rgba(var(--cs-warning-rgb), 0.12);
  border-color: rgba(var(--cs-warning-rgb), 0.22);
}

.scheda-tabella .stato-tabella--trattativa {
  color: var(--cs-warning-strong);
  background: rgba(var(--cs-warning-rgb), 0.16);
  border-color: rgba(var(--cs-warning-rgb), 0.28);
}

.scheda-tabella .stato-tabella--chiuso {
  color: var(--cs-success-strong);
  background: rgba(var(--cs-success-rgb), 0.14);
  border-color: rgba(var(--cs-success-rgb), 0.24);
}

.scheda-tabella .stato-tabella--archiviato {
  color: var(--cs-neutral-600);
  background: rgba(var(--cs-neutral-rgb), 0.12);
  border-color: rgba(var(--cs-neutral-rgb), 0.2);
}

.scheda-tabella .stato-tabella--attivo {
  color: var(--cs-primary-strong);
  background: rgba(var(--cs-primary-rgb), 0.10);
  border-color: rgba(var(--cs-primary-rgb), 0.16);
}

.scheda-tabella .stato-tabella--scaduto {
  color: var(--cs-danger-strong);
  background: rgba(var(--cs-danger-rgb), 0.12);
  border-color: rgba(var(--cs-danger-rgb), 0.22);
}

/* ======= DESIGN SYSTEM ADMIN: RESPONSIVE ======= */
@media (max-width: 1199.98px) {
  .dashboard-shortcut-grid,
  .griglia-scorciatoie {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .dashboard-hero-inner,
  .sezione-hero-interna,
  .intestazione-sezione,
  .toolbar-tabella,
  .azioni-sticky {
    align-items: flex-start;
    flex-direction: column;
  }

  .dashboard-shortcut-grid,
  .griglia-scorciatoie {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .griglia-filtri {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .dashboard-source-row {
    grid-template-columns: 1fr;
    gap: 0.55rem;
  }

  .dashboard-funnel-flow {
    flex-wrap: wrap;
    min-height: 0;
  }

  .dashboard-funnel-step {
    flex-basis: calc(50% - 0.5rem);
  }

  .dashboard-funnel-arrow {
    display: none;
  }
}

@media (max-width: 575.98px) {
  .dashboard-hero,
  .dashboard-widget-card,
  .dashboard-analytics-card,
  .sezione-hero,
  .scheda-contenuto,
  .scheda-analitica,
  .sezione-form,
  .barra-filtri,
  .scheda-tabella,
  .pannello-laterale {
    padding: 1.25rem;
  }

  .dashboard-shortcut-grid,
  .griglia-scorciatoie {
    grid-template-columns: 1fr;
  }

  .dashboard-funnel-step {
    flex-basis: 100%;
  }
}




/* ======= IMMOBILI EDIT ======= */
.immobili-edit-page .immobili-edit-tab-content {
  padding-top: 0.25rem;
}

.immobili-list-page .pagina-lista-riepilogo,
.immobili-list-page .barra-filtri,
.immobili-storico-page .pagina-lista-riepilogo,
.immobili-storico-page .barra-filtri,
.trattative-list-page .pagina-lista-riepilogo,
.trattative-list-page .barra-filtri {
  padding: 1rem 1.15rem;
}

.immobili-list-page .blocco-sezione,
.immobili-storico-page .blocco-sezione,
.trattative-list-page .blocco-sezione {
  margin-bottom: 1.25rem;
}

.immobili-list-page .scheda-tabella,
.immobili-storico-page .scheda-tabella,
.trattative-list-page .scheda-tabella {
  padding-top: 1rem;
}

.immobili-list-page .immobili-list-tabstrip,
.immobili-storico-page .immobili-list-tabstrip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.immobili-list-page .immobili-list-tabstrip .nav-link,
.immobili-storico-page .immobili-list-tabstrip .nav-link {
  min-width: 12rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(var(--cs-primary-rgb), 0.12);
  border-radius: var(--cs-radius-sm);
  background: rgba(var(--cs-primary-rgb), 0.04);
  color: var(--cs-text-primary);
  box-shadow: none;
  transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.immobili-list-page .immobili-list-tabstrip .nav-link:hover,
.immobili-storico-page .immobili-list-tabstrip .nav-link:hover,
.immobili-list-page .immobili-list-tabstrip .nav-link:focus-visible,
.immobili-storico-page .immobili-list-tabstrip .nav-link:focus-visible {
  border-color: rgba(var(--cs-primary-rgb), 0.18);
  background: rgba(var(--cs-primary-rgb), 0.08);
  box-shadow: none;
  transform: none;
}

.immobili-list-page .immobili-list-tabstrip .nav-link.active,
.immobili-storico-page .immobili-list-tabstrip .nav-link.active {
  color: var(--cs-primary);
  background: rgba(var(--cs-primary-rgb), 0.12);
  border-color: rgba(var(--cs-primary-rgb), 0.18);
  box-shadow: none;
}

.immobili-list-page .immobili-list-tabstrip .nav-link span,
.immobili-storico-page .immobili-list-tabstrip .nav-link span {
  font-weight: 700;
  color: var(--cs-text-primary);
}

.immobili-list-page .immobili-list-tabstrip .nav-link small,
.immobili-storico-page .immobili-list-tabstrip .nav-link small {
  font-size: var(--cs-font-meta);
  color: var(--cs-text-secondary);
}

.immobili-list-page .immobili-list-tabmeta,
.immobili-storico-page .immobili-list-tabmeta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.immobili-edit-page .immobili-edit-riepilogo {
  border: 1px solid rgba(var(--cs-primary-rgb), 0.08);
}

.immobili-edit-page .immobili-edit-azione-media {
  margin-top: 0.95rem;
  display: flex;
  justify-content: flex-end;
}

.immobili-edit-page .immobili-edit-codice {
  align-self: flex-start;
  background: rgba(var(--cs-primary-rgb), 0.08);
  color: var(--cs-primary);
}

.immobili-edit-page .immobili-edit-qualita-card {
  padding: 1.15rem 1.25rem;
  border-radius: var(--cs-raggio-standard);
  background: linear-gradient(135deg, rgba(var(--cs-primary-rgb), 0.07) 0%, rgba(255, 255, 255, 0.92) 100%);
  border: 1px solid rgba(var(--cs-primary-rgb), 0.08);
}

.immobili-edit-page .immobili-edit-qualita-label {
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cs-text-secondary);
  margin-bottom: 0.3rem;
}

.immobili-edit-page #qualityProgress {
  height: 0.75rem;
  border-radius: var(--cs-radius-pill);
  overflow: hidden;
}

.immobili-edit-page #qualityProgress .progress-bar {
  border-radius: inherit;
}

.immobili-edit-page .immobili-edit-azioni-riepilogo {
  margin-top: 1rem;
  display: flex;
  justify-content: flex-end;
}

.immobili-edit-page .immobili-edit-copertina {
  padding: 1rem 1.05rem;
  border-radius: var(--cs-raggio-standard);
  background: var(--cs-superficie-secondaria);
  margin-bottom: 0.25rem;
}

.immobili-edit-page .immobili-edit-media {
  padding: 1.2rem 1.25rem;
  border: 1px solid var(--cs-contorno-soft);
}

.immobili-edit-page .immobili-edit-box-stato {
  padding: 1rem 1.1rem;
  border: 1px solid transparent;
}

.immobili-edit-page .immobili-edit-box-stato--info {
  background: rgba(var(--cs-info-rgb), 0.10);
  border-color: rgba(var(--cs-info-rgb), 0.28);
}

.immobili-edit-page .immobili-edit-box-stato--success {
  background: rgba(var(--cs-success-rgb), 0.10);
  border-color: rgba(var(--cs-success-rgb), 0.28);
}

.immobili-edit-page .immobili-edit-sidebar {
  position: sticky;
  top: calc(var(--vz-header-height, 70px) + 1.5rem);
}

.immobili-edit-page .immobili-edit-sidebar hr {
  border-color: var(--cs-contorno-soft);
}

.immobili-edit-page .azioni-sticky {
  margin-top: 0.25rem;
}

.immobili-edit-page .azioni-sticky .btn {
  white-space: nowrap;
}

.immobili-edit-page .azioni-primarie .btn-gestionale {
  min-width: 166px;
}

@media (max-width: 991.98px) {
  .immobili-edit-page .immobili-edit-sidebar {
    position: static;
  }

  .immobili-edit-page .azioni-primarie .btn-gestionale {
    min-width: 0;
  }
}




/* ======= CLIENTI EDIT ======= */
.clienti-edit-page .clienti-edit-riepilogo {
  border: 1px solid rgba(var(--cs-primary-rgb), 0.08);
}

.clienti-edit-page .clienti-edit-pill-switch .badge-stato-ui,
.clienti-edit-page .stato-inline {
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.clienti-edit-page .clienti-edit-pill-switch .badge-stato-ui.is-attivo,
.clienti-edit-page .stato-inline.is-attivo {
  background: rgba(var(--cs-primary-rgb), 0.14);
  color: var(--cs-primary);
}

.clienti-edit-page .clienti-edit-scelta-tipo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.clienti-edit-page .clienti-edit-tipo-card.form-check {
  margin: 0;
  padding: 1rem 1.1rem;
  padding-left: 1.1rem;
  border: 1px solid var(--cs-contorno-soft);
  border-radius: var(--cs-raggio-standard);
  background: var(--cs-superficie-secondaria);
  min-height: 100%;
  display: flex;
  align-items: flex-start;
  gap: 0.95rem;
}

.clienti-edit-page .clienti-edit-tipo-card .form-check-input {
  float: none;
  margin: 0.15rem 0 0;
  flex: 0 0 auto;
}

.clienti-edit-page .clienti-edit-tipo-card .form-check-label {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding-left: 0;
  flex: 1 1 auto;
  cursor: pointer;
}

.clienti-edit-page .clienti-edit-tipo-card .form-check-input:checked + .form-check-label .clienti-edit-tipo-titolo {
  color: var(--cs-primary);
}

.clienti-edit-page .clienti-edit-tipo-titolo {
  font-size: var(--cs-font-card);
  font-weight: 700;
  color: var(--cs-text);
}

.clienti-edit-page .clienti-edit-tipo-testo {
  font-size: var(--cs-font-label);
  line-height: 1.55;
  color: var(--cs-text-secondary);
}

.clienti-edit-page .clienti-edit-box-muted {
  padding: 1rem 1.05rem;
  border-radius: var(--cs-raggio-standard);
  background: var(--cs-superficie-secondaria);
  border: 1px solid var(--cs-contorno-soft);
}

.clienti-edit-page .azioni-sticky {
  align-items: center;
}

.clienti-edit-page .clienti-edit-btn-cta {
  min-width: 190px;
  padding-inline: 1.2rem;
  font-weight: 700;
}

.clienti-edit-page .clienti-edit-sidebar {
  position: sticky;
  top: calc(var(--vz-header-height, 70px) + 1.5rem);
}

@media (max-width: 991.98px) {
  .clienti-edit-page .clienti-edit-sidebar {
    position: static;
  }
}

@media (max-width: 767.98px) {
  .clienti-edit-page .clienti-edit-scelta-tipo {
    grid-template-columns: 1fr;
  }

  .clienti-edit-page .clienti-edit-btn-cta {
    width: 100%;
    min-width: 0;
  }
}




/* ======= PROFILO AGENZIA ======= */
/* L'asterisco obbligatorio è definito una sola volta con .campo-obbligatorio (§15). */




/* ======= DIAGNOSTICA SISTEMA ======= */
.sistema-page .scheda-kpi-operativa {
  background: var(--cs-surface);
  box-shadow: var(--cs-shadow-card);
}

.sistema-page .scheda-kpi-operativa .card-body {
  padding: 1rem 1.15rem;
}

.sistema-page .nav-sezioni-sistema .nav-link {
  display: flex;
  align-items: center;
  padding: 0.9rem 1rem;
  border-radius: var(--cs-radius-sm);
  border: 1px solid var(--cs-border);
  background: var(--cs-surface-soft);
  color: var(--cs-text);
  font-weight: 700;
  transition: all 0.2s ease;
}

.sistema-page .nav-sezioni-sistema .nav-link:hover,
.sistema-page .nav-sezioni-sistema .nav-link:focus {
  border-color: rgba(var(--cs-primary-rgb), 0.32);
  background: var(--cs-primary-soft);
  color: var(--cs-primary);
}

.sistema-page .nav-sezioni-sistema .nav-link.active {
  background: var(--cs-primary-soft);
  border-color: rgba(var(--cs-primary-rgb), 0.24);
  color: var(--cs-primary);
  box-shadow: none;
}

.sistema-page .sistema-badge-soft {
  color: var(--cs-info-strong);
  background: var(--cs-info-soft);
  border: 1px solid rgba(var(--cs-info-rgb), 0.2);
}

.variabili-sistema-page .scheda-automazione {
  padding: 1.45rem;
}

.variabili-sistema-page .sezione-form > .card-body {
  padding-left: 0;
  padding-right: 0;
}

.variabili-sistema-page .sezione-azione-sistema {
  border: 0;
  box-shadow: var(--cs-shadow-card);
}

.variabili-sistema-page .sezione-azione-sistema .intestazione-sezione {
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--cs-border-soft);
}

.variabili-sistema-page .scheda-tabella .toolbar-tabella {
  align-items: flex-start;
}

.log-page .sistema-log-user {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-weight: 600;
  color: var(--cs-testo-principale);
}

.log-page .sistema-log-data__date {
  font-weight: 700;
  color: var(--cs-testo-principale);
}

.log-page .sistema-log-data__time {
  margin-top: 0.1rem;
  font-size: var(--cs-font-meta);
  color: var(--cs-text-secondary);
}

.log-page .sistema-log-level,
.log-page .sistema-log-type {
  border-radius: var(--cs-radius-pill);
  padding: 0.42rem 0.72rem;
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.log-page .sistema-log-level--info,
.log-page .sistema-log-type--primary {
  color: var(--cs-primary-strong);
  background: var(--cs-primary-soft);
  border: 1px solid rgba(var(--cs-primary-rgb), 0.22);
}

.log-page .sistema-log-level--success,
.log-page .sistema-log-type--success {
  color: var(--cs-success-strong);
  background: var(--cs-success-soft);
  border: 1px solid rgba(var(--cs-success-rgb), 0.2);
}

.log-page .sistema-log-level--warning,
.log-page .sistema-log-type--warning {
  color: var(--cs-warning-strong);
  background: var(--cs-warning-soft);
  border: 1px solid rgba(var(--cs-warning-rgb), 0.2);
}

.log-page .sistema-log-level--danger,
.log-page .sistema-log-type--danger {
  color: var(--cs-danger-strong);
  background: var(--cs-danger-soft);
  border: 1px solid rgba(var(--cs-danger-rgb), 0.22);
}

.log-page .sistema-log-level--secondary,
.log-page .sistema-log-type--secondary,
.log-page .sistema-log-type--info {
  color: var(--cs-neutral-600);
  background: var(--cs-surface-muted);
  border: 1px solid var(--cs-border);
}

.log-page .sistema-log-type i {
  font-size: var(--cs-font-card);
}

.log-page .sistema-log-ip {
  display: inline-flex;
  padding: 0.28rem 0.55rem;
  border-radius: var(--cs-radius-xs);
  background: var(--cs-surface-muted);
  color: var(--cs-neutral-600);
}

.log-page .sistema-log-message {
  min-width: 240px;
  white-space: normal;
  color: var(--cs-testo-principale);
}

.log-page .sistema-log-col-data {
  min-width: 132px;
}

.log-page .sistema-log-col-messaggio {
  min-width: 320px;
}

.diag-summary-card {
  border-radius: var(--cs-radius-lg);
  border: 0;
  overflow: hidden;
  background: var(--cs-gradiente-primario);
  color: var(--cs-text-on-accent);
}

.diag-summary-chip,
.chip-contesto-operativo {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .8rem;
  border-radius: var(--cs-radius-pill);
  background: rgba(255, 255, 255, .12);
  color: var(--cs-text-on-accent);
  font-size: var(--cs-font-label);
  font-weight: 600;
}

.diagnostica-sistema-page .scheda-kpi-operativa {
  min-height: auto;
}

.diagnostica-sistema-page .scheda-kpi-operativa .card-body {
  padding: 1rem 1.15rem;
}

.diagnostica-sistema-page .scheda-kpi-operativa .valore-kpi-operativo {
  margin-bottom: 0.3rem;
}

.valore-kpi-operativo {
  font-size: var(--cs-font-display);
  font-weight: 700;
  line-height: 1;
}

.diag-table td,
.diag-table th,
.tabella-tecnica td,
.tabella-tecnica th {
  vertical-align: top;
}

.diag-table td:nth-child(1) {
  min-width: 210px;
}

.diag-table td:nth-child(2) {
  min-width: 120px;
  font-weight: 600;
}

.nota-kpi-operativa {
  color: var(--cs-text-secondary);
  font-size: var(--cs-font-label);
}

@media (max-width: 991.98px) {
  .diag-summary-card .d-flex {
    flex-direction: column;
    align-items: flex-start !important;
  }
}




/* ======= CLIENTI SCHEDA ======= */
#clienteActivitiesTable,
#clienteHistoryTable {
  table-layout: fixed;
}

#clienteActivitiesTable th,
#clienteActivitiesTable td,
#clienteHistoryTable th,
#clienteHistoryTable td {
  vertical-align: top;
}

.cliente-activity-type-col {
  width: 98px;
  white-space: nowrap;
  text-align: center;
}

.cliente-activity-date-col {
  width: 170px;
  white-space: nowrap;
}

.cliente-activity-details-col {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.cliente-activity-actions-col {
  width: 110px;
  white-space: nowrap;
}

.cliente-activity-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.35rem;
  height: 3.35rem;
  border-radius: var(--cs-radius-pill);
  padding: 0;
  border: 0;
  box-shadow: var(--cs-shadow-card);
  font-size: var(--cs-font-page);
}

.cliente-activity-badge i {
  line-height: 1;
  filter: drop-shadow(0 2px 6px rgba(15, 23, 42, 0.14));
}

.cliente-activity-badge--generic {
  color: var(--cs-text-on-accent);
  background: var(--cs-neutral-500);
}

.cliente-activity-badge--call {
  color: var(--cs-text-on-accent);
  background: var(--cs-primary);
}

.cliente-activity-badge--appointment {
  color: var(--cs-text-on-accent);
  background: var(--cs-warning);
}

.cliente-activity-badge--note {
  color: var(--cs-text-on-accent);
  background: var(--cs-secondary);
}

.cliente-activity-badge--client {
  color: var(--cs-text-on-accent);
  background: var(--cs-domain-teal);
}

.cliente-activity-badge--deal {
  color: var(--cs-text-on-accent);
  background: var(--cs-success);
}

.cliente-activity-badge--archive {
  color: var(--cs-text-on-accent);
  background: var(--cs-domain-terracotta);
}

.cliente-activity-badge--delete {
  color: var(--cs-text-on-accent);
  background: var(--cs-danger);
}

.cliente-activity-badge--assign {
  color: var(--cs-text-on-accent);
  background: var(--cs-info);
}

.cliente-activity-badge--mortgage {
  color: var(--cs-text-on-accent);
  background: var(--cs-secondary);
}

.cs-client-hero-avatar-shell {
  position: relative;
  width: 170px;
  padding-bottom: 0;
}

.cs-client-hero-avatar {
  width: 150px;
  height: 150px;
  border-radius: var(--cs-radius-xl);
  border: 6px solid var(--cs-text-on-accent);
  overflow: hidden;
  background: var(--cs-surface);
  box-shadow: var(--cs-shadow-float);
}

.cs-client-hero-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
}

.cs-client-pill {
  position: absolute;
  bottom: -10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  padding: .3rem .62rem;
  border-radius: var(--cs-radius-pill);
  border: 3px solid var(--cs-text-on-accent);
  color: var(--cs-text-on-accent);
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  box-shadow: var(--cs-shadow-card);
  line-height: 1;
  z-index: 2;
}

.cs-client-pill--buyer {
  right: 10px;
  background: var(--cs-domain-terracotta);
}

.cs-client-pill--seller {
  left: -8px;
  background: var(--cs-domain-teal);
}

.clienti-scheda-page .clienti-scheda-hero {
  margin-bottom: 1.75rem;
}

.clienti-scheda-page .clienti-scheda-tab-bar {
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

.clienti-scheda-page .profile-nav {
  gap: 0.75rem;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.clienti-scheda-page .profile-nav .nav-link,
.clienti-scheda-page .profile-nav .show > .nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0.6rem 1rem;
  border-radius: var(--cs-radius-sm);
  color: var(--cs-text-secondary) !important;
  background: var(--cs-surface-soft) !important;
  border: 1px solid var(--cs-border-soft) !important;
  font-weight: 600;
  line-height: 1.2;
  box-shadow: none !important;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.clienti-scheda-page .profile-nav .nav-link span {
  color: inherit;
}

.clienti-scheda-page .profile-nav .nav-link::after {
  display: none !important;
}

.clienti-scheda-page .profile-nav .nav-link:hover,
.clienti-scheda-page .profile-nav .nav-link:focus-visible {
  color: var(--cs-text) !important;
  background: rgba(var(--cs-primary-rgb), 0.08) !important;
  border-color: rgba(var(--cs-primary-rgb), 0.18) !important;
}

.clienti-scheda-page .profile-nav .nav-link.active,
.clienti-scheda-page .profile-nav .show > .nav-link,
.clienti-scheda-page .nav-pills .nav-link.active,
.clienti-scheda-page .nav-pills .show > .nav-link {
  color: var(--cs-text-on-accent) !important;
  background: var(--cs-primary) !important;
  border-color: var(--cs-primary) !important;
  box-shadow: 0 10px 22px rgba(var(--cs-primary-rgb), 0.18) !important;
}

.clienti-scheda-page .profile-nav .nav-link.active:hover,
.clienti-scheda-page .profile-nav .nav-link.active:focus-visible,
.clienti-scheda-page .profile-nav .show > .nav-link:hover,
.clienti-scheda-page .profile-nav .show > .nav-link:focus-visible {
  color: var(--cs-text-on-accent) !important;
  background: var(--cs-primary-strong) !important;
  border-color: var(--cs-primary-strong) !important;
}

.clienti-scheda-page .clienti-scheda-lead-status {
  align-items: stretch;
}

.clienti-scheda-page .clienti-scheda-lead-status .btn-gestionale-filtro {
  min-height: 2.5rem;
}

.clienti-scheda-page .clienti-scheda-tab-content > .tab-pane {
  display: none;
}

.clienti-scheda-page .clienti-scheda-tab-content > .tab-pane.active,
.clienti-scheda-page .clienti-scheda-tab-content > .tab-pane.show {
  display: block;
}

.clienti-scheda-page #tab-attivita .scheda-riepilogo,
.clienti-scheda-page #tab-anagrafica .sezione-form,
.clienti-scheda-page #tab-gestione .sezione-form,
.clienti-scheda-page #tab-mutuo .sezione-form,
.clienti-scheda-page #tab-preferenze .sezione-form,
.clienti-scheda-page #tab-storico .scheda-tabella,
.clienti-scheda-page #tab-trattative .scheda-tabella,
.clienti-scheda-page #tab-proprieta .scheda-tabella,
.clienti-scheda-page #tab-matching .scheda-tabella {
  height: 100%;
}

.clienti-scheda-page .clienti-scheda-eventi .btn-gestionale {
  min-height: 120px;
}

.clienti-scheda-page .clienti-scheda-assegnazione {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.clienti-scheda-page .clienti-scheda-assegnazione-blocco {
  padding: 1rem 1.05rem;
  border-radius: var(--cs-radius-sm);
  background: var(--cs-surface-soft);
  border: 1px solid var(--cs-border-soft);
}

.clienti-scheda-page .clienti-scheda-assegnazione-blocco.blocco-dettaglio-operativo,
.clienti-scheda-page .clienti-scheda-assegnazione-blocco.blocco-note-operativo {
  padding: inherit;
  border: 0;
  background: transparent;
}

.clienti-scheda-page .clienti-scheda-assegnazioni-lista {
  display: grid;
  gap: 0.85rem;
}

.clienti-scheda-page .clienti-scheda-assegnazione-item {
  padding: 0.95rem 1rem;
  border-radius: var(--cs-radius-sm);
  background: var(--cs-surface-soft);
  border: 1px solid var(--cs-border-soft);
}

.clienti-scheda-page .clienti-scheda-assegnazione-item-data {
  font-size: var(--cs-font-meta);
  font-weight: 700;
  color: var(--cs-text-secondary);
  margin-bottom: 0.35rem;
}

.clienti-scheda-page .clienti-scheda-assegnazione-item-titolo {
  font-size: var(--cs-font-card);
  font-weight: 800;
  color: var(--cs-text);
  margin-bottom: 0.2rem;
}

.clienti-scheda-page .clienti-scheda-assegnazione-item-testo {
  font-size: var(--cs-font-label);
  line-height: 1.55;
  color: var(--cs-text-secondary);
}

.clienti-scheda-page #tab-attivita > .row,
.clienti-scheda-page #tab-gestione > .row,
.clienti-scheda-page #tab-mutuo > .row {
  --vz-gutter-y: 1.5rem;
  align-items: flex-start;
}

.clienti-scheda-page #tab-attivita .clienti-scheda-eventi {
  margin-bottom: 1.5rem;
}

.clienti-scheda-page .card-header {
  border-bottom-color: var(--cs-border-soft);
}

.clienti-scheda-page #tab-attivita .table-borderless th,
.clienti-scheda-page #tab-mutuo .table-borderless th,
.clienti-scheda-page #tab-gestione .table-borderless th {
  color: var(--cs-text);
  font-weight: 600;
}

.clienti-scheda-page #tab-attivita .table-borderless td,
.clienti-scheda-page #tab-mutuo .table-borderless td,
.clienti-scheda-page #tab-gestione .table-borderless td {
  color: var(--cs-text-secondary);
}

.clienti-scheda-page #tab-attivita .scheda-riepilogo td,
.clienti-scheda-page #tab-attivita .scheda-riepilogo th {
  color: var(--cs-text);
}

.clienti-scheda-page .clienti-scheda-scelta-tipo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.clienti-scheda-page .clienti-scheda-tipo-card.form-check {
  margin: 0;
  padding: 1rem 1.1rem;
  padding-left: 1.1rem;
  border: 1px solid var(--cs-contorno-soft);
  border-radius: var(--cs-raggio-standard);
  background: var(--cs-superficie-secondaria);
  min-height: 100%;
  display: flex;
  align-items: flex-start;
  gap: 0.95rem;
}

.clienti-scheda-page .clienti-scheda-tipo-card .form-check-input {
  float: none;
  margin: 0.15rem 0 0;
  flex: 0 0 auto;
}

.clienti-scheda-page .clienti-scheda-tipo-card .form-check-label {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding-left: 0;
  flex: 1 1 auto;
  cursor: pointer;
}

.clienti-scheda-page .clienti-scheda-tipo-card .form-check-input:checked + .form-check-label .clienti-scheda-tipo-titolo {
  color: var(--cs-primary);
}

.clienti-scheda-page .clienti-scheda-tipo-titolo {
  font-size: var(--cs-font-card);
  font-weight: 700;
  color: var(--cs-text);
}

.clienti-scheda-page .clienti-scheda-tipo-testo {
  font-size: var(--cs-font-label);
  line-height: 1.55;
  color: var(--cs-text-secondary);
}

.clienti-scheda-page #tab-matching .toolbar-tabella,
.clienti-scheda-page #tab-proprieta .intestazione-sezione,
.clienti-scheda-page #tab-anagrafica .intestazione-sezione,
.clienti-scheda-page #tab-gestione .intestazione-sezione,
.clienti-scheda-page #tab-mutuo .intestazione-sezione,
.clienti-scheda-page #tab-preferenze .intestazione-sezione {
  padding-bottom: 0;
}

.marketing-statistiche-page .scheda-riepilogo {
  height: 100%;
}

.marketing-statistiche-page .scheda-tabella .table a {
  font-weight: 600;
}

.marketing-statistiche-page .scheda-tabella .badge {
  border-radius: var(--cs-radius-pill);
  padding: 0.42rem 0.7rem;
}

@media (max-width: 575.98px) {
  .cs-client-hero-avatar-shell {
    width: 150px;
  }

  .cs-client-hero-avatar {
    width: 132px;
    height: 132px;
    border-radius: var(--cs-radius-xl);
    border-width: 5px;
  }

  .cs-client-pill {
    bottom: -8px;
    min-width: 64px;
    padding: .26rem .52rem;
    font-size: var(--cs-font-meta);
  }

  .cs-client-pill--buyer {
    right: -6px;
  }

  .cs-client-pill--seller {
    left: -6px;
  }

  .clienti-scheda-page .clienti-scheda-tab-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .clienti-scheda-page .clienti-scheda-scelta-tipo {
    grid-template-columns: 1fr;
  }

  .clienti-scheda-page .profile-nav .nav-link {
    justify-content: center;
  }
}




/* ======= IMMOBILI EDIT ======= */
.dropzone .dz-preview .dz-image {
  width: 120px;
  height: 120px;
}

.dropzone .dz-preview .dz-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.dropzone .dz-remove {
  color: var(--cs-danger);
  font-weight: 500;
}

.dropzone .dz-remove:hover {
  color: var(--cs-danger-strong);
}

.dropzone .dz-preview .dz-remove {
  display: inline-flex;
  align-items: center;
}

.dropzone .dz-preview .dz-remove::before {
  content: "\f01b4";
  font-family: "Material Design Icons";
  font-size: var(--cs-font-card);
  line-height: 1;
  display: inline-block;
  margin-right: .25rem;
}




/* ======= MARKETING CARTELLI ======= */
.marketing-cartelli-card .badge-soft-ok {
  background: var(--cs-success-soft);
  color: var(--cs-success-strong);
}

.marketing-cartelli-card .badge-soft-ko {
  background: var(--cs-danger-soft);
  color: var(--cs-danger-strong);
}

.marketing-cartelli-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}

.marketing-cartelli-pre {
  white-space: pre-wrap;
  word-break: break-word;
}

.marketing-cartelli-template-card {
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-md);
  background: var(--cs-surface);
  padding: 1rem;
  height: 100%;
}

.marketing-cartelli-hero {
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-md);
  padding: 1rem;
  background: linear-gradient(135deg, rgba(var(--cs-primary-rgb), .06), rgba(var(--cs-domain-terracotta-rgb), .08));
}

.marketing-cartelli-cover {
  width: 100%;
  max-height: 220px;
  object-fit: cover;
  border-radius: var(--cs-radius-md);
  border: 1px solid var(--cs-border-soft);
}

.marketing-cartelli-kpi {
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-md);
  background: var(--cs-surface);
  padding: .875rem;
  height: 100%;
}

.marketing-cartelli-feature-list {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.marketing-cartelli-feature {
  background: var(--cs-surface-muted);
  border-radius: var(--cs-radius-pill);
  padding: .35rem .75rem;
  font-size: var(--cs-font-body);
}

.marketing-cartelli-select .choices__inner {
  min-height: 38px;
  border-radius: var(--cs-radius-sm);
}

.marketing-cartelli-meta-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.marketing-cartelli-meta-label {
  display: block;
  font-size: var(--cs-font-meta);
  text-transform: uppercase;
  color: var(--cs-text-secondary);
  margin-bottom: .2rem;
}

.marketing-cartelli-hidden {
  display: none !important;
}

.marketing-cartelli-template-card.is-disabled {
  background: var(--cs-surface-soft);
  opacity: .78;
}

.marketing-cartelli-template-card.is-active {
  border-color: rgba(var(--cs-primary-rgb), 0.22);
  background: rgba(var(--cs-primary-rgb), 0.04);
}

.marketing-cartelli-disabled-note {
  color: var(--cs-text-secondary);
  font-size: var(--cs-font-label);
}




/* ======= DATA TABLE RESPONSIVE TOGGLE ======= */
table.dataTable.dtr-column.collapsed > tbody > tr > td.dtr-control,
table.dataTable.dtr-column.collapsed > tbody > tr > th.dtr-control,
table.dataTable.dtr-column.collapsed > tbody > tr > td.control,
table.dataTable.dtr-column.collapsed > tbody > tr > th.control {
  position: relative;
  padding-left: 3rem !important;
}

table.dataTable.dtr-column.collapsed > tbody > tr > td.dtr-control:before,
table.dataTable.dtr-column.collapsed > tbody > tr > th.dtr-control:before,
table.dataTable.dtr-column.collapsed > tbody > tr > td.control:before,
table.dataTable.dtr-column.collapsed > tbody > tr > th.control:before {
  content: "+";
  opacity: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  left: 0.9rem;
  transform: translateY(-50%);
  width: 1.45rem;
  height: 1.45rem;
  margin: 0 !important;
  border: 1px solid rgba(var(--cs-primary-rgb), 0.18);
  border-radius: var(--cs-radius-pill);
  background: rgba(var(--cs-primary-rgb), 0.10);
  box-shadow: none;
  color: var(--cs-primary);
  font-weight: 800;
  line-height: 1;
}

table.dataTable.dtr-column.collapsed > tbody > tr.parent > td.dtr-control:before,
table.dataTable.dtr-column.collapsed > tbody > tr.parent > th.dtr-control:before,
table.dataTable.dtr-column.collapsed > tbody > tr.parent > td.control:before,
table.dataTable.dtr-column.collapsed > tbody > tr.parent > th.control:before {
  content: "−";
  background: rgba(var(--cs-primary-rgb), 0.18);
  border-color: rgba(var(--cs-primary-rgb), 0.24);
  color: var(--cs-primary);
}

table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
table.dataTable.dtr-column > tbody > tr > td.control:before,
table.dataTable.dtr-column > tbody > tr > th.control:before {
  display: none;
  content: none !important;
}

table.dataTable.dtr-column:not(.collapsed) > tbody > tr > td.dtr-control,
table.dataTable.dtr-column:not(.collapsed) > tbody > tr > th.dtr-control,
table.dataTable.dtr-column:not(.collapsed) > tbody > tr > td.control,
table.dataTable.dtr-column:not(.collapsed) > tbody > tr > th.control {
  padding-left: 0.75rem !important;
  cursor: default;
}

table.dataTable.dtr-column:not(.collapsed) > tbody > tr > td.dtr-control:before,
table.dataTable.dtr-column:not(.collapsed) > tbody > tr > th.dtr-control:before,
table.dataTable.dtr-column:not(.collapsed) > tbody > tr > td.control:before,
table.dataTable.dtr-column:not(.collapsed) > tbody > tr > th.control:before {
  display: none !important;
  content: none !important;
}

table.dataTable > tbody > tr.child ul.dtr-details {
  width: 100%;
}

table.dataTable > tbody > tr.child ul.dtr-details > li {
  padding: 0.65rem 0;
  border-bottom-color: var(--cs-border-soft);
}

.immobili-list-page table.dataTable.dtr-column > tbody > tr > td.dtr-control,
.immobili-list-page table.dataTable.dtr-column > tbody > tr > th.dtr-control,
.immobili-storico-page table.dataTable.dtr-column > tbody > tr > td.dtr-control,
.immobili-storico-page table.dataTable.dtr-column > tbody > tr > th.dtr-control,
.clienti-buyer-list-page table.dataTable.dtr-column > tbody > tr > td.dtr-control,
.clienti-buyer-list-page table.dataTable.dtr-column > tbody > tr > th.dtr-control,
.clienti-seller-list-page table.dataTable.dtr-column > tbody > tr > td.dtr-control,
.clienti-seller-list-page table.dataTable.dtr-column > tbody > tr > th.dtr-control,
.clienti-archiviati-list-page table.dataTable.dtr-column > tbody > tr > td.dtr-control,
.clienti-archiviati-list-page table.dataTable.dtr-column > tbody > tr > th.dtr-control {
  cursor: default !important;
}

.immobili-list-page table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
.immobili-list-page table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
.immobili-storico-page table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
.immobili-storico-page table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
.clienti-buyer-list-page table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
.clienti-buyer-list-page table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
.clienti-seller-list-page table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
.clienti-seller-list-page table.dataTable.dtr-column > tbody > tr > th.dtr-control:before,
.clienti-archiviati-list-page table.dataTable.dtr-column > tbody > tr > td.dtr-control:before,
.clienti-archiviati-list-page table.dataTable.dtr-column > tbody > tr > th.dtr-control:before {
  display: none !important;
  content: none !important;
}

.immobili-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > td.dtr-control,
.immobili-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > th.dtr-control,
.immobili-storico-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > td.dtr-control,
.immobili-storico-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > th.dtr-control,
.clienti-buyer-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > td.dtr-control,
.clienti-buyer-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > th.dtr-control,
.clienti-seller-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > td.dtr-control,
.clienti-seller-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > th.dtr-control,
.clienti-archiviati-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > td.dtr-control,
.clienti-archiviati-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > th.dtr-control {
  cursor: pointer !important;
}

.immobili-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > td.dtr-control:before,
.immobili-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > th.dtr-control:before,
.immobili-storico-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > td.dtr-control:before,
.immobili-storico-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > th.dtr-control:before,
.clienti-buyer-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > td.dtr-control:before,
.clienti-buyer-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > th.dtr-control:before,
.clienti-seller-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > td.dtr-control:before,
.clienti-seller-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > th.dtr-control:before,
.clienti-archiviati-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > td.dtr-control:before,
.clienti-archiviati-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr > th.dtr-control:before {
  content: "+" !important;
  display: inline-flex !important;
}

.immobili-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr.parent > td.dtr-control:before,
.immobili-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr.parent > th.dtr-control:before,
.immobili-storico-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr.parent > td.dtr-control:before,
.immobili-storico-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr.parent > th.dtr-control:before,
.clienti-buyer-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr.parent > td.dtr-control:before,
.clienti-buyer-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr.parent > th.dtr-control:before,
.clienti-seller-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr.parent > td.dtr-control:before,
.clienti-seller-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr.parent > th.dtr-control:before,
.clienti-archiviati-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr.parent > td.dtr-control:before,
.clienti-archiviati-list-page table.dataTable.dtr-column.cs-responsive-details-active.collapsed > tbody > tr.parent > th.dtr-control:before {
  content: "−" !important;
}

table.dataTable > tbody > tr.child span.dtr-title {
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cs-text-secondary);
}

table.dataTable > tbody > tr.child span.dtr-data {
  color: var(--cs-text);
}
/* ======= ERROR 404 ======= */
.error-hero {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
}




/* ======= AGENDA ======= */
.fc-event {
  cursor: pointer;
}

.fc-event-title {
  font-weight: 500;
}




/* ======= TEAM ======= */
.team-profile-img {
  display: flex;
  align-items: center;
  gap: 12px;
}

.team-profile-img .avatar-lg {
  width: 86px;
  height: 86px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.team-profile-img .avatar-lg.img-thumbnail {
  padding: 0;
  border: none;
  background: transparent;
}

.team-profile-img .member-img {
  width: 86px;
  height: 86px;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.team-profile-img .avatar-title {
  width: 86px;
  height: 86px;
  line-height: 86px;
  text-align: center;
}

.role-radio-group .form-check-label {
  opacity: 0.5;
  transition: opacity 0.15s ease-in-out;
}

.role-radio-group .form-check-input:checked + .form-check-label {
  opacity: 1;
}

/* ======= FASE 7 - FORM SECONDARI E CAMPI SPECIALI ======= */
.campo-colore-gestionale {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-height: 3.25rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-md);
  background: var(--cs-surface);
}

.campo-colore-gestionale .form-control-color {
  width: 3rem;
  min-width: 3rem;
  height: 2.1rem;
  padding: 0.15rem;
  border-radius: var(--cs-radius-pill);
  border: 1px solid rgba(var(--cs-primary-rgb), 0.16);
  box-shadow: none;
}

.campo-colore-codice {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.25rem 0.65rem;
  border-radius: var(--cs-radius-pill);
  background: rgba(var(--cs-primary-rgb), 0.08);
  color: var(--cs-primary);
  font-size: var(--cs-font-label);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.upload-gestionale {
  padding: 0.5rem;
  border: 1px dashed rgba(var(--cs-primary-rgb), 0.24);
  border-radius: var(--cs-radius-lg);
  background: var(--cs-surface-soft);
}

.upload-gestionale .form-control[type="file"] {
  padding: 0.75rem 0.95rem;
  border-style: solid;
  background: var(--cs-surface);
}

.upload-gestionale .form-control[type="file"]::file-selector-button {
  margin-right: 0.8rem;
  padding: 0.55rem 0.85rem;
  border: 0;
  border-radius: var(--cs-radius-pill);
  background: rgba(var(--cs-primary-rgb), 0.12);
  color: var(--cs-primary);
  font-weight: 700;
}

.griglia-opzioni {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.opzione-card {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 3rem;
  margin: 0;
  padding: 0.8rem 1rem;
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-lg);
  background: var(--cs-surface);
}

.opzione-card .form-check-input {
  float: none;
  margin: 0;
  flex-shrink: 0;
}

.opzione-card .form-check-label {
  margin: 0;
  font-weight: 600;
  color: var(--cs-text);
}

.interruttore-gestionale {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  min-height: 3.25rem;
  margin: 0;
  padding: 0.85rem 1rem;
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-lg);
  background: var(--cs-surface);
}

.interruttore-gestionale .form-check-input {
  float: none;
  margin: 0;
}

.interruttore-gestionale .form-check-label {
  margin: 0;
  font-weight: 600;
  color: var(--cs-text);
}

.modal-gestionale .modal-dialog.modal-dialog-form {
  max-width: 56rem;
}

.modal-gestionale .modal-dialog.modal-dialog-compact {
  max-width: 32rem;
}

.modal-gestionale .modal-content {
  border: 0;
  border-radius: var(--cs-radius-xl);
  box-shadow: var(--cs-shadow-float);
  overflow: hidden;
  background: var(--cs-surface);
}

.modal-gestionale .modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.25rem;
  border-bottom: 1px solid var(--cs-border-soft);
  background: var(--cs-surface);
}

.modal-gestionale .modal-title {
  margin: 0;
  font-size: var(--cs-font-section);
  font-weight: 700;
  color: var(--cs-text);
}

.modal-gestionale .modal-description {
  margin: 0.35rem 0 0;
  font-size: var(--cs-font-body);
  line-height: 1.55;
  color: var(--cs-text-secondary);
}

.modal-gestionale .modal-body {
  padding: 1.35rem;
  background: var(--cs-surface);
}

.modal-gestionale .modal-footer {
  padding: 1rem 1.25rem 1.2rem;
  border-top: 1px solid var(--cs-border-soft);
  background: var(--cs-surface);
}

.modal-gestionale .modal-section {
  padding: 1rem 1.05rem;
  border: 0;
  border-radius: var(--cs-radius-md);
  background: var(--cs-surface-soft);
}

.modal-gestionale .modal-section + .modal-section {
  margin-top: 1rem;
}

.modal-gestionale .modal-section-heading {
  margin-bottom: 0.85rem;
}

.modal-gestionale .modal-section-heading h6 {
  margin: 0;
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cs-text);
}

.modal-gestionale .modal-section-heading p {
  margin: 0.3rem 0 0;
  font-size: var(--cs-font-label);
  line-height: 1.5;
  color: var(--cs-text-secondary);
}

.modal-gestionale .modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
}

.modal-gestionale .modale-cover-gestionale {
  display: none;
}

.swal2-popup.swal2-modale-gestionale {
  width: min(56rem, calc(100vw - 2rem)) !important;
  padding: 1.25rem !important;
  border-radius: var(--cs-radius-xl) !important;
  border: 0 !important;
  box-shadow: var(--cs-shadow-float) !important;
  background: var(--cs-surface) !important;
}

.swal2-title.swal2-title-gestionale {
  padding: 0 !important;
  margin: 0 0 0.35rem !important;
  font-size: var(--cs-font-section) !important;
  font-weight: 700 !important;
  color: var(--cs-text) !important;
}

.swal2-html-container.swal2-html-container-gestionale {
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--cs-text) !important;
}

.swal2-actions.swal2-actions-gestionale {
  gap: 0.75rem;
  width: 100%;
  margin: 1.2rem 0 0 !important;
  padding: 1rem 0 0;
  justify-content: flex-end;
  border-top: 1px solid var(--cs-border-soft);
}

.swal2-popup.swal2-modale-gestionale .swal2-close {
  color: var(--cs-text-secondary);
}

.swal2-popup.swal2-modale-gestionale .swal2-validation-message {
  margin-top: 0.85rem;
  border-radius: var(--cs-radius-md);
  background: var(--cs-danger-soft);
  color: var(--cs-danger-strong);
  font-weight: 600;
}

.modal-gestionale .btn-gestionale,
.swal2-popup.swal2-modale-gestionale .btn-gestionale {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.85rem;
  padding: 0.72rem 1.15rem;
  border-radius: var(--cs-radius-sm);
  border: 1px solid transparent;
  font-weight: 700;
  line-height: 1.15;
  transition: transform 0.16s ease, box-shadow 0.18s ease, background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.modal-gestionale .btn-gestionale:hover,
.modal-gestionale .btn-gestionale:focus,
.swal2-popup.swal2-modale-gestionale .btn-gestionale:hover,
.swal2-popup.swal2-modale-gestionale .btn-gestionale:focus {
  transform: translateY(-1px);
}

.modal-gestionale .btn-gestionale:focus-visible,
.swal2-popup.swal2-modale-gestionale .btn-gestionale:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(var(--cs-primary-rgb), 0.14);
}

.modal-gestionale .btn-gestionale-compatto,
.swal2-popup.swal2-modale-gestionale .btn-gestionale-compatto {
  min-height: 2.35rem;
  padding: 0.5rem 0.9rem;
  border-radius: var(--cs-radius-sm);
  font-size: var(--cs-font-body);
}

.modal-gestionale .btn-gestionale-primario,
.swal2-popup.swal2-modale-gestionale .btn-gestionale-primario {
  color: var(--cs-text-on-accent);
  background: var(--cs-primary);
  border-color: var(--cs-primary);
  box-shadow: 0 10px 22px rgba(var(--cs-primary-rgb), 0.20);
}

.modal-gestionale .btn-gestionale-primario:hover,
.modal-gestionale .btn-gestionale-primario:focus,
.swal2-popup.swal2-modale-gestionale .btn-gestionale-primario:hover,
.swal2-popup.swal2-modale-gestionale .btn-gestionale-primario:focus {
  color: var(--cs-text-on-accent);
  background: var(--cs-primary);
  border-color: var(--cs-primary);
  box-shadow: 0 14px 24px rgba(var(--cs-primary-rgb), 0.24);
}

.modal-gestionale .btn-gestionale-secondario,
.swal2-popup.swal2-modale-gestionale .btn-gestionale-secondario {
  color: var(--cs-text);
  background: var(--cs-surface);
  border-color: var(--cs-border-soft);
  box-shadow: 0 8px 18px rgba(25, 27, 36, 0.06);
}

.modal-gestionale .btn-gestionale-secondario:hover,
.modal-gestionale .btn-gestionale-secondario:focus,
.swal2-popup.swal2-modale-gestionale .btn-gestionale-secondario:hover,
.swal2-popup.swal2-modale-gestionale .btn-gestionale-secondario:focus {
  color: var(--cs-text);
  background: var(--cs-surface);
  border-color: rgba(var(--cs-primary-rgb), 0.22);
  box-shadow: 0 12px 22px rgba(25, 27, 36, 0.08);
}

.modal-gestionale .btn-gestionale-pericolo,
.swal2-popup.swal2-modale-gestionale .btn-gestionale-pericolo {
  color: var(--cs-text-on-accent);
  background: var(--cs-danger);
  border-color: var(--cs-danger);
  box-shadow: 0 10px 22px rgba(var(--cs-danger-rgb), 0.18);
}

.modal-gestionale .btn-gestionale-pericolo:hover,
.modal-gestionale .btn-gestionale-pericolo:focus,
.swal2-popup.swal2-modale-gestionale .btn-gestionale-pericolo:hover,
.swal2-popup.swal2-modale-gestionale .btn-gestionale-pericolo:focus {
  color: var(--cs-text-on-accent);
  background: var(--cs-danger);
  border-color: var(--cs-danger);
  box-shadow: 0 14px 24px rgba(var(--cs-danger-rgb), 0.22);
}

.form-modale-gestionale {
  text-align: left;
}

.form-modale-gestionale .sezione-modale-gestionale {
  padding: 1rem 1.05rem;
  border: 0;
  border-radius: var(--cs-radius-md);
  background: var(--cs-surface-soft);
}

.form-modale-gestionale .sezione-modale-gestionale + .sezione-modale-gestionale {
  margin-top: 1rem;
}

.form-modale-gestionale .sezione-modale-gestionale__eyebrow {
  display: block;
  margin-bottom: 0.2rem;
  font-size: var(--cs-font-meta);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cs-text-secondary);
}

.form-modale-gestionale .sezione-modale-gestionale__title {
  margin: 0 0 0.8rem;
  font-size: var(--cs-font-section);
  font-weight: 700;
  color: var(--cs-text);
}

.form-modale-gestionale .sezione-modale-gestionale__hint {
  margin-top: 0.75rem;
  padding: 0.75rem 0.9rem;
  border-radius: var(--cs-radius-md);
  background: rgba(var(--cs-primary-rgb), 0.07);
  color: var(--cs-text-secondary);
  font-size: var(--cs-font-label);
  line-height: 1.5;
}

.form-modale-gestionale .lista-autocomplete-modale {
  display: none;
  z-index: 2100;
  max-height: 230px;
  overflow: auto;
  border-radius: var(--cs-radius-md);
  border: 1px solid var(--cs-border-soft);
  box-shadow: var(--cs-shadow-float);
}

.form-modale-gestionale .lista-autocomplete-modale .list-group-item {
  border-color: var(--cs-border-soft);
}

.agency-profile-page .agency-profile-progress {
  height: 0.7rem;
  border-radius: var(--cs-radius-pill);
  overflow: hidden;
}

.agency-profile-page .preview-logo-gestionale {
  max-height: 8.5rem;
  width: 100%;
  object-fit: contain;
}

.agency-profile-page .agency-profile-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-self: flex-start;
}

.agency-profile-page .agency-profile-sidebar > * {
  margin: 0;
}

.agency-profile-page .agency-profile-main .sezione-form,
.agency-profile-page .agency-profile-sidebar .sezione-form,
.agency-profile-page .agency-profile-sidebar .scheda-riepilogo,
.agency-profile-page .agency-profile-preview-card {
  height: auto;
}

.agency-profile-page .agency-profile-preview-card {
  padding: 1.25rem;
}

.agency-profile-page .agency-profile-preview-card .card-body,
.agency-profile-page .agency-profile-sidebar .sezione-form .card-body {
  padding: 0;
}

.agency-profile-page .azioni-sticky {
  position: static;
  margin-top: 0.5rem;
}

.agency-profile-page .stato-inline {
  flex-wrap: wrap;
}

@media (max-width: 1199.98px) {
  .agency-profile-page .agency-profile-sidebar {
    align-self: auto;
  }
}

.team-page #team-member-list .team-box,
.team-page #team-member-list .team-cover,
.team-page #team-member-list .card-body {
  border-radius: var(--cs-radius-lg);
}

.team-page #team-member-list .team-box {
  border: 0;
  box-shadow: var(--cs-shadow-card);
}

.team-page #team-member-list .team-content .member-name h5 {
  color: var(--cs-text);
  font-weight: 700;
}

.team-page .filter-button.active {
  background: var(--cs-primary-soft);
  border-color: var(--cs-primary);
  color: var(--cs-primary);
}

.marketing-cartelli-page .marketing-cartelli-card {
  border: 0;
  border-radius: var(--cs-radius-lg);
  box-shadow: var(--cs-shadow-card);
}

.marketing-cartelli-page .marketing-cartelli-card .card-header {
  border-bottom: 1px solid var(--cs-border-soft);
  background: var(--cs-surface-soft);
}

.marketing-cartelli-page .marketing-cartelli-template-card {
  border-radius: var(--cs-radius-lg);
}

.marketing-cartelli-page .marketing-cartelli-select .choices__inner {
  min-height: 3rem;
}

.profile-page #personalDetails .sezione-form,
.profile-page #changePassword .sezione-form,
.profile-page #overview-tab .sezione-form,
.profile-page #activities .sezione-form,
.profile-page #projects .scheda-tabella,
.profile-page #documents .scheda-tabella {
  border-radius: var(--cs-radius-lg);
  overflow: hidden;
}

.profile-page #personalDetails .card-body,
.profile-page #changePassword .card-body,
.profile-page #overview-tab .card-body {
  padding: 1.35rem;
}

.profile-page-content {
  min-height: auto;
  padding-bottom: 1rem;
}

.profile-page .profile-wrapper {
  margin-bottom: 1rem !important;
}

.profile-page .tab-content {
  min-height: auto;
}

.profile-page .profile-tab-content > .tab-pane {
  display: none;
}

.profile-page .profile-tab-content > .tab-pane.active,
.profile-page .profile-tab-content > .tab-pane.show {
  display: block;
}

.profile-nav {
  gap: 0.6rem;
  padding: 0.45rem;
  border-radius: var(--cs-radius-pill);
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(10px);
}

.profile-nav .nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--cs-radius-pill);
  padding: 0.65rem 1rem;
  color: var(--cs-text);
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.58);
  font-weight: 700;
}

.profile-nav .nav-link.active {
  color: var(--cs-text-on-accent);
  background: var(--cs-gradiente-primario);
  border-color: rgba(255, 255, 255, 0.36);
  box-shadow: none;
}

.profile-page .profile-subtabs .nav-link {
  padding: 0.52rem 0.9rem;
  border-radius: var(--cs-radius-pill);
  color: var(--cs-text-secondary);
  background: rgba(var(--cs-primary-rgb), 0.06);
  border: 1px solid transparent;
}

.profile-page .profile-subtabs .nav-link.active {
  color: var(--cs-primary);
  background: rgba(var(--cs-primary-rgb), 0.12);
  border-color: rgba(var(--cs-primary-rgb), 0.16);
}

.profile-page .profilo-metrica {
  height: 100%;
}

.profile-page .profilo-metrica .card-body {
  padding: 1rem 1.1rem;
}

.profile-page .profilo-metrica .avatar-title {
  border-radius: var(--cs-radius-md) !important;
}

.profile-page #activities .card-body.p-0,
.profile-page #documents .card-body.p-0 {
  padding: 0 !important;
}

.profile-page .scheda-tabella .toolbar-tabella {
  padding: 1.05rem 1.2rem 0.9rem;
}

.profile-page .scheda-tabella .table-responsive {
  border-top: 1px solid var(--cs-border-soft);
}

.profile-page #overview-tab > .row,
.profile-page #personalDetails > .row,
.profile-page #changePassword > .row {
  align-items: flex-start;
}

.profile-page #overview-tab > .row > .col-xxl-3,
.profile-page #personalDetails > .row > .col-xxl-3,
.profile-page #changePassword > .row > .col-xxl-3 {
  align-self: flex-start;
}

.profile-page #overview-tab > .row > .col-xxl-3 .scheda-riepilogo,
.profile-page #personalDetails > .row > .col-xxl-3 .scheda-riepilogo,
.profile-page #changePassword > .row > .col-xxl-3 .scheda-riepilogo {
  height: auto;
}

.profile-page #overview-tab .d-flex.flex-column.gap-4 {
  min-height: auto;
}

.profile-page #userLogsTable_wrapper {
  padding: 1rem 1.2rem 1.2rem;
}

.profile-page #userLogsTable_wrapper .dataTables_filter,
.profile-page #userLogsTable_wrapper .dataTables_info,
.profile-page #userLogsTable_wrapper .dataTables_paginate {
  padding-left: 0;
  padding-right: 0;
}

.profile-page .profilo-log-accessi {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--cs-border-soft);
}

.profile-page .profilo-log-accessi table.dataTable {
  margin-top: 0.35rem !important;
}

@media (max-width: 991.98px) {
  .profile-nav {
    border-radius: var(--cs-radius-lg);
  }

  .profile-nav .nav-link {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 991.98px) {
  .opzione-card,
  .interruttore-gestionale {
    width: 100%;
  }
}

/* ======= AREA STATISTICHE (componenti condivisi) ======= */
.statistiche-area-page .statistiche-immobili-intestazione {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
}

.statistiche-area-page .statistiche-immobili-intestazione-testo {
  flex: 1 1 auto;
  text-align: left;
}

.statistiche-area-page .barra-filtri .statistiche-immobili-intestazione {
  justify-content: flex-start;
}

.statistiche-area-page .statistiche-immobili-sezione-icona {
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--cs-radius-md);
  background: rgba(var(--cs-primary-rgb), 0.10);
  color: var(--cs-primary);
  font-size: var(--cs-font-card);
}

.statistiche-area-page .statistiche-immobili-sezione-icona--primary {
  background: rgba(var(--cs-primary-rgb), 0.10);
  color: var(--cs-primary);
}

.statistiche-area-page .statistiche-immobili-sezione-icona--secondary {
  background: rgba(var(--cs-secondary-rgb), 0.10);
  color: var(--cs-secondary);
}

.statistiche-area-page .statistiche-immobili-chip {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  padding: 0.48rem 0.8rem;
  border-radius: var(--cs-radius-pill);
  background: rgba(var(--cs-primary-rgb), 0.08);
  color: var(--cs-primary);
  font-size: var(--cs-font-meta);
  font-weight: 700;
  white-space: nowrap;
}

.statistiche-area-page .statistiche-immobili-chip--neutro {
  background: rgba(var(--cs-neutral-rgb), 0.10);
  color: var(--cs-neutral-600);
}

.statistiche-area-page .statistiche-immobili-pillole {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1rem;
}

.statistiche-area-page .statistiche-immobili-pillola {
  font-weight: 600;
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.statistiche-area-page .statistiche-immobili-pillola:hover {
  transform: none;
}

.statistiche-area-page .filtro-rapido-controllo .statistiche-immobili-pillole {
  gap: 0.4rem;
  margin-top: 0;
}

.statistiche-area-page .statistiche-immobili-pillola.is-attiva,
.statistiche-area-page .statistiche-immobili-pillola.is-selected {
  color: var(--cs-text-on-accent);
  background: var(--cs-secondary-600);
  border-color: var(--cs-secondary-600);
  box-shadow: none;
}

.statistiche-area-page #statisticheImmobiliRange[hidden] {
  display: none !important;
}

.statistiche-area-page .statistiche-immobili-range-nota {
  min-height: 46px;
  display: flex;
  align-items: center;
  padding: 0.85rem 1rem;
  border: 1px dashed var(--cs-border);
  border-radius: var(--cs-radius-md);
  background: var(--cs-surface-soft);
  color: var(--cs-text-secondary);
  font-size: var(--cs-font-label);
  line-height: 1.5;
}

.statistiche-area-page.is-loading {
  pointer-events: none;
  opacity: 0.72;
  transition: opacity 0.18s ease;
}

.statistiche-area-page .statistiche-immobili-kpi-card {
  position: relative;
  overflow: hidden;
  padding: 0;
}

.statistiche-area-page .statistiche-immobili-kpi-card .card-body {
  padding: 1.3rem 1.35rem 1.2rem;
}

.statistiche-area-page .statistiche-immobili-kpi-card--primary { --cs-kpi-accent: var(--cs-primary); }
.statistiche-area-page .statistiche-immobili-kpi-card--success { --cs-kpi-accent: var(--cs-success); }
.statistiche-area-page .statistiche-immobili-kpi-card--warning { --cs-kpi-accent: var(--cs-warning); }
.statistiche-area-page .statistiche-immobili-kpi-card--danger { --cs-kpi-accent: var(--cs-danger); }
.statistiche-area-page .statistiche-immobili-kpi-card--secondary { --cs-kpi-accent: var(--cs-secondary); }
.statistiche-area-page .statistiche-immobili-kpi-card--soft { --cs-kpi-accent: var(--cs-neutral-500); }

.statistiche-area-page .statistiche-immobili-kpi-top {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 1rem;
}

.statistiche-area-page .statistiche-immobili-kpi-icon {
  width: 2.65rem;
  height: 2.65rem;
  flex: 0 0 2.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--cs-radius-md);
  background: rgba(var(--cs-primary-rgb), 0.10);
  color: var(--cs-primary);
  font-size: var(--cs-font-section);
}

.statistiche-area-page .statistiche-immobili-kpi-card--success .statistiche-immobili-kpi-icon {
  background: rgba(var(--cs-success-rgb), 0.12);
  color: var(--cs-success-strong);
}

.statistiche-area-page .statistiche-immobili-kpi-card--warning .statistiche-immobili-kpi-icon {
  background: rgba(var(--cs-warning-rgb), 0.14);
  color: var(--cs-warning-strong);
}

.statistiche-area-page .statistiche-immobili-kpi-card--danger .statistiche-immobili-kpi-icon {
  background: rgba(var(--cs-danger-rgb), 0.10);
  color: var(--cs-danger-strong);
}

.statistiche-area-page .statistiche-immobili-kpi-card--secondary .statistiche-immobili-kpi-icon {
  background: rgba(var(--cs-secondary-rgb), 0.10);
  color: var(--cs-secondary);
}

.statistiche-area-page .statistiche-immobili-kpi-icon--soft {
  background: var(--cs-surface-muted);
  color: var(--cs-neutral-600);
}

/* ======= GRAFICI STATISTICHE (Fase 2): contenitore, selettore, drill-down ======= */
.cs-chart {
  width: 100%;
  min-height: 220px;
}

.cs-chart-note,
.cs-chart-empty-note {
  margin-top: 0.45rem;
  font-size: var(--cs-font-meta);
  line-height: 1.45;
  color: var(--cs-text-secondary);
}

.cs-chart-note {
  display: flex;
  align-items: center;
  min-height: 220px;
  justify-content: center;
  text-align: center;
}

.cs-chart .apexcharts-canvas {
  margin-inline: auto;
}

.cs-chart .apexcharts-tooltip {
  border: 1px solid var(--cs-border-soft) !important;
  border-radius: var(--cs-radius-md);
  box-shadow: var(--cs-shadow-card);
}

.cs-chart-select {
  display: block;
  width: auto;
  max-width: 22rem;
  margin-bottom: 1rem;
  border-color: var(--cs-border-soft);
  color: var(--cs-text);
  font-size: var(--cs-font-label);
}

.cs-chart-select:focus {
  border-color: var(--cs-primary);
  box-shadow: 0 0 0 0.15rem rgba(var(--cs-primary-rgb), 0.15);
}

.cs-chart-dati {
  margin-top: 1.1rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--cs-border-soft);
}

.cs-chart-dati-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--cs-text-secondary);
  font-size: var(--cs-font-label);
  font-weight: 600;
  line-height: 1.4;
}

.cs-chart-dati-toggle:hover,
.cs-chart-dati-toggle:focus-visible {
  color: var(--cs-primary);
}

.cs-chart-dati-toggle .cs-chart-dati-chevron {
  transition: transform var(--cs-transition-fast);
}

.cs-chart-dati-toggle[aria-expanded="true"] .cs-chart-dati-chevron {
  transform: rotate(90deg);
}

.cs-chart-dati .table {
  margin-top: 0.75rem;
}

.statistiche-area-page .valore-riepilogo--secondario {
  font-size: var(--cs-font-page);
}

.statistiche-area-page .statistiche-confronto-delta {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-top: 0.35rem;
  padding: 0.15rem 0.5rem;
  border-radius: var(--cs-radius-pill);
  font-size: var(--cs-font-label);
  font-weight: 600;
  line-height: 1.2;
}

.statistiche-area-page .statistiche-confronto-delta.is-positivo {
  background: var(--cs-success-soft);
  color: var(--cs-success-strong);
}

.statistiche-area-page .statistiche-confronto-delta.is-negativo {
  background: var(--cs-danger-soft);
  color: var(--cs-danger-strong);
}

.statistiche-area-page .statistiche-confronto-delta.is-neutro {
  background: var(--cs-surface-muted);
  color: var(--cs-neutral-600);
}

.statistiche-area-page .statistiche-funnel-passaggio {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.15rem 0.5rem;
  border-radius: var(--cs-radius-pill);
  background: rgba(var(--cs-primary-rgb), 0.12);
  color: var(--cs-primary-strong);
  font-size: var(--cs-font-label);
  font-weight: 600;
  line-height: 1.2;
}

.cs-empty-state,
.statistiche-area-page .cs-empty-state,
.statistiche-area-page .statistiche-immobili-empty-state {
  display: flex;
  min-height: 8rem;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  border-radius: var(--cs-radius-md);
  border: 1px dashed var(--cs-border);
  background: var(--cs-surface-soft);
  color: var(--cs-text-secondary);
  padding: 1.5rem;
  font-size: var(--cs-font-label);
}

.statistiche-area-page .cs-empty-state i,
.statistiche-area-page .statistiche-immobili-empty-state i {
  font-size: var(--cs-font-page);
  color: var(--cs-primary);
}

.statistiche-area-page .statistiche-immobili-alert {
  border-radius: var(--cs-radius-md);
  background: var(--cs-info-soft);
  border-color: rgba(var(--cs-info-rgb), 0.16) !important;
  color: var(--cs-info-strong);
}

.statistiche-area-page .scheda-tabella .card-body,
.statistiche-area-page .barra-filtri {
  position: relative;
}

.statistiche-area-page .barra-filtri {
  height: auto;
  min-height: 0;
}

.flatpickr-calendar {
  background: var(--cs-surface);
  border: 1px solid var(--cs-border-soft);
  border-radius: var(--cs-radius-lg);
  box-shadow: var(--cs-shadow-card);
}

.flatpickr-months .flatpickr-month,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year,
.flatpickr-weekday {
  color: var(--cs-text);
}

.flatpickr-weekdays {
  background: transparent;
}

.flatpickr-day {
  border-radius: var(--cs-radius-sm);
  color: var(--cs-text);
}

.flatpickr-day:hover,
.flatpickr-day:focus {
  background: rgba(var(--cs-secondary-rgb), 0.10);
  border-color: rgba(var(--cs-secondary-rgb), 0.16);
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover {
  background: var(--cs-secondary-600);
  border-color: var(--cs-secondary-600);
  color: var(--cs-text-on-accent);
}

.flatpickr-day.inRange,
.flatpickr-day.prevMonthDay.inRange,
.flatpickr-day.nextMonthDay.inRange {
  background: rgba(var(--cs-secondary-rgb), 0.12);
  border-color: rgba(var(--cs-secondary-rgb), 0.08);
  box-shadow: none;
}

.statistiche-area-page.pagina-gestionale-compatta .pagina-lista-riepilogo {
  display: none;
}

.statistiche-area-page.pagina-gestionale-compatta .barra-filtri,
.clienti-buyer-list-page.pagina-gestionale-compatta .barra-filtri {
  padding: 1rem 1.05rem;
}

.statistiche-area-page.pagina-gestionale-compatta .statistiche-immobili-intestazione,
.clienti-buyer-list-page.pagina-gestionale-compatta .intestazione-sezione {
  margin-bottom: 0.85rem;
}

.statistiche-area-page.pagina-gestionale-compatta .statistiche-immobili-sezione-icona {
  width: 2.55rem;
  height: 2.55rem;
  font-size: 1rem;
}

.statistiche-area-page.pagina-gestionale-compatta .statistiche-immobili-intestazione-testo .descrizione-sezione-form,
.clienti-buyer-list-page.pagina-gestionale-compatta .descrizione-sezione-form,
.clienti-seller-list-page.pagina-gestionale-compatta .meta-tabella {
  font-size: var(--cs-font-label);
}

.statistiche-area-page.pagina-gestionale-compatta .statistiche-immobili-pillole {
  gap: 0.55rem;
}

.barra-filtri .btn-gestionale-secondario,
.pagina-operativa-head .btn-gestionale-secondario,
.barra-filtri-head-actions .btn-gestionale-secondario {
  box-shadow: none;
}

.barra-filtri .azioni-secondarie,
.barra-filtri .azioni-primarie,
.pagina-operativa-head .azioni-secondarie,
.pagina-operativa-head .azioni-primarie {
  gap: 0.55rem;
}

@media (max-width: 991.98px) {
  .pagina-gestionale-compatta .page-title-right {
    display: none;
  }

  .pagina-operativa-head,
  .barra-filtri-head-actions {
    align-items: stretch;
  }

  .pagina-operativa-head-actions,
  .barra-filtri-head-actions {
    width: 100%;
    justify-content: flex-start;
  }
}

.statistiche-area-page .toolbar-tabella {
  padding: 1.05rem 1.2rem 0.9rem;
}

.statistiche-area-page .scheda-tabella .card-body.pt-0 {
  padding: 0 1.2rem 1.2rem !important;
}

.statistiche-area-page .scheda-tabella .table tbody td strong {
  font-weight: 700;
}

.statistiche-area-page .scheda-tabella .table a {
  font-weight: 600;
}

@media (max-width: 991.98px) {
  .statistiche-area-page .statistiche-immobili-intestazione {
    flex-wrap: wrap;
  }

  .statistiche-area-page .statistiche-immobili-chip {
    margin-left: 0;
  }

  .statistiche-area-page .statistiche-immobili-range-nota {
    min-height: 0;
  }
}
