/* MurphFin — dark-components.css */


body.app-auth *::selection {
  background: var(--brand-red);
  color: #fff;
}

/* ── Topbar dark ── */
body.app-auth .app-header {
  height: 40px;
  min-height: 40px;
  background: var(--brand-surface);
  border-bottom: 1px solid var(--brand-border);
}

body.app-auth .app-brand {
  color: var(--brand-red);
  border-right: 1px solid var(--brand-border);
  padding: 0 14px;
  height: 100%;
  display: flex;
  align-items: center;
}

body.app-auth .app-brand span { color: var(--brand-text); }
body.app-auth .app-brand:hover { color: var(--brand-red); text-decoration: none; }

body.app-auth .sidebar-toggle { color: var(--brand-muted); border-radius: 0; }
body.app-auth .sidebar-toggle:hover { color: var(--brand-text); }

body.app-auth .mf-topbar-avatar {
  width: 26px; height: 26px;
  background: var(--brand-gray-100);
  border: 1px solid var(--brand-gray-200);
  border-radius: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700;
  color: var(--brand-muted);
  text-transform: uppercase;
  margin-right: 8px;
}

body.app-auth .header-logout {
  color: var(--brand-muted);
  border-left: 1px solid var(--brand-border);
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.5px;
  border-radius: 0;
}

body.app-auth .header-logout:hover { color: var(--brand-text); }

body.app-auth .news-ticker-track { color: var(--brand-gray-500); font-size: 12px; }
body.app-auth .news-ticker-item { color: var(--brand-text); }
body.app-auth a.news-ticker-item:hover { color: #fff; }
body.app-auth .news-ticker-sep { color: var(--brand-muted); }

/* ── Sidebar dark ── */
body.app-auth .app-sidebar {
  background: var(--brand-surface);
  border-right: 1px solid var(--brand-border);
  top: 40px;
}

body.app-auth .sidebar-label {
  font-size: 12px;
  color: var(--brand-muted);
}

body.app-auth .sidebar-link {
  color: var(--brand-muted);
}

body.app-auth .sidebar-link i { color: var(--brand-muted); }
body.app-auth .sidebar-link span { color: var(--brand-muted); font-size: 13px; }

body.app-auth .sidebar-link.active {
  background: var(--brand-surface-alt);
  border-left-color: var(--brand-red);
}

body.app-auth .sidebar-link.active i { color: var(--brand-text); }
body.app-auth .sidebar-link.active span { color: var(--brand-gray-500); }

body.app-auth .sidebar-link:hover { background: var(--brand-surface-alt); }
body.app-auth .sidebar-link:hover i { color: var(--brand-gray-500); }

body.app-auth .sidebar-divider { background: var(--brand-border); }

body.app-auth .sidebar-avatar {
  background: var(--brand-gray-100);
  border-color: var(--brand-gray-200);
  border-radius: 0;
  color: var(--brand-muted);
}

body.app-auth .sidebar-user-name { color: var(--brand-text); }
body.app-auth .sidebar-user-email { color: var(--brand-muted); }

body.app-auth .sidebar-collapse-btn {
  background: var(--brand-surface-alt);
  border-color: var(--brand-border);
  color: var(--brand-muted);
  z-index: 1060;
  border-radius: 0;
}

body.app-auth .sidebar-collapse-btn:hover {
  background: var(--brand-gray-100);
  color: var(--brand-text);
}

body.app-auth .sidebar-search-input {
  background: var(--brand-gray-100);
  border-color: var(--brand-gray-200);
  border-radius: 0;
}

body.app-auth .sidebar-search-input i { color: var(--brand-muted); }
body.app-auth .sidebar-search-input input { color: var(--brand-text); }
body.app-auth .sidebar-search-input input::placeholder { color: var(--brand-muted); }

body.app-auth .sidebar-search-results { background: var(--brand-surface-alt); border-color: var(--brand-border); }
body.app-auth .search-result-item { color: var(--brand-gray-500); }
body.app-auth .search-result-item:hover { background: var(--brand-gray-100); color: var(--brand-text); }

/* Sidebar collapsed — font leggibile */
body.app-auth.sidebar-collapsed .sidebar-link span { font-size: 11px; }

/* ── Content area dark ── */
body.app-auth .app-content {
  background: var(--brand-bg);
  margin-top: 40px;
}

body.app-auth .app-main {
  padding: 16px 20px 60px;
  max-width: none;
  margin: 0;
}

/* ── Footer dark ── */
body.app-auth .footer-auth {
  background: var(--brand-surface);
  border-top-color: var(--brand-border);
  color: var(--brand-muted);
  height: 60px;
  left: var(--sidebar-w);
}

body.app-auth .footer-auth a { color: var(--brand-muted); }
body.app-auth .footer-auth a:hover { color: var(--brand-gray-500); }
body.app-auth .footer-auth-inner { color: var(--brand-muted); font-size: 11px; }

/* ── Headings dark ── */
body.app-auth h1, body.app-auth h2, body.app-auth h3,
body.app-auth h4, body.app-auth h5, body.app-auth h6 {
  color: var(--brand-text);
}

/* ── Greeting ── */
body.app-auth .dash-title,
body.app-auth .mf-greeting-name {
  font-family: var(--font-body);
  font-size: 32px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--brand-text);
}

body.app-auth .mf-greeting-name .mf-name-red { color: var(--brand-red); }

/* ── Tables dark ── */
body.app-auth .table { color: var(--brand-gray-500); }
body.app-auth .table thead th { background: var(--brand-surface); color: var(--brand-muted); border-color: var(--brand-border); }
body.app-auth .table td { border-color: var(--brand-border); }
body.app-auth .table-hover > tbody > tr:hover { background: var(--brand-surface-alt); }

/* ── Forms dark ── */
body.app-auth .form-control,
body.app-auth .form-select {
  background: var(--brand-gray-100);
  border-color: var(--brand-gray-200);
  color: var(--brand-text);
  font-family: var(--font-mono);
  font-size: 13px;
  /* border-radius: gestito via --radius-sm in variables */
}

body.app-auth .form-control::placeholder { color: var(--brand-muted); }
body.app-auth .form-control:focus,
body.app-auth .form-select:focus {
  background: var(--brand-gray-100);
  border-color: var(--brand-gray-300);
  color: var(--brand-text);
  box-shadow: none;
}

body.app-auth .form-control:disabled { background: var(--brand-surface); color: var(--brand-muted); opacity: 0.6; }
body.app-auth .form-label { color: var(--brand-muted); }
body.app-auth .form-check-label { color: var(--brand-gray-500); }
body.app-auth .form-check-input { background-color: var(--brand-gray-100); border-color: var(--brand-gray-200); }
body.app-auth .form-check-input:checked { background-color: var(--brand-red); border-color: var(--brand-red); }
body.app-auth .input-group-text { background: var(--brand-gray-100); border-color: var(--brand-gray-200); color: var(--brand-muted); /* border-radius: gestito via --radius-sm in variables */ }

