/* ================================================
   LEDGER — Design System v3.0 "Quixotic"
   Concept: Soft-minimalist · Light · Green Emerald
   Ispirazione: Quixotic Finance Dashboard
   ================================================ */

/* ── LIGHT MODE (default) ── */
:root {
  /* ── EMERALD LEDGER — token light (docs/02-DESIGN-SYSTEM.md) ── */
  --bg:             #F2F5F2;
  --bg-elevated:    #F7F9F7;
  --bg-subtle:      #F7F9F7;
  --bg-card:        #FFFFFF;
  --bg-card-hover:  #F7F9F7;
  --bg-input:       #FFFFFF;
  --bg-hover:       #E4F3EB;
  --bg-table-h:     #F7F9F7;
  --bg-overlay:     rgba(15,23,20,0.45);
  --bg-sidebar:     #FFFFFF;
  --bg-sidebar-h:   #E4F3EB;
  --border-sidebar: #DCE5DE;

  --text:           #17221B;
  --text-muted:     #526159;
  --text-light:     #5F6D65;
  --text-sidebar:   #526159;
  --text-sidebar-a: #17221B;

  --border:         #DCE5DE;
  --border-dark:    #CBD7CF;

  --acc:            #177A52;
  --acc-hover:      #116241;
  --acc-light:      #E4F3EB;
  --acc-muted:      #8FBFA8;
  --acc-glow:       rgba(23,122,82,0.18);
  --acc-text:       #0E583A;

  --green:          #177A52;
  --green-bg:       #E4F3EB;
  --green-border:   #8FBFA8;
  --green-text:     #0E583A;

  --red:            #C64750;
  --red-bg:         #FBEAEC;
  --red-border:     #EBC1C4;
  --red-text:       #A7313A;

  --amber:          #A76612;
  --amber-bg:       #FFF3DC;
  --amber-border:   #ECD3A0;
  --amber-text:     #82500A;

  --orange:         #EA580C;
  --orange-bg:      #FFF7ED;
  --orange-border:  #FED7AA;
  --orange-text:    #C2410C;

  --sky:            #3569B7;
  --sky-bg:         #E9F0FB;
  --sky-border:     #C1D3EE;
  --sky-text:       #3569B7;

  --violet:         #7658A5;
  --violet-bg:      #F1ECF8;
  --violet-border:  #D8CCE8;
  --violet-text:    #7658A5;

  /* Fatture: struttura familiare InvoiceHome, palette RB Control */
  --fat-editor-bg:      #E8F5EF;
  --fat-editor-surface: #FFFFFF;
  --fat-editor-border:  #BFDACD;

  --font:           'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, sans-serif;
  --mono:           'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;

  --shadow-xs:      0 1px 2px rgba(19,33,24,0.04);
  --shadow-sm:      0 1px 2px rgba(19,33,24,0.05), 0 6px 18px rgba(19,33,24,0.04);
  --shadow-md:      0 12px 36px rgba(19,33,24,0.09);
  --shadow-lg:      0 20px 50px rgba(19,33,24,0.12);
  --glow-card:      0 1px 4px rgba(19,33,24,0.06), 0 0 0 1px rgba(19,33,24,0.03);

  --sidebar-w:     248px;
  --radius-xs:     6px;
  --radius-sm:     10px;
  --radius-md:     16px;
  --radius-lg:     18px;
  --radius-xl:     24px;
  --radius-full:   999px;
}

.immobili-payment-source { border: 1px solid var(--border, #d9dee7); border-radius: 12px; padding: 12px; }
.immobili-payment-choice { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-right: 20px; }
.immobili-payment-group { display: grid; gap: 12px; }
.immobili-record-warning { color:var(--amber-text); background:var(--amber-bg); border:1px solid var(--amber-border); border-radius:10px; padding:10px 12px; }
.immobili-candidate-results { display: grid; gap: 8px; }
.immobili-detail-subtitle { margin-top: 24px; }
.immobili-payment-row { display: grid; gap: 8px; }
@media (max-width: 640px) { .immobili-payment-choice { display: flex; margin-right: 0; } }

/* ── DARK MODE override — RB Control ── */
html.dark {
  --bg:             #0B120E;
  --bg-elevated:    #16221B;
  --bg-subtle:      #16221B;
  --bg-card:        #111A15;
  --bg-card-hover:  #16221B;
  --bg-input:       #111A15;
  --bg-hover:       #173A29;
  --bg-table-h:     #16221B;
  --bg-overlay:     rgba(2,8,5,0.7);
  --bg-sidebar:     #111A15;
  --bg-sidebar-h:   #173A29;
  --border-sidebar: #26372D;
  --text:           #EEF6F0;
  --text-muted:     #B6C4BA;
  --text-light:     #8FA096;
  --text-sidebar:   #B6C4BA;
  --text-sidebar-a: #EEF6F0;
  --border:         #26372D;
  --border-dark:    #35483D;
  --acc:            #4FC78C;
  --acc-hover:      #68D9A2;
  --acc-light:      #173A29;
  --acc-muted:      #2E5A45;
  --acc-glow:       rgba(79,199,140,0.25);
  --acc-text:       #91EBBA;
  --green:          #4FC78C;
  --green-bg:       #173A29;
  --green-border:   #2E5A45;
  --green-text:     #91EBBA;
  --red:            #F07980;
  --red-bg:         #421F24;
  --red-border:     #5E2E34;
  --red-text:       #F07980;
  --amber:          #E9AE58;
  --amber-bg:       #3D2D16;
  --amber-border:   #5A4526;
  --amber-text:     #E9AE58;
  --orange:         #FB923C;
  --orange-bg:      rgba(249,115,22,0.12);
  --orange-border:  rgba(249,115,22,0.25);
  --orange-text:    #FDB07C;
  --sky:            #77A5EE;
  --sky-bg:         #1B304E;
  --sky-border:     #2C4870;
  --sky-text:       #77A5EE;
  --violet:         #B99BE2;
  --violet-bg:      #302542;
  --violet-border:  #473465;
  --violet-text:    #B99BE2;
  --fat-editor-bg:      #14251C;
  --fat-editor-surface: #1B3025;
  --fat-editor-border:  #3E624F;
  --shadow-xs:      0 1px 2px rgba(0,0,0,0.4);
  --shadow-sm:      0 2px 8px rgba(0,0,0,0.5);
  --shadow-md:      0 8px 24px rgba(0,0,0,0.6);
  --shadow-lg:      0 20px 48px rgba(0,0,0,0.7);
  --glow-card:      0 0 0 1px rgba(255,255,255,0.04);
  --radius-xs:     6px;
  --radius-sm:     10px;
  --radius-md:     16px;
  --radius-lg:     18px;
  --radius-xl:     24px;
}

/* ── RESET ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box }
html { font-size:16px; -webkit-text-size-adjust:100% }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  min-height: 100vh;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: background .2s ease, color .2s ease;
}
::-webkit-scrollbar { width:5px; height:5px }
::-webkit-scrollbar-track { background:transparent }
::-webkit-scrollbar-thumb { background:var(--border-dark); border-radius:10px }
::-webkit-scrollbar-thumb:hover { background:var(--text-muted) }

/* ================================================
   PIN SCREEN
   ================================================ */
#pin-screen {
  position:fixed; inset:0;
  background: radial-gradient(ellipse at 50% -10%, rgba(11,131,82,0.12) 0%, transparent 55%),
              var(--bg);
  display:flex; align-items:center; justify-content:center;
  overflow-x:hidden; overflow-y:auto;
  padding:24px 16px;
  z-index:9999;
}
.pin-box {
  background:var(--bg-card);
  border:1px solid var(--border-dark);
  border-radius:var(--radius-xl);
  padding:40px 36px;
  width:330px;
  text-align:center;
  box-shadow: var(--shadow-lg), var(--glow-card);
  animation: pinBoxIn .32s cubic-bezier(.34,1.56,.64,1);
}
@keyframes pinBoxIn {
  from { opacity:0; transform:scale(.93) translateY(18px) }
  to   { opacity:1; transform:scale(1) translateY(0) }
}
.pin-logo {
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px;
  border-radius:14px;
  margin-bottom:20px;
  box-shadow:0 8px 24px rgba(14,159,110,.18);
  overflow:hidden;
}
.pin-logo img { display:block; width:48px; height:48px }
.pin-title {
  font-size:1rem; font-weight:700; color:var(--text);
  margin-bottom:4px; letter-spacing:-.02em;
}
.pin-sub { font-size:.76rem; color:var(--text-muted); margin-bottom:24px }
.pin-dots { display:flex; gap:9px; justify-content:center; margin-bottom:24px }
.pin-dot {
  width:10px; height:10px;
  border:2px solid var(--border-dark);
  border-radius:50%;
  transition:all .12s ease;
}
.pin-dot.filled { background:var(--acc); border-color:var(--acc); box-shadow:0 0 6px var(--acc-glow); transform:scale(1.1) }
.pin-dot.error  { background:var(--red); border-color:var(--red) }
.pin-keypad { display:grid; grid-template-columns:repeat(3,1fr); gap:7px }
.pin-key {
  background:var(--bg-elevated);
  border:1px solid var(--border);
  color:var(--text);
  font-family:var(--font);
  font-size:1rem; font-weight:500;
  padding:14px;
  cursor:pointer;
  border-radius:var(--radius-md);
  transition:all .1s ease;
  user-select:none;
}
.pin-key:hover  { background:var(--bg-card-hover); border-color:var(--border-dark) }
.pin-key:active { background:var(--acc-light); color:var(--acc-text); border-color:var(--acc-muted); transform:scale(.96) }
.pin-key.del    { font-size:.78rem; color:var(--text-muted) }
.pin-key.del svg { width:20px; height:20px; display:block; margin:auto }
.pin-key.del:hover { color:var(--red-text) }
.pin-msg { margin-top:12px; font-size:.72rem; color:var(--red-text); min-height:16px; font-weight:500 }
.pin-setup-label {
  font-size:.62rem; font-weight:700; color:var(--acc-text);
  text-transform:uppercase; letter-spacing:.1em; margin-bottom:6px;
}
@media (max-height:640px) {
  #pin-screen { align-items:flex-start }
  #pin-screen .pin-box { margin:0; padding-top:28px; padding-bottom:28px }
}

/* ================================================
   LAYOUT
   ================================================ */
#app { display:none; min-height:100vh }

/* Primo stop tastiera: resta fuori dal flusso finche non serve, poi supera le nav fisse. */
.skip-link {
  position:fixed; top:0; left:50%; z-index:1100;
  transform:translate(-50%,-140%);
  padding:10px 14px;
  background:var(--bg-card); color:var(--acc-text);
  border:1px solid var(--acc); border-radius:var(--radius-sm);
  box-shadow:var(--shadow-md);
  font:700 .82rem var(--font); text-decoration:none;
  transition:none;
}
.skip-link:focus,
.skip-link:focus-visible {
  transform:translate(-50%,12px);
  outline:3px solid var(--acc);
  outline-offset:3px;
}
@media (prefers-reduced-motion: reduce) {
  .skip-link { transition:none }
}

/* ── SIDEBAR ── */
.sidebar {
  position:fixed; left:0; top:0; bottom:0;
  width:var(--sidebar-w);
  background:var(--bg-sidebar);
  display:flex; flex-direction:column;
  z-index:100;
  overflow-y:auto; overflow-x:hidden;
  border-right:1px solid var(--border-sidebar);
}
.sidebar-logo {
  padding:18px 16px 16px;
  border-bottom:1px solid var(--border-sidebar);
  display:flex; align-items:center; gap:10px;
  flex-shrink:0;
}
.sidebar-logo-icon {
  width:32px; height:32px;
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  box-shadow:0 4px 12px rgba(14,159,110,.22);
  overflow:hidden;
}
.sidebar-logo-icon img { display:block; width:32px; height:32px }
.sidebar-logo-name {
  font-size:.88rem; font-weight:700; color:var(--text);
  letter-spacing:-.02em; line-height:1;
}
.sidebar-logo-version {
  font-size:.56rem; color:var(--text-light);
  font-family:var(--mono); margin-top:2px;
}

.sidebar-section {
  padding:20px 10px 4px;
}

/* ── FILTRO SOCIETÀ GLOBALE ── */
.sidebar-soc-filter {
  padding:10px 12px 8px;
  border-bottom:1px solid var(--border-sidebar);
}
.sidebar-soc-filter label {
  display:block;
  font-size:.6rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--text-light);
  margin-bottom:5px;
}
.sidebar-soc-filter select {
  width:100%; height:30px;
  padding:0 8px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--bg-elevated);
  color:var(--text);
  font-size:.78rem; font-weight:600;
  font-family:var(--font);
  cursor:pointer; outline:none;
  -webkit-appearance:none;
  transition:border-color .15s, background .15s;
}
.sidebar-soc-filter select:hover { border-color:var(--acc-muted); background:var(--bg-hover) }
.sidebar-soc-filter select:focus { border-color:var(--acc); outline:3px solid var(--acc); outline-offset:2px; box-shadow:none }
.sidebar-soc-filter select.has-filter {
  background:var(--acc-light);
  border-color:var(--acc-muted);
  color:var(--acc);
}

.sidebar-section-label {
  font-size:.58rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.12em;
  color:var(--text-light);
  padding:0 12px; margin-bottom:6px;
}

.nav-item {
  display:flex; align-items:center; gap:9px;
  width:100%; min-height:44px;
  padding:8px 12px;
  margin:1px 6px;
  cursor:pointer;
  border:0; background:transparent; text-align:left; text-decoration:none;
  font:500 .82rem/1.3 var(--font);
  color:var(--text-sidebar);
  border-radius:var(--radius-sm);
  transition:background .12s ease, color .12s ease;
  white-space:nowrap; position:relative;
}
.nav-item:focus-visible { outline:3px solid var(--acc); outline-offset:2px; box-shadow:none }
.nav-item:hover {
  background:var(--bg-sidebar-h);
  color:var(--acc);
}
.nav-item.active {
  background:var(--acc-light);
  color:var(--acc);
  font-weight:600;
}
.nav-item.active .nav-icon svg { color:var(--acc); opacity:1 }
.nav-icon {
  width:18px; height:18px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.nav-icon svg { width:15px; height:15px; color:var(--text-light); transition:color .12s }
.nav-item:hover .nav-icon svg { color:var(--acc) }
.nav-badge {
  margin-left:auto;
  background:var(--red);
  color:#fff; font-size:.55rem; font-weight:700;
  padding:2px 6px; border-radius:var(--radius-full); min-width:17px; text-align:center;
}
.sidebar-footer {
  margin-top:auto;
  padding:10px 10px 14px;
  border-top:1px solid var(--border);
}

/* ── MAIN ── */
.main {
  margin-left:var(--sidebar-w);
  min-height:100vh;
  padding:28px 32px;
}
.main.compact { padding:10px 14px; }
.page { display:none }
.page.active { display:block }

/* ── TOPBAR GLOBALE (shell RB Control, persistente su tutte le pagine) ── */
.global-topbar {
  position:sticky; top:0; z-index:80;
  display:flex; align-items:center; gap:14px;
  height:64px;
  margin:-28px -32px 28px;
  padding:0 32px;
  background:var(--bg-card);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(6px);
}
@media (min-width:641px) {
  .main.compact > .global-topbar { margin:-10px -14px 10px; padding:0 14px; }
}
.gt-hamburger {
  display:none;
  width:36px; height:36px; min-width:44px; min-height:44px;
  align-items:center; justify-content:center;
  border:0; background:transparent; border-radius:var(--radius-sm);
  color:var(--text-muted); cursor:pointer;
}
.gt-hamburger svg { width:20px; height:20px }
.gt-hamburger:focus-visible { outline:3px solid var(--acc); outline-offset:2px; box-shadow:none }
.gt-search {
  display:flex; align-items:center; gap:10px;
  flex:1; max-width:420px;
  height:38px; padding:0 14px;
  border:1px solid var(--border); border-radius:var(--radius-full);
  background:var(--bg-hover); color:var(--text-muted);
  cursor:pointer; font-family:var(--font); font-size:.82rem;
}
.gt-search:hover { border-color:var(--acc-muted); color:var(--text) }
.gt-search:focus-visible { outline:3px solid var(--acc); outline-offset:2px; box-shadow:none }
.gt-search svg { width:16px; height:16px; flex-shrink:0 }
.gt-search-label { flex:1; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.gt-search-kbd {
  font-size:.6rem; padding:2px 6px; border:1px solid var(--border); border-radius:4px;
  color:var(--text-light); font-family:var(--mono); flex-shrink:0;
}
.gt-right { display:flex; align-items:center; gap:8px; margin-left:auto; flex-shrink:0 }
.gt-icon-btn {
  position:relative;
  width:38px; height:38px; min-width:44px; min-height:44px;
  display:flex; align-items:center; justify-content:center;
  border:0; background:transparent; border-radius:50%;
  color:var(--text-muted); cursor:pointer; font-size:1rem;
}
.gt-icon-btn:hover { background:var(--bg-hover); color:var(--text) }
.gt-icon-btn:focus-visible { outline:3px solid var(--acc); outline-offset:2px; box-shadow:none }
.gt-icon-btn svg { width:19px; height:19px }
.gt-badge {
  position:absolute; top:2px; right:2px;
  min-width:15px; height:15px; padding:0 3px;
  border-radius:999px; background:var(--negative,#C64750); color:#fff;
  font-size:.6rem; font-weight:700; line-height:15px; text-align:center;
}
.gt-avatar { display:flex; align-items:center; gap:9px; padding-left:6px; border-left:1px solid var(--border) }
.gt-avatar-circle {
  width:34px; height:34px; border-radius:50%;
  background:var(--acc); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:.72rem; font-weight:700; letter-spacing:.02em; flex-shrink:0;
}
.gt-avatar-image {
  width:34px; height:34px; border-radius:50%; object-fit:cover; flex-shrink:0;
  border:1px solid var(--border);
}
.gt-avatar-text { display:flex; flex-direction:column; line-height:1.2 }
.gt-avatar-text strong { font-size:.78rem; color:var(--text) }
.gt-avatar-text small { font-size:.66rem; color:var(--text-muted); font-weight:500 }

/* ── Profilo proprietario ── */
.profile-settings-card { display:flex; flex-direction:column; gap:10px; }
.profile-settings-help { margin:0; color:var(--text-muted); font-size:.76rem; line-height:1.45; }
.profile-preview { display:flex; align-items:center; gap:10px; min-height:48px; }
.profile-preview-image,
.profile-preview-initials { width:48px; height:48px; border-radius:50%; flex-shrink:0; }
.profile-preview-image { object-fit:cover; border:1px solid var(--border); }
.profile-preview-initials { display:flex; align-items:center; justify-content:center; background:var(--acc); color:#fff; font-size:.82rem; font-weight:700; }
.profile-preview span:last-child { display:flex; flex-direction:column; gap:2px; font-size:.78rem; color:var(--text-muted); }
.profile-preview strong { color:var(--text); }
.profile-avatar-input { min-height:44px; max-width:100%; padding:8px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--bg-input); color:var(--text); }
.profile-avatar-input:focus-visible,
.profile-actions button:focus-visible { outline:3px solid var(--acc); outline-offset:2px; box-shadow:none; }
.profile-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:2px; }
.profile-actions button { min-width:44px; min-height:44px; }
.profile-status { min-height:20px; color:var(--text-muted); font-size:.78rem; }
.profile-status[data-state="error"] { color:var(--red-text); }
.profile-status[data-state="success"] { color:var(--green-text); }
@media (max-width:640px) {
  .global-topbar { height:56px; margin:-14px -14px 14px; padding:0 10px; gap:8px }
  .gt-hamburger { display:flex }
  .gt-search-label, .gt-search-kbd { display:none }
  .gt-search { flex:0 0 auto; width:44px; height:44px; padding:0; justify-content:center; border-radius:50% }
  .gt-avatar-text { display:none }
  .gt-avatar { border-left:0; padding-left:0 }
  .profile-settings-card { min-width:0; }
}

/* ── TOP BAR (intestazione di pagina, dentro ogni .page) ── */
.topbar {
  display:flex; align-items:flex-start;
  justify-content:space-between;
  margin-bottom:28px;
  gap:16px;
}
.page-title {
  font-size:1.3rem; font-weight:700;
  color:var(--text); letter-spacing:-.03em; line-height:1.1;
}
.page-subtitle {
  font-size:.78rem; color:var(--text-muted);
  margin-top:4px; font-weight:400;
}
.topbar-right {
  display:flex; gap:8px; align-items:center; flex-shrink:0;
}

/* ── SELECT TOPBAR ── */
.topbar-right select {
  height:36px; padding:0 12px;
  border:1px solid var(--border);
  border-radius:var(--radius-full);
  font-size:.78rem; font-weight:500;
  background:var(--bg-card); color:var(--text-muted);
  cursor:pointer; outline:none;
  font-family:var(--font);
  transition:border-color .15s, color .15s;
  -webkit-appearance:none;
  box-shadow:var(--shadow-xs);
}
.topbar-right select:hover { border-color:var(--acc-muted); color:var(--text) }
.topbar-right select:focus { border-color:var(--acc); box-shadow:0 0 0 3px var(--acc-glow); color:var(--text) }
select option { background:var(--bg-card); color:var(--text) }

/* ================================================
   KPI CARDS
   ================================================ */
.kpi-grid {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:10px;
  margin-bottom:24px;
}
#page-progetti .kpi-grid {
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
/* Card principale grande — Da Riscuotere */
.kpi-card {
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:20px 22px;
  box-shadow:var(--shadow-sm);
  transition:border-color .18s, box-shadow .18s;
  position:relative;
  overflow:hidden;
}
.kpi-card:hover {
  background:var(--bg-card-hover);
  box-shadow:var(--shadow-md);
  border-color:var(--border-dark);
}
/* Accent top line */
.kpi-card::before {
  content:'';
  position:absolute; top:0; left:0; right:0;
  height:3px;
  background:transparent;
  border-radius:var(--radius-md) var(--radius-md) 0 0;
}
.kpi-card-blue::before   { background:linear-gradient(90deg, var(--acc), var(--acc-hover)) }
.kpi-card-green::before  { background:linear-gradient(90deg, var(--green), #0EA86A) }
.kpi-card-red::before    { background:linear-gradient(90deg, var(--red), #FC8181) }
.kpi-card-amber::before  { background:linear-gradient(90deg, var(--amber), #FCD34D) }
.kpi-card-orange::before { background:linear-gradient(90deg, var(--orange), #FDBA74) }

.kpi-icon {
  width:32px; height:32px;
  border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:14px;
}
.kpi-icon svg { width:15px; height:15px }
.kpi-icon-blue   { background:var(--acc-light);   color:var(--acc) }
.kpi-icon-blue   svg { color:var(--acc) }
.kpi-icon-green  { background:var(--green-bg);   color:var(--green) }
.kpi-icon-green  svg { color:var(--green) }
.kpi-icon-red    { background:var(--red-bg);     color:var(--red) }
.kpi-icon-red    svg { color:var(--red) }
.kpi-icon-amber  { background:var(--amber-bg);   color:var(--amber) }
.kpi-icon-amber  svg { color:var(--amber) }
.kpi-icon-orange { background:var(--orange-bg);  color:var(--orange) }
.kpi-icon-orange svg { color:var(--orange) }
.kpi-icon-slate  { background:var(--bg-elevated) }
.kpi-icon-slate  svg { color:var(--text-muted) }

.kpi-label {
  font-size:.6rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--text-light); margin-bottom:6px;
}
.kpi-value {
  font-family:var(--mono);
  font-size:1.35rem; font-weight:600;
  color:var(--text); letter-spacing:-.03em; line-height:1;
  margin-bottom:6px;
}
.kpi-value.v-green  { color:var(--green-text) }
.kpi-value.v-red    { color:var(--red-text) }
.kpi-value.v-amber  { color:var(--amber-text) }
.kpi-value.v-orange { color:var(--orange-text) }
.kpi-value.v-blue   { color:var(--acc-text) }
.kpi-sub {
  font-size:.66rem; color:var(--text-muted);
  display:flex; align-items:center; gap:4px;
}

/* ================================================
   CHARTS
   ================================================ */
.charts-grid {
  display:grid; grid-template-columns:1.4fr 1fr;
  gap:10px; margin-bottom:10px; min-width:0;
}
.chart-box {
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:24px 26px;
  box-shadow:var(--shadow-sm); min-width:0;
}
.chart-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:18px;
}
.chart-title {
  font-size:.68rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--text-muted);
}
canvas { max-width:100%; max-height:200px }

/* ================================================
   TABELLE
   ================================================ */
.table-wrap {
  overflow-x:auto;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  background:var(--bg-card);
  box-shadow:var(--shadow-sm);
}
table { width:100%; border-collapse:collapse }
thead tr { border-bottom:1px solid var(--border) }
th {
  padding:10px 14px;
  font-size:.6rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--text-light);
  text-align:left; white-space:nowrap;
  background:var(--bg-table-h);
}
td {
  padding:11px 14px;
  border-bottom:1px solid var(--border);
  font-size:.8rem; white-space:nowrap;
  vertical-align:middle; color:var(--text-muted);
}
tbody tr:last-child td { border-bottom:none }
tbody tr { transition:background .1s }
tbody tr:hover { background:var(--bg-card-hover); cursor:pointer }

.td-num   { text-align:right; font-family:var(--mono); font-weight:500; letter-spacing:-.02em; color:var(--text) }
.td-green { color:var(--green-text); font-weight:500 }
.td-red   { color:var(--red-text);   font-weight:500 }
.td-amber { color:var(--amber-text); font-weight:500 }
.td-yel   { color:var(--amber-text); font-weight:500 }
.td-ora   { color:var(--orange-text);font-weight:500 }
.td-muted { color:var(--text-muted) }
.td-mono  { font-family:var(--mono); color:var(--text) }
.td-dim   { font-size:.7rem; color:var(--text-light) }

/* ================================================
   BADGES
   ================================================ */
.badge {
  display:inline-flex; align-items:center;
  font-family:var(--font);
  font-size:.62rem; font-weight:600;
  letter-spacing:.03em;
  padding:3px 10px;
  border-radius:var(--radius-full);
  white-space:nowrap; border:1px solid transparent;
}
.badge-green  { background:var(--green-bg);   color:var(--green-text);  border-color:var(--green-border) }
.badge-red    { background:var(--red-bg);     color:var(--red-text);    border-color:var(--red-border) }
.badge-amber  { background:var(--amber-bg);   color:var(--amber-text);  border-color:var(--amber-border) }
.badge-orange { background:var(--orange-bg);  color:var(--orange-text); border-color:var(--orange-border) }
.badge-blue   { background:var(--acc-light);  color:var(--acc-text);    border-color:var(--acc-muted) }
.badge-gray   { background:var(--bg-hover);   color:var(--text-muted);  border-color:var(--border-dark) }
.badge-sky    { background:var(--sky-bg);     color:var(--sky-text);    border-color:var(--sky-border) }
.badge-yellow { background:var(--amber-bg);   color:var(--amber-text);  border-color:var(--amber-border) }
.badge-purple { background:rgba(124,58,237,.10); color:#7C3AED; border-color:rgba(124,58,237,.20) }

/* TAB */
.tab-btn {
  padding:8px 16px;
  border:none;
  border-bottom:2px solid transparent;
  background:transparent;
  color:var(--text-muted);
  font-family:var(--font);
  font-size:.8rem;
  font-weight:500;
  cursor:pointer;
  transition:color .15s, border-color .15s;
  margin-bottom:-2px;
}
.tab-btn:hover { color:var(--text) }
.tab-active { color:var(--text) !important; border-bottom-color:var(--acc) !important; font-weight:600 !important }

/* BACHECA NOTE */
.nota-card {
  border-radius:var(--radius-md);
  padding:12px 13px;
  font-size:.82rem;
  line-height:1.5;
  position:relative;
  border:1px solid transparent;
  word-break:break-word;
  transition:opacity .2s;
}
.nota-card.completata { opacity:.4; text-decoration:line-through }
.nota-yellow { background:var(--amber-bg);       border-color:var(--amber-border); color:var(--amber-text) }
.nota-blue   { background:var(--acc-light);      border-color:var(--acc-muted);   color:var(--acc-text) }
.nota-green  { background:var(--green-bg);       border-color:var(--green-border); color:var(--green-text) }
.nota-red    { background:var(--red-bg);         border-color:var(--red-border);  color:var(--red-text) }
.nota-purple { background:rgba(124,58,237,.08); border-color:rgba(124,58,237,.20); color:#7C3AED }
.nota-actions { display:flex;gap:4px;margin-top:8px;justify-content:flex-end }

/* SCADENZA CARD */
.scadenza-card {
  background:var(--bg-elevated);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:12px 16px;
  margin-bottom:8px;
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  transition:border-color .15s;
}
.scadenza-card:hover { border-color:var(--border-dark) }
.scadenza-card.urgente  { border-left:3px solid var(--red); }
.scadenza-card.prossima { border-left:3px solid var(--amber); }
.scadenza-card.ok       { border-left:3px solid var(--green); }
.scadenza-giorni {
  min-width:52px;
  text-align:center;
  font-size:.7rem;
  font-weight:700;
  padding:4px 6px;
  border-radius:6px;
}
/* PERSONALE */
.pers-row {
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:12px 16px;
  display:flex;
  align-items:center;
  gap:12px;
  transition:border-color .15s;
}
.pers-row:hover { border-color:var(--acc-muted); }
.pers-pill-renato   { background:var(--violet-bg);color:var(--violet-text);border:1px solid var(--violet-border);border-radius:6px;padding:2px 8px;font-size:.68rem;font-weight:600 }
.pers-pill-compagna { background:var(--orange-bg);color:var(--orange-text);border:1px solid var(--orange-border);border-radius:6px;padding:2px 8px;font-size:.68rem;font-weight:600 }
.pers-pill-entrambi { background:var(--green-bg);color:var(--green-text);border:1px solid var(--green-border);border-radius:6px;padding:2px 8px;font-size:.68rem;font-weight:600 }
.pers-category-pill {
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:2px 7px;
  border:1px solid var(--border-dark);
  border-radius:5px;
  background:var(--bg-elevated);
  color:var(--text);
  font-size:.7rem;
  font-weight:600;
}
#page-personale #pers-tot-compagna { color:var(--orange-text) !important }

.fx-conv-source { color:var(--intel-acc-text); font-weight:700; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px }
.fx-conv-equals { color:var(--text-muted); font-size:.85rem }
.fx-conv-target { color:var(--text); font-weight:700 }

/* Commissioni — esito visibile di salvataggio */
.comm-save-status,
.rubrica-panel-status {
  display:inline-flex;
  align-items:center;
  min-height:24px;
  max-width:calc(100% - 2px);
  margin:0 0 10px;
  padding:4px 8px;
  border:1px solid currentColor;
  border-radius:var(--radius-sm);
  background:var(--bg-subtle);
  color:var(--text-muted);
  font-size:.75rem;
  font-weight:600;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.comm-save-status:empty,
.rubrica-panel-status:empty { display:none; }
.comm-save-status[data-state="info"],
.rubrica-panel-status[data-state="info"] { color:var(--sky-text); background:var(--sky-bg); }
.comm-save-status[data-state="success"],
.rubrica-panel-status[data-state="success"] { color:var(--green-text); background:var(--green-bg); }
.comm-save-status[data-state="error"],
.rubrica-panel-status[data-state="error"] { color:var(--red-text); background:var(--red-bg); }

/* RUBRICA */
.rubrica-tabs { display:flex; gap:8px; margin-bottom:20px; }
.rubrica-card {
  appearance:none;
  width:100%;
  text-align:left;
  font:inherit;
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:16px 18px;
  cursor:pointer;
  transition:border-color .15s, box-shadow .15s;
  display:flex;
  flex-direction:column;
  gap:6px;
  box-shadow:var(--shadow-xs);
}
.rubrica-card:hover {
  border-color:var(--acc-muted);
  box-shadow:var(--shadow-sm);
}
.rubrica-card:focus-visible,
.rubrica-retry-button:focus-visible,
.rubrica-show-more:focus-visible,
#rubrica-panel-close:focus-visible { outline:3px solid var(--acc-glow); outline-offset:2px; }
.rubrica-card-nome {
  font-weight:600;
  font-size:.92rem;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.rubrica-card-category { color:var(--text-muted); font-size:.72rem; font-weight:600; margin-left:6px; }
.rubrica-card--bene .rubrica-card-tot { color:var(--red-text); }
.rubrica-card-meta {
  font-size:.7rem;
  color:var(--text-muted);
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.rubrica-card-tot {
  font-size:1rem;
  font-weight:600;
  color:var(--acc-text);
  margin-top:2px;
}
#rubrica-panel-tot { color:var(--acc-text); }
#rubrica-panel-tot.rubrica-panel-tot--bene { color:var(--red-text); }
.rubrica-mov-row {
  background:var(--bg-elevated);
  border:1px solid var(--border);
  border-radius:8px;
  padding:10px 14px;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.rubrica-mov-row:hover { border-color:var(--acc-muted); }
#rubrica-panel { transition:transform .25s ease; }
#rubrica-panel[hidden], #rubrica-panel-overlay[hidden] { display:none !important; }
#rubrica-panel.open { display:flex !important; }
.rubrica-list-message { padding:16px 0; }
.rubrica-retry-button { margin-top:4px; min-height:36px; }
.rubrica-show-more { align-self:start; min-height:36px; }
.rubrica-state {
  display:inline-flex;
  align-items:center;
  max-width:100%;
  min-height:20px;
  padding:3px 7px;
  border:1px solid currentColor;
  border-radius:999px;
  font-size:.68rem;
  font-weight:700;
  line-height:1.15;
  overflow-wrap:anywhere;
}
.rubrica-state--success { color:var(--green-text); background:var(--green-bg); }
.rubrica-state--warning { color:var(--amber-text); background:var(--amber-bg); }
.rubrica-state--danger { color:var(--red-text); background:var(--red-bg); }
.rubrica-state--neutral { color:var(--text-muted); background:var(--bg-subtle); }
.rubrica-mov-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.rubrica-mov-heading strong { color:var(--acc-text); }
.rubrica-mov-row--bene .rubrica-mov-heading strong { color:var(--red-text); }
.rubrica-mov-meta { font-size:.78rem; color:var(--text-muted); display:flex; gap:10px; flex-wrap:wrap; margin-top:3px; }

/* COMMISSIONI */
#page-commissioni {
  --comm-danger-text:#9E2F3A;
  --comm-focus:#177A52;
}
html.dark #page-commissioni {
  --comm-danger-text:#F07980;
  --comm-focus:#4FC78C;
}
html.dark #page-commissioni .btn-primary { color:#0B120E; }
.comm-table-wrap { max-width:100%; overflow-x:auto; scrollbar-gutter:stable; }
.comm-table { width:100%; min-width:1180px; border-collapse:collapse; font-size:.82rem; table-layout:fixed; }
.comm-table col:nth-child(7) { width:110px !important; }
.comm-table col:nth-child(10) { width:128px !important; }
.comm-table col:nth-child(12) { width:76px !important; }
.comm-competence .comm-cell[data-field="periodo_mese"] { width:46px !important; }
.comm-competence .comm-cell[data-field="periodo_anno"] { width:70px !important; }
.comm-table th { padding:5px 6px; background:var(--bg-subtle,#f8f9fa); border-bottom:2px solid var(--border); text-align:left; color:var(--text-muted); font-size:.72rem; font-weight:600; letter-spacing:.04em; }
.comm-table th:first-child, .comm-table th:nth-child(5), .comm-table th:nth-child(6), .comm-table th:nth-child(7), .comm-table th:nth-child(10), .comm-table th:last-child { text-align:center; }
.comm-table th:nth-child(4) { text-align:right; }
.comm-table td { padding:2px 3px; border-bottom:1px solid var(--border); }
.comm-row--ricevuto { background:color-mix(in srgb, var(--green-bg) 44%, transparent); }
.comm-row--confermato { background:color-mix(in srgb, var(--sky-bg) 34%, transparent); }
.comm-row-number { width:24px; text-align:center; color:var(--text-muted); font-size:.7rem; user-select:none; }
.comm-state-button, .comm-invoice-button, .comm-delete-button { min-height:30px; max-width:100%; border:1px solid var(--border); border-radius:999px; padding:4px 8px; background:var(--bg-card); color:var(--text-muted); font:600 .7rem/1.2 var(--font); white-space:normal; cursor:pointer; }
.comm-state-button--atteso { color:var(--amber-text); background:var(--amber-bg); border-color:var(--amber-border); }
.comm-state-button--confermato { color:var(--sky-text); background:var(--sky-bg); border-color:var(--sky-border); }
.comm-state-button--ricevuto { color:var(--green-text); background:var(--green-bg); border-color:var(--green-border); }
.comm-invoice-button--set { color:var(--sky-text); background:var(--sky-bg); border-color:var(--sky-border); }
.comm-delete-button { color:var(--comm-danger-text); border-color:currentColor; background:var(--red-bg); }
.comm-save-status[data-state="error"],
#page-commissioni .comm-kpi-value--negative { color:var(--comm-danger-text); }
#page-commissioni .comm-cell:focus-visible,
#page-commissioni .comm-state-button:focus-visible,
#page-commissioni .comm-invoice-button:focus-visible,
#page-commissioni .comm-delete-button:focus-visible,
#page-commissioni .operational-retry:focus-visible,
#page-commissioni .topbar select:focus-visible,
#page-commissioni [data-comm-action="aggiungi"]:focus-visible {
  outline:3px solid var(--comm-focus);
  outline-offset:2px;
  box-shadow:none;
}
.comm-state-button:disabled, .comm-invoice-button:disabled, .comm-delete-button:disabled { cursor:wait; opacity:.62; }
.comm-empty-row { padding:28px !important; text-align:center; color:var(--text-muted); font-size:.85rem; }
.comm-footer { background:var(--bg-subtle,#f8f9fa); border-top:2px solid var(--border); }
.comm-footer td { padding:6px 8px; font-size:.8rem; }
.comm-footer td:first-child { color:var(--text-muted); font-size:.76rem; font-weight:600; letter-spacing:.04em; }
.comm-footer-currency { display:inline-flex; gap:4px; margin-right:10px; white-space:nowrap; }
.comm-footer-currency > span { color:var(--text-muted); }
.comm-footer-currency > b:last-child { color:var(--green-text); }
.comm-kpi-breakdown { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px; margin-top:2px; }
.comm-kpi-currency { padding:2px 7px; border:1px solid var(--border); border-radius:4px; color:var(--text-muted); font-size:.72rem; background:var(--bg-subtle); }
.comm-kpi-currency b { color:var(--text); }
.comm-kpi-value--positive { color:var(--green-text); }
.comm-kpi-value--negative { color:var(--red-text); }
.comm-kpi-note { color:var(--text-muted); font-size:.7rem; font-weight:400; }
#page-commissioni .comm-kpi-card {
  background:var(--bg-card);
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow-xs);
  transition:border-color .15s, box-shadow .15s, transform .15s;
}

@media (min-width:641px) {
  .comm-table th:last-child, .comm-table td:last-child {
    position:sticky;
    right:0;
    z-index:2;
    background:var(--bg-card);
    box-shadow:-10px 0 14px -14px rgba(4,24,15,.48);
  }
  .comm-table th:last-child { z-index:3; background:var(--bg-table-h); }
}

@media (max-width:640px), (pointer:coarse) and (max-width:1024px) {
  #page-commissioni .topbar { align-items:stretch; gap:10px; }
  #page-commissioni .topbar > div { width:100%; }
  #page-commissioni .topbar select, #page-commissioni [data-comm-action="aggiungi"] { min-height:44px; }
  #page-commissioni [data-comm-action="aggiungi"] { width:100%; justify-content:center; }
  .comm-table-wrap { overflow:clip; }
  .comm-table { display:block; width:100%; min-width:0; }
  .comm-table colgroup { display:none; }
  .comm-table thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .comm-table tbody { display:grid; gap:10px; padding:10px; }
  .comm-table tbody tr { display:block; overflow:hidden; border:1px solid var(--border); border-radius:12px; background:var(--bg-card); box-shadow:var(--shadow-xs); }
  .comm-table td { display:grid; grid-template-columns:minmax(94px,40%) minmax(0,1fr); align-items:center; gap:10px; min-height:44px; padding:8px 11px; text-align:left; }
  .comm-table td::before { content:attr(data-label); color:var(--text-light); font-size:.58rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
  .comm-table .comm-cell { min-width:0; min-height:44px !important; }
  .comm-table .comm-state-button, .comm-table .comm-invoice-button, .comm-table .comm-delete-button { width:max-content; min-width:44px; min-height:44px; }
  .comm-table .comm-competence { display:grid; grid-template-columns:minmax(0,1fr); }
  .comm-table .comm-competence .comm-cell { width:100% !important; }
  .comm-table #comm-empty-row { display:block; }
  .comm-table #comm-empty-row td { display:block; min-height:0; }
  .comm-table #comm-empty-row td::before { content:none; }
  .comm-table tfoot, .comm-table tfoot tr, .comm-table tfoot td { display:block; width:100%; }
  .comm-table tfoot td { padding:8px 11px; }
  .comm-footer-currency { white-space:normal; flex-wrap:wrap; }
  .rubrica-tabs { overflow-x:auto; padding-bottom:2px; }
  .rubrica-tabs .tab-btn, #page-rubrica input, #page-rubrica select, .rubrica-card, .rubrica-retry-button, .rubrica-show-more, #rubrica-panel-close { min-height:44px; }
  #page-rubrica [id$="-list"] { grid-template-columns:minmax(0,1fr) !important; }
  .rubrica-card { padding:14px 16px; }
  .rubrica-card-nome { white-space:normal; overflow-wrap:anywhere; }
  #rubrica-panel { width:100vw !important; }
  #rubrica-panel-close { min-width:44px; }
}

@media (max-width:640px) {
  .main.compact { padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
  #page-commissioni #comm-kpi-area { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  #page-commissioni .comm-table tbody { padding-bottom:18px; }
  #page-commissioni .comm-table td::before { color:var(--text-muted); font-size:.6875rem; letter-spacing:.05em; }
  #page-commissioni .comm-table .comm-competence { grid-template-columns:minmax(94px,40%) minmax(44px,.4fr) auto minmax(78px,.6fr); }
  #page-commissioni .comm-table .comm-cell,
  #page-commissioni .topbar select { font-size:16px !important; }
  #page-commissioni .comm-state-button,
  #page-commissioni .comm-invoice-button,
  #page-commissioni .comm-delete-button,
  #page-commissioni .operational-retry { font-size:.875rem; }
  #page-commissioni .comm-save-status { font-size:.8125rem; }
}

@media (pointer:coarse) {
  #page-commissioni .topbar select, #page-commissioni [data-comm-action="aggiungi"], #page-commissioni .comm-cell, #page-commissioni .comm-state-button, #page-commissioni .comm-invoice-button, #page-commissioni .comm-delete-button, #page-commissioni .operational-retry { min-height:44px; }
  #page-commissioni .topbar select, #page-commissioni .comm-cell { font-size:16px !important; }
  #page-commissioni .comm-state-button, #page-commissioni .comm-invoice-button, #page-commissioni .comm-delete-button, #page-commissioni .operational-retry { font-size:.875rem; }
  #page-rubrica .rubrica-tabs .tab-btn, #page-rubrica .rubrica-card, #page-rubrica input, #page-rubrica select, #page-rubrica .rubrica-retry-button, #page-rubrica .rubrica-show-more, #rubrica-panel-close { min-height:44px; }
}

@media (prefers-reduced-motion:reduce) {
  #page-commissioni .btn, #page-commissioni input, #page-commissioni select, #page-commissioni .comm-state-button, #page-commissioni .comm-invoice-button, #page-commissioni .comm-delete-button, #page-commissioni .operational-retry, #page-commissioni .comm-kpi-card, #page-commissioni .comm-row { transition:none; animation:none; }
  #page-commissioni .btn:hover, #page-commissioni .comm-state-button:hover, #page-commissioni .comm-invoice-button:hover, #page-commissioni .comm-delete-button:hover, #page-commissioni .operational-retry:hover, #page-commissioni .comm-kpi-card:hover, #page-commissioni .comm-row:hover { transform:none; }
}

/* ================================================
   FORM ELEMENTS
   ================================================ */
.form-group { display:flex; flex-direction:column; gap:5px; flex:1; min-width:130px }
.form-row   { display:flex; gap:12px; flex-wrap:wrap }
.form-label {
  font-size:.62rem; font-weight:500;
  text-transform:uppercase; letter-spacing:.08em;
  color:var(--text-muted);
}
.form-label .req { color:var(--red-text); margin-left:2px }
input, select, textarea {
  background:var(--bg-input);
  border:1px solid var(--border-dark);
  color:var(--text);
  font-family:var(--font);
  font-size:.82rem;
  padding:9px 13px;
  width:100%; outline:none;
  border-radius:var(--radius-md);
  transition:border-color .15s, box-shadow .15s;
  -webkit-appearance:none;
}
input:focus, select:focus, textarea:focus {
  border-color:var(--acc);
  box-shadow:0 0 0 3px var(--acc-glow);
}
input::placeholder { color:var(--text-light) }
select option { background:var(--bg-card); color:var(--text) }
textarea { resize:vertical; min-height:64px }

/* ================================================
   BUTTONS
   ================================================ */
.btn {
  font-family:var(--font);
  font-size:.8rem; font-weight:600;
  padding:8px 18px;
  border:1px solid transparent;
  cursor:pointer;
  transition:all .14s ease;
  display:inline-flex; align-items:center; gap:6px;
  white-space:nowrap;
  border-radius:var(--radius-full);
  letter-spacing:-.01em;
  user-select:none;
}
.btn-primary {
  background:var(--acc); color:#fff;
  border-color:transparent;
  box-shadow:0 2px 8px rgba(11,131,82,0.25);
}
.btn-primary:hover {
  background:var(--acc-hover);
  box-shadow:0 4px 16px var(--acc-glow);
  transform:translateY(-1px);
}
.btn-green {
  background:var(--green-bg); color:var(--green-text);
  border-color:var(--green-border);
}
.btn-green:hover { background:var(--green); color:#fff; transform:translateY(-1px) }
.btn-red {
  background:var(--red-bg); color:var(--red-text);
  border-color:var(--red-border);
}
.btn-red:hover { background:var(--red); color:#fff; transform:translateY(-1px) }
.btn-outline {
  background:transparent; color:var(--text-muted); border-color:var(--border-dark);
}
.btn-outline:hover { background:var(--bg-card); color:var(--text); border-color:var(--acc-muted) }
.btn-ghost {
  background:transparent; color:var(--text-muted); border-color:transparent;
}
.btn-ghost:hover { background:var(--bg-hover); color:var(--text) }
.btn-sm { padding:6px 14px; font-size:.74rem; border-radius:var(--radius-full) }
.btn-xs { padding:4px 10px; font-size:.68rem; letter-spacing:0; border-radius:var(--radius-full) }

/* Credenziale Bot: CTA dark ad alto contrasto e focus circoscritto alla sezione. */
.bot-key-settings button:focus-visible,
.bot-key-settings input:focus-visible,
.bot-key-settings select:focus-visible {
  outline:3px solid var(--acc-glow); outline-offset:2px;
}
html.dark .bot-key-settings .btn-primary {
  background:var(--acc-light); color:var(--acc-text);
  border-color:var(--acc-muted); box-shadow:0 2px 8px rgba(0,0,0,.28);
}
html.dark .bot-key-settings .btn-primary:hover {
  background:var(--bg-hover); color:var(--text); border-color:var(--acc-muted);
}
@media (max-width:640px), (pointer:coarse) {
  .bot-key-settings :is(select, input, button) { min-width:44px; min-height:44px }
}

/* =============================================
   SETTINGS HUB — RB Control
   Un solo DOM: indice sticky desktop, accordion mobile.
   ============================================= */
.settings-hub {
  display:grid;
  grid-template-columns:minmax(188px, 220px) minmax(0, 1fr);
  gap:18px;
  align-items:start;
}
.settings-index {
  position:sticky;
  top:18px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--bg-card);
  box-shadow:var(--shadow-sm);
}
.settings-index-heading {
  padding:4px 10px 10px;
  color:var(--text-muted);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.settings-index-nav { display:grid; gap:2px; }
.settings-index-button {
  width:100%;
  min-width:44px;
  min-height:44px;
  padding:9px 10px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:var(--text-muted);
  font:inherit;
  font-size:.78rem;
  font-weight:600;
  text-align:left;
  cursor:pointer;
}
.settings-index-button:hover { background:var(--bg-hover); color:var(--text); }
.settings-index-button.is-active { background:var(--acc-light); color:var(--acc); }
.settings-modules {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  min-width:0;
}
.settings-module {
  min-width:0;
  scroll-margin-top:18px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--bg-card);
  box-shadow:var(--shadow-sm);
  overflow:clip;
}
.settings-module-wide { grid-column:1 / -1; }
.settings-module-toggle {
  display:flex;
  width:100%;
  min-width:44px;
  min-height:44px;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 16px;
  border:0;
  border-bottom:1px solid var(--border);
  background:var(--bg-elevated);
  color:var(--text);
  font:inherit;
  font-size:.82rem;
  font-weight:700;
  text-align:left;
  cursor:pointer;
}
.settings-toggle-icon {
  flex:0 0 auto;
  color:var(--text-muted);
  font-size:1rem;
  transition:transform .18s ease;
}
.settings-toggle-icon svg { width:18px; height:18px; display:block }
.settings-module-panel .btn > svg { width:16px; height:16px; flex:0 0 16px }
.settings-module.is-open .settings-toggle-icon { transform:rotate(180deg); }
.settings-module-panel { min-width:0; }
.settings-module-panel > .stat-tile {
  min-width:0;
  padding:16px;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.settings-module-panel > .stat-tile > .stat-tile-title { display:none; }
.settings-module :is(button, input, select) { min-height:44px; }
.settings-module button { min-width:44px; }
.settings-module :is(input, select) { max-width:100%; }
.settings-module .form-row { flex-wrap:wrap; }
.settings-module .form-row > :is(input, select, label) { min-width:0 !important; }
.settings-module-toggle:focus-visible,
.settings-index-button:focus-visible,
.settings-module :is(button, input, select):focus-visible {
  outline:3px solid color-mix(in srgb, var(--acc) 42%, transparent);
  outline-offset:2px;
}
.settings-help {
  margin:0 0 14px;
  color:var(--text-muted);
  font-size:.78rem;
  line-height:1.55;
}
.settings-company-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:10px;
  margin-bottom:14px;
}
.settings-scroll-list {
  max-height:220px;
  overflow:auto;
  overscroll-behavior:contain;
}
.settings-scroll-list-tall { max-height:260px; }
.settings-dedup-result {
  display:none;
  margin-bottom:8px;
  white-space:pre-line;
  font-size:.78rem;
}
.settings-inline-actions {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.settings-inline-between { justify-content:space-between; }
.settings-inline-actions > .text-muted { font-size:.78rem; }
.settings-align-end { align-items:end; }
.settings-transfer-notes {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:10px;
  align-items:end;
  margin:10px 0 18px;
}
.settings-transfer-list { max-height:320px; overflow:auto; }
.settings-transfer-list > div[style*="grid-template-columns"] { min-width:680px; }
.settings-status { margin:0 0 12px; font-size:.78rem; }
.settings-secret-once {
  margin-bottom:12px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:10px;
}
.settings-secret-once p { margin:0 0 10px; font-size:.78rem; }
.settings-secret-once input {
  flex:1 1 240px;
  min-width:0;
  font-family:monospace;
  font-size:.78rem;
  letter-spacing:.04em;
}
.settings-bot-endpoints {
  padding:12px 14px;
  border-radius:10px;
  background:var(--bg-elevated);
  color:var(--text-muted);
  font-size:.74rem;
  line-height:1.7;
  overflow-wrap:anywhere;
}
.settings-bot-endpoints strong { color:var(--text); }
.settings-pwa-card { border-color:var(--acc) !important; background:var(--acc-light) !important; }
.settings-pwa-title { margin-bottom:4px; color:var(--acc); font-size:.88rem; font-weight:700; }

/* Registro attività: un solo DOM tabella/card, sempre read-only. */
.audit-register { min-width:0; }
.audit-verifier {
  margin:0 0 16px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg-elevated);
  color:var(--text-muted);
  font-size:.78rem;
  line-height:1.55;
  overflow-wrap:anywhere;
}
.audit-verifier p { margin:0; }
.audit-verifier p + p,
.audit-verifier p + button { margin-top:8px; }
.audit-verifier.is-valid { border-color:color-mix(in srgb, var(--green) 46%, var(--border)); color:var(--green-text); }
.audit-verifier:is(.is-invalid,.is-indeterminate,.is-unavailable) { border-color:color-mix(in srgb, var(--amber) 52%, var(--border)); color:var(--text); }
.audit-verifier-detail { color:var(--text-muted); }
.audit-filter-form { margin:0 0 14px; }
.audit-filter-form fieldset { min-width:0; margin:0; padding:0; border:0; }
.audit-filter-form legend { margin-bottom:10px; color:var(--text); font-size:.8rem; font-weight:700; }
.audit-filter-grid {
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:10px;
}
.audit-filter-grid label { display:grid; min-width:0; gap:5px; color:var(--text-muted); font-size:.72rem; font-weight:600; }
.audit-filter-grid :is(input,select) { width:100%; min-width:0; }
.audit-filter-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.audit-register-status { min-height:20px; margin:0 0 8px; color:var(--text-muted); font-size:.75rem; overflow-wrap:anywhere; }
.audit-register-status.is-error,
.audit-inline-error { color:var(--red-text); }
.audit-results { min-width:0; overflow:visible; }
.audit-results[aria-busy="true"] { color:var(--text-muted); font-size:.78rem; }
.audit-table { width:100%; min-width:0; table-layout:fixed; border-collapse:collapse; }
.audit-table th,
.audit-table td { padding:10px 8px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; white-space:normal; overflow-wrap:anywhere; }
.audit-table th { color:var(--text-muted); font-size:.68rem; font-weight:700; letter-spacing:.03em; }
.audit-table td { color:var(--text); font-size:.75rem; }
.audit-table th:nth-child(1) { width:18%; }
.audit-table th:nth-child(2) { width:12%; }
.audit-table th:nth-child(3) { width:15%; }
.audit-table th:nth-child(4) { width:20%; }
.audit-table th:nth-child(5) { width:20%; }
.audit-table th:nth-child(6) { width:15%; }
.audit-summary-row { cursor:default; }
.audit-summary-row:hover { background:transparent; }
.audit-source-badge { display:inline-flex; align-items:center; min-height:24px; padding:3px 8px; border:1px solid var(--border); border-radius:999px; font-size:.68rem; font-weight:700; }
.audit-source-owner { border-color:color-mix(in srgb, var(--acc) 45%, var(--border)); color:var(--acc); }
.audit-source-bot { border-color:color-mix(in srgb, var(--sky) 45%, var(--border)); color:var(--sky-text); }
.audit-source-system { border-color:color-mix(in srgb, var(--amber) 45%, var(--border)); color:var(--amber-text); }
.audit-source-unknown { color:var(--text-muted); }
.audit-detail-row > td { padding:0; border-bottom:1px solid var(--border); }
.audit-detail-panel { padding:12px 14px; background:var(--bg-elevated); }
.audit-detail-panel[hidden] { display:none; }
.audit-detail-empty { margin:0; }
.audit-diff-list { display:grid; gap:6px; margin:0; }
.audit-diff-item { display:grid; grid-template-columns:minmax(140px, .8fr) minmax(0, 1fr) minmax(0, 1fr); gap:10px; padding:8px; border:1px solid var(--border); border-radius:8px; }
.audit-diff-item :is(dt,dd) { min-width:0; margin:0; overflow-wrap:anywhere; }
.audit-diff-item dt { font-weight:700; }
.audit-diff-item dd::before { display:block; margin-bottom:2px; color:var(--text-muted); font-size:.64rem; font-weight:700; content:attr(data-label); }
.audit-pager { display:flex; justify-content:center; min-height:44px; margin-top:10px; }
.audit-empty-state { margin:0; padding:22px 12px; }
.audit-register :is(button,input,select):focus-visible,
#audit-verifier-status:focus-visible { outline:3px solid color-mix(in srgb, var(--acc) 42%, transparent); outline-offset:2px; }

@media (max-width:1100px) {
  .audit-filter-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}

@media (max-width:900px) {
  .audit-table,
  .audit-table tbody,
  .audit-table tr,
  .audit-table td { display:block; width:100%; min-width:0; }
  .audit-table thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .audit-summary-row { display:grid !important; grid-template-columns:minmax(0, 1fr); margin-bottom:10px; border:1px solid var(--border); border-radius:10px 10px 0 0; overflow:hidden; }
  .audit-summary-row td { display:grid; grid-template-columns:minmax(105px, .38fr) minmax(0, 1fr); gap:8px; padding:8px 10px; border-bottom:1px solid var(--border); }
  .audit-summary-row td::before { color:var(--text-muted); font-size:.67rem; font-weight:700; content:attr(data-label); }
  .audit-summary-row td:last-child { border-bottom:0; }
  .audit-detail-row { margin-top:-10px; margin-bottom:10px; }
  .audit-detail-row > td { border:1px solid var(--border); border-top:0; border-radius:0 0 10px 10px; }
  .audit-detail-panel { padding:10px; }
  .audit-diff-item { grid-template-columns:minmax(0, 1fr); }
}

@media (max-width: 767px) {
  .settings-hub { display:block; }
  .settings-index { display:none; }
  .settings-modules { grid-template-columns:minmax(0, 1fr); gap:10px; }
  .settings-module-wide { grid-column:auto; }
  .settings-module-toggle { padding:12px 14px; }
  .settings-module-panel > .stat-tile { padding:14px; }
  .settings-transfer-notes { grid-template-columns:minmax(0, 1fr); }
  .settings-transfer-notes .btn { width:100%; }
  .settings-inline-actions > .btn { flex:1 1 auto; }
  .audit-filter-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .audit-register :is(input,select) { font-size:16px; }
}

@media (max-width:520px) {
  .audit-filter-grid { grid-template-columns:minmax(0, 1fr); }
  .audit-filter-actions .btn { flex:1 1 100%; }
  .audit-summary-row td { grid-template-columns:minmax(90px, .42fr) minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .settings-module,
  .settings-module-toggle,
  .settings-index-button,
  .settings-toggle-icon,
  .audit-register,
  .audit-register * { scroll-behavior:auto; transition:none !important; }
}

/* ================================================
   MODALS
   ================================================ */
.modal-overlay {
  position:fixed; inset:0;
  background:var(--bg-overlay);
  display:flex; align-items:center; justify-content:center;
  z-index:1000; padding:20px;
  width:100%; max-width:100vw; overflow-x:hidden;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.modal {
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  width:100%; min-width:0; max-width:min(780px, 100%); max-height:min(90vh, 90dvh);
  overflow-x:hidden; overflow-y:auto; padding:32px 34px;
  box-shadow:var(--shadow-lg);
  animation:modalIn .22s cubic-bezier(.34,1.56,.64,1);
}
@keyframes modalIn {
  from { opacity:0; transform:scale(.96) translateY(12px) }
  to   { opacity:1; transform:scale(1)   translateY(0) }
}
.modal-title {
  font-size:.9rem; font-weight:700; color:var(--text);
  margin-bottom:22px; padding-bottom:14px;
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:10px;
  letter-spacing:-.02em;
}
.modal-title-icon {
  width:30px; height:30px; border-radius:7px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.modal-title-icon svg { width:15px; height:15px }
.modal-footer {
  display:flex; gap:8px; justify-content:flex-end;
  margin-top:20px; padding-top:16px;
  border-top:1px solid var(--border);
}
/* modal-box / modal-header / modal-close */
.modal-box {
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  width:100%; min-width:0; max-width:100%; max-height:min(90vh, 90dvh);
  overflow-x:hidden; overflow-y:auto; padding:32px 34px;
  box-shadow:var(--shadow-lg);
  animation:modalIn .22s cubic-bezier(.34,1.56,.64,1);
}
.modal-overlay :is(.modal, .modal-box, .modal-title, .modal-header, .form-row, .form-group),
.modal-overlay :is(.modal, .modal-box, .form-row) > * { min-width:0; }
.modal-overlay :is(.modal, .modal-box, .modal-title, .form-label, p, span) { overflow-wrap:anywhere; }
.modal-overlay :is(input:not([type="hidden"]), select, textarea) { max-width:100%; }
.modal-overlay :is(button, a[href], input:not([type="hidden"]), select, textarea, [role="button"], [tabindex]):focus-visible {
  outline:3px solid var(--acc-glow); outline-offset:2px;
}
.modal-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:20px; padding-bottom:14px;
  border-bottom:1px solid var(--border);
}
.modal-close {
  background:none; border:none; cursor:pointer;
  color:var(--text-muted); font-size:1.1rem; line-height:1;
  padding:4px 8px; border-radius:6px; transition:background .15s;
}
.modal-close svg { width:18px; height:18px; display:block }
.modal-close:hover { background:var(--bg-hover); color:var(--text); }
.fat-add-row-button > svg,
.fat-preview-close > svg { width:16px; height:16px; flex:0 0 16px }
.fat-preview-close { display:inline-flex; align-items:center; gap:6px }

@media (max-width:700px), (pointer:coarse) and (max-width:1024px) {
  .modal-overlay :is(button, a[href], input:not([type="hidden"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]), select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])),
  .modal-overlay label:has(input[type="checkbox"], input[type="radio"]) {
    min-width:44px; min-height:44px;
  }
}

/* Fatture: autocomplete cliente accessibile nel dialog portaled. */
[data-auth-transient="invoice"] .fat-autocomplete {
  position:absolute;
  z-index:200;
  top:calc(100% + 4px);
  left:0;
  width:100%;
  max-height:min(280px,40vh);
  overflow-y:auto;
  box-sizing:border-box;
  border:1px solid var(--border-dark);
  border-radius:var(--radius-sm);
  background:var(--bg-card);
  box-shadow:var(--shadow-md);
}

[data-auth-transient="invoice"] .fat-autocomplete[hidden] { display:none !important; }

[data-auth-transient="invoice"] .fat-autocomplete__option {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:40px;
  padding:8px 12px;
  box-sizing:border-box;
  border-bottom:1px solid var(--border);
  color:var(--text);
  cursor:pointer;
  font-size:.82rem;
  transition:background-color 120ms ease,color 120ms ease;
}

[data-auth-transient="invoice"] .fat-autocomplete__option:last-child { border-bottom:0; }
[data-auth-transient="invoice"] .fat-autocomplete__option:is(:hover,.is-active,[aria-selected="true"]) { background:var(--bg-hover); }
[data-auth-transient="invoice"] .fat-autocomplete__name { min-width:0; overflow-wrap:anywhere; }
[data-auth-transient="invoice"] .fat-autocomplete__vat { margin-left:auto; color:var(--text-muted); white-space:nowrap; }

@media (pointer:coarse) {
  [data-auth-transient="invoice"] #fat-cliente-nome { font-size:16px; }
  [data-auth-transient="invoice"] .fat-autocomplete__option { min-height:44px; }
}

@media (prefers-reduced-motion:reduce) {
  [data-auth-transient="invoice"] .fat-autocomplete__option { transition:none; }
  [data-auth-transient="invoice"] .fat-autocomplete__option:hover { transform:none; }
}

@media (prefers-reduced-motion:reduce) {
  .modal-overlay, .modal-overlay .modal, .modal-overlay .modal-box {
    animation:none !important; scroll-behavior:auto !important; transition:none !important;
  }
}

/* ================================================
   FILTRI
   ================================================ */
.filters {
  display:flex; gap:10px; flex-wrap:wrap;
  align-items:flex-end; margin-bottom:14px;
  padding:14px 18px;
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
}
.filter-group { display:flex; flex-direction:column; gap:4px }
.filter-label {
  font-size:.58rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--text-light);
}
.filters input, .filters select {
  width:auto; min-width:88px;
  font-size:.78rem; padding:6px 10px; height:32px;
  background:var(--bg-elevated);
}

/* ================================================
   SECTION HEADER
   ================================================ */
.section-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:10px;
}
.section-title {
  font-size:.64rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--text-muted);
}

/* ================================================
   SOCIETA PILLS
   ================================================ */
.soc-pill {
  display:inline-flex; align-items:center;
  font-family:var(--mono); font-size:.6rem; font-weight:600;
  padding:2px 7px; border-radius:var(--radius-xs);
  text-transform:uppercase; letter-spacing:.04em;
  border:1px solid transparent;
}
.soc-pill-CH     { background:var(--sky-bg);    color:var(--sky-text);    border-color:var(--sky-border) }
.soc-pill-BG     { background:var(--amber-bg);  color:var(--amber-text);  border-color:var(--amber-border) }
.soc-pill-RO     { background:var(--acc-light); color:var(--acc-text);    border-color:var(--acc-muted) }
.soc-pill-GI     { background:var(--green-bg);  color:var(--green-text);  border-color:var(--green-border) }
.soc-pill-Renato     { background:var(--red-bg);    color:var(--red-text);    border-color:var(--red-border) }
.soc-pill-Enlaborate { background:rgba(20,184,166,.12); color:#5EEAD4; border-color:rgba(20,184,166,.25) }

/* SOC BAR */
.soc-bar {
  display:flex; align-items:center; gap:14px;
  padding:10px 0; border-bottom:1px solid var(--border);
}
.soc-bar:last-child { border-bottom:none }
.soc-name {
  font-family:var(--mono); font-size:.72rem; font-weight:600;
  width:60px; flex-shrink:0; color:var(--text);
}
.soc-amounts { display:flex; gap:18px; flex:1; flex-wrap:wrap }
.soc-item { font-size:.72rem }
.soc-item .lbl {
  font-size:.56rem; color:var(--text-light);
  text-transform:uppercase; letter-spacing:.06em;
  display:block; margin-bottom:2px;
}

/* ================================================
   ALERT ITEMS
   ================================================ */
.alert-item {
  display:flex; align-items:flex-start; gap:12px;
  padding:11px 13px; border-radius:var(--radius-sm);
  margin-bottom:7px; border:1px solid transparent;
}
.alert-item.alert-red    { background:var(--red-bg);    border-color:var(--red-border) }
.alert-item.alert-amber  { background:var(--amber-bg);  border-color:var(--amber-border) }
.alert-item.alert-orange { background:var(--orange-bg); border-color:var(--orange-border) }
.alert-item.alert-blue   { background:var(--acc-light); border-color:var(--acc-muted) }
.alert-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; margin-top:5px }
.alert-dot-red    { background:var(--red) }
.alert-dot-amber  { background:var(--amber) }
.alert-dot-orange { background:var(--orange) }
.alert-dot-blue   { background:var(--acc) }
.alert-text { font-size:.78rem; line-height:1.5; color:var(--text-muted) }
.alert-text strong { font-weight:600; color:var(--text) }
.alert-sub { font-size:.68rem; color:var(--text-muted); margin-top:2px }

/* ================================================
   ALERT & SCADENZE — coda operativa Emerald
   ================================================ */
.alert-page { max-width:1480px; margin:0 auto }
.alert-heading { margin-bottom:18px }
.alert-new-button { min-height:44px; padding-inline:16px }
.alert-tabs {
  display:flex; gap:4px; padding:4px; margin-bottom:16px; width:max-content; max-width:100%;
  border:1px solid var(--border); border-radius:var(--radius-md); background:var(--bg-elevated);
}
.alert-tab {
  min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:8px 14px; border:1px solid transparent; border-radius:var(--radius-sm);
  background:transparent; color:var(--text-muted); font:600 .76rem/1 var(--font); cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.alert-tab svg { width:16px; height:16px; flex:0 0 16px }
.alert-tab:hover { color:var(--text); background:var(--bg-hover) }
.alert-tab.tab-active { color:var(--acc-text); background:var(--acc-light); border-color:var(--acc-muted) }
.alert-tab:focus-visible,
.alert-filter-group button:focus-visible,
.alert-open-button:focus-visible,
.scadenza-pay-button:focus-visible,
.scadenza-icon-button:focus-visible { outline:none; box-shadow:0 0 0 3px var(--acc-glow) }

.alert-summary-strip {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:12px;
}
.alert-summary-card {
  min-width:0; padding:15px 16px; border:1px solid var(--border); border-radius:var(--radius-md);
  background:var(--bg-card); box-shadow:var(--shadow-xs);
}
.alert-summary-card > span {
  display:block; margin-bottom:8px; color:var(--text-muted); font-size:.61rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em;
}
.alert-summary-card strong { display:block; color:var(--text); font-family:var(--mono); font-size:1.35rem; line-height:1 }
.alert-summary-card small { display:block; margin-top:7px; color:var(--text-light); font-size:.64rem }
.alert-summary-card--urgent { border-color:var(--red-border); background:linear-gradient(135deg,var(--bg-card),var(--red-bg)) }
.alert-summary-card--urgent strong { color:var(--red-text) }

.alert-work-panel {
  overflow:hidden; border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--bg-card); box-shadow:var(--shadow-sm);
}
.alert-work-head {
  min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 16px; border-bottom:1px solid var(--border); background:var(--bg-elevated);
}
.alert-work-head h2 { margin:0 0 4px; color:var(--text); font-size:.92rem; letter-spacing:-.01em }
.alert-work-head p { margin:0; color:var(--text-muted); font-size:.67rem }
.alert-filter-group { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px }
.alert-filter-group button {
  min-width:44px; min-height:44px; padding:7px 11px; border:1px solid var(--border);
  border-radius:var(--radius-sm); background:var(--bg-card); color:var(--text-muted);
  font:600 .68rem/1 var(--font); cursor:pointer; transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.alert-filter-group button:hover { color:var(--text); border-color:var(--border-dark) }
.alert-filter-group button[aria-pressed="true"] { color:var(--acc-text); border-color:var(--acc-muted); background:var(--acc-light) }
.alert-work-list { display:flex; flex-direction:column }
.alert-work-item {
  position:relative; display:grid; grid-template-columns:42px minmax(0,1fr) minmax(140px,auto);
  gap:12px; align-items:center; min-height:88px; padding:14px 16px; border-bottom:1px solid var(--border);
}
.alert-work-item:last-child { border-bottom:0 }
.alert-work-item::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--border-dark) }
.alert-work-item--urgent::before { background:var(--red) }
.alert-work-item--attention::before { background:var(--amber) }
.alert-work-item--watch::before { background:var(--acc) }
.alert-work-item[hidden] { display:none }
.alert-work-icon {
  width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--border);
  border-radius:12px; background:var(--bg-elevated); color:var(--text-muted);
}
.alert-work-item--urgent .alert-work-icon { color:var(--red-text); background:var(--red-bg); border-color:var(--red-border) }
.alert-work-item--attention .alert-work-icon { color:var(--amber-text); background:var(--amber-bg); border-color:var(--amber-border) }
.alert-work-item--watch .alert-work-icon { color:var(--acc-text); background:var(--acc-light); border-color:var(--acc-muted) }
.alert-work-icon svg { width:19px; height:19px }
.alert-work-copy { min-width:0 }
.alert-work-eyebrow { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-bottom:5px }
.alert-urgency,.alert-company {
  display:inline-flex; align-items:center; min-height:21px; padding:2px 7px; border:1px solid var(--border);
  border-radius:var(--radius-full); color:var(--text-muted); background:var(--bg-elevated);
  font-size:.57rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
}
.alert-urgency--urgent { color:var(--red-text); border-color:var(--red-border); background:var(--red-bg) }
.alert-urgency--attention { color:var(--amber-text); border-color:var(--amber-border); background:var(--amber-bg) }
.alert-urgency--watch { color:var(--acc-text); border-color:var(--acc-muted); background:var(--acc-light) }
.alert-work-copy h3 { margin:0 0 4px; overflow:hidden; color:var(--text); font-size:.82rem; text-overflow:ellipsis; white-space:nowrap }
.alert-work-copy p { margin:0; color:var(--text-muted); font-size:.67rem; line-height:1.45 }
.alert-work-copy .alert-work-note { margin-top:4px; color:var(--text-light) }
.alert-work-value { display:flex; flex-direction:column; align-items:flex-end; gap:7px }
.alert-work-value > strong { color:var(--text); font-family:var(--mono); font-size:.82rem; white-space:nowrap }
.alert-open-button {
  min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:7px 10px;
  border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--bg-elevated);
  color:var(--text-muted); font:600 .66rem/1 var(--font); cursor:pointer;
}
.alert-open-button:hover { color:var(--acc-text); border-color:var(--acc-muted); background:var(--acc-light) }
.alert-open-button svg { width:14px; height:14px }
.alert-work-empty { min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:32px; text-align:center }
.alert-work-empty > svg,.scadenze-empty > svg { width:40px; height:40px; margin-bottom:14px; color:var(--acc) }
.alert-work-empty h2,.scadenze-empty h2 { margin:0 0 6px; color:var(--text); font-size:.94rem }
.alert-work-empty p,.scadenze-empty p { margin:0; color:var(--text-muted); font-size:.73rem }

.scadenze-summary { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px }
.scadenze-summary span {
  min-height:34px; display:inline-flex; align-items:center; gap:5px; padding:6px 10px;
  border:1px solid var(--border); border-radius:var(--radius-full); background:var(--bg-card);
  color:var(--text-muted); font-size:.67rem;
}
.scadenze-summary strong { color:var(--text); font-family:var(--mono) }
.scadenze-list { display:flex; flex-direction:column; gap:8px }
.scadenza-card {
  position:relative; display:grid; grid-template-columns:116px minmax(0,1fr) auto; gap:14px;
  align-items:center; min-height:96px; margin:0; padding:14px 16px; overflow:hidden;
  background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-md);
}
.scadenza-card::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--green) }
.scadenza-card--urgent::before { background:var(--red) }
.scadenza-card--attention::before { background:var(--amber) }
.scadenza-date-block { display:flex; flex-direction:column; align-items:flex-start; gap:4px }
.scadenza-date-block span { color:var(--text); font-size:.72rem; font-weight:700 }
.scadenza-card--urgent .scadenza-date-block span { color:var(--red-text) }
.scadenza-card--attention .scadenza-date-block span { color:var(--amber-text) }
.scadenza-date-block strong { color:var(--text-muted); font-family:var(--mono); font-size:.67rem }
.scadenza-copy { min-width:0 }
.scadenza-copy h3 { margin:5px 0 4px; color:var(--text); font-size:.84rem }
.scadenza-copy p,.scadenza-copy small { display:block; margin:0; color:var(--text-muted); font-size:.67rem; line-height:1.45 }
.scadenza-meta { display:flex; gap:6px; flex-wrap:wrap }
.scadenza-meta > span:not(.alert-company) { color:var(--text-light); font-size:.59rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em }
.scadenza-actions { display:grid; grid-template-columns:44px 44px; gap:6px; justify-content:end }
.scadenza-pay-button {
  grid-column:1 / -1; min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:7px 12px; border:1px solid var(--green-border); border-radius:var(--radius-sm);
  background:var(--green-bg); color:var(--green-text); font:700 .68rem/1 var(--font); cursor:pointer;
}
.scadenza-pay-button svg,.scadenza-icon-button svg { width:16px; height:16px }
.scadenza-icon-button {
  width:44px; height:44px; display:grid; place-items:center; padding:0; border:1px solid var(--border);
  border-radius:var(--radius-sm); background:var(--bg-elevated); color:var(--text-muted); cursor:pointer;
}
.scadenza-icon-button:hover { color:var(--acc-text); border-color:var(--acc-muted); background:var(--acc-light) }
.scadenza-icon-button--danger:hover { color:var(--red-text); border-color:var(--red-border); background:var(--red-bg) }
.scadenze-empty { min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:32px; text-align:center; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--bg-card) }
.scadenze-empty .btn { margin-top:16px; min-height:44px }
.empty-state .empty-icon:is(svg) { width:28px; height:28px; display:block; margin:0 auto 10px }

@media (max-width:760px) {
  .alert-summary-strip { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .alert-work-head { align-items:flex-start; flex-direction:column }
  .alert-filter-group { width:100%; justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; padding-bottom:2px }
  .alert-filter-group button { flex:0 0 auto }
  .alert-work-item { grid-template-columns:42px minmax(0,1fr); align-items:start }
  .alert-work-value { grid-column:2; flex-direction:row; align-items:center; justify-content:space-between; width:100% }
  .scadenza-card { grid-template-columns:94px minmax(0,1fr) }
  .scadenza-actions { grid-column:1 / -1; grid-template-columns:minmax(0,1fr) 44px 44px; width:100% }
  .scadenza-pay-button { grid-column:auto }
}

@media (max-width:640px) {
  .alert-heading .page-title { font-size:1.25rem }
  .alert-new-button { width:100% }
  .alert-tabs { width:100% }
  .alert-tab { flex:1; min-width:0; padding-inline:8px }
  .alert-summary-card { padding:13px 12px }
  .alert-summary-card strong { font-size:1.12rem }
  .alert-work-head { min-height:0; padding:13px }
  .alert-work-item { padding:13px 12px }
  .alert-work-copy h3 { white-space:normal }
  .alert-work-value { flex-wrap:wrap }
  .alert-open-button { min-width:118px }
  .scadenza-card { grid-template-columns:minmax(0,1fr); gap:9px; padding:13px 12px }
  .scadenza-date-block { flex-direction:row; align-items:center; justify-content:space-between }
  #modal-scadenza input,#modal-scadenza select { min-height:44px; font-size:16px }
}

/* ================================================
   MISC
   ================================================ */
.divider { height:1px; background:var(--border); margin:18px 0 }
.mt4  { margin-top:4px }   .mt8  { margin-top:8px }
.mt12 { margin-top:12px }  .mt16 { margin-top:16px }
.mt20 { margin-top:20px }  .mt24 { margin-top:24px }
.mb8  { margin-bottom:8px } .mb12 { margin-bottom:12px } .mb16 { margin-bottom:16px }
.flex { display:flex } .flex-center { display:flex; align-items:center }
.flex-between { display:flex; align-items:center; justify-content:space-between }
.gap4 { gap:4px } .gap8 { gap:8px } .gap12 { gap:12px } .gap16 { gap:16px }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:14px }
.grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px }
.text-right { text-align:right }
.text-mono  { font-family:var(--mono) }
.text-sm    { font-size:.72rem }
.text-xs    { font-size:.64rem }
.text-muted { color:var(--text-muted) }
.text-blue  { color:var(--acc-text) }
.text-green { color:var(--green-text) }
.text-red   { color:var(--red-text) }
.fw-600 { font-weight:600 } .fw-700 { font-weight:700 }

.empty-state {
  padding:52px; text-align:center;
  font-size:.8rem; color:var(--text-muted);
}
.empty-state .empty-icon { font-size:1.6rem; margin-bottom:10px; display:block; opacity:.5 }
.emerald-state-icon { width:28px; height:28px; margin-inline:auto; color:currentColor; }
.emerald-inline-status { display:inline-flex; align-items:center; justify-content:center; gap:6px; max-width:100%; }
.emerald-inline-icon { width:15px; height:15px; flex:0 0 15px; color:currentColor; }
.emerald-title-icon { width:18px; height:18px; flex:0 0 18px; color:var(--acc-text); }

@media (prefers-reduced-motion:reduce) {
  body { transition:none; }
  .pin-box,
  .toast { animation:none; }
  .pin-dot,
  .pin-key,
  #page-progetti tbody tr,
  #page-societa tbody tr,
  #page-alert .alert-tab,
  #page-alert .alert-filter-group button { transition:none; }
}

/* ── TOAST ── */
.toast {
  position:fixed; bottom:24px; right:24px;
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:14px 18px; font-size:.8rem; font-weight:500;
  color:var(--text); z-index:9999;
  box-shadow:var(--shadow-md);
  display:flex; align-items:center; gap:8px;
  animation:toastIn .22s ease;
  max-width:340px;
  pointer-events:none;
}
@keyframes toastIn {
  from { opacity:0; transform:translateY(8px) }
  to   { opacity:1; transform:translateY(0) }
}
.toast-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0 }
.toast.success { border-color:var(--green-border) }
.toast.success .toast-dot { background:var(--green) }
.toast.error   { border-color:var(--red-border) }
.toast.error   .toast-dot { background:var(--red) }

/* ── TOTAL ROW ── */
.total-row {
  display:flex; align-items:center; justify-content:flex-end; gap:10px;
  margin-top:10px; padding:10px 14px;
  background:var(--green-bg); border:1px solid var(--green-border);
  border-radius:var(--radius-sm);
}
.total-label { font-size:.64rem; color:var(--text-muted); font-weight:600; text-transform:uppercase; letter-spacing:.06em }
.total-value { font-family:var(--mono); font-size:1.15rem; font-weight:600; color:var(--green-text) }

/* ── ASSET CARD layout ── */
.asset-card-header {
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:12px; margin-bottom:14px;
}
.asset-card-actions {
  display:flex; gap:6px; flex-shrink:0; align-items:center;
}
.asset-metrics {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:10px; margin-bottom:14px;
}
.asset-metric-tile {
  text-align:center; padding:10px 8px;
  background:var(--bg-elevated); border-radius:8px;
  border:1px solid var(--border);
}
.asset-metric-label {
  font-size:.6rem; font-weight:600; color:var(--text-muted);
  text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px;
}
.asset-metric-value { font-weight:600; font-size:.86rem; }
#page-patrimonio .kpi-label { color:var(--text-muted) }

/* ── FISCALE ── */
.fiscale-soc-card {
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.fiscale-soc-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 20px;
  border-bottom:1px solid var(--border);
  gap:12px;
  flex-wrap:wrap;
}
.fiscale-soc-title {
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-size:1rem;
}
.fiscale-soc-badge {
  display:inline-flex;
  align-items:center;
  padding:3px 10px;
  border-radius:20px;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.04em;
}
.fiscale-kpi-row {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-bottom:1px solid var(--border);
}
.fiscale-kpi-cell {
  padding:14px 18px;
  border-right:1px solid var(--border);
}
.fiscale-kpi-cell:last-child { border-right:none }
.fiscale-kpi-label { font-size:.68rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:4px }
.fiscale-kpi-val   { font-size:.92rem; font-weight:700 }
.fiscale-cat-bar   { padding:14px 20px; border-bottom:1px solid var(--border) }
.fiscale-cat-row   { display:flex; align-items:center; gap:8px; margin-bottom:8px; font-size:.78rem }
.fiscale-cat-label { width:140px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex-shrink:0 }
.fiscale-bar-track { flex:1; height:7px; background:var(--bg-elevated); border-radius:4px; overflow:hidden }
.fiscale-bar-fill  { height:100%; border-radius:4px; transition:width .4s }
.fiscale-cat-amt   { min-width:80px; text-align:right; font-weight:600; color:var(--text-muted); font-size:.72rem }
.fiscale-table     { width:100%; border-collapse:collapse; font-size:.78rem }
.fiscale-table th  { padding:8px 16px; text-align:left; font-size:.6rem; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); border-bottom:1px solid var(--border); background:var(--bg-elevated) }
.fiscale-table td  { padding:10px 16px; border-bottom:1px solid var(--border); color:var(--text-muted) }
.fiscale-table tr:last-child td { border-bottom:none }
.fiscale-table tr:hover td { background:var(--bg-card-hover) }
.fiscale-toggle { cursor:pointer; font-size:.72rem; color:var(--acc); padding:10px 20px; display:block; text-align:center }
.fiscale-table-wrap { overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; }
@media(max-width:640px){
  .fiscale-kpi-row { grid-template-columns:1fr 1fr }
  .fiscale-kpi-cell:nth-child(3) { border-right:none; border-top:1px solid var(--border); grid-column:span 2 }
  .fiscale-cat-label { width:100px }
  .fiscale-table-wrap { overflow:clip; padding:10px; }
  .fiscale-table { display:block; min-width:0; width:100%; }
  .fiscale-table__header {
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  .fiscale-table tbody { display:grid; gap:8px; }
  .fiscale-table tbody[hidden] { display:none; }
  .fiscale-spesa-row {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"details" "amount" "date" "actions";
    gap:6px 10px;
    padding:12px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--bg-card);
  }
  .fiscale-spesa-row td { display:block; padding:0; border:0; min-width:0; }
  .fiscale-spesa-date { grid-area:date; align-self:center; font-size:.72rem; color:var(--text-muted); }
  .fiscale-spesa-details { grid-area:details; overflow-wrap:anywhere; }
  .fiscale-spesa-amount {
    grid-area:amount; align-self:start; min-width:0; max-width:100%;
    font-size:.9rem; text-align:left !important; white-space:normal !important;
    overflow-wrap:anywhere; word-break:break-word;
  }
  .fiscale-spesa-amount strong,
  .fiscale-spesa-amount span { display:block; max-width:100%; overflow-wrap:anywhere; word-break:break-word; }
  .fiscale-spesa-actions { grid-area:actions; display:flex !important; justify-content:flex-start; gap:4px; }
}
@media (max-width:640px), (pointer:coarse) {
  .fiscale-soc-card [data-fiscale-action],
  .fiscale-soc-card .fiscale-toggle,
  #page-fiscale .topbar-right .btn,
  #page-patrimonio .topbar-right .btn,
  #fiscale-anno { min-width:44px; min-height:44px; }
}
@media(max-width:640px){
  .fiscale-spesa-actions .btn { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:0; }
}

/* ── STAT TILES (Settings) ── */
/* ---- Anagrafica Società card ---- */
.anag-card {
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:0;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  display:flex; flex-direction:column;
}
.anag-card-header {
  display:flex; align-items:center; gap:10px;
  padding:14px 18px;
  border-bottom:1px solid var(--border);
}
.anag-card-badge {
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:8px;
  font-weight:800; font-size:.82rem; flex-shrink:0;
}
.anag-card-nome { font-weight:700; font-size:.95rem; flex:1 }
.anag-card-codice { font-size:.68rem; color:var(--text-muted); font-weight:600; letter-spacing:.05em }
.anag-card-body { padding:14px 18px; flex:1; display:flex; flex-direction:column; gap:0 }
.anag-field { display:flex; flex-direction:column; gap:2px; padding:7px 0; border-bottom:1px solid var(--border-light,rgba(255,255,255,.04)) }
.anag-field:last-child { border-bottom:none; padding-bottom:4px }
.anag-field-label { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--text-muted) }
.anag-field-value { font-size:.82rem; color:var(--text); font-family:var(--font-mono,'monospace') }
.anag-field-value.empty { color:var(--text-muted); font-style:italic; font-family:inherit; font-size:.78rem }
.anag-template { display:inline-flex; align-items:center; gap:7px }
.anag-template-dot,.fx-currency-mark,.fx-cron-state { display:inline-block; flex:0 0 auto; border-radius:50% }
.anag-template-dot { width:8px; height:8px; box-shadow:0 0 0 3px var(--bg-elevated) }
.anag-template-dot--orange { background:var(--orange) }
.anag-template-dot--emerald { background:var(--green) }
.anag-card-footer { padding:10px 18px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; gap:6px }
/* modal anagrafica */
#modal-anag .form-group { margin-bottom:10px }
#modal-anag .form-label { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); margin-bottom:4px }
#modal-anag input, #modal-anag select { font-size:.82rem; padding:7px 10px }
#modal-anag button:focus-visible,
#modal-anag input:focus-visible,
#modal-anag select:focus-visible,
#modal-anag .anag-status-toggle:focus-within,
#modal-anag .anag-upload-control:focus-within { outline:3px solid var(--acc-glow); outline-offset:2px }
#modal-anag .anag-status-toggle,
#modal-anag .anag-upload-control { border-radius:var(--radius-sm) }
#modal-anag .anag-upload-control { position:relative }
.anag-load-error { padding:12px; border:1px solid var(--red-border); border-radius:var(--radius-sm); background:var(--red-bg); color:var(--red-text); font-size:.8rem; font-weight:600 }
@media (max-width:640px), (pointer:coarse) {
  #page-progetti .progetti-period-filters select,
  #page-societa #anag-reload-button,
  #page-societa [data-anag-action="edit"],
  #page-partecipazioni #part-anno,
  #page-partecipazioni > .topbar .topbar-right .btn {
    min-width:44px;
    min-height:44px;
  }
  #modal-anag button,
  #modal-anag input:not([type="hidden"]):not([type="file"]),
  #modal-anag select { min-height:44px }
  #modal-anag input:not([type="hidden"]):not([type="file"]),
  #modal-anag select { font-size:16px }
  #modal-anag .anag-upload-control,
  #modal-anag .anag-status-toggle { min-height:44px }
  #modal-anag .modal-close { min-width:44px }
}
@media (prefers-reduced-motion:reduce) {
  #modal-anag #anag-toggle-track,
  #modal-anag #anag-toggle-thumb { transition:none !important }
}