/* ── Buttons dark ── */
body.app-auth .btn-fisit { background: var(--brand-red); /* border-radius: gestito via --radius-sm in variables */ }
body.app-auth .btn-fisit:hover { background: #a01f18; }
body.app-auth .btn-fisit-outline { color: var(--brand-gray-500); border-color: var(--brand-gray-200); /* border-radius: gestito via --radius-sm in variables */ }
body.app-auth .btn-fisit-outline:hover { color: var(--brand-text); border-color: var(--brand-gray-300); }

/* ── Badges dark ── */
/* border-radius .badge: gestito via --radius-sm in variables */

/* ── Alerts dark ── */
body.app-auth .alert { background: var(--brand-surface); color: var(--brand-gray-500); /* border-radius: gestito via --radius in variables */ }
body.app-auth .alert-link { color: var(--brand-text); }

/* ── Cards dark ── */
/* border-radius .card-fisit: gestito via --radius in variables */

/* ── Accordion dark ── */
body.app-auth .accordion-item { background: var(--brand-surface); border-color: var(--brand-border); }
body.app-auth .accordion-button { background: var(--brand-surface-alt); color: var(--brand-gray-500); box-shadow: none; /* border-radius: gestito via --radius in variables */ }
body.app-auth .accordion-button:not(.collapsed) { background: var(--brand-surface-alt); color: var(--brand-text); }
body.app-auth .accordion-button::after { filter: invert(0.5); }
body.app-auth .accordion-body { background: var(--brand-surface); }

/* ── Nav pills dark ── */
body.app-auth .nav-pills .nav-link { color: var(--brand-muted); background: transparent; /* border-radius: gestito via --radius in variables */ }
body.app-auth .nav-pills .nav-link.active { background: var(--brand-surface-alt); color: var(--brand-text); }

/* ── List group dark ── */
body.app-auth .list-group-item { background: var(--brand-surface); border-color: var(--brand-border); color: var(--brand-gray-500); }

/* ── Modal dark ── */
body.app-auth .modal-content { background: var(--brand-surface); border-color: var(--brand-border); border-radius: 0; }
body.app-auth .modal-header { background: var(--brand-surface-alt); border-color: var(--brand-border); }

/* ── Progress bars dark ── */
body.app-auth .progress { background: var(--brand-border); border-radius: 0; }
body.app-auth .progress-bar { border-radius: 0; }
body.app-auth .pw-pbar { background: var(--brand-surface); border-color: var(--brand-border); /* border-radius: gestito via --radius in variables */ }
body.app-auth .pw-pbar-track { background: var(--brand-border); /* border-radius: gestito via --radius-sm in variables */ }
body.app-auth .pw-pbar-fill { background: var(--brand-success); /* border-radius: gestito via --radius-sm in variables */ }
body.app-auth .pw-pbar-label { color: var(--brand-muted); }
body.app-auth .pw-pbar-label--active { color: var(--brand-text); }
body.app-auth .pw-pbar-label--done { color: var(--brand-gray-500); }
body.app-auth .pw-pbar-label--locked { color: var(--brand-muted); }
body.app-auth .pw-pbar-step { color: var(--brand-text); }
body.app-auth .bp-progress { background: var(--brand-border); /* border-radius: gestito via --radius-sm in variables */ }
body.app-auth .bp-progress-bar { background: var(--brand-success); /* border-radius: gestito via --radius-sm in variables */ }

/* ── Wizard BP dark ── */
body.app-auth .bp-wizard-wrapper { max-width: none; }
body.app-auth .bp-ai-coach__header { background: var(--brand-surface-alt); color: var(--brand-text); }
body.app-auth .bp-ai-coach__panel { background: var(--brand-surface); border-color: var(--brand-border); }
body.app-auth .bp-ai-coach__msg--ai { background: var(--brand-surface-alt); color: var(--brand-gray-500); border-color: var(--brand-border); }
body.app-auth .bp-ai-coach__msg--user { background: var(--brand-navy-dark); }
body.app-auth .bp-ai-coach__input { background: var(--brand-gray-100); border-color: var(--brand-gray-200); color: var(--brand-text); }

/* ── Onboarding modal dark ── */
body.app-auth .dash-onboard-overlay { background: rgba(0,0,0,0.7); }
body.app-auth .dash-onboard-modal { background: var(--brand-surface); border: 1px solid var(--brand-border); border-radius: 0; }
body.app-auth .dash-onboard-header { background: var(--brand-surface-alt); }
body.app-auth .dash-onboard-num { background: var(--brand-gray-100); color: var(--brand-text); }

/* ── Password toggle ── */
body.app-auth .password-toggle { color: var(--brand-muted); }
body.app-auth .password-toggle:hover { color: var(--brand-gray-500); }

/* ── Dropdown dark ── */
body.app-auth .dropdown-menu { background: var(--brand-surface); border-color: var(--brand-border); border-radius: 0; }
body.app-auth .dropdown-item { color: var(--brand-gray-500); }
body.app-auth .dropdown-item:hover { background: var(--brand-surface-alt); color: var(--brand-text); }

/* ── Scrollbar dark ── */
body.app-auth ::-webkit-scrollbar { width: 6px; height: 6px; }
body.app-auth ::-webkit-scrollbar-track { background: var(--brand-bg); }
body.app-auth ::-webkit-scrollbar-thumb { background: var(--brand-gray-200); border-radius: 0; }
body.app-auth ::-webkit-scrollbar-thumb:hover { background: var(--brand-gray-300); }

/* ── HR dark ── */
body.app-auth hr { border-color: var(--brand-border); opacity: 1; }

/* ── Code dark ── */
body.app-auth code { color: var(--brand-gray-500); background: var(--brand-gray-100); }

/* ── Utility classes ── */
.bg-surface-alt { background: var(--brand-surface-alt); }

/* ── Global text reset — tutto leggibile su dark ── */
/* NB: span e div esclusi — ereditano dal parent, non sovrascrivono classi semantiche (.text-success, .bo-kpi-val--green ecc.) */
body.app-auth,
body.app-auth p,
body.app-auth li,
body.app-auth td,
body.app-auth th,
body.app-auth a,
body.app-auth .lead,
body.app-auth .small,
body.app-auth small { color: var(--brand-gray-500); }

body.app-auth a:hover { color: var(--brand-text); }
body.app-auth strong,
body.app-auth b,
body.app-auth h1, body.app-auth h2, body.app-auth h3,
body.app-auth h4, body.app-auth h5, body.app-auth h6,
body.app-auth .fw-semibold,
body.app-auth .fw-bold { color: var(--brand-text); }

body.app-auth label { color: var(--brand-muted); }

/* ── Bootstrap text utilities — override dark ── */
/* !important necessario: Bootstrap 5 usa !important su queste utility */
body.app-auth .text-muted { color: var(--brand-muted) !important; }
body.app-auth .text-dark { color: var(--brand-text) !important; }
body.app-auth .text-secondary { color: var(--brand-muted) !important; }
body.app-auth .text-primary { color: var(--brand-blue) !important; }
body.app-auth .text-success { color: var(--brand-success) !important; }
body.app-auth .text-danger { color: var(--brand-danger) !important; }
body.app-auth .text-warning { color: var(--brand-warning) !important; }
body.app-auth .text-info { color: var(--brand-blue) !important; }
body.app-auth .text-navy { color: var(--brand-blue); }
body.app-auth .text-blue { color: var(--brand-blue); }
body.app-auth .text-green { color: var(--brand-success); }
body.app-auth .text-emerald { color: #10b981; }
body.app-auth .text-nvidia { color: var(--brand-nvidia); }
body.app-auth .btn-close { filter: invert(0.7); }

/* ── Badge dark — override cascata (senza !important) ── */
body.app-auth .badge.bg-primary { background: var(--brand-blue); color: #fff; }
body.app-auth .badge.bg-success { background: var(--brand-success); color: #fff; }
body.app-auth .badge.bg-warning { background: var(--brand-warning); color: #fff; }
body.app-auth .badge.bg-danger { background: var(--brand-danger); color: #fff; }
body.app-auth .badge.bg-secondary { background: var(--brand-gray-100); color: var(--brand-gray-500); }
body.app-auth .badge.bg-info { background: var(--brand-blue); color: #fff; }

/* ── Card Bootstrap dark — forza sfondo e rimuove ombre chiare ── */
body.app-auth .card {
  background: var(--brand-surface);
  border-color: var(--brand-border);
  color: var(--brand-gray-500);
}

body.app-auth .card .card-header {
  background: var(--brand-surface-alt);
  border-color: var(--brand-border);
  color: var(--brand-gray-500);
  font-family: var(--font-mono);
  font-size: 13px;
}

body.app-auth .card .card-body {
  background: var(--brand-surface);
  color: var(--brand-gray-500);
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.65;
}

body.app-auth .card .card-footer {
  background: var(--brand-surface-alt);
  border-color: var(--brand-border);
}

/* Ombre → rimosse (scompaiono su dark) */
body.app-auth .shadow-sm,
body.app-auth .shadow { box-shadow: none; }

/* bg-transparent su dark deve ereditare dal parent */
body.app-auth .card .bg-transparent {
  background: inherit;
}

/* (duplicati rimossi — definiti sopra in "Misc text dark") */

/* Colori hardcoded nelle card wizard che diventano illeggibili */
body.app-auth .card strong,
body.app-auth .card .fw-bold,
body.app-auth .card .fw-semibold,
body.app-auth .card h5,
body.app-auth .card h6 { color: var(--brand-text); }

/* Alert dentro wizard — uniformati a bp-info-box */
body.app-auth .alert-info {
  background: var(--brand-surface-alt);
  color: var(--brand-gray-500);
  border: 1px solid var(--brand-border);
  border-left: 3px solid var(--brand-blue);
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.65;
  padding: 16px 20px;
}
body.app-auth .alert-info strong { color: var(--brand-text); }
body.app-auth .alert-info .text-primary,
body.app-auth .alert-info i.text-primary { color: var(--brand-blue) !important; }
body.app-auth .alert-warning { background: var(--brand-warning-bg); color: var(--brand-gray-500); border: 1px solid var(--brand-border); border-left: 3px solid var(--brand-warning); font-size: 13px; line-height: 1.65; padding: 16px 20px; }
body.app-auth .alert-warning strong { color: var(--brand-text); }
body.app-auth .alert-success { background: var(--brand-success-bg); color: var(--brand-gray-500); border: 1px solid var(--brand-border); border-left: 3px solid var(--brand-success); font-size: 13px; line-height: 1.65; padding: 16px 20px; }
body.app-auth .alert-success strong { color: var(--brand-text); }
body.app-auth .alert-danger { background: var(--brand-danger-bg); color: var(--brand-gray-500); border: 1px solid var(--brand-border); border-left: 3px solid var(--brand-danger); font-size: 13px; line-height: 1.65; padding: 16px 20px; }
body.app-auth .alert-danger strong { color: var(--brand-text); }

/* Bottoni admin/CRM che usano brand-navy hardcoded */
body.app-auth .btn-adm-primary { background: var(--brand-blue); color: #fff; }
body.app-auth .btn-adm-success { background: var(--brand-success); color: #fff; }
body.app-auth .btn-adm-danger { background: var(--brand-danger); color: #fff; }

/* ── Nav tabs dark ── */
body.app-auth .nav-tabs { border-bottom-color: var(--brand-border); }
body.app-auth .nav-tabs .nav-link { color: var(--brand-muted); border-color: transparent; }
body.app-auth .nav-tabs .nav-link:hover { color: var(--brand-gray-500); border-color: var(--brand-gray-200) var(--brand-gray-200) var(--brand-border); }
body.app-auth .nav-tabs .nav-link.active { color: var(--brand-text); background: var(--brand-surface); border-color: var(--brand-border) var(--brand-border) var(--brand-surface); }

/* ── Breadcrumb dark ── */
body.app-auth .breadcrumb { background: transparent; margin-bottom: 8px; }
body.app-auth .breadcrumb-item { color: var(--brand-muted); }
body.app-auth .breadcrumb-item a { color: var(--brand-gray-500); }
body.app-auth .breadcrumb-item a:hover { color: var(--brand-text); }
body.app-auth .breadcrumb-item.active { color: var(--brand-muted); }
body.app-auth .breadcrumb-item + .breadcrumb-item::before { color: var(--brand-muted); }

/* ── Table striped dark ── */
body.app-auth .table-striped > tbody > tr:nth-of-type(odd) > td { background: var(--brand-surface-alt); }
body.app-auth .table-success > td { background: var(--brand-success-bg); }
body.app-auth .table-danger > td { background: var(--brand-danger-bg); }
body.app-auth .table-light > td,
body.app-auth .table-light > th { background: var(--brand-surface-alt); color: var(--brand-gray-500); }
body.app-auth tfoot { color: var(--brand-text); }
body.app-auth tfoot td { background: var(--brand-surface-alt); border-color: var(--brand-border); }

/* ── Form-floating label dark ── */
body.app-auth .form-floating > label { color: var(--brand-muted); }
body.app-auth .form-floating > .form-control:focus ~ label { color: var(--brand-gray-500); }

/* ── Btn outline dark ── */
body.app-auth .btn-outline-secondary { color: var(--brand-gray-500); border-color: var(--brand-gray-200); }
body.app-auth .btn-outline-secondary:hover { color: var(--brand-text); background: var(--brand-surface-alt); border-color: var(--brand-gray-300); }
body.app-auth .btn-outline-primary { color: var(--brand-blue); border-color: var(--brand-blue); }
body.app-auth .btn-outline-primary:hover { color: #fff; background: var(--brand-blue); }
body.app-auth .btn-outline-danger { color: var(--brand-danger); border-color: var(--brand-danger); }
body.app-auth .btn-outline-danger:hover { color: #fff; background: var(--brand-danger); }
body.app-auth .btn-outline-success { color: var(--brand-success); border-color: var(--brand-success); }
body.app-auth .btn-outline-success:hover { color: #fff; background: var(--brand-success); }

/* ── Select option dark (dropdown nativo) ── */
body.app-auth select option { background: var(--brand-surface); color: var(--brand-text); }

/* ── Pagination dark ── */
body.app-auth .page-link { background: var(--brand-surface); border-color: var(--brand-border); color: var(--brand-gray-500); }
body.app-auth .page-link:hover { background: var(--brand-surface-alt); color: var(--brand-text); }
body.app-auth .page-item.active .page-link { background: var(--brand-blue); border-color: var(--brand-blue); }

/* ── Zero border-radius globale area auth ── */
/* border-radius: gestito via --radius / --radius-sm in variables per:
   .card-fisit, .badge, .alert, .form-control, .form-select,
   .input-group-text, .accordion-button, .btn-fisit, .btn-fisit-outline,
   .btn-adm-*, .bp-download-box, .bp-ai-coach__panel */
body.app-auth .card, body.app-auth .btn,
body.app-auth .accordion-item,
body.app-auth .list-group-item, body.app-auth .nav-link {
  border-radius: 0;
}

/* ── Wizard BP dark — Round 2 ── */

/* table-light: Bootstrap applica bg su tr, thead, tfoot — non solo > td */
body.app-auth tr.table-light,
body.app-auth tr.table-light td,
body.app-auth tr.table-light th,
body.app-auth thead.table-light,
body.app-auth thead.table-light th,
body.app-auth tfoot.table-light,
body.app-auth tfoot.table-light td { background: var(--brand-surface-alt); color: var(--brand-gray-500); }

/* table-success / table-danger su tr */
body.app-auth tr.table-success,
body.app-auth tr.table-success td { background: var(--brand-success-bg); color: var(--brand-gray-500); }
body.app-auth tr.table-danger,
body.app-auth tr.table-danger td { background: var(--brand-danger-bg); color: var(--brand-gray-500); }

/* table-primary su tr (step2 investimenti) */
body.app-auth tr.table-primary,
body.app-auth tr.table-primary td { background: var(--brand-info-bg); color: var(--brand-gray-500); }

/* alert-light (step2, step3 — nessun prodotto/investimento) */
body.app-auth .alert-light { background: var(--brand-surface-alt); color: var(--brand-gray-500); border-color: var(--brand-border); }

/* card-fisit — sfondo e bordi su dark */
body.app-auth .card-fisit {
  background: var(--brand-surface);
  border: 1px solid var(--brand-border);
  box-shadow: none;
  color: var(--brand-gray-500);
}
body.app-auth .card-fisit:hover { box-shadow: none; }
body.app-auth .card-fisit .card-header { border-color: var(--brand-border); color: var(--brand-gray-500); }

/* bp-card — sfondo e bordi su dark */
body.app-auth .bp-card {
  background: var(--brand-surface);
  border: 1px solid var(--brand-border);
  box-shadow: none;
  color: var(--brand-gray-500);
}

/* bp-download-box — titolo e valori usano brand-navy-dark (#0E1420) che è invisibile */
body.app-auth .bp-download-box__title { color: var(--brand-text); }
body.app-auth .bp-download-box__amount { color: var(--brand-text); }
body.app-auth .bp-download-box__icon { background: var(--brand-gray-100); color: var(--brand-blue); }
body.app-auth .bp-download-box--locked { border-color: var(--brand-blue); }
body.app-auth .bp-download-box__btn--primary { background: var(--brand-blue); }
body.app-auth .bp-download-box__btn--primary:hover { background: var(--brand-navy); }
/* border-radius .bp-download-box: gestito via --radius in variables */

/* crm-kpi (DSCR in step6) */
body.app-auth .crm-kpi { background: var(--brand-surface); border: 1px solid var(--brand-border); box-shadow: none; }
body.app-auth .crm-kpi:hover { box-shadow: none; }

/* Bootstrap .border utility — su dark è troppo chiaro */
body.app-auth .border { border-color: var(--brand-border); }
body.app-auth .border-top { border-top-color: var(--brand-border); }
body.app-auth .border-end,
body.app-auth .border-bottom { border-color: var(--brand-border); }

/* .rounded boxes inside wizard (step9 checklist, step2 KPI) */
body.app-auth .border.rounded { background: var(--brand-surface); }

/* bp-ref-hint (step5 costo suggerito) */
body.app-auth .bp-ref-hint { background: var(--brand-info-bg); color: var(--brand-blue); }
body.app-auth .bp-ref-hint i { color: var(--brand-blue); }

/* Paywall pw-card su dark — la pw-body ha color:var(--brand-text) nell'inline ma serve override per border */
body.app-auth .pw-card { border-color: var(--brand-border); }
body.app-auth .pw-card--featured { border-color: var(--brand-blue); }
body.app-auth .pw-premium-toggle { background: var(--brand-surface); border-color: var(--brand-border); }

/* adm-card dark (step2 investimenti) */
body.app-auth .adm-card,
body.app-auth .crm-card {
  border: 1px solid var(--brand-border);
  box-shadow: none;
}
body.app-auth .adm-card:hover,
body.app-auth .crm-card:hover { box-shadow: none; }

/* adm-table dark — header e celle */
body.app-auth .adm-table th { border-color: var(--brand-border); color: var(--brand-muted); }
body.app-auth .adm-table td { border-color: var(--brand-border); color: var(--brand-gray-500); }

/* Score bancabilità */
body.app-auth .bpd-score-table td,
body.app-auth .bpd-score-table th { color: var(--brand-gray-500); }
body.app-auth .bpd-progress-thin .progress { background: var(--brand-border); }

/* Tooltip Bootstrap su dark */
body.app-auth .tooltip-inner { background: var(--brand-gray-100); color: var(--brand-text); }
body.app-auth .tooltip .tooltip-arrow::before { border-top-color: var(--brand-gray-100); }

/* form-range slider su dark */
body.app-auth .form-range::-webkit-slider-runnable-track { background: var(--brand-gray-200); }
body.app-auth .form-range::-webkit-slider-thumb { background: var(--brand-blue); }
body.app-auth .form-range::-moz-range-track { background: var(--brand-gray-200); }
body.app-auth .form-range::-moz-range-thumb { background: var(--brand-blue); }

/* Step8 card-body p e small devono ereditare */
body.app-auth .card .card-body p { color: var(--brand-gray-500); }
body.app-auth .card .card-body .small,
body.app-auth .card .card-body small { color: var(--brand-gray-500); }
body.app-auth .card .card-body label { color: var(--brand-muted); }

/* Step9 scenari chart legend */
body.app-auth .bp-scenari-legend-item { color: var(--brand-gray-500); }

/* Chart.js y-axis grid su dark */
body.app-auth .card-fisit canvas { color-scheme: dark; }

/* ═══════════════════════════════════════════════════════
   MF-* COMPONENT CLASSES — Dark design system
   Usate nei template area clienti
   Tutte usano variabili --brand-* (zero hardcoded)
   ═══════════════════════════════════════════════════════ */

/* ── Page header ── */
.mf-page-header { display: flex; align-items: flex-start; justify-content: space-between; padding-bottom: 14px; border-bottom: 1px solid var(--brand-border); margin-bottom: 16px; }
.mf-page-title { font-size: 28px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.5px; color: var(--brand-text); line-height: 1; margin: 0; }
.mf-page-subtitle { display: flex; align-items: center; gap: 14px; margin-top: 7px; font-size: 13px; color: var(--brand-muted); }
.mf-page-subtitle i { font-size: 12px; margin-right: 3px; }
.mf-page-subtitle .mf-meta-warning { color: var(--brand-warning); }

/* ── Greeting ── */
.mf-greeting-name { font-size: 32px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.5px; color: var(--brand-text); line-height: 1; margin: 0; }
.mf-greeting-name .mf-name-red { color: var(--brand-red); }

/* ── KPI strip ── */
.mf-kpi-strip { display: grid; gap: 1px; background: var(--brand-border); border: 1px solid var(--brand-border); margin-bottom: 16px; }
.mf-kpi-strip--4 { grid-template-columns: repeat(4, 1fr); }
.mf-kpi-strip--5 { grid-template-columns: repeat(5, 1fr); }
.mf-kpi-cell { background: var(--brand-surface); padding: 12px 14px; display: flex; align-items: center; gap: 12px; }
.mf-kpi-icon { width: 28px; height: 28px; background: var(--brand-gray-100); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.mf-kpi-icon i { font-size: 13px; color: var(--brand-muted); }
.mf-kpi-data { display: flex; flex-direction: column; }
.mf-kpi-value { font-size: 22px; font-weight: 800; color: var(--brand-text); line-height: 1; }
.mf-kpi-value--green { color: var(--brand-success); }
.mf-kpi-value--amber { color: var(--brand-warning); }
.mf-kpi-value--red { color: var(--brand-red); }
.mf-kpi-label { font-size: 11px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: var(--brand-muted); margin-top: 2px; }

/* ── Table container ── */
.mf-table-container { background: var(--brand-surface); border: 1px solid var(--brand-border); margin-bottom: 16px; }
.mf-table-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--brand-border); background: var(--brand-surface-alt); }
.mf-table-title { font-size: 13px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: var(--brand-gray-500); display: flex; align-items: center; gap: 8px; }
.mf-table-controls { display: flex; align-items: center; gap: 8px; }
.mf-table-search { background: var(--brand-gray-100); border: 1px solid var(--brand-gray-200); padding: 6px 10px; color: var(--brand-text); font-family: var(--font-mono); font-size: 13px; outline: none; width: 180px; }
.mf-table-search::placeholder { color: var(--brand-muted); }
.mf-table-search:focus { border-color: var(--brand-gray-300); }
.mf-table-filter { font-size: 13px; font-weight: 600; color: var(--brand-muted); padding: 6px 10px; border: 1px solid var(--brand-gray-200); background: transparent; cursor: pointer; }
.mf-table-filter:hover { color: var(--brand-text); border-color: var(--brand-gray-300); }

/* ── Table ── */
.mf-table { width: 100%; border-collapse: collapse; }
.mf-table thead th { font-size: 11px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: var(--brand-muted); padding: 8px 14px; text-align: left; border-bottom: 1px solid var(--brand-border); background: var(--brand-surface); white-space: nowrap; }
.mf-table tbody tr { border-bottom: 1px solid var(--brand-border); }
.mf-table tbody tr:last-child { border-bottom: none; }
.mf-table tbody tr:hover td { background: var(--brand-surface-alt); }
.mf-table tbody td { padding: 9px 14px; font-size: 13px; color: var(--brand-gray-500); vertical-align: middle; }
.mf-cell-title { color: var(--brand-text); font-size: 13px; }
.mf-cell-action { text-align: right; width: 40px; }

/* ── Badge bandi ── */
.mf-bando-badge { display: inline-flex; font-weight: 700; font-size: 11px; padding: 2px 8px; letter-spacing: 0.4px; white-space: nowrap; }
.mf-bando-nidi { color: var(--brand-blue); background: var(--brand-info-bg); }
.mf-bando-vsud { color: var(--brand-teal); background: rgba(26,158,138,0.10); }
.mf-bando-vacn { color: var(--brand-warning); background: var(--brand-warning-bg); }
.mf-bando-cult { color: var(--brand-purple); background: rgba(139,92,246,0.10); }
.mf-bando-on { color: var(--brand-blue); background: var(--brand-info-bg); }
.mf-bando-smart { color: var(--brand-success); background: var(--brand-success-bg); }
.mf-bando-ras { color: var(--brand-teal); background: rgba(26,158,138,0.10); }
.mf-bando-generic { color: var(--brand-gray-500); background: var(--brand-gray-100); border: 1px solid var(--brand-gray-200); }

/* ── Badge stato ── */
.mf-state-badge { display: inline-flex; font-size: 11px; font-weight: 700; letter-spacing: 0.4px; padding: 2px 7px; text-transform: uppercase; white-space: nowrap; }
.mf-state-bozza { color: var(--brand-muted); background: var(--brand-gray-100); border: 1px solid var(--brand-gray-200); }
.mf-state-inviato { color: var(--brand-success); background: var(--brand-success-bg); }
.mf-state-ammesso { color: var(--brand-blue); background: var(--brand-info-bg); }
.mf-state-pagato { color: var(--brand-success); background: var(--brand-success-bg); }
.mf-state-attivo { color: var(--brand-success); background: var(--brand-success-bg); }
.mf-state-chiuso { color: var(--brand-muted); background: var(--brand-gray-100); border: 1px solid var(--brand-gray-200); }
.mf-state-aperto { color: var(--brand-blue); background: var(--brand-info-bg); }
.mf-state-presentato { color: var(--brand-blue); background: var(--brand-info-bg); }
.mf-state-valutazione { color: var(--brand-warning); background: var(--brand-warning-bg); }
.mf-state-erogazione { color: var(--brand-success); background: var(--brand-success-bg); }
.mf-state-nonammesso { color: var(--brand-danger); background: var(--brand-danger-bg); }

/* ── Buttons ── */
.mf-btn-primary { background: var(--brand-red); color: #fff; font-size: 13px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; padding: 8px 16px; border: none; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; text-decoration: none; }
.mf-btn-primary:hover { opacity: 0.9; color: #fff; text-decoration: none; }
.mf-btn-ghost { background: transparent; color: var(--brand-gray-500); font-size: 13px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; padding: 8px 16px; border: 1px solid var(--brand-gray-200); cursor: pointer; display: inline-flex; align-items: center; gap: 5px; text-decoration: none; }
.mf-btn-ghost:hover { border-color: var(--brand-gray-300); color: var(--brand-text); text-decoration: none; }
.mf-btn-action { width: 28px; height: 28px; background: var(--brand-gray-100); border: 1px solid var(--brand-gray-200); display: inline-flex; align-items: center; justify-content: center; color: var(--brand-muted); cursor: pointer; text-decoration: none; }
.mf-btn-action:hover { color: var(--brand-text); border-color: var(--brand-gray-300); text-decoration: none; }
.mf-btn-filter { font-size: 13px; font-weight: 600; color: var(--brand-muted); padding: 6px 12px; border: 1px solid var(--brand-gray-200); background: transparent; cursor: pointer; text-transform: uppercase; letter-spacing: 0.5px; }
.mf-btn-filter:hover { color: var(--brand-text); border-color: var(--brand-gray-300); }

/* ── Card ── */
.mf-card { background: var(--brand-surface); border: 1px solid var(--brand-border); padding: 16px; }
.mf-card-title { font-size: 16px; font-weight: 700; color: var(--brand-text); margin: 0 0 4px; }
.mf-card-meta { font-size: 13px; color: var(--brand-muted); }
.mf-card-edit { width: 28px; height: 28px; background: var(--brand-gray-100); border: 1px solid var(--brand-gray-200); display: inline-flex; align-items: center; justify-content: center; color: var(--brand-muted); cursor: pointer; text-decoration: none; float: right; }
.mf-card-edit:hover { color: var(--brand-text); border-color: var(--brand-gray-300); text-decoration: none; }

/* ── Progress bar ── */
.mf-progress { height: 4px; background: var(--brand-border); width: 100%; overflow: hidden; }
.mf-progress-bar { height: 100%; transition: width 0.3s; }
.mf-progress-bar--green { background: var(--brand-success); }
.mf-progress-bar--amber { background: var(--brand-warning); }
.mf-progress-bar--red { background: var(--brand-danger); }

/* ── Section header ── */
.mf-section-header { font-size: 14px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; color: var(--brand-gray-500); display: flex; align-items: center; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--brand-border); margin-bottom: 14px; }
.mf-section-header i { font-size: 14px; color: var(--brand-muted); }

/* ── Banner ── */
.mf-banner { border: 1px solid var(--brand-border); padding: 10px 16px; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; background: var(--brand-surface); }
.mf-banner--amber { border-left: 3px solid var(--brand-warning); }
.mf-banner--green { border-left: 3px solid var(--brand-success); }
.mf-banner--red { border-left: 3px solid var(--brand-danger); }
.mf-banner-title { font-size: 13px; font-weight: 700; text-transform: uppercase; }
.mf-banner--amber .mf-banner-title { color: var(--brand-warning); }
.mf-banner--green .mf-banner-title { color: var(--brand-success); }
.mf-banner-text { font-size: 13px; color: var(--brand-muted); }

/* ── Tabs ── */
.mf-tabs { display: flex; border-bottom: 1px solid var(--brand-border); margin-bottom: 16px; }
.mf-tab { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--brand-muted); padding: 8px 14px; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; text-decoration: none; background: transparent; border-top: none; border-left: none; border-right: none; }
.mf-tab:hover { color: var(--brand-gray-500); text-decoration: none; }
.mf-tab.active { color: var(--brand-text); border-bottom-color: var(--brand-text); }
.mf-tab .mf-tab-count { font-family: var(--font-mono); font-size: 12px; color: var(--brand-muted); margin-left: 4px; }

/* ── Blur teaser (Premium paywall) ── */
.mf-blur-teaser { filter: blur(3px); pointer-events: none; user-select: none; }

/* ── Empty state ── */
.mf-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 20px; gap: 10px; }
.mf-empty-icon { font-size: 32px; color: var(--brand-muted); opacity: 0.4; margin-bottom: 4px; }
.mf-empty-title { font-size: 15px; font-weight: 700; color: var(--brand-gray-500); text-transform: uppercase; letter-spacing: 0.5px; }
.mf-empty-text { font-size: 13px; color: var(--brand-muted); text-align: center; max-width: 320px; }

/* ── Doc row (normativa) ── */
.mf-doc-row { display: flex; align-items: center; padding: 8px 14px; border-bottom: 1px solid var(--brand-border); gap: 10px; transition: background 0.15s; text-decoration: none; }
.mf-doc-row:hover { background: var(--brand-surface-alt); }
.mf-doc-row:last-child { border-bottom: none; }
.mf-doc-badge-pdf { background: var(--brand-danger-bg); color: var(--brand-danger); font-size: 11px; font-weight: 700; padding: 2px 6px; text-transform: uppercase; flex-shrink: 0; }
.mf-doc-name { font-family: var(--font-mono); font-size: 12px; color: var(--brand-gray-500); flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mf-doc-download { width: 24px; height: 24px; background: var(--brand-gray-100); border: 1px solid var(--brand-gray-200); display: flex; align-items: center; justify-content: center; color: var(--brand-muted); text-decoration: none; flex-shrink: 0; }
.mf-doc-download:hover { color: var(--brand-text); border-color: var(--brand-gray-300); }

/* ── Funnel + Pipeline ── */
.mf-funnel-row { display: flex; align-items: center; gap: 8px; padding: 5px 0; }
.mf-funnel-label { font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--brand-gray-500); width: 120px; flex-shrink: 0; }
.mf-funnel-value { font-size: 16px; font-weight: 800; color: var(--brand-text); }
.mf-pipeline-row { display: flex; align-items: center; gap: 8px; padding: 5px 0; }
.mf-pipeline-name { font-size: 12px; font-weight: 700; color: var(--brand-gray-500); width: 120px; flex-shrink: 0; }
.mf-pipeline-bar { flex: 1; height: 6px; background: var(--brand-gray-100); position: relative; }
.mf-pipeline-fill { height: 100%; background: var(--brand-blue); }
.mf-pipeline-count { font-size: 13px; font-weight: 800; color: var(--brand-text); width: 30px; text-align: right; }

/* ── Badge speciali ── */
.mf-badge-premium { background: var(--brand-warning-bg); color: var(--brand-warning); font-size: 11px; font-weight: 700; padding: 2px 8px; text-transform: uppercase; }
.mf-badge-verified { color: var(--brand-success); background: var(--brand-success-bg); font-size: 11px; font-weight: 700; padding: 2px 8px; }
.mf-badge-base { background: var(--brand-gray-100); color: var(--brand-gray-500); border: 1px solid var(--brand-gray-200); font-size: 11px; font-weight: 700; padding: 2px 8px; }
.mf-badge-nvidia { border: 1px solid rgba(118,185,0,0.3); color: var(--brand-nvidia); background: rgba(118,185,0,0.07); font-size: 11px; font-weight: 700; padding: 2px 8px; text-transform: uppercase; }

/* ── Knowledge AI ── */
.mf-kai-number { font-size: 32px; font-weight: 800; color: var(--brand-success); line-height: 1; }
.mf-kai-label { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--brand-muted); margin-top: 4px; }
.mf-kai-phase { background: var(--brand-surface); padding: 14px; margin-bottom: 8px; }
.mf-kai-phase--blue { border-left: 2px solid var(--brand-blue); }
.mf-kai-phase--amber { border-left: 2px solid var(--brand-warning); }
.mf-kai-phase--green { border-left: 2px solid var(--brand-success); }

/* ── Form ── */
.mf-form-label { font-size: 11px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; color: var(--brand-muted); margin-bottom: 4px; display: block; }
.mf-form-input, .mf-form-select, .mf-form-textarea { background: var(--brand-gray-100); border: 1px solid var(--brand-gray-200); color: var(--brand-text); font-family: var(--font-mono); font-size: 13px; padding: 8px 12px; width: 100%; outline: none; }
.mf-form-input::placeholder, .mf-form-textarea::placeholder { color: var(--brand-muted); }
.mf-form-input:focus, .mf-form-select:focus, .mf-form-textarea:focus { border-color: var(--brand-gray-300); }

/* ── Topbar avatar ── */
.mf-topbar-avatar { width: 26px; height: 26px; background: var(--brand-gray-100); border: 1px solid var(--brand-gray-200); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: var(--brand-muted); text-transform: uppercase; margin-right: 8px; }

/* ── Grid utilities ── */
.mf-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.mf-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.mf-flex-between { display: flex; align-items: center; justify-content: space-between; }
.mf-gap-8 { gap: 8px; }
.mf-mb-16 { margin-bottom: 16px; }
.mf-mt-16 { margin-top: 16px; }

/* ── Responsive mf-* ── */

/* ── Responsive dark ── */

/* ═══════ WIZARD FIX — testi illeggibili round 3 ═══════ */
body.app-auth .bp-card p,
body.app-auth .bp-card small,
body.app-auth .bp-card span:not(.badge),
body.app-auth .bp-card label { color: var(--brand-gray-500); }

body.app-auth textarea.form-control { color: var(--brand-text); }
body.app-auth textarea.form-control::placeholder { color: var(--brand-muted); }

/* ═══════ DARK FIX R3 — problemi visivi da screenshot ═══════ */

/* Testo descrittivo sotto titoli sezione wizard */
body.app-auth .bp-info-box { background: var(--brand-surface-alt); border-color: var(--brand-border); color: var(--brand-gray-500); /* border-radius: gestito via --radius in variables */ }
body.app-auth .bp-info-box p,
body.app-auth .bp-info-box li,
body.app-auth .bp-info-box span { color: var(--brand-gray-500); }
body.app-auth [class*="text-muted"],
body.app-auth .form-text { color: var(--brand-gray-500); }

/* Subtitle/hint sotto heading nelle card wizard */
body.app-auth .card p,
body.app-auth .card small,
body.app-auth .card .text-muted { color: var(--brand-gray-500); }

/* Testo generico nei contenitori del wizard */
body.app-auth .app-main p:not(.flash-text) { color: var(--brand-gray-500); }
body.app-auth .app-main small { color: var(--brand-muted); }

/* Textarea placeholder e testo */
body.app-auth textarea { 
  color: var(--brand-text);
  background: var(--brand-gray-100);
  border-color: var(--brand-gray-200);
}
body.app-auth textarea::placeholder { color: var(--brand-muted); }

/* Cookie banner dark */
body.app-auth .ck-banner { 
  background: var(--brand-surface-alt);
  border: 1px solid var(--brand-border);
  color: var(--brand-gray-500);
}
body.app-auth .ck-banner p { color: var(--brand-gray-500); }
body.app-auth .ck-btn-ghost { 
  background: var(--brand-gray-100);
  color: var(--brand-gray-500);
  border: 1px solid var(--brand-gray-200);
}
body.app-auth .ck-btn-ghost:hover { 
  background: var(--brand-gray-200);
  color: var(--brand-text);
}
body.app-auth .ck-btn-accept {
  background: var(--brand-red);
  color: #fff;
}

/* Modal onboarding — testo descrittivo */
body.app-auth .dash-onboard-step p,
body.app-auth .dash-onboard-step .text-muted,
body.app-auth .dash-onboard-body p { color: var(--brand-gray-500); }

/* Testo "Consigliato" badge e hint inline */
body.app-auth .badge.bg-light { 
  background: var(--brand-gray-100) !important;
  color: var(--brand-gray-500) !important;
}

/* Bootstrap bg-* con !important — override per dark */
body.app-auth .bg-light { background: var(--brand-surface-alt) !important; }
body.app-auth .bg-white { background: var(--brand-surface) !important; }
body.app-auth .bg-body { background: var(--brand-bg) !important; }
body.app-auth .bg-transparent { background: transparent !important; }

/* ═══════ DARK FIX R4 — tabella investimenti step2 ═══════ */
body.app-auth .table tbody tr { background: var(--brand-surface); }
body.app-auth .table tbody tr:hover { background: var(--brand-surface-alt); }
body.app-auth .table tbody td { 
  background: transparent;
  color: var(--brand-gray-500);
  border-color: var(--brand-border);
}
body.app-auth .table-white tbody tr,
body.app-auth .table tbody tr.bg-white { background: var(--brand-surface) !important; }

/* ── Logo MurphFin AI in area auth ── */
body.app-auth .kai-brand { color: var(--brand-red); }
body.app-auth .kai-brand-fin { color: var(--brand-text); }
body.app-auth .kai-brand-ai { color: var(--brand-nvidia); }

/* ── Utility classes (extracted from inline styles) ── */

/* Text color utilities */
body.app-auth .mf-text-amber { color: var(--brand-warning); }
body.app-auth .mf-text-red { color: var(--brand-danger); }
body.app-auth .mf-text-green { color: var(--brand-success); }
body.app-auth .mf-text-blue { color: var(--brand-blue); }
body.app-auth .mf-text-muted { color: var(--brand-muted); }
body.app-auth .mf-text-dim { color: var(--brand-gray-500); }
body.app-auth .mf-text-brand { color: var(--brand-text); }

/* Font size utilities */
body.app-auth .mf-text-xs { font-size: 11px; }
body.app-auth .mf-text-sm { font-size: 11px; }
body.app-auth .mf-text-icon-xs { font-size: 11px; }
body.app-auth .mf-text-icon-sm { font-size: 11px; }
body.app-auth .mf-text-icon-md { font-size: 12px; }

/* Opacity */
body.app-auth .mf-opacity-60 { opacity: 0.6; }
body.app-auth .mf-opacity-40 { opacity: 0.4; }

/* Card & layout */
body.app-auth .mf-card-padded { padding: 20px; }

/* Page header variant — no bottom border */
body.app-auth .mf-page-header--flat { border-bottom: none; padding-bottom: 0; margin-bottom: 12px; }
body.app-auth .mf-page-header--flat-16 { border-bottom: none; padding-bottom: 0; margin-bottom: 16px; }
body.app-auth .mf-page-header--flat-8 { border-bottom: none; padding-bottom: 0; margin-bottom: 8px; }

/* Description text (mono, dim, small) */
body.app-auth .mf-desc { color: var(--brand-gray-500); font-family: var(--font-mono); font-size: 11px; margin-bottom: 16px; }
body.app-auth .mf-desc-sm { color: var(--brand-gray-500); font-family: var(--font-mono); font-size: 11px; }
body.app-auth .mf-hint { color: var(--brand-muted); font-size: 11px; font-family: var(--font-mono); }
body.app-auth .mf-hint-xs { color: var(--brand-muted); font-size: 11px; font-family: var(--font-mono); }
body.app-auth .mf-hint-block { display: block; color: var(--brand-muted); font-size: 11px; margin-top: 2px; }

/* Flex row (align center, gap) */
body.app-auth .mf-flex-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
body.app-auth .mf-flex-row-tight { display: flex; align-items: center; gap: 6px; }
body.app-auth .mf-flex-row-wide { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }

/* Labels */
body.app-auth .mf-label-strong { color: var(--brand-text); font-family: var(--font-head); font-size: 12px; font-weight: 700; }
body.app-auth .mf-label-upper { color: var(--brand-text); font-family: var(--font-head); font-size: 11px; font-weight: 700; text-transform: uppercase; display: block; margin-bottom: 4px; }
body.app-auth .mf-label-upper-6 { color: var(--brand-text); font-family: var(--font-head); font-size: 11px; font-weight: 700; text-transform: uppercase; display: block; margin-bottom: 6px; }
body.app-auth .mf-label-sub { color: var(--brand-text); font-family: var(--font-head); font-size: 11px; font-weight: 700; }
body.app-auth .mf-label-phase-blue { color: var(--brand-blue); font-family: var(--font-head); font-size: 11px; font-weight: 700; text-transform: uppercase; display: block; margin-bottom: 6px; }
body.app-auth .mf-label-phase-amber { color: var(--brand-warning); font-family: var(--font-head); font-size: 11px; font-weight: 700; text-transform: uppercase; display: block; margin-bottom: 6px; }
body.app-auth .mf-label-phase-green { color: var(--brand-success); font-family: var(--font-head); font-size: 11px; font-weight: 700; text-transform: uppercase; display: block; margin-bottom: 6px; }

/* Text detail (mono, dim, small) */
body.app-auth .mf-text-detail { color: var(--brand-gray-500); font-size: 11px; font-family: var(--font-mono); }

/* KPI cell variant — center stacked */
body.app-auth .mf-kpi-cell--center { flex-direction: column; align-items: center; text-align: center; }

/* Divider line */
body.app-auth .mf-divider { height: 1px; background: var(--brand-border); margin: 16px 0; }
body.app-auth .mf-divider-sm { height: 1px; background: var(--brand-border); margin: 12px 0; }

/* Form section title */
body.app-auth .mf-form-section-title { font-family: var(--font-head); font-size: 11px; font-weight: 700; color: var(--brand-gray-500); }
body.app-auth .mf-form-consent { font-family: var(--font-mono); font-size: 11px; color: var(--brand-gray-500); }

/* Subscription info grid */
body.app-auth .mf-info-grid { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; font-family: var(--font-mono); font-size: 11px; margin-bottom: 12px; }
body.app-auth .mf-info-hint { color: var(--brand-muted); font-size: 11px; font-family: var(--font-mono); margin-top: 2px; }

/* Danger zone card */
body.app-auth .mf-card--danger { padding: 20px; border-color: var(--brand-danger); border-left: 3px solid var(--brand-danger); }

/* "View all" / "See more" link style */
body.app-auth .mf-link-viewall { color: var(--brand-gray-500); font-family: var(--font-head); font-size: 11px; font-weight: 700; text-transform: uppercase; text-decoration: none; letter-spacing: 0.5px; }
body.app-auth .mf-link-viewall:hover { color: var(--brand-text); }

/* Table footer bar */
body.app-auth .mf-table-footer { padding: 8px 14px; border-top: 1px solid var(--brand-border); }

/* Table filter form inline */
body.app-auth .mf-table-filter-bar { padding: 8px 14px; border-bottom: 1px solid var(--brand-border); }

/* Dashboard mandati row items */
body.app-auth .mf-mandato-info { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
body.app-auth .mf-mandato-meta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
body.app-auth .mf-mandato-name { color: var(--brand-text); font-family: var(--font-mono); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.app-auth .mf-mandato-stat { color: var(--brand-muted); font-family: var(--font-mono); font-size: 11px; }

/* BP demo banner title */
body.app-auth .mf-demo-title { color: var(--brand-text); font-family: var(--font-head); font-size: 11px; font-weight: 700; text-transform: uppercase; }

/* BP link in table */
body.app-auth .mf-cell-link { color: var(--brand-text); text-decoration: none; }
body.app-auth .mf-cell-link:hover { text-decoration: underline; }

/* Clickable row */
body.app-auth .mf-clickable { cursor: pointer; }

/* Accordion (normativa) */
body.app-auth .mf-accordion-item { background: var(--brand-surface); border: none; }
body.app-auth .mf-accordion-btn { background: var(--brand-surface-alt); color: var(--brand-gray-500); font-family: var(--font-head); font-size: 11px; font-weight: 700; text-transform: uppercase; padding: 8px 14px; border-bottom: 1px solid var(--brand-border); }
body.app-auth .mf-accordion-body-flush { padding: 0; }
body.app-auth .mf-accordion-count { color: var(--brand-muted); margin-left: 8px; font-size: 11px; }

/* Normativa search wrapper */
body.app-auth .mf-search-wrap { margin-bottom: 12px; }
body.app-auth .mf-search-full { width: 100%; max-width: 360px; }

/* Normativa tabs */
body.app-auth .mf-tabs--wrap { flex-wrap: wrap; gap: 0; }

/* Timeline (mandati) */
body.app-auth .mf-timeline-mese { color: var(--brand-gray-500); font-family: var(--font-head); font-size: 11px; font-weight: 700; text-transform: uppercase; margin: 12px 0 6px; letter-spacing: 0.5px; }
body.app-auth .mf-timeline-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--brand-border); }
body.app-auth .mf-timeline-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
body.app-auth .mf-timeline-dot--red { background: var(--brand-danger); }
body.app-auth .mf-timeline-dot--amber { background: var(--brand-warning); }
body.app-auth .mf-timeline-dot--neutral { background: var(--brand-gray-300); }
body.app-auth .mf-timeline-date { color: var(--brand-gray-500); font-family: var(--font-mono); font-size: 11px; width: 40px; }
body.app-auth .mf-timeline-title { color: var(--brand-text); font-family: var(--font-mono); font-size: 11px; flex: 1; }
body.app-auth .mf-timeline-parent { color: var(--brand-muted); font-family: var(--font-mono); font-size: 11px; }
body.app-auth .mf-timeline-urgent { font-family: var(--font-head); font-size: 11px; font-weight: 700; }
body.app-auth .mf-text-urgent-red { color: var(--brand-danger); font-weight: 700; }

/* Empty padded */
body.app-auth .mf-empty-padded { padding: 24px; }
body.app-auth .mf-empty-icon-lg { font-size: 24px; }

/* Grid 4-col variant */
body.app-auth .mf-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }

/* Chat-specific inline overrides */
body.app-auth .mf-chat-send-btn { width: 36px; height: 36px; padding: 0; justify-content: center; }
body.app-auth .mf-chat-welcome-title { font-family: var(--font-head); font-size: 18px; font-weight: 900; margin-bottom: 8px; }

/* Button variants */
body.app-auth .mf-btn-ghost--compact { padding: 4px 8px; }
body.app-auth .mf-btn-danger { background: var(--brand-danger); }

/* ── Demo banner Brutus ── */
body.app-auth .demo-banner {
  background: var(--brand-surface-alt);
  color: var(--brand-muted);
  border-bottom: 1px solid var(--brand-border);
  position: sticky;
  top: var(--header-h, 40px);
  z-index: 1000;
}
body.app-auth .demo-banner-inner {
  margin-left: var(--sidebar-w, 200px);
}
body.app-auth.sidebar-collapsed .demo-banner-inner {
  margin-left: var(--sidebar-collapsed-w, 52px);
}
body.app-auth .demo-banner strong { color: var(--brand-text); }
body.app-auth .demo-banner-link { color: var(--brand-red); }
body.app-auth .demo-banner-link:hover { color: var(--brand-text); }

/* AI generation indicator — stile terminale Brutus */
body.app-auth .mf-ai-working {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.5px;
  color: var(--brand-muted);
}
body.app-auth .mf-ai-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  background: var(--brand-red);
  margin-right: 2px;
  animation: mf-blink 1.4s step-start infinite;
}
body.app-auth .mf-ai-dot:nth-child(2) { animation-delay: 0.2s; }
body.app-auth .mf-ai-dot:nth-child(3) { animation-delay: 0.4s; }
@keyframes mf-blink {
  50% { opacity: 0; }
}