/* Sui tablet touch la toolbar Partecipazioni deve tenere insieme tre azioni
   da 44px senza allargare la pagina o alterare le altre topbar. */
@media (pointer:coarse) and (min-width:641px) and (max-width:1000px) {
  #page-partecipazioni > .topbar > .topbar-right {
    flex:1 1 100%;
    width:100%;
    min-width:0;
    max-width:100%;
    flex-wrap:wrap;
    justify-content:flex-end;
  }
}
/* -------------------------------- */
.stat-tile {
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:22px 24px;
  box-shadow:var(--shadow-sm);
}
.stat-tile-title {
  font-size:.7rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--text-muted);
  margin-bottom:16px; padding-bottom:12px;
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:8px;
}
.stat-tile-title svg { width:14px; height:14px }

/* ── LIST ITEM ── */
.list-item {
  display:flex; align-items:center; justify-content:space-between;
  padding:8px 0; border-bottom:1px solid var(--border);
  font-size:.8rem;
}
.list-item:last-child { border-bottom:none }

/* ── TAG ── */
.tag {
  display:inline-flex; align-items:center; gap:4px;
  font-size:.67rem; font-weight:500;
  padding:2px 8px; border-radius:var(--radius-full);
  background:var(--bg-hover); border:1px solid var(--border-dark);
  color:var(--text-muted);
}

/* ── RICERCA GLOBALE ── */
.search-empty {
  padding:24px; text-align:center;
  color:var(--text-muted); font-size:.82rem;
}
.search-section {
  padding:8px 16px 4px;
  font-size:.6rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em; color:var(--text-light);
}
.search-item {
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 16px; cursor:pointer;
  transition:background .1s; gap:12px;
}
.search-item:hover { background:var(--bg-card-hover) }
.search-item > div:last-child { flex-shrink:0 }

/* ── VISTA TOGGLE ── */
.vista-toggle {
  display:inline-flex;
  border:1px solid var(--border-dark);
  border-radius:var(--radius-sm);
  overflow:hidden; font-size:.78rem;
}
.vista-btn {
  padding:5px 14px;
  border:none; background:transparent;
  color:var(--text-muted); cursor:pointer;
  font-size:.78rem; font-weight:500;
  font-family:var(--font);
  transition:all .12s;
}
.vista-btn.active {
  background:var(--acc); color:#fff; font-weight:600;
}
.vista-btn:not(.active):hover { background:var(--bg-card-hover) }

/* Partecipazioni: errori espliciti e struttura mobile a card. */
.part-load-error {
  margin:16px 20px 20px; padding:12px 14px;
  border:1px solid var(--red-border); border-radius:var(--radius-sm);
  background:var(--red-bg); color:var(--red-text);
  font-size:.82rem; font-weight:650;
}
.part-payment-action:focus-visible,
.part-company-actions button:focus-visible { outline:3px solid var(--acc-glow); outline-offset:2px }

/* ================================================
   RESPONSIVE
   ================================================ */
@media (max-width:1280px) {
  .kpi-grid { grid-template-columns:repeat(3,1fr) }
  .charts-grid { grid-template-columns:1fr }
}
@media (max-width:1000px) {
  :root { --sidebar-w:58px }
  .sidebar-logo-name,
  .sidebar-logo-version,
  .sidebar .nav-item > span:last-child:not(.nav-icon),
  .sidebar .sidebar-section-label,
  .sidebar-footer .nav-item > span:last-child,
  .sidebar-footer kbd { display:none }
  .sidebar-logo { justify-content:center; padding:16px 0 }
  .sidebar-logo-icon { margin:0 }
  .sidebar-soc-filter label { display:none }
  .sidebar-soc-filter select { font-size:.65rem; padding:0 4px; height:28px }
  .sidebar .nav-item { justify-content:center; padding:10px; margin:1px 6px }
  .nav-icon { width:20px; height:20px }
  .nav-icon svg { width:18px; height:18px }
  .nav-badge { position:absolute; top:4px; right:4px; padding:1px 4px; font-size:.5rem }
  .kpi-grid { grid-template-columns:repeat(3,1fr) }
  .topbar { flex-wrap:wrap; gap:10px }
}

/* La navigazione a foglio esiste solo su mobile: fuori dal breakpoint non
   deve occupare spazio nel flusso della shell desktop. */
.sheet-backdrop,
.mobile-sheet { display:none }

@media (max-width:640px) {
  :root { --sidebar-w:0px }
  .sidebar { display:none }
  #mobile-nav {
    display:grid !important;
    grid-template-columns:repeat(5,1fr);
    position:fixed; inset:auto 0 0 0;
    z-index:200;
    background:var(--bg-sidebar);
    border-top:1px solid var(--border);
    box-shadow:0 -2px 12px rgba(0,0,0,0.06);
    padding:5px max(6px, env(safe-area-inset-right)) max(5px, env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left));
  }
  #mobile-nav .m-nav-item {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:2px; min-width:44px; min-height:44px; padding:6px 2px;
    cursor:pointer; border:0; background:transparent; border-radius:var(--radius-sm);
    font: 500 .53rem var(--font);
    color:var(--text-muted); text-align:center; transition:color .15s, background .15s;
  }
  #mobile-nav .m-nav-item:focus-visible { outline:3px solid var(--acc); outline-offset:2px; box-shadow:none }
  #mobile-nav .m-nav-item .m-icon { width:20px; height:20px }
  #mobile-nav .m-nav-item .m-icon svg { width:20px; height:20px; color:var(--text-muted) }
  #mobile-nav .m-nav-item.active { color:var(--acc); background:var(--acc-light) }
  #mobile-nav .m-nav-item.active .m-icon svg { color:var(--acc) }

  /* ── Sheet "Altro" — tutte le 17(+1) sezioni ── */
  .sheet-backdrop {
    display:block;
    position:fixed; inset:0; z-index:250;
    background:var(--bg-overlay); backdrop-filter:blur(3px);
  }
  .sheet-backdrop[hidden] { display:none }
  .mobile-sheet {
    display:block;
    position:fixed; inset:auto 0 0 0; z-index:260;
    max-height:min(82vh, 720px);
    overflow-y:auto;
    transform:translateY(105%);
    border:1px solid var(--border);
    border-radius:20px 20px 0 0;
    background:var(--bg-card);
    box-shadow:var(--shadow-lg);
    padding:8px 14px max(20px, env(safe-area-inset-bottom));
    transition:transform .22s ease;
  }
  .mobile-sheet[aria-hidden="true"] { visibility:hidden; pointer-events:none }
  .mobile-sheet.open { visibility:visible; transform:translateY(0) }
  @media (prefers-reduced-motion: reduce) { .mobile-sheet { transition:none } }
  .sheet-handle { width:40px; height:4px; margin:2px auto 8px; border-radius:999px; background:var(--border-dark) }
  .sheet-header { display:flex; align-items:center; justify-content:space-between; padding:2px 0 10px }
  .sheet-header strong { font-size:.95rem }
  .sheet-close { width:36px; height:36px; min-width:44px; min-height:44px; display:grid; place-items:center; border:0; background:transparent; border-radius:var(--radius-sm); color:var(--text-muted) }
  .sheet-close:focus-visible { outline:3px solid var(--acc); outline-offset:2px; box-shadow:none }
  #sheet-nav .nav-group { margin-top:14px }
  #sheet-nav .nav-group:first-child { margin-top:0 }
  #sheet-nav .sidebar-section-label { padding:0 2px 6px }
  #sheet-nav .nav-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px }
  #sheet-nav .nav-item {
    min-height:45px; border:1px solid var(--border); background:var(--bg-elevated);
    border-radius:var(--radius-sm);
  }
  #sheet-nav .nav-item.active { background:var(--acc-light); border-color:var(--acc-muted); color:var(--acc-text) }
  #sheet-nav .nav-item:focus-visible { outline:3px solid var(--acc); outline-offset:2px; box-shadow:none }
  @media (max-width:380px) { #sheet-nav .nav-list { grid-template-columns:1fr } }
  .main { margin-left:0; padding:14px 14px 72px }
  .topbar { flex-direction:column; align-items:flex-start; gap:10px; margin-bottom:14px }
  .topbar-right { width:100%; flex-wrap:wrap; gap:6px }
  .kpi-grid { grid-template-columns:1fr 1fr; gap:8px }
  .kpi-value { font-size:1.1rem }
  .kpi-card { padding:14px 16px }
  .kpi-icon { width:28px; height:28px; margin-bottom:10px }
  .filters { overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; gap:8px }
  .filter-group { flex-shrink:0 }
  .table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch }
  table { min-width:520px }
  #page-progetti .progetti-table-wrap { overflow:visible; padding:0 }
  #page-progetti .progetti-table { display:block; width:100%; min-width:0 }
  #page-progetti .progetti-table thead {
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  #page-progetti .progetti-table tbody { display:grid; gap:10px; width:100%; min-width:0 }
  #page-progetti .progetti-table tbody tr {
    display:block; min-width:0; overflow:hidden;
    border:1px solid var(--border); border-radius:var(--radius-md);
    background:var(--bg-card); box-shadow:var(--shadow-xs);
  }
  #page-progetti .progetti-table tbody td {
    display:grid; grid-template-columns:minmax(86px, 34%) minmax(0, 1fr);
    align-items:center; gap:10px; width:100%; min-width:0;
    padding:10px 12px; text-align:left;
    border-bottom:1px solid var(--border); overflow-wrap:anywhere;
  }
  #page-progetti .progetti-table tbody td:last-child { border-bottom:0 }
  #page-progetti .progetti-table tbody td::before {
    content:attr(data-label); color:var(--text-muted);
    font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  }
  #page-progetti .progetti-table .td-num { text-align:left }
  #page-progetti .progetti-table .badge { width:max-content; max-width:100%; white-space:normal }
  #page-partecipazioni .part-company-card { overflow:visible !important }
  #page-partecipazioni .part-company-header { align-items:flex-start !important; padding:16px !important }
  #page-partecipazioni .part-company-identity,
  #page-partecipazioni .part-company-summary { width:100%; min-width:0 }
  #page-partecipazioni .part-company-identity > div:last-child { min-width:0; overflow-wrap:anywhere }
  #page-partecipazioni .part-company-summary { align-items:flex-start !important; justify-content:space-between }
  #page-partecipazioni .part-company-summary > div { text-align:left !important; min-width:0; overflow-wrap:anywhere }
  #page-partecipazioni .part-company-actions { width:100%; display:grid !important; grid-template-columns:1fr 1fr; gap:8px !important }
  #page-partecipazioni .part-company-actions button { min-height:44px; width:100% }
  #page-partecipazioni .part-source-summary { padding:10px 16px !important; overflow-wrap:anywhere }
  #page-partecipazioni .part-table-wrap { overflow:visible !important; padding:12px }
  #page-partecipazioni .part-table { display:block; width:100% !important; min-width:0; border-collapse:separate !important }
  #page-partecipazioni .part-table caption,
  #page-partecipazioni .part-table thead {
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  #page-partecipazioni .part-table tbody { display:grid; gap:10px; width:100%; min-width:0 }
  #page-partecipazioni .part-payment-row {
    display:block; min-width:0; overflow:hidden;
    border:1px solid var(--border); border-radius:var(--radius-sm);
    background:var(--bg-elevated);
  }
  #page-partecipazioni .part-payment-row td {
    display:grid; grid-template-columns:minmax(72px, 30%) minmax(0, 1fr);
    align-items:start; gap:10px; width:100%; min-width:0;
    padding:10px 12px !important; text-align:left !important;
    border-bottom:1px solid var(--border); overflow-wrap:anywhere;
  }
  #page-partecipazioni .part-payment-row td:last-child { border-bottom:0 }
  #page-partecipazioni .part-payment-row td::before {
    content:attr(data-label); color:var(--text-muted);
    font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  }
  #page-partecipazioni .part-payment-row td > span { max-width:100%; margin:0 4px 4px 0 !important; overflow-wrap:anywhere }
  #page-partecipazioni .part-payment-actions { display:grid !important; grid-template-columns:minmax(72px, 30%) minmax(0, 1fr) }
  #page-partecipazioni .part-payment-actions::before { grid-row:1 / span 2 }
  #page-partecipazioni .part-payment-action { min-height:44px; min-width:44px; width:100%; border:1px solid var(--border) !important }
  #page-partecipazioni .part-load-error { margin:14px 16px 16px }
  .modal-overlay { align-items:flex-end; padding:0 }
  .modal, .modal-box {
    width:100% !important; max-width:100% !important;
    border-radius:24px 24px 0 0; padding:24px 20px 36px;
    max-height:min(93vh, 93dvh); overflow-x:hidden; overflow-y:auto;
    animation:slideUp .25s ease;
  }
  @keyframes slideUp {
    from { transform:translateY(24px) }
    to   { transform:translateY(0) }
  }
  .form-group { min-width:100% }
  .charts-grid { grid-template-columns:1fr; gap:10px }
  canvas { max-height:170px }
  .grid-2 { grid-template-columns:1fr }
  #anagrafica-societa-grid { grid-template-columns:minmax(0,1fr) !important }
  .pin-box { width:calc(100vw - 32px); padding:28px 18px }
  .pin-key { min-width:48px; min-height:48px; padding:12px }
  .page-title { font-size:1.15rem }
  .stat-tile { padding:16px }
  .col-hide-mobile { display:none !important }
  .toast { bottom:68px; right:12px; left:12px; justify-content:center; max-width:none }
  .trasf-form-grid { grid-template-columns:1fr 1fr !important }
  /* Asset card mobile */
  .asset-card-header { flex-direction:column; align-items:flex-start; gap:10px }
  .asset-card-actions { width:100%; display:flex; gap:6px; justify-content:flex-end }
  .asset-metrics { grid-template-columns:1fr 1fr !important }
  #patrimonio-kpi { grid-template-columns:1fr 1fr !important }
}

/* ── IMPORTA AI ── */
#importa-dropzone.dragover { border-color:var(--acc); background:var(--acc-light) }
.importa-row-ok        { background:var(--green-bg) }
.importa-row-sospetto  { background:var(--amber-bg) }
.importa-row-duplicato { background:var(--red-bg); opacity:.75 }
.importa-row-escluso   { background:var(--bg-elevated); opacity:.6 }
.importa-row-skip      { background:var(--bg-elevated); opacity:.6 }
.importa-badge { display:inline-flex;align-items:center;padding:2px 7px;border-radius:var(--radius-full);font-size:.68rem;font-weight:600;white-space:nowrap;border:1px solid transparent }
.importa-badge.ok        { background:var(--green-bg); color:var(--green-text); border-color:var(--green-border) }
.importa-badge.sospetto  { background:var(--amber-bg); color:var(--amber-text); border-color:var(--amber-border) }
.importa-badge.duplicato { background:var(--red-bg);   color:var(--red-text);   border-color:var(--red-border) }
.importa-badge.skip      { background:var(--bg-hover); color:var(--text-muted); border-color:var(--border-dark) }
.importa-badge.entrata   { background:var(--acc-light); color:var(--acc-text);  border-color:var(--acc-muted) }
.importa-badge.uscita    { background:var(--red-bg);   color:var(--red-text);   border-color:var(--red-border) }
.import-ai-status { display:inline-flex; align-items:center; min-height:24px; padding:2px 7px; border:1px solid transparent; border-radius:var(--radius-full); font-size:.68rem; font-weight:700; line-height:1.2; white-space:nowrap; }
.import-ai-status--verified { background:var(--green-bg); color:var(--green-text); border-color:var(--green-border); }
.import-ai-status--review { background:var(--amber-bg); color:var(--amber-text); border-color:var(--amber-border); }
.import-ai-status--blocked { background:var(--red-bg); color:var(--red-text); border-color:var(--red-border); }
.import-ai-status--duplicate { background:var(--red-bg); color:var(--red-text); border-color:var(--red-border); }
.import-ai-status--excluded { background:var(--bg-hover); color:var(--text-muted); border-color:var(--border-dark); }
.import-ai-evidence-toggle { display:inline-flex; align-items:center; justify-content:center; min-height:44px; max-width:100%; margin-top:4px; padding:7px 9px; border:1px solid var(--border-dark); border-radius:var(--radius-sm); color:var(--text); background:var(--bg-card); font:600 .68rem var(--font); line-height:1.2; cursor:pointer; }
.import-ai-evidence-toggle:hover { color:var(--acc-text); border-color:var(--acc-muted); background:var(--acc-light); }
.import-ai-evidence-toggle:focus-visible { outline:2px solid var(--acc); outline-offset:2px; }
.import-ai-evidence { min-width:0; margin-top:5px; padding:8px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--bg-elevated); color:var(--text-muted); font-size:.68rem; line-height:1.4; overflow-wrap:anywhere; word-break:break-word; }
.import-ai-evidence[hidden] { display:none; }
.import-ai-evidence p,.import-ai-evidence ul { margin:0; }
.import-ai-evidence ul + ul,.import-ai-evidence p + ul { margin-top:5px; }
.import-ai-evidence ul { padding-left:16px; }
.import-ai-evidence__reasons { color:var(--text); font-weight:600; }
.spinner { border:3px solid var(--border);border-top-color:var(--acc);border-radius:50%;animation:spin .7s linear infinite }
@keyframes spin { to { transform:rotate(360deg) } }

/* ══════════════════════════════════════════════════════════════
   INTELLIGENZA FINANZIARIA — accento ambra/arancio
   --intel-* scoped a #page-intel e .in-*
   ══════════════════════════════════════════════════════════════ */
:root {
  --intel-acc:       #F59E0B;
  --intel-acc-hover: #FBBF24;
  --intel-acc-light: rgba(245,158,11,.13);
  --intel-acc-text:  #925609;
  --intel-acc-muted: rgba(245,158,11,.22);
  --intel-border:    rgba(245,158,11,.20);
  --intel-glow:      rgba(245,158,11,.20);
}
/* intel in light mode usa i valori :root (dark usa questo override) */
html.dark {
  --intel-acc:       #FBBF24;
  --intel-acc-hover: #FCD34D;
  --intel-acc-light: rgba(251,191,36,.13);
  --intel-acc-text:  #FDE68A;
  --intel-acc-muted: rgba(251,191,36,.22);
  --intel-border:    rgba(251,191,36,.20);
  --intel-glow:      rgba(251,191,36,.20);
}
#nav-intel.active { background:rgba(245,158,11,.1) !important; border-color:rgba(245,158,11,.2) !important }
#nav-intel.active .nav-icon svg,
#nav-intel.active span:last-child { color:#D97706 !important }
#nav-intel:hover .nav-icon svg { color:#D97706 !important }

/* Tab bar */
.in-tabs-shell { position:relative; min-width:0 }
.in-tabs-shell::before,
.in-tabs-shell::after { display:none }
.in-tabs { display:flex; gap:4px; border-bottom:1px solid var(--intel-border); margin-bottom:18px; flex-wrap:wrap }
.in-tab {
  padding:7px 14px; font-size:.8rem; font-weight:600; cursor:pointer;
  border:none; background:transparent; color:var(--text-muted);
  border-bottom:2px solid transparent; margin-bottom:-1px;
  font-family:var(--font); border-radius:var(--radius-sm) var(--radius-sm) 0 0;
  transition:border-color .12s;
}
.in-tab:hover { color:var(--intel-acc-text) }
.in-tab.active { color:var(--intel-acc-text) !important; border-bottom-color:var(--intel-acc) !important; }
.in-tab:focus-visible { outline:none; box-shadow:inset 0 0 0 2px var(--intel-acc); }

@media (max-width:640px) {
  .in-tabs-shell { overflow:hidden }
  .in-tabs-shell::before,
  .in-tabs-shell::after {
    content:''; display:block; position:absolute; z-index:2;
    top:0; bottom:18px; width:28px; opacity:0; pointer-events:none;
    transition:opacity .15s ease;
  }
  .in-tabs-shell::before { left:0; background:linear-gradient(90deg,var(--bg) 18%,transparent) }
  .in-tabs-shell::after { right:0; background:linear-gradient(270deg,var(--bg) 18%,transparent) }
  .in-tabs-shell.can-scroll-left::before,
  .in-tabs-shell.can-scroll-right::after { opacity:1 }
  .in-tabs {
    flex-wrap:nowrap; width:100%; overflow-x:auto; overflow-y:hidden;
    overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch;
    scrollbar-width:thin; padding-right:24px;
  }
  .in-tab { flex:0 0 auto; min-height:44px }
  .fx-layout-grid,
  .fx-manual-grid,
  .fx-converter-grid { grid-template-columns:minmax(0,1fr) !important }
  .fx-converter-currency { padding-bottom:0 !important; min-width:0 }
  .fx-converter-currency select { width:100% !important; min-width:0 }
}

/* KPI row */
.in-kpi-row { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:18px }
.in-kpi {
  flex:1; min-width:130px; max-width:220px;
  background:var(--bg-card); border:1px solid var(--intel-border);
  border-radius:var(--radius-md); padding:13px 15px; position:relative; overflow:hidden;
}
.in-kpi::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--intel-acc),var(--intel-acc-hover));
}
.in-kpi-label { font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--intel-acc-text); margin-bottom:5px }
.in-kpi-value { font-size:1.25rem; font-weight:700; color:var(--text); font-variant-numeric:tabular-nums }
.in-kpi-sub   { font-size:.68rem; color:var(--text-muted); margin-top:2px }

.in-delay-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.in-delay-grid > div { min-width:0 }

@media (max-width:640px) {
  .in-delay-grid { grid-template-columns:minmax(0,1fr); gap:14px }
}

/* Bottone intel */
.btn-intel {
  display:inline-flex; align-items:center; gap:6px; padding:7px 14px;
  background:var(--intel-acc); color:#000; border:none; border-radius:var(--radius-sm);
  font-size:.82rem; font-weight:700; cursor:pointer; font-family:var(--font);
  transition:background .12s, box-shadow .12s;
}
.btn-intel:hover { background:var(--intel-acc-hover); box-shadow:0 0 0 3px var(--intel-acc-light) }
.btn-intel-outline {
  display:inline-flex; align-items:center; gap:5px; padding:6px 12px;
  background:transparent; color:var(--intel-acc-text); border:1px solid var(--intel-border);
  border-radius:var(--radius-sm); font-size:.78rem; font-weight:500; cursor:pointer;
  font-family:var(--font); transition:background .12s;
}
.btn-intel-outline:hover { background:var(--intel-acc-light) }

/* Confidence badge */
.score-badge {
  display:inline-block; padding:1px 6px; border-radius:var(--radius-full);
  font-size:.65rem; font-weight:700;
}
.score-badge.high { background:var(--green-bg); color:var(--green-text) }
.score-badge.med  { background:rgba(245,158,11,.15); color:var(--intel-acc-text) }
.score-badge.low  { background:var(--bg-hover); color:var(--text-muted) }

/* Cashflow bar */
.cf-bar-wrap { height:8px; background:var(--bg-hover); border-radius:999px; overflow:hidden; margin:4px 0 }
.cf-bar-fill { height:100%; border-radius:999px; transition:width .4s ease }
.cf-bar-pos  { background:linear-gradient(90deg,var(--green),#4ADE80) }
.cf-bar-neg  { background:linear-gradient(90deg,var(--red),#FCA5A5) }

/* Valuta row */
.fx-row { display:grid; grid-template-columns:18px 1fr auto auto auto; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--border-dark) }
.fx-currency-mark { width:10px; height:10px; background:var(--text-muted); box-shadow:0 0 0 3px var(--bg-elevated) }
.fx-currency-mark--chf { background:var(--red) }
.fx-currency-mark--gbp,.fx-currency-mark--eur { background:var(--sky) }
.fx-currency-mark--ron { background:var(--violet) }
.fx-currency-mark--bgn,.fx-currency-mark--usd { background:var(--green) }
.fx-name { font-weight:600; font-size:.85rem }
.fx-rate { font-size:.9rem; font-weight:700; font-variant-numeric:tabular-nums; font-family:var(--mono) }
.fx-data { font-size:.68rem; color:var(--text-muted) }
.fx-cron-state { width:8px; height:8px; margin-right:6px; vertical-align:1px }
.fx-cron-state--success { background:var(--green) }
.fx-cron-state--error { background:var(--red) }
.fx-cron-state--warning { background:var(--amber) }
.intel-event-kind { display:inline-flex; align-items:center; gap:4px }
.intel-event-kind svg { flex:0 0 auto }
#fx-refresh-icon { display:inline-flex; align-items:center; justify-content:center; transform-origin:center }
#fx-refresh-btn.is-refreshing #fx-refresh-icon { animation:fx-refresh-spin .8s linear infinite }
@keyframes fx-refresh-spin { to { transform:rotate(360deg) } }
.fx-delete-btn { display:inline-flex; align-items:center; justify-content:center }

/* Ritardi severity */
.rit-crit { border-left:3px solid var(--red) !important }
.rit-warn { border-left:3px solid var(--intel-acc) !important }
.rit-ok   { border-left:3px solid var(--green) !important }

/* Riconciliazione stato pill */
.ric-pill {
  display:inline-flex; align-items:center; gap:4px; padding:2px 8px;
  border-radius:var(--radius-full); font-size:.68rem; font-weight:600;
}
.ric-pill.da_riconciliare { background:var(--intel-acc-light); color:var(--intel-acc-text); border:1px solid var(--intel-border) }
.ric-pill.riconciliata    { background:var(--green-bg); color:var(--green-text); border:1px solid var(--green-border) }
.ric-pill.ignorata        { background:var(--bg-hover); color:var(--text-muted); border:1px solid var(--border-dark) }

/* Ricorrente card */
.rec-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius-md); padding:12px 14px;
  display:flex; align-items:center; gap:12px; cursor:default;
}
.rec-card:hover { border-color:var(--intel-border); background:var(--bg-card-hover) }
.rec-card.confermata { border-color:var(--green-border) }
.rec-pulse { width:8px; height:8px; border-radius:50%; flex-shrink:0; animation:pulse-rit 2s ease-in-out infinite }
@keyframes pulse-rit { 0%,100%{opacity:1}50%{opacity:.35} }

@media (prefers-reduced-motion: reduce) {
  .rec-pulse { animation:none }
  .cf-bar-fill { transition:none }
  .in-tabs-shell::before,
  .in-tabs-shell::after { transition:none }
}

/* ══════════════════════════════════════════════════════════════
   SPESE FAMILIARI — design system isolato, accento viola
   Le variabili --fam-* sono scoped a .sf-* e #page-famiglia
   ══════════════════════════════════════════════════════════════ */
:root {
  --fam-acc:       #7658A5;
  --fam-acc-hover: #6A4493;
  --fam-acc-light: rgba(139,92,246,.14);
  --fam-acc-text:  #7658A5;
  --fam-acc-muted: rgba(139,92,246,.25);
  --fam-acc-glow:  rgba(139,92,246,.22);
  --fam-border:    rgba(139,92,246,.22);
}
/* famiglia in light mode usa i valori :root già corretti */
html.dark {
  --fam-acc:       #A78BFA;
  --fam-acc-hover: #C4B5FD;
  --fam-acc-light: rgba(139,92,246,.14);
  --fam-acc-text:  #DDD6FE;
  --fam-acc-muted: rgba(139,92,246,.25);
  --fam-acc-glow:  rgba(139,92,246,.22);
  --fam-border:    rgba(139,92,246,.22);
}

/* Sidebar nav — voce famiglia con tono viola all'hover/active */
#nav-famiglia.active,
#nav-famiglia.active .nav-icon svg { color:#7C3AED !important }
#nav-famiglia:hover .nav-icon svg  { color:#7C3AED !important }
#nav-famiglia.active { background:rgba(124,58,237,.1) !important; border-color:rgba(124,58,237,.2) !important }

/* Page wrapper — bordo top viola per riconoscimento visivo immediato */
#page-famiglia .topbar {
  border-top:2px solid var(--fam-acc);
  border-radius:0 0 0 0;
}

/* KPI cards famiglia */
.sf-kpi-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:12px;
  margin-bottom:20px;
}
.sf-main-grid > * { min-width:0 }
.sf-kpi-card {
  background:var(--bg-card);
  border:1px solid var(--fam-border);
  border-radius:var(--radius-md);
  padding:14px 16px;
  position:relative;
  overflow:hidden;
}
.sf-kpi-card::before {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:3px;
  background:linear-gradient(90deg,var(--fam-acc),var(--fam-acc-hover));
}
.sf-kpi-label {
  font-size:.7rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--fam-acc-text);
  margin-bottom:6px;
}
.sf-kpi-value {
  font-size:1.35rem;
  font-weight:700;
  color:var(--text);
  font-variant-numeric:tabular-nums;
}
.sf-kpi-sub {
  font-size:.7rem;
  color:var(--text-muted);
  margin-top:3px;
}

/* Filtri bar famiglia */
.sf-filter-bar {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:16px;
  padding:12px 14px;
  background:var(--bg-elevated);
  border:1px solid var(--fam-border);
  border-radius:var(--radius-md);
}
.sf-filter-bar input,
.sf-filter-bar select {
  border-color:var(--fam-border) !important;
}
.sf-filter-bar input:focus,
.sf-filter-bar select:focus {
  border-color:var(--fam-acc) !important;
  box-shadow:0 0 0 3px var(--fam-acc-light) !important;
}

/* Bottone primario famiglia */
.btn-fam {
  display:inline-flex; align-items:center; gap:6px;
  padding:7px 14px;
  background:var(--fam-acc);
  color:#fff;
  border:none;
  border-radius:var(--radius-sm);
  font-size:.82rem;
  font-weight:600;
  cursor:pointer;
  transition:background .12s ease, box-shadow .12s ease;
  font-family:var(--font);
}
.btn-fam:hover { background:var(--fam-acc-hover); box-shadow:0 0 0 3px var(--fam-acc-light) }
.btn-fam-outline {
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 12px;
  background:transparent;
  color:var(--fam-acc-text);
  border:1px solid var(--fam-border);
  border-radius:var(--radius-sm);
  font-size:.8rem;
  font-weight:500;
  cursor:pointer;
  transition:background .12s ease;
  font-family:var(--font);
}
.btn-fam-outline:hover { background:var(--fam-acc-light) }

/* Badge categoria */
.sf-badge {
  display:inline-flex; align-items:center;
  padding:2px 8px;
  border-radius:var(--radius-full);
  font-size:.68rem;
  font-weight:600;
  background:var(--fam-acc-light);
  color:var(--fam-acc-text);
  border:1px solid var(--fam-border);
  white-space:nowrap;
}

/* Tabella spese familiari */
.sf-table thead th { color:var(--fam-acc-text) !important }
.sf-table tbody tr:hover { background:var(--fam-acc-light) !important }

/* Modal famiglia */
.sf-modal-header {
  background:linear-gradient(135deg,var(--fam-acc-light),transparent);
  border-bottom:1px solid var(--fam-border);
  padding:18px 22px 14px;
}
.sf-modal-title {
  font-size:1rem;
  font-weight:700;
  color:var(--text);
  display:flex; align-items:center; gap:8px;
}
.sf-modal-title::before {
  content:'';
  display:inline-block;
  width:10px; height:10px;
  border-radius:50%;
  background:var(--fam-acc);
  box-shadow:0 0 8px var(--fam-acc-glow);
}

/* Riepilogo barre per categoria */
.sf-cat-bar-wrap {
  display:flex; flex-direction:column; gap:8px;
  margin-top:4px;
}
.sf-cat-bar-row {
  display:grid;
  grid-template-columns:120px 1fr 70px;
  align-items:center;
  gap:8px;
  font-size:.78rem;
}
.sf-cat-bar-row .sf-cat-name { color:var(--text); font-weight:500; truncate:ellipsis; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.sf-cat-bar-track {
  height:6px; background:var(--bg-hover); border-radius:999px; overflow:hidden;
}
.sf-cat-bar-fill {
  height:100%; background:linear-gradient(90deg,var(--fam-acc),var(--fam-acc-hover));
  border-radius:999px; transition:width .4s ease;
}
.sf-cat-bar-amt { color:var(--text-muted); text-align:right; font-variant-numeric:tabular-nums }

/* Chip persona */
.sf-chip {
  display:inline-flex; align-items:center;
  padding:2px 9px;
  border-radius:var(--radius-full);
  font-size:.7rem; font-weight:600;
  background:rgba(139,92,246,.1);
  color:var(--fam-acc-text);
  border:1px solid var(--fam-acc-muted);
}
html.dark .sf-chip { background:rgba(139,92,246,.12) }

@media (max-width:640px) {
  .sf-main-grid { grid-template-columns:minmax(0,1fr) !important }
}

/* Totale row footer tabella */
.sf-total-row td {
  font-weight:700;
  border-top:1px solid var(--fam-border) !important;
  color:var(--fam-acc-text);
}

/* Empty state */
.sf-empty {
  padding:40px 20px;
  text-align:center;
  color:var(--text-muted);
  font-size:.85rem;
}
.sf-empty-icon {
  font-size:2.2rem;
  display:block;
  margin-bottom:10px;
  opacity:.5;
}

/* ── THEME TOGGLE BUTTON ── */
.theme-toggle-btn {
  display:flex; align-items:center; gap:8px;
  padding:8px 12px; margin:1px 6px;
  cursor:pointer; border-radius:var(--radius-sm);
  font-size:.82rem; font-weight:500;
  color:var(--text-sidebar);
  border:none; background:transparent;
  font-family:var(--font);
  width:calc(100% - 12px);
  transition:background .12s ease, color .12s ease;
}
.theme-toggle-btn:hover {
  background:var(--bg-sidebar-h);
  color:var(--text);
}
.theme-toggle-btn:focus-visible { outline:3px solid var(--acc); outline-offset:2px; box-shadow:none; }
.theme-toggle-icon {
  width:18px; height:18px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.theme-toggle-icon svg { width:18px; height:18px }
[data-theme-icon][hidden] { display:none }

/* ================================================
   EMERALD LEDGER — DASHBOARD FASE 2
   Decision-first, light/dark parity, desktop/mobile
   ================================================ */
.sr-only {
  position:absolute !important;
  width:1px !important; height:1px !important;
  padding:0 !important; margin:-1px !important;
  overflow:hidden !important; clip:rect(0,0,0,0) !important;
  white-space:nowrap !important; border:0 !important;
}

.el-dashboard-page { max-width:1600px; margin:0 auto }
.el-dashboard-header { align-items:center; margin-bottom:22px }
.el-dashboard-header .page-title { font-size:2rem; line-height:1.12; letter-spacing:-.045em }
.el-dashboard-header .page-subtitle { font-size:.82rem; margin-top:6px }
.el-dashboard-filters { gap:8px }
.el-compact-field { display:flex; align-items:center; gap:7px }
.el-compact-field > span {
  font-size:.58rem; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--text-light);
}
.el-dashboard-filters .el-compact-field:first-child select { width:92px }
.el-dashboard-filters .el-compact-field:last-child select { width:142px }

.el-dashboard-kpis {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px; margin-bottom:16px;
}
.el-kpi-card {
  position:relative; min-width:0; min-height:150px;
  padding:18px 18px 16px;
  border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--bg-card); box-shadow:var(--shadow-sm);
  overflow:hidden; transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.el-kpi-card::before {
  content:''; position:absolute; inset:0 auto 0 0; width:3px;
  background:var(--tone,var(--acc));
}
.el-kpi-card:hover { border-color:var(--border-dark); box-shadow:var(--shadow-md); background:var(--bg-card-hover) }
.el-kpi-positive { --tone:var(--green) }
.el-kpi-negative { --tone:var(--red) }
.el-kpi-primary { --tone:var(--acc) }
.el-kpi-warning { --tone:var(--amber) }
.el-kpi-card .kpi-icon { margin-bottom:14px }
.el-kpi-card .kpi-label { margin-bottom:7px; font-size:.58rem; letter-spacing:.13em }
.el-kpi-card .kpi-value {
  margin:0 0 8px; font-size:1.55rem; line-height:1.08;
  font-variant-numeric:tabular-nums; color:var(--text);
}
.el-kpi-card .kpi-sub { line-height:1.45; min-height:1.45em }
.el-kpi-trend {
  position:absolute; top:18px; right:16px;
  display:inline-flex; align-items:center; min-height:22px; padding:3px 8px;
  border-radius:var(--radius-full); font:600 .61rem var(--mono);
  background:var(--bg-elevated); color:var(--text-muted);
}
.el-kpi-trend.positive { background:var(--green-bg); color:var(--green-text) }
.el-kpi-trend.negative { background:var(--red-bg); color:var(--red-text) }
.el-kpi-trend.warning { background:var(--amber-bg); color:var(--amber-text) }

.el-dashboard-grid { display:grid; gap:16px; min-width:0; margin-bottom:16px }
.el-dashboard-grid-primary { grid-template-columns:minmax(0,1.9fr) minmax(300px,.9fr) }
.el-dashboard-grid-equal { grid-template-columns:repeat(2,minmax(0,1fr)) }
.el-panel {
  min-width:0; overflow:hidden;
  border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--bg-card); box-shadow:var(--shadow-sm);
}
.el-panel-head {
  min-height:64px; padding:15px 17px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  border-bottom:1px solid var(--border);
}
.el-panel-head h2, .el-panel-head h3 { margin:0; font-size:.82rem; line-height:1.35; color:var(--text); letter-spacing:-.01em }
.el-panel-head p { margin:3px 0 0; font-size:.65rem; line-height:1.4; color:var(--text-muted) }
.el-panel-actions { display:flex; align-items:center; justify-content:flex-end; gap:14px; flex-wrap:wrap }
.el-text-button, .el-retry-button {
  min-height:36px; padding:7px 10px;
  border:1px solid var(--border); border-radius:var(--radius-sm);
  background:var(--bg-card); color:var(--acc-text);
  font:600 .68rem var(--font); cursor:pointer;
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.el-text-button:hover, .el-retry-button:hover { background:var(--acc-light); border-color:var(--acc-muted) }
.el-text-button:focus-visible, .el-retry-button:focus-visible, .el-priority-row:focus-visible, .el-note-add:focus-visible {
  outline:none; box-shadow:0 0 0 3px var(--acc-glow);
}
.el-chart-legend { display:flex; align-items:center; gap:12px; color:var(--text-muted); font-size:.62rem }
.el-chart-legend span { display:inline-flex; align-items:center; gap:6px; white-space:nowrap }
.el-legend-line { display:block; width:17px; height:0; border-top:2px solid }
.el-legend-income { border-color:var(--green) }
.el-legend-expense { border-color:var(--red); border-top-style:dashed }
.el-chart-wrap { height:300px; padding:18px 16px 14px }
.el-chart-wrap canvas { width:100% !important; height:100% !important; max-height:none }
.el-data-table { padding:0 16px 16px; overflow-x:auto }
.el-data-table[hidden], .el-panel-state[hidden], .el-chart-wrap[hidden] { display:none !important }
.el-data-table table { min-width:0; border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden }
.el-data-table th, .el-data-table td { padding:9px 10px; font-size:.7rem }
.el-data-table tbody th { color:var(--text); text-align:left; font-weight:600; background:transparent; text-transform:none; letter-spacing:0 }

.el-summary-list, .el-project-list, .el-priority-list { min-height:210px }
.el-company-row {
  min-width:0; min-height:58px; padding:11px 16px;
  display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:10px;
  border-bottom:1px solid var(--border);
}
.el-company-row:last-child { border-bottom:0 }
.el-company-mark {
  width:32px; height:32px; display:grid; place-items:center; flex-shrink:0;
  border-radius:10px; background:var(--bg-elevated); color:var(--text-muted);
  font:700 .64rem var(--mono); letter-spacing:.02em;
}
.el-wallet-mark { color:var(--acc-text); background:var(--acc-light) }
.el-wallet-mark svg { width:16px; height:16px }
.el-company-copy { min-width:0; display:flex; flex-direction:column; gap:2px }
.el-company-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.73rem; color:var(--text) }
.el-company-copy span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.59rem; color:var(--text-muted) }
.el-row-value { white-space:nowrap; text-align:right; font:600 .72rem var(--mono); color:var(--text) }
.el-row-value.positive { color:var(--green-text) }
.el-row-value.negative { color:var(--red-text) }

.el-project-list { position:relative; padding:12px 16px 15px }
.el-project-row {
  min-width:0; min-height:58px; display:grid;
  grid-template-columns:minmax(90px,120px) minmax(100px,1fr) minmax(78px,auto);
  align-items:center; gap:12px;
}
.el-project-meta { min-width:0; display:flex; flex-direction:column; gap:2px }
.el-project-meta strong { font-size:.69rem; overflow:hidden; white-space:nowrap; text-overflow:ellipsis }
.el-project-meta span { font-size:.56rem; color:var(--text-muted) }
.el-project-track { position:relative; height:9px; border-radius:999px; background:var(--bg-elevated); overflow:visible }
.el-project-zero { position:absolute; left:var(--project-zero); top:-4px; bottom:-4px; width:1px; background:var(--border-dark) }
.el-project-track > span {
  position:absolute; left:var(--bar-left); top:0; bottom:0; width:var(--bar-width);
  min-width:2px; border-radius:999px; background:var(--green);
}
.el-project-row.negative .el-project-track > span { background:var(--red) }

.el-priority-row {
  width:100%; min-height:58px; padding:10px 16px;
  display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:10px;
  border:0; border-bottom:1px solid var(--border); border-radius:0;
  background:transparent; color:inherit; text-align:left; font-family:var(--font); cursor:pointer;
  transition:background .15s ease;
}
.el-priority-row:last-child { border-bottom:0 }
.el-priority-row:hover { background:var(--bg-card-hover) }
.el-priority-icon { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; background:var(--bg-elevated); color:var(--text-muted) }
.el-priority-icon svg { width:16px; height:16px }
.el-priority-icon.negative { background:var(--red-bg); color:var(--red-text) }
.el-priority-icon.warning { background:var(--amber-bg); color:var(--amber-text) }
.el-priority-icon.info { background:var(--sky-bg); color:var(--sky-text) }
.el-priority-copy { min-width:0; display:flex; flex-direction:column; gap:2px }
.el-priority-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.71rem; color:var(--text) }
.el-priority-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.59rem; color:var(--text-muted) }
.el-priority-date { white-space:nowrap; font:600 .59rem var(--mono); color:var(--text-muted) }

.el-panel-state { min-height:248px; padding:18px }
.el-panel-message {
  min-height:180px; padding:28px 20px;
  display:flex; align-items:center; justify-content:center; gap:12px; text-align:left;
  color:var(--text-muted);
}
.el-panel-message > div { max-width:320px }
.el-panel-message strong { display:block; color:var(--text); font-size:.78rem }
.el-panel-message p { margin:4px 0 0; font-size:.68rem; line-height:1.5 }
.el-panel-error { color:var(--red-text) }
.el-state-icon { width:38px; height:38px; display:grid; place-items:center; flex-shrink:0; border-radius:12px; color:var(--text-muted); background:var(--bg-elevated) }
.el-state-icon svg { width:19px; height:19px }
.el-panel-error .el-state-icon { color:var(--red-text); background:var(--red-bg) }
.el-panel-error .el-retry-button { margin-left:8px; flex-shrink:0 }
.el-skeleton, .el-skeleton-list {
  position:relative; overflow:hidden; border-radius:var(--radius-sm);
  background:linear-gradient(90deg,var(--bg-elevated) 22%,var(--bg-card-hover) 40%,var(--bg-elevated) 62%);
  background-size:300% 100%; animation:elSkeleton 1.35s ease-in-out infinite;
}
.el-skeleton-chart { height:212px }
.el-skeleton-list { min-height:210px; margin:0 }
@keyframes elSkeleton { 0% { background-position:100% 0 } 100% { background-position:0 0 } }

.el-operational-section { margin-top:28px }
.el-section-heading {
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
  margin-bottom:12px; padding:0 2px;
}
.el-eyebrow { display:block; margin-bottom:4px; color:var(--acc-text); font-size:.57rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase }
.el-section-heading h2 { margin:0; font-size:1rem; letter-spacing:-.02em }
.el-section-heading p { max-width:480px; margin:0; color:var(--text-muted); font-size:.66rem; line-height:1.5; text-align:right }
.el-notes-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:9px; min-height:210px; padding:12px 14px }
.el-notes-grid .nota-card { min-width:0; margin:0 }
.el-notes-grid .nota-actions .btn {
  width:32px; height:32px; min-width:32px; min-height:32px; padding:0;
  display:grid; place-items:center; border-radius:var(--radius-sm);
}
.el-notes-grid .nota-actions .btn svg { width:15px; height:15px }
.el-note-form { margin:0 14px 14px; padding:12px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--bg-elevated) }
.el-note-fields { display:grid; grid-template-columns:minmax(0,1fr) 120px; gap:9px; margin-bottom:9px }
.el-note-fields label { display:flex; flex-direction:column; gap:5px }
.el-note-fields label > span { font-size:.58rem; font-weight:700; color:var(--text-muted) }
.el-note-fields input, .el-note-fields select { width:100%; min-height:40px }
.el-note-actions { display:flex; gap:8px; justify-content:flex-end }

/* ================================================
   RIEPILOGO PREVISIONE — RB Control, responsive
   ================================================ */
.rf-page { max-width:1600px; margin:0 auto; min-width:0 }
.rf-header { align-items:center; margin-bottom:18px }
.rf-company-field { display:flex; align-items:center; gap:8px }
.rf-company-field label, .rf-eyebrow {
  color:var(--text-muted); font-size:.58rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
}
.rf-company-field select { width:178px; min-height:44px }
.rf-tabs {
  display:flex; gap:8px; margin:0 0 16px; padding:4px;
  width:max-content; max-width:100%; border:1px solid var(--border);
  border-radius:var(--radius-md); background:var(--bg-elevated);
}
.rf-tab, .rf-segmented button, .rf-event-filter button, .rf-text-button, .rf-row-action, .rf-retry-button {
  min-height:44px; border:1px solid transparent; border-radius:var(--radius-sm);
  background:transparent; color:var(--text-muted); cursor:pointer; font:600 .7rem var(--font);
  transition:background .16s ease, border-color .16s ease, color .16s ease;
}
.rf-tab { padding:8px 14px }
.rf-tab[aria-selected="true"] { background:var(--bg-card); border-color:var(--border); box-shadow:var(--shadow-xs); color:var(--text) }
.rf-toolbar {
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  min-width:0; margin-bottom:14px;
}
.rf-toolbar-copy { display:flex; flex-direction:column; gap:3px; min-width:0 }
.rf-toolbar-copy strong { color:var(--text); font-size:.9rem }
.rf-segmented, .rf-event-filter { display:flex; gap:8px; flex-wrap:wrap; align-items:center }
.rf-segmented button, .rf-event-filter button { padding:8px 12px; border-color:var(--border); background:var(--bg-card) }
.rf-segmented button[aria-pressed="true"], .rf-event-filter button[aria-pressed="true"] { background:var(--acc-light); border-color:var(--acc-muted); color:var(--acc-text) }
.rf-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:16px }
.rf-kpi-card {
  position:relative; min-width:0; min-height:158px; overflow:hidden; padding:18px 17px 16px;
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--bg-card); box-shadow:var(--shadow-sm);
  transition:background .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.rf-kpi-card::before { content:''; position:absolute; inset:0 auto 0 0; width:3px; background:var(--acc) }
.rf-kpi-incoming::before { background:var(--green) }
.rf-kpi-outgoing::before { background:var(--red) }
.rf-kpi-balance::before { background:var(--violet) }
.rf-kpi-card:hover { background:var(--bg-card-hover); border-color:var(--border-dark); box-shadow:var(--shadow-md) }
.rf-kpi-label { color:var(--text-muted); font-size:.58rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase }
.rf-kpi-value { color:var(--text); font:700 1.35rem/1.1 var(--mono); font-variant-numeric:tabular-nums; letter-spacing:-.04em }
.rf-kpi-detail, .rf-kpi-original { color:var(--text-muted); font-size:.64rem; line-height:1.4 }
.rf-kpi-original { overflow-wrap:anywhere }
.rf-kpi-incomplete { margin-top:auto; color:var(--amber-text); font-size:.58rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase }
.rf-card {
  min-width:0; overflow:hidden; border:1px solid var(--border); border-radius:var(--radius-lg);
  background:var(--bg-card); box-shadow:var(--shadow-sm);
}
.rf-card-head { min-height:70px; padding:15px 17px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--border) }
.rf-card-head h2 { margin:3px 0 0; color:var(--text); font-size:.85rem; letter-spacing:-.01em }
.rf-text-button, .rf-row-action, .rf-retry-button { padding:8px 11px; border-color:var(--border); background:var(--bg-card); color:var(--acc-text); white-space:nowrap }
.rf-text-button:hover, .rf-row-action:hover, .rf-retry-button:hover { background:var(--acc-light); border-color:var(--acc-muted) }
.rf-chart-legend { display:flex; align-items:center; gap:7px; margin:12px 16px 0; color:var(--text-muted); font-size:.63rem; line-height:1.4 }
.rf-legend-line { width:22px; height:0; flex:0 0 auto; border-top:2px dashed var(--acc) }
.rf-chart-wrap { height:300px; min-width:0; padding:14px 16px 12px }
.rf-chart-wrap canvas { width:100% !important; height:100% !important; max-height:none }
.rf-chart-state, .rf-panel-state {
  min-height:0; padding:12px 16px; display:flex; align-items:center; gap:10px;
  color:var(--text-muted); font-size:.72rem; line-height:1.45;
}
.rf-chart-state[data-state="empty"] { color:var(--text); background:var(--amber-bg); border-top:1px solid var(--amber-border); border-bottom:1px solid var(--amber-border) }
.rf-chart-state[data-state="error"], .rf-panel-state[data-state="error"] { color:var(--text); background:var(--red-bg); border-color:var(--red-border) }
.rf-panel-state[data-state="loading"] { color:var(--text-muted); background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius-md); margin-bottom:12px }
.rf-data-table { padding:0 16px 16px; min-width:0; max-width:100%; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch }
.rf-data-table:focus-visible { outline:3px solid var(--acc); outline-offset:-3px; border-radius:var(--radius-sm) }
.rf-data-table[hidden], .rf-chart-state[hidden], .rf-panel-state[hidden] { display:none !important }
.rf-data-table table { table-layout:fixed; width:100%; min-width:520px; border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden }
.rf-data-table th, .rf-data-table td { padding:9px 10px; font-size:.7rem; white-space:normal; overflow-wrap:anywhere }
.rf-content-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(280px,.9fr); gap:16px; margin-top:16px }
.rf-events-head { align-items:flex-start }
.rf-event-list, .rf-exclusion-list { min-height:220px }
.rf-event {
  min-width:0; min-height:76px; padding:11px 16px; display:grid;
  grid-template-columns:86px minmax(0,1fr) auto auto; align-items:center; gap:11px;
  border-bottom:1px solid var(--border);
}
.rf-event:last-child, .rf-exclusion:last-child { border-bottom:0 }
.rf-event time { color:var(--text-muted); font:600 .62rem var(--mono); font-variant-numeric:tabular-nums }
.rf-event-copy, .rf-event-value { min-width:0; display:flex; flex-direction:column; gap:3px }
.rf-event-copy strong, .rf-exclusion strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text); font-size:.72rem }
.rf-event-copy span, .rf-event-original, .rf-exclusion span, .rf-exclusion small { overflow-wrap:anywhere; color:var(--text-muted); font-size:.61rem; line-height:1.35 }
.rf-event-amount { color:var(--text); font:700 .72rem var(--mono); font-variant-numeric:tabular-nums; white-space:nowrap }
.rf-event-incoming .rf-event-amount { color:var(--green-text) }
.rf-event-outgoing .rf-event-amount { color:var(--red-text) }
.rf-exclusion { min-width:0; min-height:86px; padding:12px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--border) }
.rf-exclusion > div { min-width:0; display:flex; flex-direction:column; gap:3px }
.rf-empty-copy { padding:28px 16px; color:var(--text-muted); font-size:.72rem; line-height:1.5 }
.rf-history-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; min-width:0; margin-bottom:14px }
.rf-history-year-field { display:flex; align-items:center; gap:8px; min-width:0; color:var(--text-muted); font-size:.58rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase }
.rf-history-year-field select { min-width:108px; min-height:44px }
.rf-history-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr); gap:16px; margin-bottom:16px }
.rf-history-chart-card, .rf-history-comparison-card, .rf-history-detail-card { min-width:0 }
.rf-history-chart-wrap { height:286px }
.rf-history-legend { flex-wrap:wrap; gap:8px 14px }
.rf-history-legend > span { display:inline-flex; align-items:center; gap:7px; min-width:0 }
.rf-legend-received { border-top-style:solid; border-color:var(--green) }
.rf-legend-paid { border-top:2px dashed var(--red) }
.rf-legend-net { border-top:2px dashed var(--acc) }
#rf-history-chart-table table { min-width:720px }
.rf-history-comparisons { display:grid; gap:8px; padding:14px 16px 8px; min-width:0 }
.rf-history-comparison { min-width:0; padding:12px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--bg-elevated) }
.rf-history-comparison h3 { margin:0 0 4px; color:var(--text); font-size:.74rem }
.rf-history-comparison p { margin:0; overflow-wrap:anywhere; color:var(--text-muted); font-size:.65rem; line-height:1.45 }
.rf-history-comparison .rf-history-comparison-values { margin-top:7px; color:var(--text); font:700 .68rem var(--mono); font-variant-numeric:tabular-nums }
.rf-history-comparison .rf-history-comparison-delta { margin-top:4px; color:var(--acc-text); font-weight:700 }
.rf-history-fallback { margin:0; padding:10px 16px 14px; border-top:1px solid var(--border); color:var(--text-muted); font-size:.64rem; line-height:1.45; overflow-wrap:anywhere }
.rf-history-detail-card { margin-top:16px }
.rf-history-months, .rf-history-quarters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:16px; min-width:0 }
.rf-history-month, .rf-history-quarter { min-width:0; padding:13px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--bg-elevated) }
.rf-history-month h3, .rf-history-quarter h3 { margin:0 0 10px; color:var(--text); font-size:.75rem }
.rf-history-month dl, .rf-history-quarter dl { display:grid; gap:7px; margin:0 }
.rf-history-month dl > div, .rf-history-quarter dl > div { display:flex; align-items:baseline; justify-content:space-between; gap:8px; min-width:0 }
.rf-history-month dt, .rf-history-quarter dt { min-width:0; color:var(--text-muted); font-size:.61rem; overflow-wrap:anywhere }
.rf-history-month dd, .rf-history-quarter dd { margin:0; color:var(--text); font:700 .64rem var(--mono); font-variant-numeric:tabular-nums; text-align:right; overflow-wrap:anywhere }
.rf-tab:focus-visible, .rf-segmented button:focus-visible, .rf-event-filter button:focus-visible, .rf-text-button:focus-visible, .rf-row-action:focus-visible, .rf-retry-button:focus-visible, .rf-company-field select:focus-visible, .rf-history-year-field select:focus-visible { outline:none; box-shadow:0 0 0 3px var(--acc-glow); border-color:var(--acc) }

@media (max-width:1080px) {
  .rf-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .rf-content-grid { grid-template-columns:minmax(0,1fr) }
  .rf-history-grid { grid-template-columns:minmax(0,1fr) }
}
@media (max-width:640px) {
  .rf-header { align-items:flex-start; flex-direction:column; gap:12px; margin-bottom:14px }
  .rf-company-field { width:100%; display:grid; grid-template-columns:minmax(0,1fr); gap:5px }
  .rf-company-field select { width:100% }
  .rf-history-toolbar { align-items:stretch; flex-direction:column; gap:10px }
  .rf-history-year-field { display:grid; grid-template-columns:minmax(0,1fr); gap:5px }
  .rf-history-year-field select { width:100% }
  .rf-tabs { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px }
  .rf-tab { min-width:0; padding-inline:8px }
  .rf-toolbar { align-items:flex-start; flex-direction:column; gap:10px }
  .rf-segmented { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px }
  .rf-segmented button { min-width:0 }
  .rf-kpi-grid { gap:9px; margin-bottom:12px }
  .rf-kpi-card { min-height:148px; padding:14px 12px 12px }
  .rf-kpi-value { font-size:1.02rem }
  .rf-kpi-detail, .rf-kpi-original { font-size:.58rem }
  .rf-card-head { min-height:64px; padding:13px 12px; gap:10px }
  .rf-chart-card .rf-card-head { align-items:flex-start; flex-direction:column }
  .rf-chart-card .rf-text-button { width:100% }
  .rf-chart-wrap { height:248px; padding:12px 8px 9px }
  .rf-history-chart-wrap { height:236px }
  .rf-data-table { padding:0 8px 10px }
  .rf-data-table th, .rf-data-table td { padding:7px 4px; font-size:.7rem }
  .rf-events-head { flex-direction:column }
  .rf-event-filter { width:100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px }
  .rf-event-filter button { min-width:0; padding:8px 4px; font-size:.6rem }
  .rf-content-grid { gap:12px; margin-top:12px }
  .rf-event { min-height:0; padding:11px 12px; grid-template-columns:68px minmax(0,1fr) auto; gap:8px }
  .rf-event-value { grid-column:2; align-items:flex-start }
  .rf-event .rf-row-action { grid-column:3; grid-row:1 / span 2; min-width:44px; padding:8px }
  .rf-event-copy strong { white-space:normal }
  .rf-exclusion { align-items:flex-start; flex-direction:column; padding:12px }
  .rf-exclusion .rf-row-action { width:100% }
  .rf-history-grid { gap:12px; margin-bottom:12px }
  .rf-history-legend { margin-inline:12px; gap:8px 10px }
  .rf-history-comparisons { gap:8px; padding:12px 12px 8px }
  .rf-history-fallback { padding:10px 12px 12px }
  .rf-history-detail-card { margin-top:12px }
  .rf-history-months, .rf-history-quarters { grid-template-columns:minmax(0,1fr); gap:8px; padding:12px }
  .rf-history-month, .rf-history-quarter { padding:12px }
}
@media (max-width:640px), (pointer:coarse) {
  .rf-page .rf-company-field select, .rf-page .rf-history-year-field select { font-size:16px }
}
@media (prefers-reduced-motion: reduce) {
  .rf-page *, .rf-page *::before, .rf-page *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important }
}

@media (max-width:1180px) {
  .el-dashboard-kpis { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .el-dashboard-grid-primary { grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr) }
}

@media (max-width:820px) {
  .el-dashboard-grid-primary, .el-dashboard-grid-equal { grid-template-columns:minmax(0,1fr) }
  .el-section-heading { align-items:flex-start; flex-direction:column; gap:6px }
  .el-section-heading p { text-align:left }
}

@media (max-width:640px) {
  .el-dashboard-header { margin-bottom:16px }
  .el-dashboard-header .page-title { font-size:1.5rem; line-height:1.2 }
  .el-dashboard-header .page-subtitle { font-size:.72rem }
  .el-dashboard-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100% }
  .el-compact-field { min-width:0; display:block }
  .el-compact-field > span { display:block; margin:0 0 4px 2px }
  .el-dashboard-filters .el-compact-field:first-child select,
  .el-dashboard-filters .el-compact-field:last-child select { width:100%; min-height:44px }
  .el-dashboard-kpis { gap:9px; margin-bottom:12px }
  .el-kpi-card { min-height:132px; padding:13px 12px 12px }
  .el-kpi-card .kpi-icon { width:29px; height:29px; margin-bottom:11px }
  .el-kpi-card .kpi-label { font-size:.51rem; letter-spacing:.1em; white-space:nowrap }
  .el-kpi-card .kpi-value { font-size:1.02rem; margin-bottom:6px }
  .el-kpi-card .kpi-sub { display:block; min-height:2.8em; font-size:.56rem; line-height:1.4 }
  .el-kpi-trend { top:13px; right:10px; max-width:72px; min-height:20px; padding:2px 6px; font-size:.51rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
  .el-dashboard-grid { gap:11px; margin-bottom:11px }
  .el-panel-head { min-height:62px; padding:13px 14px; align-items:flex-start }
  .el-panel-head h2, .el-panel-head h3 { font-size:.8rem }
  .el-panel-head p { font-size:.61rem }
  .el-panel-actions { gap:8px }
  .el-chart-legend { width:100%; gap:9px }
  .el-cashflow-panel .el-panel-head { flex-direction:column; gap:10px }
  .el-cashflow-panel .el-panel-actions { width:100%; justify-content:space-between }
  .el-text-button { min-width:84px; min-height:44px }
  .el-chart-wrap { height:252px; padding:12px 8px 10px }
  .el-panel-state { min-height:220px; padding:12px }
  .el-panel-message { min-height:160px; padding:20px 12px; flex-wrap:wrap; text-align:center }
  .el-panel-error .el-retry-button { width:100%; min-height:44px; margin:4px 0 0 }
  .el-data-table { padding:0 10px 12px }
  .el-data-table table { min-width:0 }
  .el-data-table th, .el-data-table td { padding:8px 6px; font-size:.58rem }
  .el-summary-list, .el-project-list, .el-priority-list { min-height:0 }
  .el-company-row { min-height:64px; padding:10px 12px; grid-template-columns:32px minmax(0,1fr) }
  .el-company-copy span { white-space:normal; line-height:1.35 }
  .el-company-row .el-row-value { grid-column:2; text-align:left; margin-top:2px }
  .el-project-list { padding:10px 12px 12px }
  .el-project-row { min-height:72px; grid-template-columns:minmax(78px,104px) minmax(0,1fr); gap:8px 10px }
  .el-project-row .el-row-value { grid-column:2; text-align:left }
  .el-priority-row { min-height:68px; padding:10px 12px; grid-template-columns:34px minmax(0,1fr) }
  .el-priority-date { grid-column:2; margin-top:1px }
  .el-priority-copy small { white-space:normal; line-height:1.35 }
  .el-operational-section { margin-top:22px }
  .el-section-heading { margin-bottom:10px }
  .el-notes-grid { grid-template-columns:minmax(0,1fr); min-height:0; padding:11px 12px }
  .el-note-add { min-width:44px; min-height:44px }
  .el-notes-grid .nota-actions .btn { width:44px; height:44px; min-width:44px; min-height:44px }
  .el-note-fields { grid-template-columns:minmax(0,1fr) }
  .el-note-fields input, .el-note-fields select { min-height:44px; font-size:16px }
  .el-note-actions .btn { min-height:44px; flex:1 }
}

@media (max-width:350px) {
  .el-kpi-card { padding-left:10px; padding-right:9px }
  .el-kpi-card .kpi-value { font-size:.92rem }
  .el-kpi-card .kpi-label { font-size:.46rem }
  .el-kpi-trend { max-width:60px }
}

@media (pointer:coarse) {
  #page-dashboard .el-dashboard-filters select,
  #page-dashboard .el-note-fields input,
  #page-dashboard .el-note-fields select { min-height:44px; font-size:16px }
  #page-dashboard .el-text-button,
  #page-dashboard .el-retry-button,
  #page-dashboard .el-note-add,
  #page-dashboard .el-note-actions .btn { min-width:44px; min-height:44px }
  #page-dashboard .el-notes-grid .nota-actions .btn {
    width:44px; height:44px; min-width:44px; min-height:44px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .el-kpi-card, .el-priority-row, .el-text-button, .el-retry-button { transition:none }
  .el-skeleton, .el-skeleton-list { animation:none }
  #page-dashboard .btn,
  #page-dashboard input,
  #page-dashboard select,
  #page-dashboard .nota-card { transition:none }
  #page-dashboard .btn:hover,
  #page-dashboard .nota-card:hover { transform:none }
}

/* ============================================================
   ENTRATE — elenco operativo responsive
   ============================================================ */
#page-entrate { --ent-focus:var(--acc-glow); }
#page-entrate .ent-heading { margin-bottom:16px; }
#page-entrate .ent-heading .page-title { margin:0; }
#page-entrate .ent-new-button { min-height:40px; padding-inline:18px; }

.ent-page-toolbar {
  display:grid;
  grid-template-columns:92px 92px minmax(132px,.72fr) minmax(120px,.64fr) minmax(190px,1fr) auto;
  gap:10px; align-items:end; margin-bottom:12px; padding:12px;
  background:var(--bg-card); border:1px solid var(--border); border-radius:12px;
  box-shadow:var(--shadow-xs);
}
.ent-filter-control { display:flex; flex-direction:column; gap:5px; min-width:0; }
.ent-filter-control > span:first-child {
  padding-left:2px; color:var(--text-light); font-size:.61rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em;
}
.ent-filter-control select {
  width:100%; min-width:0; height:42px; padding:0 34px 0 11px;
  color:var(--text); background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:9px; outline:0; cursor:pointer; font:600 .78rem var(--font);
}
.ent-filter-control select:hover { border-color:var(--border-dark); }
.ent-filter-control select:focus { border-color:var(--acc); box-shadow:0 0 0 3px var(--ent-focus); }
.ent-search-control {
  display:flex; align-items:center; gap:9px; min-width:0; height:42px; padding:0 11px;
  color:var(--text-muted); background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:9px; transition:border-color .15s, box-shadow .15s, background .15s;
}
.ent-search-control:focus-within {
  color:var(--acc); border-color:var(--acc); background:var(--bg-card);
  box-shadow:0 0 0 3px var(--ent-focus);
}
.ent-search-control input {
  width:100%; min-width:0; height:40px; padding:0; border:0; outline:0;
  color:var(--text); background:transparent; font:500 .82rem var(--font);
}
.ent-search-control input::placeholder { color:var(--text-light); }
.ent-reset-button { min-height:42px; margin:0; }

.ent-summary-strip {
  display:flex; align-items:stretch; gap:8px; margin-bottom:12px;
}
.ent-summary-item {
  min-width:150px; padding:10px 12px; display:flex; flex-direction:column; gap:3px;
  background:var(--bg-card); border:1px solid var(--border); border-radius:10px;
  box-shadow:var(--shadow-xs);
}
.ent-summary-item > span {
  color:var(--text-light); font-size:.58rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}
.ent-summary-item > strong { color:var(--text); font-size:.86rem; font-weight:700; }
.ent-summary-item--total { min-width:190px; border-left:3px solid var(--acc); }
.ent-summary-item--total > strong { color:var(--acc-text); font:700 .94rem var(--mono); }

.ent-records-panel {
  overflow:hidden; background:var(--bg-card); border:1px solid var(--border);
  border-radius:14px; box-shadow:var(--shadow-sm);
}
.ent-records-heading { padding:14px 16px 12px; border-bottom:1px solid var(--border); }
.ent-records-heading h2 { margin:0; color:var(--text); font-size:.94rem; font-weight:700; letter-spacing:-.02em; }
.ent-records-heading p { margin:4px 0 0; color:var(--text-muted); font-size:.7rem; }
#page-entrate #entrate-list-wrap {
  max-width:100%; overflow-x:auto; overflow-y:hidden; border:0; border-radius:0; box-shadow:none;
}
.ent-records-table { width:100%; min-width:1180px; table-layout:fixed; }
.ent-records-table th {
  padding:10px 11px; background:var(--bg-table-h); color:var(--text-light);
  font-size:.59rem; letter-spacing:.08em; text-transform:uppercase;
}
.ent-records-table thead th:nth-child(1) { width:140px; }
.ent-records-table thead th:nth-child(2) { width:112px; text-align:right; }
.ent-records-table thead th:nth-child(3) { width:104px; }
.ent-records-table thead th:nth-child(4) { width:84px; }
.ent-records-table thead th:nth-child(5) { width:62px; }
.ent-records-table thead th:nth-child(6) { width:190px; }
.ent-records-table thead th:nth-child(7) { width:180px; }
.ent-records-table thead th:nth-child(8) { width:150px; }
.ent-records-table thead th:nth-child(9) { width:120px; }
.ent-records-table thead th:nth-child(10) { width:66px; }
.ent-records-table thead th:nth-child(11) { width:150px; }
.ent-records-table thead th:nth-child(12) { width:146px; text-align:center; }
.ent-records-table td,
.ent-records-table tbody th { padding:11px; color:var(--text-muted); vertical-align:middle; }
.ent-record-row { cursor:pointer; }
.ent-record-row:hover { background:var(--bg-card-hover); }
.ent-records-table th:last-child,
.ent-records-table td:last-child {
  position:sticky; right:0; z-index:2; background:var(--bg-card);
  box-shadow:-10px 0 14px -14px rgba(4,24,15,.48);
}
.ent-records-table th:last-child { z-index:3; background:var(--bg-table-h); }
.ent-record-row:hover td:last-child { background:var(--bg-card-hover); }
.ent-brand-cell {
  border-left:3px solid var(--acc); text-align:left;
  background:var(--acc-light);
  background:color-mix(in srgb, var(--acc-light) 42%, var(--bg-card));
}
.ent-brand {
  display:block; overflow:hidden; color:var(--text); font-size:.86rem; font-weight:750;
  letter-spacing:-.01em; text-overflow:ellipsis; white-space:nowrap;
}
.ent-amount { color:var(--text); font:700 .79rem var(--mono); white-space:nowrap; }
.ent-date, .ent-wait { font:600 .68rem var(--mono); white-space:nowrap; }
.ent-project-list { display:flex; flex-wrap:wrap; gap:5px; }
.ent-project-list > span {
  display:inline-flex; align-items:center; gap:5px; min-width:0; padding:4px 6px;
  color:var(--text-muted); background:var(--bg-elevated); border:1px solid var(--border); border-radius:6px;
  font:600 .61rem var(--mono); white-space:nowrap;
}
.ent-project-list small { color:var(--text-light); font:700 .52rem var(--font); text-transform:uppercase; letter-spacing:.05em; }
.ent-muted-value { color:var(--text-light); }
.ent-invoice-meta, .ent-payment-meta { display:flex; align-items:center; flex-wrap:wrap; gap:5px; min-width:0; }
.ent-invoice-number { max-width:100px; overflow:hidden; color:var(--text-muted); font:600 .61rem var(--mono); text-overflow:ellipsis; white-space:nowrap; }
.ent-payment-meta > span:last-child { max-width:110px; overflow:hidden; font-size:.65rem; text-overflow:ellipsis; white-space:nowrap; }
.ent-truncate { display:block; max-width:100%; overflow:hidden; font-size:.67rem; text-overflow:ellipsis; white-space:nowrap; }
.ent-row-actions { display:flex; justify-content:center; gap:6px; }
.ent-action-button {
  display:inline-grid; place-items:center; width:34px; height:34px; padding:0;
  color:var(--text-muted); background:var(--bg-card); border:1px solid var(--border); border-radius:8px;
  cursor:pointer; transition:color .15s, background .15s, border-color .15s, transform .15s;
}
.ent-action-button:hover { color:var(--acc); background:var(--acc-light); border-color:var(--acc-muted); transform:translateY(-1px); }
.ent-action-button:focus-visible { outline:none; box-shadow:0 0 0 3px var(--ent-focus); }
.ent-action-button--danger { color:var(--red-text); background:var(--red-bg); border-color:var(--red-border); }
.ent-action-button--danger:hover { color:var(--red-text); background:var(--red-bg); border-color:var(--red-text); }
.ent-empty-row td { padding:36px 16px !important; text-align:center; color:var(--text-muted); }

@media (max-width:700px) {
  #page-importa { padding-bottom:96px; }
  #page-entrate .ent-heading .topbar-right { width:100%; }
  #page-entrate .ent-new-button { width:100%; min-height:44px; justify-content:center; }
  .ent-page-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); padding:10px; }
  .ent-filter-control--company, .ent-filter-control--search { grid-column:1 / -1; }
  .ent-filter-control select, .ent-search-control { min-height:44px; }
  .ent-search-control input { min-height:42px; font-size:16px; }
  .ent-reset-button { min-height:44px; grid-column:1 / -1; justify-content:center; }
  .ent-summary-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ent-summary-item, .ent-summary-item--total { min-width:0; padding:9px 10px; }
  .ent-summary-item > strong { font-size:.78rem; }
  .ent-summary-item--total > strong { font-size:.8rem; }
  .ent-records-heading { padding:13px 12px 11px; }
  #page-entrate #entrate-list-wrap { overflow:visible; background:var(--bg-elevated); }
  .ent-records-table { display:block; min-width:0; width:100%; }
  .ent-records-table thead { display:none; }
  .ent-records-table tbody { display:grid; gap:10px; padding:10px; }
  .ent-records-table tbody tr {
    display:block; overflow:hidden; width:100%; border:1px solid var(--border); border-radius:11px;
    background:var(--bg-card); box-shadow:var(--shadow-xs);
  }
  .ent-records-table tbody tr:hover { background:var(--bg-card); }
  .ent-records-table td {
    display:grid; grid-template-columns:76px minmax(0,1fr); align-items:center; gap:9px;
    min-height:42px; padding:8px 10px; border-bottom:1px solid var(--border);
    white-space:normal; text-align:left;
  }
  .ent-records-table tbody th.ent-brand-cell {
    display:grid; grid-template-columns:76px minmax(0,1fr); align-items:center; gap:9px;
    min-height:54px; padding:10px; border-bottom:1px solid var(--acc-muted);
    color:var(--text); text-align:left;
  }
  .ent-records-table tbody th.ent-brand-cell::before {
    content:attr(data-label); color:var(--acc-text); font-size:.56rem; font-weight:800;
    text-transform:uppercase; letter-spacing:.08em;
  }
  .ent-records-table tbody th.ent-brand-cell .ent-brand { font-size:.92rem; }
  .ent-records-table td:last-child { border-bottom:0; }
  .ent-records-table th:last-child,
  .ent-records-table td:last-child { position:static; box-shadow:none; }
  .ent-records-table td::before {
    content:attr(data-label); color:var(--text-light); font-size:.56rem; font-weight:700;
    text-transform:uppercase; letter-spacing:.08em;
  }
  .ent-records-table .td-num { text-align:left; }
  .ent-brand, .ent-truncate { white-space:normal; overflow-wrap:anywhere; }
  .ent-project-list { min-width:0; }
  .ent-invoice-meta, .ent-payment-meta { min-width:0; }
  .ent-row-actions { justify-content:flex-start; flex-wrap:wrap; }
  .ent-action-button { width:44px; height:44px; }
  .ent-empty-row td { display:block; padding:30px 14px !important; }
  .ent-empty-row td::before { content:none; }
}

@media (prefers-reduced-motion:reduce) {
  .ent-search-control, .ent-action-button { transition:none; }
}

/* ============================================================
   USCITE — elenco operativo responsive
   ============================================================ */
#page-uscite { --usc-focus:var(--acc-glow); }
#page-uscite .usc-heading { margin-bottom:16px; }
#page-uscite .usc-heading .page-title { margin:0; }
#page-uscite .usc-new-button { min-height:40px; padding-inline:18px; }

.usc-page-toolbar {
  display:grid;
  grid-template-columns:92px 92px minmax(132px,190px) minmax(120px,170px) auto;
  gap:10px; align-items:end; margin-bottom:12px; padding:12px;
  background:var(--bg-card); border:1px solid var(--border); border-radius:12px;
  box-shadow:var(--shadow-xs);
}
.usc-filter-control { display:flex; flex-direction:column; gap:5px; min-width:0; }
.usc-filter-control > span:first-child {
  padding-left:2px; color:var(--text-light); font-size:.61rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em;
}
.usc-filter-control select {
  width:100%; min-width:0; height:42px; padding:0 34px 0 11px;
  color:var(--text); background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:9px; outline:0; cursor:pointer; font:600 .78rem var(--font);
}
.usc-filter-control select:hover { border-color:var(--border-dark); }
.usc-filter-control select:focus { border-color:var(--acc); box-shadow:0 0 0 3px var(--usc-focus); }
.usc-reset-button { min-height:42px; margin:0; justify-self:start; }

.usc-summary-strip { display:flex; align-items:stretch; gap:8px; margin-bottom:12px; }
.usc-summary-item {
  min-width:150px; padding:10px 12px; display:flex; flex-direction:column; gap:3px;
  background:var(--bg-card); border:1px solid var(--border); border-radius:10px;
  box-shadow:var(--shadow-xs);
}
.usc-summary-item > span {
  color:var(--text-light); font-size:.58rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}
.usc-summary-item > strong { color:var(--text); font-size:.86rem; font-weight:700; }
.usc-summary-item--total { min-width:190px; border-left:3px solid var(--red); }
.usc-summary-item--total > strong { color:var(--red-text); font:700 .94rem var(--mono); }

.usc-records-panel {
  overflow:hidden; background:var(--bg-card); border:1px solid var(--border);
  border-radius:14px; box-shadow:var(--shadow-sm);
}
.usc-records-heading {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 16px 12px; border-bottom:1px solid var(--border);
}
.usc-records-heading h2 { margin:0; color:var(--text); font-size:.94rem; font-weight:700; letter-spacing:-.02em; }
.usc-records-heading p { margin:4px 0 0; color:var(--text-muted); font-size:.7rem; }
.usc-view-toggle { flex-shrink:0; }
.usc-view-toggle .vista-btn { display:inline-flex; align-items:center; gap:6px; min-height:36px; }
.usc-view-toggle .vista-btn:focus-visible { outline:none; box-shadow:inset 0 0 0 2px var(--acc), 0 0 0 2px var(--usc-focus); }

#page-uscite #uscite-list-wrap,
#page-uscite #uscite-group-list-wrap {
  max-width:100%; overflow-x:auto; overflow-y:hidden; border:0; border-radius:0; box-shadow:none;
}
.usc-records-table { width:100%; min-width:1280px; table-layout:fixed; }
.usc-records-table th,
.usc-group-table th {
  padding:10px 11px; background:var(--bg-table-h); color:var(--text-light);
  font-size:.59rem; letter-spacing:.08em; text-transform:uppercase;
}
.usc-records-table thead th:nth-child(1) { width:170px; }
.usc-records-table thead th:nth-child(2) { width:112px; text-align:right; }
.usc-records-table thead th:nth-child(3) { width:104px; }
.usc-records-table thead th:nth-child(4) { width:84px; }
.usc-records-table thead th:nth-child(5) { width:62px; }
.usc-records-table thead th:nth-child(6) { width:150px; }
.usc-records-table thead th:nth-child(7) { width:110px; }
.usc-records-table thead th:nth-child(8) { width:94px; }
.usc-records-table thead th:nth-child(9) { width:120px; }
.usc-records-table thead th:nth-child(10) { width:110px; }
.usc-records-table thead th:nth-child(11) { width:68px; }
.usc-records-table thead th:nth-child(12) { width:150px; }
.usc-records-table thead th:nth-child(13) { width:58px; }
.usc-records-table thead th:nth-child(14) { width:146px; text-align:center; }
.usc-records-table td,
.usc-records-table tbody th,
.usc-group-table td,
.usc-group-table tbody th { padding:11px; color:var(--text-muted); vertical-align:middle; }
.usc-record-row,
.usc-group-row { cursor:pointer; }
.usc-record-row:hover,
.usc-group-row:hover { background:var(--bg-card-hover); }
.usc-records-table th:last-child,
.usc-records-table td:last-child {
  position:sticky; right:0; z-index:2; background:var(--bg-card);
  box-shadow:-10px 0 14px -14px rgba(4,24,15,.48);
}
.usc-records-table th:last-child { z-index:3; background:var(--bg-table-h); }
.usc-record-row:hover td:last-child { background:var(--bg-card-hover); }
.usc-beneficiary-cell {
  border-left:3px solid var(--red); text-align:left;
  background:var(--red-bg);
  background:color-mix(in srgb, var(--red-bg) 46%, var(--bg-card));
}
.usc-beneficiary {
  display:block; overflow:hidden; color:var(--text); font-size:.86rem; font-weight:750;
  letter-spacing:-.01em; text-overflow:ellipsis; white-space:nowrap;
}
.usc-amount { color:var(--red-text); font:700 .79rem var(--mono); white-space:nowrap; }
.usc-date, .usc-wait, .usc-reference { font:600 .68rem var(--mono); white-space:nowrap; }
.usc-reference { color:var(--text-light); }
.usc-project {
  display:inline-flex; align-items:center; gap:6px; max-width:100%; overflow:hidden;
  color:var(--text-muted); font-size:.7rem; font-weight:650; text-overflow:ellipsis; white-space:nowrap;
}
.usc-project::before { width:7px; height:7px; flex:0 0 auto; border-radius:50%; background:var(--usc-project-color); content:""; }
.usc-truncate { display:block; max-width:100%; overflow:hidden; font-size:.67rem; text-overflow:ellipsis; white-space:nowrap; }
.usc-row-actions { display:flex; justify-content:center; gap:6px; }
.usc-action-button,
.usc-expand-button {
  display:inline-grid; place-items:center; width:34px; height:34px; padding:0;
  color:var(--text-muted); background:var(--bg-card); border:1px solid var(--border); border-radius:8px;
  cursor:pointer; transition:color .15s, background .15s, border-color .15s, transform .15s;
}
.usc-action-button:hover,
.usc-expand-button:hover { color:var(--acc); background:var(--acc-light); border-color:var(--acc-muted); transform:translateY(-1px); }
.usc-action-button:focus-visible,
.usc-expand-button:focus-visible { outline:none; box-shadow:0 0 0 3px var(--usc-focus); }
.usc-action-button--danger { color:var(--red-text); background:var(--red-bg); border-color:var(--red-border); }
.usc-action-button--danger:hover { color:var(--red-text); background:var(--red-bg); border-color:var(--red-text); }
.usc-empty-row td { padding:36px 16px !important; text-align:center; color:var(--text-muted); }

.usc-group-table { width:100%; min-width:850px; table-layout:fixed; }
.usc-group-table thead th:first-child { width:190px; }
.usc-group-table thead th:nth-child(2) { width:110px; }
.usc-group-table thead th:nth-child(3) { width:70px; }
.usc-group-table thead th:nth-child(4),
.usc-group-table thead th:nth-child(5),
.usc-group-table thead th:nth-child(6) { width:120px; text-align:right; }
.usc-group-table thead th:nth-child(7) { width:120px; }
.usc-group-table thead th:nth-child(8) { width:80px; text-align:center; }
.usc-group-action { text-align:center; }
.usc-group-row.is-open .usc-expand-button svg { transform:rotate(90deg); }
.usc-expand-button svg { transition:transform .15s; }
.usc-expand-button.is-loading { cursor:wait; opacity:.62; }

@media (max-width:700px) {
  #page-uscite .usc-heading .topbar-right { width:100%; }
  #page-uscite .usc-new-button { width:100%; min-height:44px; justify-content:center; }
  .usc-page-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); padding:10px; }
  .usc-filter-control--company { grid-column:1 / -1; }
  .usc-filter-control select { min-height:44px; font-size:16px; }
  .usc-reset-button { min-height:44px; grid-column:1 / -1; justify-self:stretch; justify-content:center; }
  .usc-summary-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .usc-summary-item, .usc-summary-item--total { min-width:0; padding:9px 10px; }
  .usc-summary-item > strong { font-size:.78rem; }
  .usc-summary-item--total > strong { font-size:.8rem; }
  .usc-records-heading { align-items:stretch; flex-direction:column; padding:13px 12px 11px; }
  .usc-view-toggle { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .usc-view-toggle .vista-btn { min-height:44px; justify-content:center; padding-inline:8px; }
  #page-uscite #uscite-list-wrap,
  #page-uscite #uscite-group-list-wrap { overflow:visible; background:var(--bg-elevated); }
  .usc-records-table,
  .usc-group-table { display:block; min-width:0; width:100%; }
  .usc-records-table thead,
  .usc-group-table thead { display:none; }
  .usc-records-table tbody,
  .usc-group-table tbody { display:grid; gap:10px; padding:10px; }
  .usc-records-table tbody tr.usc-record-row,
  .usc-group-table tbody tr.usc-group-row {
    display:block; overflow:hidden; width:100%; border:1px solid var(--border); border-radius:11px;
    background:var(--bg-card); box-shadow:var(--shadow-xs);
  }
  .usc-records-table tbody tr.usc-record-row:hover,
  .usc-group-table tbody tr.usc-group-row:hover { background:var(--bg-card); }
  .usc-records-table td,
  .usc-group-table .usc-group-row td {
    display:grid; grid-template-columns:76px minmax(0,1fr); align-items:center; gap:9px;
    min-height:42px; padding:8px 10px; border-bottom:1px solid var(--border);
    white-space:normal; text-align:left;
  }
  .usc-records-table tbody th.usc-beneficiary-cell,
  .usc-group-table tbody th.usc-beneficiary-cell {
    display:grid; grid-template-columns:76px minmax(0,1fr); align-items:center; gap:9px;
    min-height:54px; padding:10px; border-bottom:1px solid var(--red-border);
    color:var(--text); text-align:left;
  }
  .usc-records-table tbody th.usc-beneficiary-cell::before,
  .usc-group-table tbody th.usc-beneficiary-cell::before {
    content:attr(data-label); color:var(--red-text); font-size:.56rem; font-weight:800;
    text-transform:uppercase; letter-spacing:.08em;
  }
  .usc-records-table tbody th.usc-beneficiary-cell .usc-beneficiary,
  .usc-group-table tbody th.usc-beneficiary-cell .usc-beneficiary { font-size:.92rem; }
  .usc-records-table td:last-child,
  .usc-group-table .usc-group-row td:last-child { border-bottom:0; }
  .usc-records-table th:last-child,
  .usc-records-table td:last-child { position:static; box-shadow:none; }
  .usc-records-table td::before,
  .usc-group-table .usc-group-row td::before {
    content:attr(data-label); color:var(--text-light); font-size:.56rem; font-weight:700;
    text-transform:uppercase; letter-spacing:.08em;
  }
  .usc-records-table .td-num,
  .usc-group-table .td-num { text-align:left; }
  .usc-beneficiary, .usc-truncate, .usc-project { white-space:normal; overflow-wrap:anywhere; }
  .usc-row-actions { justify-content:flex-start; flex-wrap:wrap; }
  .usc-action-button,
  .usc-expand-button { width:44px; height:44px; }
  .usc-group-action { text-align:left; }
  .usc-group-detail-row { width:100%; }
  .usc-group-detail-row > td { display:block; width:100%; padding:0 !important; }
  .usc-group-detail-row > td::before { content:none !important; }
  .usc-empty-row td { display:block; padding:30px 14px !important; }
  .usc-empty-row td::before { content:none; }
}

@media (pointer:coarse) {
  #page-uscite .usc-new-button,
  #page-uscite .usc-reset-button,
  #page-uscite .usc-filter-control select,
  #page-uscite .usc-view-toggle .vista-btn {
    min-width:44px;
    min-height:44px;
  }
  #page-uscite .usc-filter-control select { font-size:16px; }
  #page-uscite .usc-action-button,
  #page-uscite .usc-expand-button { width:44px; height:44px; }
}

@media (prefers-reduced-motion:reduce) {
  #page-uscite .usc-new-button,
  #page-uscite .usc-reset-button,
  #page-uscite .usc-filter-control select,
  #page-uscite .usc-view-toggle .vista-btn,
  #page-uscite .usc-action-button,
  #page-uscite .usc-expand-button,
  #page-uscite .operational-retry,
  #page-uscite .usc-expand-button svg { transition:none; }
  #page-uscite .usc-new-button:hover,
  #page-uscite .usc-action-button:hover,
  #page-uscite .usc-expand-button:hover { transform:none; }
}

/* ============================================================
   IMPORTA — flusso movimenti e riconciliazione fatture
   ============================================================ */
#page-importa { max-width:100%; overflow-x:hidden; }
.import-mode-tabs {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:16px;
  padding:5px; background:var(--bg-elevated); border:1px solid var(--border); border-radius:14px;
}
.import-mode-tab {
  min-height:64px; padding:10px 14px; display:flex; align-items:center; gap:11px; text-align:left;
  color:var(--text-muted); background:transparent; border:1px solid transparent; border-radius:10px;
  cursor:pointer; transition:color .18s,background .18s,border-color .18s,box-shadow .18s;
}
.import-mode-tab:hover { color:var(--text); background:var(--bg-card-hover); }
.import-mode-tab.is-active {
  color:var(--acc-text); background:var(--bg-card); border-color:var(--acc-muted); box-shadow:var(--shadow-xs);
}
.import-mode-tab svg { flex:0 0 auto; }
.import-mode-tab span { min-width:0; display:flex; flex-direction:column; gap:3px; }
.import-mode-tab strong { color:inherit; font-size:.82rem; }
.import-mode-tab small { color:var(--text-muted); font-size:.65rem; }
.import-mode-tab:focus-visible { outline:none; box-shadow:0 0 0 3px var(--acc-glow); }
.import-mode-panel[hidden] { display:none !important; }
#page-importa :is(button, [role="button"]) { min-width:44px; min-height:44px; }
#page-importa :is(button, [role="button"]):focus-visible {
  outline:2px solid var(--acc); outline-offset:2px; box-shadow:0 0 0 4px var(--acc-glow);
}

.import-draft-library {
  margin:0 0 16px; padding:16px; background:var(--bg-card); border:1px solid var(--border);
  border-radius:14px; box-shadow:var(--shadow-xs);
}
.import-draft-library__head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.import-draft-library__head > div { min-width:0; }
.import-draft-library h2 { margin:0; color:var(--text); font-size:.92rem; }
.import-draft-library p { margin:5px 0 0; color:var(--text-muted); font-size:.72rem; line-height:1.5; }
.import-draft-status { min-height:1.1rem; overflow-wrap:anywhere; }
.import-draft-list { margin-top:12px; display:grid; gap:8px; }
.import-draft-card {
  padding:12px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px;
  background:var(--bg-elevated); border:1px solid var(--border); border-radius:10px;
}
.import-draft-card__copy { min-width:0; display:flex; flex-direction:column; gap:3px; overflow-wrap:anywhere; }
.import-draft-card__copy strong { color:var(--text); font-size:.78rem; }
.import-draft-card__copy span,.import-draft-card__copy small { color:var(--text-muted); font-size:.68rem; }
.import-draft-card__actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.import-draft-empty { margin:0 !important; padding:14px; text-align:center; background:var(--bg-elevated); border-radius:10px; }
.import-preview-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:12px; }
.import-draft-save-copy { min-width:min(100%,260px); margin-right:auto; display:flex; flex-direction:column; gap:3px; color:var(--text-muted); font-size:.7rem; }

.import-stepper {
  margin:0 0 16px; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  list-style:none; background:var(--bg-card); border:1px solid var(--border); border-radius:12px;
}
.import-stepper li {
  position:relative; min-height:56px; padding:8px 10px; display:flex; align-items:center; justify-content:center; gap:8px;
  color:var(--text-muted); font-size:.7rem;
}
.import-stepper li:not(:last-child)::after {
  position:absolute; top:50%; right:-1px; width:1px; height:24px; background:var(--border); transform:translateY(-50%); content:"";
}
.import-stepper li span {
  width:25px; height:25px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%;
  color:var(--text-muted); background:var(--bg-elevated); border:1px solid var(--border); font:700 .66rem var(--mono);
}
.import-stepper li.is-complete { color:var(--text-muted); }
.import-stepper li.is-complete span { color:var(--acc-text); background:var(--acc-light); border-color:var(--acc-muted); }
.import-stepper li.is-active { color:var(--acc-text); }
.import-stepper li.is-active span { color:var(--bg-card); background:var(--acc); border-color:var(--acc); }

.import-card { margin-bottom:16px; padding:18px; }
.import-section-heading { margin-bottom:16px; display:flex; flex-direction:column; gap:4px; }
.import-section-heading strong { color:var(--text); font-size:.92rem; }
.import-section-heading span { color:var(--text-muted); font-size:.72rem; }
.import-dropzone {
  margin-bottom:18px; padding:34px 22px; text-align:center; cursor:pointer; background:var(--bg-elevated);
  border:2px dashed var(--border-dark); border-radius:12px; transition:background .18s,border-color .18s,box-shadow .18s;
}
.import-dropzone:hover,.import-dropzone.dragover { background:var(--acc-light); border-color:var(--acc); }
.import-dropzone:focus-visible { outline:none; border-color:var(--acc); box-shadow:0 0 0 3px var(--acc-glow); }
.import-config-grid { margin:16px 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.import-config-grid .form-label { display:block; }
.import-config-grid select,.fatcsv-file-control { min-height:44px; }
.fatcsv-file-control {
  padding:8px 11px; display:flex; align-items:center; gap:8px; color:var(--text-muted); background:var(--bg-input);
  border:1px solid var(--border); border-radius:8px; cursor:pointer;
}
.fatcsv-file-control:hover { border-color:var(--border-dark); }
.fatcsv-file-control:focus-within { border-color:var(--acc); box-shadow:0 0 0 3px var(--acc-glow); }
.import-table-wrap { max-width:100%; overflow-x:auto; border:1px solid var(--border); border-radius:10px; }
.import-review-table { width:100%; min-width:1380px; border-collapse:collapse; font-size:.76rem; }
.import-review-table thead { background:var(--bg-table-h); }
.import-review-table tbody tr { border-bottom:1px solid var(--border); }
.import-review-table tbody tr:last-child { border-bottom:0; }
.import-review-table tbody tr[hidden] { display:none !important; }
.import-review-table tbody tr.is-selected { background:color-mix(in srgb,var(--acc-light) 58%,transparent); box-shadow:inset 3px 0 0 var(--acc); }
.import-review-table select { min-height:36px; color:var(--text); background:var(--bg-input); }
.import-review-table input[type="checkbox"] {
  width:18px; height:18px; padding:0; margin:0; border-radius:4px;
  -webkit-appearance:auto !important; appearance:auto !important; accent-color:var(--acc); cursor:pointer;
}
.import-checkbox-target { display:inline-grid; place-items:center; line-height:1; cursor:pointer; }
.import-checkbox-master-copy { display:none; }
.import-review-table input[type="checkbox"]:focus-visible { outline:2px solid var(--acc); outline-offset:2px; box-shadow:none; }
.import-review-table input[type="checkbox"]:disabled { cursor:not-allowed; opacity:.45; }
.import-invoice-select { min-width:130px; }
.import-review-filters { margin:0 0 14px; display:flex; flex-wrap:wrap; gap:7px; }
.import-review-filters button {
  min-height:34px; padding:6px 10px; color:var(--text-muted); background:var(--bg-elevated);
  border:1px solid var(--border); border-radius:999px; font:650 .7rem var(--font); cursor:pointer;
}
.import-review-filters button:hover,.import-review-filters button.is-active { color:var(--acc-text); background:var(--acc-light); border-color:var(--acc-muted); }
.import-review-filters button span { margin-left:3px; font-family:var(--mono); }
.import-decision-panel {
  margin:0 0 14px; padding:14px; background:var(--acc-light); border:1px solid var(--acc-muted);
  border-radius:12px; box-shadow:var(--shadow-xs);
}
.import-decision-panel[hidden] { display:none !important; }
.import-decision-head,.import-decision-main,.import-decision-actions { display:flex; align-items:center; gap:10px; }
.import-decision-head { justify-content:space-between; margin-bottom:10px; }
.import-decision-head > span { color:var(--acc-text); font-size:.7rem; font-weight:750; text-transform:uppercase; letter-spacing:.07em; }
.import-decision-main { justify-content:space-between; }
.import-decision-main > div { min-width:0; display:flex; flex-direction:column; gap:3px; }
.import-decision-main strong { color:var(--text); }
.import-decision-main span { color:var(--text-muted); font-size:.72rem; }
.import-decision-main > strong { flex:0 0 auto; color:var(--acc-text); font:700 .88rem var(--mono); }
.import-decision-panel p { margin:9px 0 12px; color:var(--text-muted); font-size:.72rem; line-height:1.45; }
.import-decision-actions { justify-content:flex-end; flex-wrap:wrap; }
.import-method-badge { display:inline-flex; align-items:flex-start; flex-direction:column; gap:1px; color:var(--text); font-weight:700; }
.import-method-badge small { color:var(--text-light); font-size:.57rem; font-weight:500; }
.import-amount { display:table-cell; }
.import-amount > span,.import-amount > small { display:block; }
.import-amount > small { margin-top:2px; color:var(--text-muted); font:500 .62rem var(--mono); }
.import-match-badge { margin-left:5px; padding:2px 5px; border-radius:999px; font-size:.55rem; font-weight:700; white-space:nowrap; }
.import-match-badge.exact { color:var(--green-text); background:var(--green-bg); border:1px solid var(--green-border); }
.import-match-badge.suggested { color:var(--amber-text); background:var(--amber-bg); border:1px solid var(--amber-border); }
.import-processing {
  min-height:220px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center;
}
.import-processing .spinner { width:28px; height:28px; }
.import-processing strong { color:var(--text); font-size:.96rem; }
.import-processing span { color:var(--text-muted); font-size:.76rem; }
.import-invoices-panel {
  padding:18px; background:var(--bg-card); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow-xs);
}
.invoicehome-probe__heading { margin-bottom:12px; display:flex; align-items:center; gap:10px; }
.invoicehome-probe { min-width:0; }
.invoicehome-probe__notice {
  margin:0 0 16px; padding:11px 12px; color:var(--text-muted); background:var(--bg-elevated);
  border:1px solid var(--border); border-radius:10px; font-size:.74rem; line-height:1.5; overflow-wrap:anywhere;
}
.invoicehome-probe__status { min-height:1.2rem; margin:10px 0 0; color:var(--text-muted); font-size:.72rem; line-height:1.45; overflow-wrap:anywhere; }
#fatcsv-panel-preview[hidden],#fatcsv-panel-result[hidden] { display:none !important; }
.fatcsv-match { min-width:190px; display:flex; flex-direction:column; align-items:flex-start; gap:5px; }
.fatcsv-match-copy { color:var(--text-muted); font-size:.68rem; line-height:1.35; }
.fatcsv-match-actions { display:flex; flex-wrap:wrap; gap:5px; }
.fatcsv-match-actions button { min-height:34px; padding:5px 8px; font-size:.66rem; }

@media (max-width:700px) {
  .import-mode-tabs { grid-template-columns:1fr; }
  .import-mode-tab { min-height:60px; }
  .import-stepper li { min-height:52px; padding:6px 3px; flex-direction:column; gap:4px; font-size:.57rem; }
  .import-stepper li span { width:23px; height:23px; }
  .import-card,.import-invoices-panel { padding:12px; }
  .import-dropzone { padding:26px 12px; }
  .import-config-grid { grid-template-columns:1fr; gap:10px; }
  .import-config-grid select { width:100%; min-height:44px; font-size:16px; }
  #importa-parse-btn,#fatcsv-preview-btn { width:100%; min-height:44px; justify-content:center; }
  #importa-step2 > div:last-child { align-items:stretch !important; flex-direction:column-reverse; }
  #importa-step2 > div:last-child .btn { width:100%; min-height:44px; justify-content:center; }
  .import-table-wrap { overflow:visible; border:0; }
  .import-review-table { display:block; min-width:0; width:100%; }
  .import-review-table thead { display:block; margin-bottom:8px; background:transparent; }
  .import-review-table thead tr { display:block; }
  .import-review-table thead th { display:none; }
  .import-review-table thead .import-checkbox-heading { display:block; width:100% !important; padding:0 !important; }
  .import-checkbox-target { min-width:44px; min-height:44px; }
  .import-checkbox-target--master {
    width:100%; padding:0 12px; display:flex; justify-content:flex-start; gap:10px;
    color:var(--text); background:var(--bg-card); border:1px solid var(--border); border-radius:10px;
  }
  .import-checkbox-master-copy { display:inline; font-size:.72rem; font-weight:650; }
  .import-review-table tbody { display:grid; gap:10px; }
  .import-review-table tbody tr { display:block; overflow:hidden; border:1px solid var(--border); border-radius:10px; background:var(--bg-card); }
  .import-review-table td {
    min-height:42px; padding:8px 10px !important; display:grid; grid-template-columns:82px minmax(0,1fr); align-items:center;
    gap:8px; border-bottom:1px solid var(--border); white-space:normal !important; text-align:left !important;
  }
  .import-review-table td:last-child { border-bottom:0; }
  .import-review-table td::before {
    color:var(--text-light); content:attr(data-label); font-size:.56rem; font-weight:750; letter-spacing:.07em; text-transform:uppercase;
  }
  .import-review-table select { width:100%; min-height:44px; max-width:none !important; font-size:16px !important; }
  .import-review-table input[type="checkbox"] { width:22px; height:22px; }
  .import-review-filters { flex-wrap:nowrap; overflow-x:auto; padding-bottom:3px; }
  .import-review-filters button { flex:0 0 auto; min-height:40px; }
  .import-decision-main { align-items:flex-start; flex-direction:column; }
  .import-decision-actions { display:grid; grid-template-columns:1fr 1fr; }
  .import-decision-actions .btn { min-height:44px; justify-content:center; }
  .import-decision-actions .btn:last-child { grid-column:1 / -1; }
  .import-amount { display:grid !important; }
  .fatcsv-match { min-width:0; }
  .fatcsv-match-actions button { min-height:44px; }
}

@media (max-width:640px) {
  .import-draft-library { padding:12px; }
  .import-draft-library__head,.import-preview-actions { align-items:stretch; flex-direction:column; }
  .import-draft-library__head .btn,.import-preview-actions .btn { width:100%; justify-content:center; }
  .import-draft-card { grid-template-columns:1fr; }
  .import-draft-card__actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .import-draft-card__actions .btn { width:100%; justify-content:center; }
  .fatcsv-file-control { width:100%; overflow-wrap:anywhere; }
}

@media (prefers-reduced-motion:reduce) {
  .import-mode-tab,.import-dropzone,.import-draft-card,.invoicehome-probe { transition:none; animation:none; }
}

/* ══════════════════════════════════════════════════════════════
   TASK 5 — Personale, Famiglia, Intelligenza Finanziaria
   Responsive Emerald scoped to the three affected pages.
   ══════════════════════════════════════════════════════════════ */
#page-personale .pers-tabs { display:flex; gap:4px; border-bottom:1px solid var(--border); margin-bottom:14px; }
#page-personale .pers-list-filters { display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
#page-famiglia .sf-topbar-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#page-personale .pers-tabs .tab-btn:focus-visible,
#page-intel .in-tab:focus-visible { outline:none; box-shadow:0 0 0 3px var(--acc-glow); }
#page-personale .pers-row > * { min-width:0; }
#page-personale .pers-row span { overflow-wrap:anywhere; }
#page-intel .in-tab { min-width:0; }
#page-intel .table-wrap { max-width:100%; }
#page-intel .rec-card { min-width:0; }
#page-intel .rec-card > * { min-width:0; }
#page-intel .intel-error { padding:10px 12px; color:var(--red-text); background:var(--red-bg); border:1px solid var(--red-border); border-radius:var(--radius-sm); font-size:.78rem; }

#modal-spesa-pers :is(button, input, select),
#modal-entrata-pers :is(button, input, select),
#sf-modal :is(button, input, select) { min-height:44px; }
#modal-spesa-pers button,
#modal-entrata-pers button,
#sf-modal button { min-width:44px; }

@media (max-width:1000px) {
  #page-famiglia .sf-main-grid { grid-template-columns:minmax(0,1fr) !important; }
  #page-famiglia .sf-main-grid > aside,
  #page-famiglia .sf-main-grid > div:last-child { position:static !important; }
}

@media (max-width:700px), (pointer:coarse) and (max-width:1024px) {
  #page-personale .topbar,
  #page-famiglia .topbar { flex-direction:column; align-items:stretch; }
  #page-personale .topbar-right,
  #page-famiglia .sf-topbar-actions { width:100%; }
  #page-personale .topbar-right { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
  #page-famiglia .sf-topbar-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  #page-personale .topbar-right select,
  #page-personale .topbar-right button,
  #page-famiglia .topbar select,
  #page-famiglia .sf-topbar-actions button { width:100% !important; min-width:0; justify-content:center; }
  #page-personale .pers-list-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  #page-personale .pers-list-filters select { width:100%; min-width:0; }
  #page-personale .pers-row { align-items:flex-start; flex-wrap:wrap; padding:12px; }
  #page-personale .pers-row > div:nth-child(2) { flex:1 1 180px !important; }
  #page-personale .pers-row > div:nth-child(3) { margin-left:auto; }

  #page-famiglia .sf-filter-bar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:10px; }
  #page-famiglia .sf-filter-bar input,
  #page-famiglia .sf-filter-bar select,
  #page-famiglia .sf-filter-bar button { width:100% !important; min-width:0 !important; }
  #page-famiglia .sf-filter-bar #sf-q { grid-column:1 / -1; }
  #page-famiglia .sf-table-wrap { overflow:clip; }
  #page-famiglia .sf-table { display:block; width:100%; min-width:0; }
  #page-famiglia .sf-table thead {
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  #page-famiglia .sf-table tbody { display:grid; gap:10px; }
  #page-famiglia .sf-table tbody tr {
    display:block; overflow:hidden; border:1px solid var(--fam-border);
    border-radius:var(--radius-md); background:var(--bg-card);
  }
  #page-famiglia .sf-table tbody td {
    display:grid; grid-template-columns:82px minmax(0,1fr); align-items:center; gap:8px;
    min-height:42px; padding:8px 10px !important; white-space:normal !important;
    text-align:left !important; overflow-wrap:anywhere;
  }
  #page-famiglia .sf-table tbody td::before {
    content:attr(data-label); color:var(--text-light); font-size:.56rem; font-weight:750;
    letter-spacing:.07em; text-transform:uppercase;
  }
  #page-famiglia .sf-table tbody td:last-child { border-bottom:0; }
  #page-famiglia .sf-table tbody td[data-label="Azioni"] { display:flex; align-items:center; justify-content:space-between; }
  #page-famiglia .sf-table tfoot { display:block; }
  #page-famiglia .sf-table tfoot tr,
  #page-famiglia .sf-table tfoot td { display:block; }
  #page-famiglia .sf-table tfoot td:not(#sf-total-cell) { display:none; }
  #page-famiglia .sf-table tfoot #sf-total-cell { padding:10px !important; text-align:right !important; }

  #page-intel .in-tabs { flex-wrap:nowrap; overflow-x:auto; padding-bottom:3px; -webkit-overflow-scrolling:touch; }
  #page-intel .in-tab { flex:0 0 auto; }
  #page-intel .in-kpi-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  #page-intel .in-kpi { min-width:0; max-width:none; }
  #page-intel #cf-cards-row,
  #page-intel #intel-tab-valute > div:first-child,
  #page-intel #intel-tab-fatture > div:last-child { grid-template-columns:minmax(0,1fr) !important; }
  #page-intel .rec-card { align-items:flex-start; flex-wrap:wrap; }
  #page-intel .rec-card > div:last-child { width:100%; text-align:left !important; }
  #page-intel .rec-card > div:last-child > div:last-child { justify-content:flex-start !important; }
  #page-intel .fx-row { grid-template-columns:minmax(0,1fr) auto; gap:7px; }
  #page-intel .fx-row .fx-currency-mark { display:none; }
  #page-intel .fx-row .fx-rate,
  #page-intel .fx-row .fx-data { grid-column:1; }
  #page-intel .fx-row .btn-intel-outline { grid-column:2; grid-row:1 / span 3; align-self:center; }
}

@media (max-width:480px) {
  #page-personale .topbar-right { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #page-famiglia .sf-filter-bar { grid-template-columns:minmax(0,1fr); }
  #page-famiglia .sf-filter-bar #sf-q { grid-column:auto; }
}

@media (max-width:640px), (pointer:coarse) {
  #page-personale button,
  #page-personale select,
  #page-famiglia button,
  #page-famiglia select,
  #page-famiglia input,
  #page-intel button,
  #page-intel select,
  #page-intel input { min-height:44px; }
  #page-intel .fx-delete-btn { min-width:44px; min-height:44px; }
  #page-intel .fx-rates-header { align-items:flex-start !important; flex-direction:column; gap:8px; justify-content:flex-start !important; }
  #page-personale .pers-tabs .tab-btn,
  #page-intel .in-tab { display:inline-flex; align-items:center; justify-content:center; }
  #page-personale .pers-row-action,
  #page-famiglia .sf-row-action { min-width:44px; min-height:44px; }
}

@media (prefers-reduced-motion:reduce) {
  #fx-refresh-btn.is-refreshing #fx-refresh-icon { animation:none }
}

/* Stati operativi condivisi: loading, vuoto ed errore restano distinguibili. */
.operational-live-status {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.operational-state {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  min-height:52px;
  color:var(--text-muted);
  text-align:center;
}

.operational-state--error { color:var(--red-text, #b42318); }
.operational-state__icon { font-weight:800; }
.operational-retry { flex:0 0 auto; min-height:32px; }
.operational-table-cell { padding:24px 14px !important; }

.operational-section-status {
  margin:0 0 14px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--bg-card);
  color:var(--text-muted);
}

.operational-section-status[role="alert"] {
  border-color:var(--red-border, #e9a7a7);
  background:var(--red-bg, #fff1f1);
  color:var(--red-text, #b42318);
}

.operational-section-status[hidden] { display:none !important; }
.operational-section-status .operational-state { min-height:32px; }

#fat-kpi-area > .operational-state {
  min-height:108px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:var(--bg-card);
}

@media (max-width:640px), (pointer:coarse) {
  #page-entrate .operational-retry,
  #page-uscite .operational-retry,
  #page-fatture .operational-retry,
  #page-personale .operational-retry,
  #page-famiglia .operational-retry {
    min-width:44px;
    min-height:44px;
  }
}

/* P1 — testo operativo leggibile; le micro-etichette uppercase restano compatte. */
#page-fatture [data-auth-transient="invoice"] .fat-autocomplete__option,
#page-commissioni .comm-table,
#page-commissioni .comm-table td,
#page-fiscale .fiscale-cat-row,
#page-patrimonio .asset-metric-value,
#page-partecipazioni .anag-field-value,
#page-personale .btn,
#page-famiglia .sf-cat-bar-row,
#page-rubrica .rubrica-card-nome,
#page-importa .import-mode-tab,
#page-intel .in-tab {
  font-size:.875rem;
}

#page-commissioni .comm-table th {
  font-size:.625rem;
}

#page-commissioni .comm-save-status,
#page-fiscale .fiscale-cat-amt,
#page-patrimonio .empty-state,
#page-partecipazioni .anag-field-value.empty,
#page-personale .pers-category-pill,
#page-famiglia .sf-kpi-sub,
#page-rubrica .rubrica-mov-meta,
#page-importa .import-section-heading span,
#page-intel .fx-data {
  font-size:.8125rem;
}

@media (max-width:640px), (pointer:coarse) {
  .page :is(input, select, textarea) { font-size:16px; }
}

/* P1 — azioni operative: contratti touch senza ingrandire stati o badge. */
@media (max-width:640px), (pointer:coarse) {
  button.btn.btn-sm,
  button.btn.btn-xs,
  #page-patrimonio .asset-card-actions button,
  #page-commissioni :is(.comm-state-button, .comm-invoice-button, .comm-delete-button, .operational-retry),
  #page-fiscale .fiscale-soc-card [data-fiscale-action],
  #page-partecipazioni .part-company-actions button,
  #page-partecipazioni .part-payment-action,
  .filters :is(input, select),
  .topbar :is(input, select) {
    min-width:44px;
    min-height:44px;
  }

  .modal-close,
  #page-fatture .fat-action-button {
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
  }

  #page-fatture .fat-row-actions { gap:8px !important; }
  #page-patrimonio .asset-card-actions { gap:8px; }
  #page-fiscale .fiscale-spesa-actions { gap:8px; }
  #page-partecipazioni .part-company-actions { gap:8px !important; }
  #page-partecipazioni .part-payment-actions { gap:8px !important; }
  #page-settings .settings-row-action + .settings-row-action { margin-left:4px; }
}

@media (pointer:coarse) and (min-width:641px) {
  #page-partecipazioni .part-payment-actions {
    display:flex;
    align-items:center;
  }
}

@media (pointer:fine) and (min-width:641px) {
  /* La base Settings impone 44px a tutti i button; solo le row action tornano compatte su desktop fine. */
  #page-settings .settings-row-action {
    min-width:0;
    min-height:0;
  }
}

/* P1 — contratto tipografico operativo. Metadata uppercase e badge restano sulla scala compatta. */
#pin-sub,
#pin-msg,
.gt-avatar-text strong,
#ledger-main .page p,
#ledger-main .page .page-subtitle,
#ledger-main .page .profile-settings-help,
#ledger-main .page .profile-preview span:last-child,
#ledger-main .page .profile-status,
#ledger-main .page .kpi-sub,
#ledger-main .page .settings-bot-endpoints,
#ledger-main .page #networth-chart-description,
#ledger-main .page .el-panel-head p,
#ledger-main .page .el-section-heading p,
#ledger-main .page .el-panel-message p,
#ledger-main .page .rf-kpi-detail,
#ledger-main .page .rf-kpi-original,
#ledger-main .page .rf-chart-legend,
#ledger-main .page .rf-chart-state,
#ledger-main .page .rf-panel-state,
#ledger-main .page .rf-event-copy span,
#ledger-main .page .rf-event-original,
#ledger-main .page .rf-exclusion span,
#ledger-main .page .rf-exclusion small,
#ledger-main .page .rf-empty-copy,
#ledger-main .page .rf-history-comparison p,
#ledger-main .page .rf-history-fallback,
#ledger-main .page .ent-payment-meta > span:last-child,
#ledger-main .page .import-mode-tab small,
#ledger-main .page .import-draft-card__copy span,
#ledger-main .page .import-draft-card__copy small,
#ledger-main .page .import-draft-save-copy,
#ledger-main .page .import-processing span,
#ledger-main .page .invoicehome-probe__notice,
#ledger-main .page .invoicehome-probe__status,
#ledger-main .page .fatcsv-match-copy,
#ledger-main .page .in-kpi-sub,
#ledger-main .page .fx-data,
#ledger-main .page .sf-kpi-sub,
#ledger-main .page .fat-kpi-sub,
#ledger-main .page .chart-title,
#ledger-main .page .stat-tile-title,
#ledger-main .page .section-title,
#ledger-main .page .settings-index-heading,
#ledger-main .page .rf-history-comparison h3,
#ledger-main .page .rf-history-month h3,
#ledger-main .page .rf-history-quarter h3 {
  font-size:.8125rem !important;
}

#global-soc,
#ledger-main :is(input:not([type="hidden"]), select, textarea),
[data-auth-transient] :is(input:not([type="hidden"]), select, textarea),
#ledger-main table td,
[data-auth-transient] table td,
#ledger-main .page .soc-name,
#ledger-main .page .soc-item,
#ledger-main .page .alert-text,
#ledger-main .page .scadenza-date-block span,
#ledger-main .page .scadenza-date-block strong,
#ledger-main .page .fiscale-cat-row,
#ledger-main .page .anag-field-value:not(.empty),
#ledger-main .page .list-item,
#ledger-main .page .el-company-copy strong,
#ledger-main .page .el-project-meta strong,
#ledger-main .page .el-priority-copy strong,
#ledger-main .page .rf-event-copy strong,
#ledger-main .page .rf-exclusion strong,
#ledger-main .page .ent-truncate,
#ledger-main .page .usc-project,
#ledger-main .page .usc-truncate,
#ledger-main .page .import-draft-card__copy strong,
#ledger-main .page .sf-cat-bar-row {
  font-size:.875rem !important;
}

#ledger-main button,
[data-auth-transient] button {
  font-size:.8125rem !important;
}

#ledger-main .empty-state,
#ledger-main .settings-help,
#ledger-main #anag-stato-label,
#ledger-main #anag-firma-label ~ div:last-child,
#ledger-main #notif-status,
#ledger-main #importa-dropzone > div:nth-of-type(3),
#ledger-main #importa-decision-count,
#ledger-main #importa-decision-detail,
#ledger-main .invoicehome-probe__heading > div:last-child > div:last-child,
#ledger-main #page-intel section[role="tabpanel"] [style*="text-transform:uppercase"][style*="font-size:.75rem"],
#ledger-main #page-intel #rit-entr-list > div,
#ledger-main #page-intel #rit-usc-list > div,
#ledger-main #page-intel #rit-scad-list > div,
#ledger-main #page-intel #fa-isf-list > div,
#ledger-main #page-intel #fa-fni-list > div,
#ledger-main #page-intel #intel-tab-fatture [style*="font-size:.72rem"][style*="color:var(--text-muted)"],
#ledger-main #page-famiglia .sf-main-grid [style*="text-transform:uppercase"][style*="font-size:.78rem"],
#ledger-main #page-famiglia #sf-cat-bars > div,
#ledger-main #page-famiglia #sf-chi-bars > div,
#ledger-main #rubrica-panel-sub,
#ledger-main .kpi-value > span,
#ledger-main #sf-stale-state,
#ledger-main #fatcsv-result-errors,
#ledger-main #modal-part-versamento .emerald-inline-status,
#ledger-main #page-intel #rec-last-run,
#ledger-main #page-intel #ric-stats-bar,
#ledger-main #page-intel #fx-last-update,
[data-auth-transient="invoice"] p {
  font-size:.8125rem !important;
}

[data-auth-transient="search"] .search-item > div {
  font-size:.875rem !important;
}

[data-auth-transient="search"] .search-item > div:nth-child(2) {
  font-size:.8125rem !important;
}

/* Renderer dinamici: gli inline style legacy non possono ridurre dati e help operativi. */
#page-patrimonio .asset-card > .text-muted,
#page-patrimonio .asset-card > .asset-metrics ~ div:not([id^="movimenti-asset-"]),
#page-patrimonio [id^="movimenti-asset-"] .text-muted,
#page-patrimonio [data-patrimonio-movement-row] > :first-child,
#page-patrimonio [data-patrimonio-transfer-row] > :first-child,
#page-patrimonio [data-patrimonio-transfer-row] > :nth-child(6),
#page-fiscale .fiscale-soc-title > div:nth-child(2) > div:last-child,
#page-fiscale .fiscale-soc-header > div:last-child > span,
#page-fiscale [data-fiscale-field="category"],
#page-fiscale .fiscale-spesa-amount > span,
#page-importa .import-stepper li,
#page-importa .import-checkbox-master-copy,
#page-intel .rec-card > div:nth-child(2) > div:not(:first-child),
#page-intel .rec-card > div:last-child > div:nth-child(2),
#page-intel :is(.rit-crit, .rit-warn, .rit-ok) [style*="font-size:.7rem"],
#page-intel :is(.rit-crit, .rit-warn, .rit-ok) [style*="font-size:.68rem"],
#page-intel #cf-cards-row > div > div:nth-child(5),
#page-intel #cf-cards-row > div > div:nth-child(6),
#page-intel #cf-cards-row > div > div:nth-child(7),
#page-intel .emerald-inline-status,
#page-intel .fx-row > div:nth-child(2) > div:last-child,
#page-intel #fx-esposizione [style*="font-size:.72rem"],
#page-intel #fx-esposizione [style*="font-size:.7rem"],
#page-intel #fx-esposizione [style*="font-size:.78rem"],
#page-personale .pers-row .emerald-inline-status,
#page-partecipazioni .part-company-identity > div:last-child > div:last-child,
#page-famiglia .sf-table td > span:not(.sf-chip):not(.sf-badge) {
  font-size:.8125rem !important;
}

#page-patrimonio [data-patrimonio-movement-row] > :nth-child(3),
#page-patrimonio [data-patrimonio-movement-row] > :nth-child(4),
#page-patrimonio [data-patrimonio-transfer-row],
#page-intel .rit-warn,
#page-intel :is(.rit-crit, .rit-warn, .rit-ok) [style*="font-size:.82rem"],
#page-intel .rec-card > div:nth-child(2) > div:first-child,
#page-intel .fx-name,
#page-intel #fx-esposizione [style*="font-size:.82rem"],
#page-fiscale .fiscale-soc-header > div:last-child > span[style*="font-weight:700"] {
  font-size:.875rem !important;
}

@media (max-width:640px), (pointer:coarse) {
  #ledger-main :is(input:not([type="hidden"]), select, textarea),
  [data-auth-transient] :is(input:not([type="hidden"]), select, textarea) {
    font-size:16px !important;
  }
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('/static/fonts/plus-jakarta-sans-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

@font-face {
  font-family: 'Inter';
  src: url('/static/fonts/inter-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/static/fonts/ibm-plex-mono-latin-400.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/static/fonts/ibm-plex-mono-latin-500.woff2') format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/static/fonts/ibm-plex-mono-latin-600.woff2') format('woff2');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/static/fonts/ibm-plex-mono-latin-700.woff2') format('woff2');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

/* ======== IMMOBILI ======== */
#page-immobili { min-width:0; max-width:100%; }
#page-immobili .immobili-topbar { align-items:flex-start; gap:12px; }
#page-immobili .immobili-topbar-actions { display:flex; flex:0 0 auto; gap:8px; }
#page-immobili .immobili-readonly-note { margin:-10px 0 16px; color:var(--text-muted); font-size:.8125rem; line-height:1.45; }
#page-immobili .immobili-filter-form { margin:0 0 16px; padding:14px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--bg-card); }
#page-immobili .immobili-filter-group { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; padding:0; border:0; }
#page-immobili .immobili-filter-field { display:grid; gap:6px; min-width:0; color:var(--text-muted); font-size:.75rem; font-weight:700; }
#page-immobili .immobili-filter-select { min-width:0; min-height:38px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; color:var(--text); background:var(--bg-input); font:inherit; }
#page-immobili .immobili-kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:12px; margin-bottom:16px; }
#page-immobili .immobili-kpi-group { min-width:0; padding:14px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--bg-card); box-shadow:var(--shadow-xs); }
#page-immobili .immobili-kpi-currency { margin:0 0 10px; color:var(--acc-text); font:750 .8125rem var(--mono); letter-spacing:.04em; }
#page-immobili .immobili-kpi-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:baseline; padding:7px 0; border-top:1px solid var(--border); }
#page-immobili .immobili-kpi-label { min-width:0; color:var(--text-muted); font-size:.75rem; overflow-wrap:anywhere; }
#page-immobili .immobili-amount { color:var(--text); font:700 .8125rem var(--mono); font-variant-numeric:tabular-nums; white-space:nowrap; }
#page-immobili .immobili-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:14px; }
#page-immobili .immobili-card { display:flex; flex-direction:column; min-width:0; gap:10px; padding:16px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--bg-card); box-shadow:var(--shadow-xs); }
#page-immobili .immobili-card-header { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
#page-immobili .immobili-card-title { min-width:0; margin:0; color:var(--text); font-size:1rem; overflow-wrap:anywhere; }
#page-immobili .immobili-status-badge,#page-immobili .immobili-badge { display:inline-flex; align-items:center; min-height:24px; padding:3px 8px; border:1px solid var(--border); border-radius:999px; color:var(--text-muted); background:var(--bg-elevated); font-size:.7rem; font-weight:700; line-height:1.2; }
#page-immobili .immobili-status-badge { flex:0 0 auto; text-transform:capitalize; }
#page-immobili .immobili-badges { display:flex; flex-wrap:wrap; gap:6px; }
#page-immobili .immobili-card-line { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:baseline; }
#page-immobili .immobili-card-label { color:var(--text-muted); font-size:.75rem; }
#page-immobili .immobili-card-value { min-width:0; color:var(--text); font-size:.8125rem; font-weight:600; text-align:right; overflow-wrap:anywhere; }
#page-immobili .immobili-detail-open { align-self:flex-start; margin-top:auto; }
#page-immobili .immobili-partial-notice,#page-immobili .immobili-stale-notice { margin:0 0 12px; padding:10px 12px; border:1px solid var(--amber-border); border-radius:var(--radius-sm); color:var(--amber-text); background:var(--amber-bg); font-size:.8125rem; line-height:1.45; }
#page-immobili .immobili-stale-content { opacity:.86; }
#page-immobili .immobili-detail { display:grid; min-width:0; gap:14px; margin-top:18px; padding:16px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--bg-card); }
#page-immobili .immobili-detail-title { margin:0; color:var(--text); font-size:1.125rem; overflow-wrap:anywhere; }
#page-immobili .immobili-tabs { display:flex; gap:8px; max-width:100%; padding-bottom:4px; overflow-x:auto; border-bottom:1px solid var(--border); }
#page-immobili .immobili-tab { flex:0 0 auto; min-height:36px; padding:7px 10px; border:1px solid transparent; border-radius:8px; color:var(--text-muted); background:transparent; font:700 .75rem var(--font); cursor:pointer; }
#page-immobili .immobili-tab[aria-selected="true"] { color:var(--acc-text); border-color:var(--acc-muted); background:var(--acc-light); }
#page-immobili .immobili-detail-definition { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; margin:0; }
#page-immobili .immobili-detail-line { min-width:0; }
#page-immobili .immobili-detail-line dt { color:var(--text-muted); font-size:.75rem; }
#page-immobili .immobili-detail-line dd { min-width:0; margin:3px 0 0; color:var(--text); font-size:.875rem; overflow-wrap:anywhere; }
#page-immobili .immobili-detail-rows { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
#page-immobili .immobili-detail-rows li,#page-immobili .immobili-empty-detail { margin:0; padding:10px 12px; border:1px solid var(--border); border-radius:8px; color:var(--text); background:var(--bg-elevated); font-size:.8125rem; overflow-wrap:anywhere; }
#page-immobili .immobili-history-list { display:grid; gap:10px; margin:12px 0; padding:0; list-style:none; }
#page-immobili .immobili-history-row { min-width:0; padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--bg-elevated); overflow-wrap:anywhere; }
#page-immobili .immobili-history-row p { margin:0 0 6px; }
#page-immobili .immobili-history-detail { margin-top:8px; padding-top:8px; border-top:1px solid var(--border); }
#page-immobili .immobili-document-link { display:inline-flex; align-items:center; min-height:44px; overflow-wrap:anywhere; word-break:break-word; }
#page-immobili .immobili-detail-panel button { min-height:44px; }
#page-immobili .immobili-detail-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
#page-immobili .immobili-detail-panel > .immobili-detail-actions { margin:0 0 10px; }
#page-immobili .operational-state { display:flex; flex-wrap:wrap; align-items:center; gap:10px; min-height:112px; padding:16px; border:1px dashed var(--border); border-radius:var(--radius-md); color:var(--text-muted); background:var(--bg-card); }
#page-immobili .operational-state--error { border-style:solid; border-color:var(--red-border); color:var(--red-text); background:var(--red-bg); }
#page-immobili .operational-state__message { margin:0; flex:1 1 180px; line-height:1.45; }
#page-immobili :focus-visible { outline:2px solid var(--acc); outline-offset:2px; }
#page-immobili .btn:hover,#immobili-record-dialog .btn:hover { transform:none; }

#immobili-record-dialog { padding:16px; overflow:auto; }
#immobili-record-dialog .immobili-record-modal { width:min(760px,100%); max-width:100%; max-height:calc(100dvh - 32px); margin:auto; overflow:auto; background:var(--bg-card); color:var(--text); }
#immobili-record-dialog .immobili-record-form { display:grid; min-width:0; gap:16px; }
#immobili-record-dialog .immobili-record-header { display:flex; min-width:0; justify-content:space-between; gap:12px; }
#immobili-record-dialog .immobili-record-title { margin:0; color:var(--text); font-size:1.125rem; overflow-wrap:anywhere; }
#immobili-record-dialog .immobili-record-description { margin:5px 0 0; color:var(--text-muted); font-size:.8125rem; line-height:1.45; overflow-wrap:anywhere; }
#immobili-record-dialog .immobili-record-status { min-height:1.25rem; margin:0; color:var(--text-muted); font-size:.8125rem; line-height:1.45; overflow-wrap:anywhere; }
#immobili-record-dialog .immobili-record-status[role="alert"] { color:var(--red-text); }
#immobili-record-dialog .immobili-record-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; min-width:0; }
#immobili-record-dialog .immobili-record-field { display:grid; align-content:start; min-width:0; gap:6px; }
#immobili-record-dialog .immobili-record-field:has(textarea),#immobili-record-dialog .immobili-record-confirmation { grid-column:1/-1; }
#immobili-record-dialog .immobili-record-label { color:var(--text); font-size:.8125rem; font-weight:700; }
#immobili-record-dialog .immobili-record-control { width:100%; min-width:0; min-height:44px; padding:9px 10px; border:1px solid var(--border); border-radius:8px; color:var(--text); background:var(--bg-input); font:inherit; }
#immobili-record-dialog textarea.immobili-record-control { min-height:88px; resize:vertical; }
#immobili-record-dialog .immobili-record-control[aria-invalid="true"] { border-color:var(--red-border); }
#immobili-record-dialog .immobili-record-hint { color:var(--text-muted); font-size:.75rem; line-height:1.35; }
#immobili-record-dialog .immobili-record-error { color:var(--red-text); font-size:.75rem; line-height:1.35; }
#immobili-record-dialog .immobili-record-confirmation { margin:0; padding:12px; border:1px solid var(--amber-border); border-radius:8px; color:var(--amber-text); background:var(--amber-bg); line-height:1.45; }
#immobili-record-dialog .immobili-record-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
#immobili-record-dialog :focus-visible { outline:2px solid var(--acc); outline-offset:2px; }

@media (pointer:coarse) {
  #page-immobili :is(button,.immobili-filter-select) { min-height:44px; }
  #page-immobili .immobili-topbar-actions,#page-immobili .immobili-tabs,#page-immobili .immobili-card-grid { gap:8px; }
  #immobili-record-dialog button { min-height:44px; }
}

@media (max-width:640px) {
  #page-immobili .immobili-topbar { flex-direction:column; }
  #page-immobili .immobili-filter-group { grid-template-columns:1fr; }
  #page-immobili .immobili-filter-select { min-height:44px; font-size:16px; }
  #page-immobili .immobili-card-line { grid-template-columns:1fr; gap:3px; }
  #page-immobili .immobili-card-value { text-align:left; }
  #page-immobili .immobili-detail-definition { grid-template-columns:1fr; }
  #immobili-record-dialog { padding:8px; }
  #immobili-record-dialog .immobili-record-modal { max-height:calc(100dvh - 16px); }
  #immobili-record-dialog .immobili-record-fields { grid-template-columns:1fr; }
  #immobili-record-dialog .immobili-record-control { font-size:16px; }
  #immobili-record-dialog .immobili-record-actions { display:grid; grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  #page-immobili * { scroll-behavior:auto; transition-duration:.01ms !important; animation-duration:.01ms !important; }
  #immobili-record-dialog * { scroll-behavior:auto; transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
/* InvoiceHome uses the existing RB Control semantic tokens. */
#import-mode-fatture{min-width:0;overflow-wrap:anywhere}
.invoicehome-steps,.invoicehome-toolbar,.invoicehome-summary{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}
.invoicehome-steps{list-style:none;padding:0}
.invoicehome-steps li,.invoicehome-summary-card{padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card)}
.invoicehome-steps [aria-current="step"]{font-weight:700;border-width:2px;text-decoration:underline;text-underline-offset:4px}
#import-mode-fatture :is(button,select,input){min-height:44px;max-width:100%;white-space:normal}
#import-mode-fatture :is(button,select,input,a):focus-visible,.invoicehome-errors:focus{outline:3px solid var(--text);outline-offset:3px}
#import-mode-fatture :is(select,input[type="file"]){width:100%;min-width:0}
#import-mode-fatture [aria-pressed="true"]{border:2px solid var(--text);font-weight:700;text-decoration:underline}
.invoicehome-errors{border:1px solid var(--red-text);border-radius:var(--radius-md);padding:16px;margin:16px 0}
.invoicehome-errors a{display:block;padding:8px 0;color:var(--red-text)}
.invoicehome-inline-error{color:var(--red-text);margin:8px 0}
.invoicehome-inline-error:empty{display:none}
.invoicehome-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:16px 0}
.invoicehome-table caption{text-align:left;font-weight:600;margin:12px 0}
.invoicehome-table :is(th,td){text-align:left;vertical-align:top;padding:12px 8px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}
.invoicehome-table th:last-child{width:36%}
.invoicehome-table label{display:block;margin:8px 0}
.invoicehome-table fieldset{min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);margin:12px 0;padding:8px}
.invoicehome-table legend{max-width:100%;overflow-wrap:anywhere}
.invoicehome-table .invoicehome-check{display:flex;align-items:center;gap:8px;min-height:44px}
#import-mode-fatture .invoicehome-check input{width:44px;min-width:44px;height:44px;margin:0;flex-shrink:0}
@media(max-width:640px){
  .invoicehome-table,.invoicehome-table tbody{display:block}
  .invoicehome-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .invoicehome-table tr{display:grid;grid-template-columns:minmax(0,1fr);border:1px solid var(--border);border-radius:var(--radius-md);margin:16px 0;padding:8px}
  .invoicehome-table td{display:block;min-width:0;padding:12px 8px}
  .invoicehome-table td::before{content:attr(data-label);display:block;font-weight:700;margin-bottom:8px}
  .invoicehome-toolbar{gap:12px}
  .invoicehome-toolbar button{flex:1 1 120px}
  .invoicehome-summary-card{flex:1 1 100px}
}
