
    :root {
      --brand:     #086AD8;  
      --brand-dk:  #0757B3;
      --nero:      #1E2327;
      --rosso:     #CC2200;
      --bg:        #EEF1F3;
      --surface:   #FFFFFF;
      --border:    #E4E6EA;
      --muted:     #6B7280;
      --green:     #16A34A;
      --red:       #DC2626;
      --nav-h:     58px;
    }

    * { box-sizing: border-box; }

    body {
      background: var(--bg);
      font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
      font-size: .9rem;
      color: var(--nero);
      min-height: 100vh;
    }

    
    .app-nav {
      
      position: sticky; top: 0; z-index: 1040;
      height: var(--nav-h);
      background: var(--nero);
      display: flex; align-items: center;
      padding: 0 1.25rem; gap: 1rem;
      border-bottom: 3px solid var(--brand);
      
      overflow-x: auto; overflow-y: hidden;
      scrollbar-width: thin;
    }
    .app-nav > * { flex-shrink: 0; }
    .app-nav-brand {
      display: flex; align-items: center; gap: .6rem;
      cursor: pointer; text-decoration: none;
      flex-shrink: 0;
    }
    .app-nav-brand img {
      width: 34px; height: 34px; border-radius: 6px;
    }
    .app-nav-brand span {
      font-size: 1.05rem; font-weight: 800;
      color: var(--brand); letter-spacing: -.3px;
    }
    .nav-divider {
      width: 1px; height: 22px;
      background: rgba(255,255,255,.15); flex-shrink: 0;
    }
    .nav-pill-btn {
      display: flex; align-items: center; gap: .4rem;
      padding: .32rem .85rem; border-radius: 8px;
      font-size: .83rem; font-weight: 600; cursor: pointer;
      border: 1px solid transparent; transition: all .15s;
      color: rgba(255,255,255,.65); background: transparent;
      white-space: nowrap;
    }
    .nav-pill-btn:hover {
      background: rgba(255,255,255,.09); color: #fff;
    }
    .nav-pill-btn.active {
      background: var(--brand); color: var(--nero);
      border-color: var(--brand);
    }
    .nav-pill-btn i { font-size: .85rem; }

    .nav-stats {
      display: flex; align-items: center; gap: .5rem;
      flex-wrap: wrap; margin-left: auto;
    }
    .stat-chip {
      display: flex; align-items: center; gap: .3rem;
      font-size: .74rem; font-weight: 600;
      color: rgba(255,255,255,.55);
      padding: .2rem .6rem;
      border-radius: 20px;
      background: rgba(255,255,255,.07);
      border: 1px solid rgba(255,255,255,.1);
      white-space: nowrap;
    }
    .stat-chip i { color: var(--brand); font-size: .75rem; }

    button.stat-chip { cursor: pointer; font: inherit; transition: background .15s; }
    
    @media (max-width: 820px) {
      .app-nav > .dropdown { position: sticky; right: 0; margin-left: auto !important; padding-left: .5rem;
                              background: var(--nero); z-index: 2; }
    }
    button.stat-chip:hover { background: rgba(255,255,255,.14); }
    
    #userMenuDropdown { min-width: 220px; z-index: 3000; }

    .nav-icon-btn {
      width: 34px; height: 34px; border-radius: 8px;
      display: flex; align-items: center; justify-content: center;
      color: rgba(255,255,255,.6); cursor: pointer;
      background: rgba(255,255,255,.07);
      border: 1px solid rgba(255,255,255,.12);
      transition: all .15s; flex-shrink: 0;
    }
    .nav-icon-btn:hover { background: rgba(255,255,255,.14); color: #fff; }
    .nav-close-btn {
      display: flex; align-items: center; gap: .35rem;
      padding: .32rem .8rem; border-radius: 8px;
      font-size: .8rem; font-weight: 600;
      color: rgba(255,255,255,.6); cursor: pointer;
      background: rgba(255,255,255,.07);
      border: 1px solid rgba(255,255,255,.12);
      transition: all .15s; white-space: nowrap; flex-shrink: 0;
    }
    .nav-close-btn:hover { background: rgba(220,38,38,.25); color: #fca5a5; border-color: rgba(220,38,38,.4); }

    
    #systemAlerts { padding: .6rem 1.25rem 0; max-width: 1500px; }

    
    .sec-home {
      min-height: calc(100vh - var(--nav-h));
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      padding: 2rem 1.25rem;
    }
    .home-logo-wrap {
      width: 100px; height: 100px;
      border-radius: 22px;
      overflow: hidden;
      box-shadow: 0 8px 32px rgba(0,0,0,.18);
      margin-bottom: 1.4rem;
    }
    .home-logo-wrap img { width: 100%; height: 100%; object-fit: cover; }
    .home-title { font-size: 2rem; font-weight: 900; color: var(--nero); letter-spacing: -.5px; margin-bottom: .25rem; }
    .home-sub   { color: var(--muted); font-size: 1rem; margin-bottom: 2.5rem; }

    .home-stats-row {
      display: flex; gap: 1rem; flex-wrap: wrap;
      justify-content: center; margin-bottom: 2rem;
      max-width: 800px; width: 100%;
    }
    .home-stat-card {
      flex: 1; min-width: 150px; max-width: 190px;
      background: var(--surface);
      border-radius: 14px;
      padding: 1.1rem 1rem;
      text-align: center;
      box-shadow: 0 2px 8px rgba(0,0,0,.06);
      border: 1px solid var(--border);
    }
    .home-stat-card .hsc-val {
      font-size: 1.7rem; font-weight: 900; color: var(--nero); line-height: 1;
    }
    .home-stat-card .hsc-label {
      font-size: .75rem; font-weight: 600;
      color: var(--muted); text-transform: uppercase; letter-spacing: .6px;
      margin-top: .3rem;
    }
    .home-stat-card .hsc-icon {
      font-size: 1.3rem; margin-bottom: .4rem;
      display: block;
    }

    
    .home-kpi-row {
      display: flex; gap: 1rem; flex-wrap: wrap;
      justify-content: center; width: 100%; max-width: 1200px;
      margin-bottom: 2rem;
    }
    .home-kpi-row > div {
      flex: 1; min-width: 240px; max-width: 290px;
    }
    
    .home-kpi-card {
      background: #fff; border-radius: 18px; border: 2px solid #E4E6EA;
      box-shadow: 0 4px 18px rgba(0,0,0,.07);
      padding: 1.4rem 1.6rem; cursor: pointer;
      transition: all .2s; text-align: center; height: 100%;
    }
    .home-kpi-card .kpi-icon-row {
      display: flex; align-items: center; justify-content: center;
      gap: .5rem; margin-bottom: .4rem;
    }
    .home-kpi-card .kpi-label {
      font-size: .73rem; font-weight: 700; text-transform: uppercase;
      letter-spacing: .7px; color: #6B7280;
    }
    .home-kpi-card .kpi-value {
      font-size: 2rem; font-weight: 900; color: #111;
      line-height: 1; margin: .5rem 0 .6rem;
    }
    .home-kpi-card .kpi-sub {
      font-size: .78rem; color: #6B7280; display: flex;
      justify-content: center; gap: 1.2rem; flex-wrap: wrap;
    }
    .home-kpi-card .kpi-hint {
      margin-top: .7rem; font-size: .72rem; color: #9CA3AF;
    }
    .home-kpi-card:hover {
      transform: translateY(-3px);
      box-shadow: 0 10px 30px rgba(0,0,0,.12);
    }
    
    
    .gr-tabs {
      display: flex; gap: .5rem;
      border-bottom: 2px solid #F3F4F6; padding-bottom: 0; margin-bottom: 0;
    }
    .gr-tab {
      background: none; border: none; border-bottom: 2px solid transparent;
      padding: .6rem 1rem; font-size: .85rem; font-weight: 600; color: #9CA3AF;
      cursor: pointer; transition: all .15s; margin-bottom: -2px;
      display: flex; align-items: center; gap: .35rem;
    }
    .gr-tab:hover { color: #374151; }
    .gr-tab--active {
      color: #1F2937; border-bottom-color: var(--brand);
    }

    
    .proj-header {
      display: flex; justify-content: space-between; align-items: flex-start;
      margin-bottom: 1.25rem; gap: 1rem; flex-wrap: wrap;
    }
    .proj-title { font-size: 1.1rem; font-weight: 800; color: #1F2937; }
    .proj-sub   { font-size: .82rem; color: #9CA3AF; margin-top: .1rem; }
    .proj-meta  { display: flex; align-items: center; gap: .75rem; }
    .proj-meta-item {
      font-size: .75rem; color: #6B7280; background: #F9FAFB;
      padding: .25rem .65rem; border-radius: 6px; border: 1px solid #F3F4F6;
    }
    .proj-loading { text-align:center; padding:2.5rem; color:#9CA3AF; font-size:.88rem; }

    .proj-table-wrap {
      overflow-x: auto; border-radius: 14px; border: 1px solid #E5E7EB;
      background: #FFFFFF;
    }
    .proj-table {
      width: 100%; border-collapse: collapse; font-size: .84rem;
    }
    .proj-table th {
      background: #F9FAFB; color: #6B7280; font-weight: 700; font-size: .75rem;
      text-transform: uppercase; letter-spacing: .04em;
      padding: .7rem .8rem; text-align: right; border-bottom: 2px solid #E5E7EB;
      white-space: nowrap;
    }
    .proj-table th:first-child { text-align: left; }
    .proj-table td {
      padding: .65rem .8rem; border-bottom: 1px solid #F3F4F6;
      text-align: right; color: #374151; white-space: nowrap;
    }
    .proj-table td:first-child {
      text-align: left; font-weight: 600; color: #1F2937;
    }
    .proj-table td.proj-zero { color: #D1D5DB; }
    .proj-table tr:last-child td { border-bottom: none; }
    .proj-table .proj-row-voce-icon {
      display: inline-flex; align-items: center; gap: .4rem;
    }
    .proj-row-voce-icon i { font-size: .85rem; }

    
    .proj-row--finanziamento td:first-child .proj-row-voce-icon i { color: #2563EB; }
    .proj-row--leasing td:first-child .proj-row-voce-icon i { color: #7C3AED; }
    .proj-row--rateizzazione td:first-child .proj-row-voce-icon i { color: #D97706; }
    .proj-row--dipendenti td:first-child .proj-row-voce-icon i { color: #059669; }
    .proj-row--contributi td:first-child .proj-row-voce-icon i { color: #DC2626; }
    .proj-row--affitto td:first-child .proj-row-voce-icon i { color: #8B5CF6; }
    .proj-row--fatture_da_pagare td:first-child .proj-row-voce-icon i { color: #EA580C; }

    
    .proj-table .proj-row-total td {
      border-top: 2px solid #E5E7EB; border-bottom: none;
      font-weight: 800; color: #1F2937; font-size: .9rem;
      background: #FAFBFC; padding-top: .75rem; padding-bottom: .75rem;
    }

    
    .proj-cell-detail { position: relative; cursor: default; }
    .proj-cell-detail:hover .proj-tooltip { display: block; }
    .proj-tooltip {
      display: none; position: absolute; right: 0; top: 100%; z-index: 20;
      background: #1F2937; color: #F9FAFB; border-radius: 10px;
      padding: .6rem .8rem; font-size: .74rem; min-width: 220px;
      box-shadow: 0 8px 24px rgba(0,0,0,.18); line-height: 1.5;
      white-space: normal;
    }
    .proj-tooltip-row {
      display: flex; justify-content: space-between; gap: .5rem;
      padding: .15rem 0; border-bottom: 1px solid rgba(255,255,255,.1);
    }
    .proj-tooltip-row:last-child { border-bottom: none; }

    .proj-note {
      margin-top: 1rem; font-size: .76rem; color: #9CA3AF;
      padding: .6rem .8rem; background: #FAFBFC; border-radius: 10px;
      border: 1px solid #F3F4F6; line-height: 1.5;
    }
    .proj-note i { margin-right: .3rem; }

    .home-nav-grid {
      display: flex; flex-direction: column;
      gap: 1rem; width: 100%; max-width: 900px;
    }
    .home-nav-row {
      display: grid; gap: 1rem; width: 100%;
    }
    .home-nav-row-4 { grid-template-columns: repeat(4, 1fr); }
    .home-nav-row-2 { grid-template-columns: repeat(2, 1fr); }
    .home-nav-card {
      background: var(--surface);
      border-radius: 16px;
      padding: 1.5rem 1.25rem 1.3rem;
      text-align: center; cursor: pointer;
      transition: all .2s;
      box-shadow: 0 2px 10px rgba(0,0,0,.06);
      border: 2px solid transparent;
      text-decoration: none; color: var(--nero);
      display: block;
    }
    .home-nav-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 32px rgba(0,0,0,.12);
      border-color: var(--brand); color: var(--nero);
    }
    .home-nav-card .hnc-icon {
      font-size: 2rem; display: block; margin-bottom: .6rem;
    }
    .home-nav-card .hnc-title {
      font-size: 1.05rem; font-weight: 800; margin-bottom: .25rem;
    }
    .home-nav-card .hnc-sub { color: var(--muted); font-size: .79rem; }
    .home-nav-card .hnc-badge {
      display: inline-block; margin-top: .55rem;
      background: var(--brand); color: var(--nero);
      border-radius: 20px; padding: .12rem .7rem;
      font-size: .72rem; font-weight: 700;
    }

    
    .sec-wrap { max-width: 1500px; margin: 0 auto; padding: 1.5rem 1.25rem; }

    .sec-header {
      display: flex; align-items: center; gap: .75rem;
      margin-bottom: 1.4rem;
    }
    .sec-header-icon {
      width: 38px; height: 38px; border-radius: 10px;
      background: var(--brand); color: var(--nero);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.1rem; flex-shrink: 0;
    }
    .sec-header-text h5 { font-weight: 800; font-size: 1.1rem; margin: 0; }
    .sec-header-text small { color: var(--muted); font-size: .8rem; }

    
    .app-card {
      background: var(--surface);
      border-radius: 14px;
      border: 1px solid var(--border);
      box-shadow: 0 1px 4px rgba(0,0,0,.05);
    }
    .app-card-header {
      padding: .9rem 1.25rem;
      border-bottom: 1px solid var(--border);
      display: flex; align-items: center; justify-content: between;
    }
    .app-card-title {
      font-size: .72rem; font-weight: 700;
      text-transform: uppercase; letter-spacing: .7px; color: var(--muted);
    }
    .app-card-body { padding: 1.25rem; }

    
    .tipo-seg {
      display: inline-flex; background: var(--bg);
      border-radius: 10px; padding: 3px; gap: 2px;
      border: 1px solid var(--border);
    }
    .tipo-seg-btn {
      padding: .38rem 1.1rem; border-radius: 8px; border: none;
      font-size: .82rem; font-weight: 700; cursor: pointer;
      transition: all .15s; color: var(--muted); background: transparent;
    }
    .tipo-seg-btn.active.incasso {
      background: #DCFCE7; color: #15803D;
      box-shadow: 0 1px 4px rgba(0,0,0,.08);
    }
    .tipo-seg-btn.active.pagamento {
      background: #FEE2E2; color: #B91C1C;
      box-shadow: 0 1px 4px rgba(0,0,0,.08);
    }
    .tipo-seg-btn.active.cm-tab {
      background: var(--brand); color: var(--nero);
      box-shadow: 0 1px 4px rgba(0,0,0,.08);
    }

    
    .cm-cards-wrap { display: none; }
    .cm-card {
      background: #fff; border: 1px solid var(--border); border-radius: 14px;
      padding: .9rem 1rem; margin-bottom: .7rem; cursor: pointer;
      border-left: 5px solid var(--brand);
      transition: transform .1s, box-shadow .15s;
      display: flex; align-items: center; gap: .6rem;
    }
    .cm-card:active { transform: scale(.985); background: #FAFAFA; }
    .cm-card.cm-card-chiusa    { border-left-color: var(--nero); }
    .cm-card.cm-card-annullata { border-left-color: #9CA3AF; opacity: .85; }
    .cm-card-main { flex: 1 1 auto; min-width: 0; }
    .cm-card-top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
    .cm-card-targa {
      font-weight: 800; font-size: 1.02rem; letter-spacing: .4px; color: var(--nero);
    }
    .cm-card-badge {
      font-size: .68rem; font-weight: 800; padding: .2rem .6rem; border-radius: 20px;
      text-transform: uppercase; letter-spacing: .3px; white-space: nowrap; flex-shrink: 0;
    }
    .cm-card-badge.st-aperta    { background: var(--brand); color: var(--nero); }
    .cm-card-badge.st-chiusa    { background: var(--nero); color: var(--brand); }
    .cm-card-badge.st-annullata { background: #E5E7EB; color: #4B5563; }
    .cm-card-sub {
      font-size: .82rem; color: var(--muted); margin-top: .1rem;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .cm-card-meta {
      display: flex; flex-wrap: wrap; gap: .15rem .9rem; margin-top: .5rem;
      font-size: .78rem; color: var(--nero);
    }
    .cm-card-meta i { color: var(--brand-dk); margin-right: .25rem; }
    .cm-card-actions {
      display: flex; gap: .35rem; margin-top: .6rem; flex-wrap: wrap;
    }
    .cm-card-icon-btn {
      width: 2.1rem; height: 2.1rem; border-radius: 9px; border: 1px solid var(--border);
      background: var(--bg); color: var(--nero); display: flex; align-items: center;
      justify-content: center; font-size: .95rem; flex-shrink: 0;
    }
    .cm-card-icon-btn:active { background: var(--brand); border-color: var(--brand-dk); }
    
    .btn-storico-attivo {
      background: var(--brand); border-color: var(--brand-dk); color: var(--nero); font-weight: 700;
    }
    .btn-storico-attivo:hover { background: var(--brand-dk); color: var(--nero); }
    .cm-card-icon-btn.danger  { color: #B91C1C; }
    .cm-card-icon-btn.success { color: #15803D; }
    .cm-card-icon-btn.warning { color: #92400E; }
    .cm-card-chevron {
      flex-shrink: 0; width: 2rem; height: 2rem; border-radius: 50%;
      background: var(--nero); color: var(--brand);
      display: flex; align-items: center; justify-content: center; font-size: 1rem;
    }

    
    .cm-mat-add-row { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
    .cm-mat-add-desc { flex: 1 1 220px; min-width: 180px; }
    .cm-stepper { display: flex; align-items: center; gap: .4rem; flex-shrink: 0; }
    .cm-stepper-btn {
      width: 2.1rem; height: 2.1rem; flex-shrink: 0; border-radius: 50%; border: none;
      background: var(--nero); color: var(--brand); font-size: 1.3rem; font-weight: 800;
      line-height: 1; display: flex; align-items: center; justify-content: center;
    }
    .cm-stepper-btn:active { background: var(--brand-dk); color: var(--nero); }
    .cm-stepper-input {
      width: 3.4rem; text-align: center; border: 1px solid var(--border); border-radius: 8px;
      font-weight: 700; font-size: .95rem; padding: .32rem 0; -moz-appearance: textfield;
    }
    .cm-stepper-input::-webkit-outer-spin-button,
    .cm-stepper-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

    
    .cm-foto-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
                    gap: .5rem; margin-top: .5rem; }
    .cm-foto-thumb { position: relative; border-radius: 8px; overflow: hidden; aspect-ratio: 1;
                      background: #f0f0f0; border: 1px solid var(--border); }
    .cm-foto-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .cm-foto-del {
      position: absolute; top: 4px; right: 4px; width: 22px; height: 22px;
      background: rgba(17,17,17,.75); color: var(--brand); border: none; border-radius: 50%;
      font-size: 14px; line-height: 1; display: flex; align-items: center; justify-content: center;
    }

    
    #secCommesse .btn-primary, #secAnagraficaArticoli .btn-primary,
    #cmFormModal .btn-primary, #cmNoteModal .btn-primary {
      background: var(--nero); border-color: var(--nero); color: var(--brand); font-weight: 700;
    }
    #secCommesse .btn-primary:hover, #secAnagraficaArticoli .btn-primary:hover,
    #cmFormModal .btn-primary:hover, #cmNoteModal .btn-primary:hover,
    #secCommesse .btn-primary:focus, #secAnagraficaArticoli .btn-primary:focus,
    #cmFormModal .btn-primary:focus, #cmNoteModal .btn-primary:focus {
      background: var(--brand-dk); border-color: var(--brand-dk); color: var(--nero);
    }
    #secCommesse .btn-outline-primary, #secAnagraficaArticoli .btn-outline-primary,
    #cmFormModal .btn-outline-primary {
      border-color: var(--nero); color: var(--nero);
    }
    #secCommesse .btn-outline-primary:hover, #secAnagraficaArticoli .btn-outline-primary:hover,
    #cmFormModal .btn-outline-primary:hover {
      background: var(--brand); border-color: var(--brand-dk); color: var(--nero);
    }

    
    .form-label {
      font-size: .76rem; font-weight: 700;
      text-transform: uppercase; letter-spacing: .5px;
      color: var(--muted); margin-bottom: .35rem;
    }
    .form-control, .form-select {
      border: 1.5px solid var(--border);
      border-radius: 9px; font-size: .88rem;
      padding: .45rem .75rem;
      background: var(--bg);
      transition: all .15s;
    }
    .form-control:focus, .form-select:focus {
      border-color: var(--brand);
      box-shadow: 0 0 0 3px rgba(8,106,216,.2);
      background: var(--surface); outline: none;
    }
    .form-control::placeholder { color: #B0B7C3; }

    .btn-save {
      background: var(--nero); color: var(--brand);
      border: none; border-radius: 9px;
      padding: .5rem 1.3rem; font-weight: 700; font-size: .88rem;
      cursor: pointer; transition: all .15s; white-space: nowrap;
      display: flex; align-items: center; gap: .4rem;
    }
    .btn-save:hover { background: #2a2a2a; }

    
    .filters-bar {
      display: flex; align-items: center; gap: .6rem;
      flex-wrap: wrap;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: .7rem 1rem;
    }
    .filters-bar .form-control,
    .filters-bar .form-select { background: var(--bg); }
    .filter-label {
      font-size: .74rem; font-weight: 700;
      color: var(--muted); text-transform: uppercase;
      letter-spacing: .4px; white-space: nowrap; margin: 0;
    }
    .btn-reset {
      padding: .38rem .75rem; border-radius: 8px;
      font-size: .78rem; font-weight: 600;
      color: var(--muted); border: 1px solid var(--border);
      background: var(--bg); cursor: pointer; transition: all .15s;
      display: flex; align-items: center; gap: .3rem;
    }
    .btn-reset:hover { border-color: #aaa; color: var(--nero); }
    
    .ft-imp-btn.attivo { border-color: var(--nero); background: #086AD8; color: var(--nero); font-weight: 600; }
    .ft-imp-modi { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid #ccc; border-radius: 8px; overflow: hidden; }
    .ft-imp-modi button { border: 0; border-left: 1px solid #ccc; background: #fff; padding: .5rem .25rem; font-size: .9rem; }
    .ft-imp-modi button:first-child { border-left: 0; }
    .ft-imp-modi button.on { background: var(--nero); color: #fff; font-weight: 600; }
    .ft-imp-rapidi { display: flex; flex-wrap: wrap; gap: .4rem; }
    .ft-imp-rapidi button { border: 1px solid #ccc; background: #fff; border-radius: 999px; padding: .3rem .75rem; font-size: .85rem; }
    .ft-imp-rapidi button:hover, .ft-imp-modi button:not(.on):hover { background: #f3f3f3; }

    
    .totali-pill {
      font-size: .78rem; font-weight: 600;
      padding: .22rem .7rem;
      border-radius: 20px;
      background: var(--bg);
      border: 1px solid var(--border);
    }

    
    .app-table { width: 100%; border-collapse: collapse; }
    .app-table thead tr {
      background: var(--bg); border-bottom: 2px solid var(--border);
    }
    .app-table thead th {
      font-size: .71rem; font-weight: 700;
      text-transform: uppercase; letter-spacing: .6px;
      color: var(--muted); padding: .7rem 1rem;
      white-space: nowrap;
    }
    .app-table tbody tr {
      border-bottom: 1px solid #F0F1F3;
      transition: background .1s;
    }
    .app-table tbody tr:hover { background: #FAFBFC; }
    .app-table tbody tr:last-child { border-bottom: none; }
    .app-table td {
      padding: .7rem 1rem; vertical-align: middle;
      font-size: .87rem;
    }
    .amt { font-variant-numeric: tabular-nums; font-weight: 600; }
    .amt-incasso { color: var(--green); }
    .amt-pagamento { color: var(--red); }

    
    .row-tipo-inc { border-left: 3px solid var(--green); }
    .row-tipo-pag { border-left: 3px solid var(--red); }

    
    .badge-tipo {
      display: inline-flex; align-items: center; gap: .25rem;
      font-size: .71rem; font-weight: 700; padding: .25rem .6rem;
      border-radius: 20px; letter-spacing: .2px;
    }
    .badge-inc { background: #DCFCE7; color: #15803D; }
    .badge-pag { background: #FEE2E2; color: #B91C1C; }

    .badge-stato {
      font-size: .71rem; font-weight: 700; padding: .23rem .65rem;
      border-radius: 20px; letter-spacing: .2px;
    }
    .badge-stato-pagato    { background: #DCFCE7; color: #15803D; }
    .badge-stato-da_pagare { background: #FEE2E2; color: #B91C1C; }
    .badge-stato-parziale  { background: #FEF9C3; color: #92400E; }
    .badge-sincro {
      display: inline-block; margin-left: .4rem; font-size: .68rem; font-weight: 700;
      padding: .15rem .5rem; border-radius: 20px; letter-spacing: .2px;
      background: #DBEAFE; color: #1D4ED8; vertical-align: middle;
    }

    
    .grafici-card {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 1.25rem 1.35rem;
      box-shadow: 0 1px 4px rgba(0,0,0,.05);
      display: flex; flex-direction: column; gap: .75rem;
    }
    .gc-header { display:flex; align-items:center; gap:.85rem; }
    .gc-icon {
      width: 42px; height: 42px; border-radius: 11px;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.2rem; flex-shrink: 0;
    }
    .gc-title { font-weight: 700; font-size: .98rem; }
    .gc-sub   { font-size: .76rem; color: var(--muted); margin-top: 1px; }
    .gc-badge {
      font-size: .74rem; background: #F1F5F9; color: var(--muted);
      padding: 2px 9px; border-radius: 20px; white-space: nowrap;
    }
    .gc-total {
      font-size: 2.1rem; font-weight: 800; letter-spacing: -.5px;
      color: #111; line-height: 1;
    }
    .gc-divider { height: 1px; background: var(--border); margin: .1rem 0; }
    .gc-bars { display: flex; flex-direction: column; gap: .45rem; }
    .gc-bar-row { display: flex; align-items: center; gap: .6rem; font-size: .8rem; }
    .gc-bar-label { width: 48px; color: var(--muted); flex-shrink: 0; text-align: right; font-size: .75rem; }
    .gc-bar-track { flex: 1; background: #F1F5F9; border-radius: 4px; height: 8px; overflow: hidden; }
    .gc-bar-fill  { height: 100%; border-radius: 4px; background: #16A34A;
                    transition: width .5s cubic-bezier(.4,0,.2,1); }
    .gc-bar-amt   { width: 80px; text-align: right; font-weight: 600; color: #111; font-size: .8rem; }
    .gc-loading   { color: var(--muted); font-size: .83rem; padding: .5rem 0; }

    
    .ce-card {
      background: #fff;
      border: 1px solid var(--border);
      border-top: 3px solid var(--ce-color, #2563EB);
      border-radius: 12px;
      padding: 1.1rem 1.2rem 1rem;
      box-shadow: 0 1px 4px rgba(0,0,0,.05);
    }
    .ce-card-header {
      display: flex; align-items: center; gap: .65rem; margin-bottom: .9rem;
    }
    .ce-card-icon {
      width: 34px; height: 34px; border-radius: 9px;
      display: flex; align-items: center; justify-content: center;
      font-size: .95rem; flex-shrink: 0;
    }
    .ce-card-title {
      font-size: .88rem; font-weight: 700; color: #111; line-height: 1.2;
    }
    .ce-table { width: 100%; border-collapse: collapse; }
    .ce-table tbody tr { border-bottom: 1px solid #F3F4F6; }
    .ce-table tbody tr:last-child { border-bottom: none; }
    .ce-label {
      font-size: .79rem; color: var(--muted); padding: .32rem 0;
    }
    .ce-val {
      font-size: .79rem; font-weight: 600; text-align: right;
      padding: .32rem 0; font-variant-numeric: tabular-nums; white-space: nowrap;
    }
    .ce-val.pos { color: #16A34A; }
    .ce-val.neg { color: #DC2626; }
    .ce-val.muted { color: var(--muted); font-weight: 400; font-style: italic; }
    .ce-margine { border-top: 2px solid #E5E7EB; }
    .ce-margine .ce-label {
      font-weight: 700; color: #111; font-size: .82rem; padding-top: .55rem;
    }
    .ce-margine .ce-val {
      font-size: .85rem; font-weight: 800; padding-top: .55rem;
    }
    .ce-margine.pos .ce-val { color: #16A34A; }
    .ce-margine.neg .ce-val { color: #DC2626; }

    
    .riep-card {
      background: #fff; border: 1px solid #E5E7EB; border-radius: 14px;
      padding: 1.2rem 1.3rem; box-shadow: 0 1px 4px rgba(0,0,0,.03);
    }
    .riep-card--ord  { border-top: 3px solid #2563EB; }
    .riep-card--extra { border-top: 3px solid #D97706; }
    .riep-header {
      display: flex; align-items: center; gap: .55rem; margin-bottom: .85rem;
    }
    .riep-icon {
      width: 32px; height: 32px; border-radius: 8px;
      display: flex; align-items: center; justify-content: center; font-size: .9rem;
    }
    .riep-icon--ord  { background: #EFF6FF; color: #2563EB; }
    .riep-icon--extra { background: #FFFBEB; color: #D97706; }
    .riep-title { font-size: .9rem; font-weight: 700; color: #1F2937; }
    .riep-table { width: 100%; border-collapse: collapse; }
    .riep-table tr { border-bottom: 1px solid #F3F4F6; }
    .riep-table tr:last-child { border-bottom: none; }
    .riep-table td { padding: .4rem 0; font-size: .82rem; }
    .riep-table .riep-lbl { color: #6B7280; font-weight: 500; }
    .riep-table .riep-val {
      text-align: right; font-weight: 700; font-variant-numeric: tabular-nums;
      white-space: nowrap;
    }
    .riep-val.pos { color: #16A34A; }
    .riep-val.neg { color: #DC2626; }
    .riep-table .riep-margine td {
      border-top: 2px solid #E5E7EB; padding-top: .55rem;
      font-weight: 800; font-size: .88rem;
    }
    .riep-margine .riep-lbl { color: #1F2937; }
    .riep-margine.pos .riep-val { color: #16A34A; }
    .riep-margine.neg .riep-val { color: #DC2626; }
    .ce-period-bar {
      display: flex; align-items: center; gap: .6rem;
      padding: .6rem 1.25rem; background: #FAFAFA;
      border-bottom: 1px solid var(--border);
    }

    
    .btn-action {
      width: 28px; height: 28px; border-radius: 7px;
      display: inline-flex; align-items: center; justify-content: center;
      border: 1px solid var(--border); cursor: pointer;
      transition: all .15s; font-size: .8rem;
      background: var(--bg); color: var(--muted);
    }
    .btn-action:hover.edit { background: #EFF6FF; border-color: #93C5FD; color: #1D4ED8; }
    .btn-action:hover.del  { background: #FEF2F2; border-color: #FCA5A5; color: #B91C1C; }

    
    .empty-state {
      text-align: center; padding: 3rem 1rem;
      color: var(--muted);
    }
    .empty-state i { font-size: 2.8rem; opacity: .3; display: block; margin-bottom: .75rem; }
    .empty-state p { font-weight: 600; margin-bottom: .25rem; }
    .empty-state small { font-size: .8rem; }

    
    .autocomplete-wrapper { position: relative; }
    .autocomplete-dropdown {
      position: absolute; top: calc(100% + 4px); left: 0; right: 0;
      background: var(--surface);
      border: 1.5px solid var(--brand);
      border-radius: 10px; max-height: 210px; overflow-y: auto;
      z-index: 999; box-shadow: 0 8px 24px rgba(0,0,0,.12);
    }
    .ac-item {
      padding: .6rem .9rem; cursor: pointer;
      display: flex; justify-content: space-between; align-items: center;
      border-bottom: 1px solid var(--border); font-size: .85rem;
      transition: background .1s;
    }
    .ac-item:last-child { border-bottom: none; }
    .ac-item:hover, .ac-active { background: #FFFDE7; }
    .ac-meta { display: flex; align-items: center; gap: .5rem; }
    .ac-piva { font-size: .72rem; color: var(--muted); }

    
    .ft-tab-bar {
      display: flex; gap: .5rem; margin-bottom: 1.25rem;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 12px; padding: 5px; width: fit-content;
    }
    .ft-tab-btn {
      padding: .42rem 1.2rem; border-radius: 9px; border: none;
      font-size: .84rem; font-weight: 700; cursor: pointer;
      transition: all .15s; color: var(--muted); background: transparent;
      display: flex; align-items: center; gap: .4rem;
    }
    .ft-tab-btn.active {
      background: var(--nero); color: var(--brand);
    }

    
    .stats-strip {
      display: flex; gap: .75rem; flex-wrap: wrap;
    }
    .stats-strip .stat-chip {
      display: flex; flex-direction: column; gap: .1rem;
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 10px; padding: .55rem .9rem;
      border-left: 3px solid var(--chip-accent, var(--brand));
      color: inherit; font-size: .82rem; white-space: nowrap;
    }
    .stats-strip .stat-label {
      font-size: .68rem; font-weight: 700; text-transform: uppercase;
      letter-spacing: .5px; color: var(--muted);
    }
    .stats-strip .stat-val {
      font-size: .92rem; font-weight: 800; color: var(--nero);
    }

    
    .pag-bar {
      display: flex; align-items: center; justify-content: space-between;
      padding: .7rem 1rem;
      border-top: 1px solid var(--border);
      font-size: .82rem;
    }
    .pag-btn {
      width: 30px; height: 30px; border-radius: 8px;
      border: 1px solid var(--border); background: var(--bg);
      cursor: pointer; color: var(--muted); font-size: .8rem;
      display: inline-flex; align-items: center; justify-content: center;
      transition: all .15s;
    }
    .pag-btn:hover:not([disabled]) { border-color: var(--nero); color: var(--nero); background: var(--surface); }
    .pag-btn[disabled] { opacity: .35; cursor: not-allowed; }

    

    
    .app-modal .modal-content {
      border: none; border-radius: 16px;
      box-shadow: 0 24px 64px rgba(0,0,0,.18);
    }
    .app-modal .modal-header {
      background: var(--nero); color: white;
      border-radius: 16px 16px 0 0;
      border-bottom: 3px solid var(--brand);
      padding: 1rem 1.5rem;
    }
    .app-modal .modal-title {
      font-weight: 800; color: var(--brand); font-size: 1rem;
      display: flex; align-items: center; gap: .5rem;
    }
    .app-modal .btn-close { filter: invert(1) brightness(1.5); opacity: .7; }
    .app-modal .modal-body { padding: 1.5rem; }
    .app-modal .modal-footer {
      border-top: 1px solid var(--border);
      padding: 1rem 1.5rem; border-radius: 0 0 16px 16px;
    }

    
    .text-nowrap { white-space: nowrap; }
    a { text-decoration: none; }

    
    #loadingOverlay {
      position: fixed; inset: 0; z-index: 9999;
      background: rgba(17,17,17,.92);
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      gap: 1.25rem;
      transition: opacity .3s;
    }
    #loadingOverlay.hidden {
      opacity: 0; pointer-events: none;
    }
    .loading-spinner {
      width: 3rem; height: 3rem;
      border: 4px solid rgba(8,106,216,.25);
      border-top-color: var(--brand);
      border-radius: 50%;
      animation: spin .75s linear infinite;
    }
    @keyframes spin { to { transform: rotate(360deg); } }
    #loadingMsg {
      color: #fff; font-size: 1rem; font-weight: 600;
      letter-spacing: .02em;
    }
    #loadingSubMsg {
      color: rgba(255,255,255,.55); font-size: .82rem;
      margin-top: -.5rem;
    }

    
    #onboardOverlay {
      position: fixed; inset: 0; z-index: 88888;
      background: rgba(17,17,17,.97);
      display: flex; align-items: center; justify-content: center;
    }
    #onboardOverlay.hidden { display: none; }
    .onboard-box {
      background: var(--surface);
      border-radius: 20px;
      padding: 2.5rem 2rem;
      max-width: 480px; width: 92%;
      box-shadow: 0 32px 80px rgba(0,0,0,.45);
      text-align: center;
    }
    .onboard-logo { height: 64px; margin-bottom: 1.25rem; }
    .onboard-title { font-size: 1.4rem; font-weight: 800; margin-bottom: .35rem; }
    .onboard-sub   { color: var(--muted); font-size: .88rem; margin-bottom: 1.75rem; }
    .onboard-label { text-align: left; font-size: .78rem; font-weight: 700;
                     text-transform: uppercase; letter-spacing: .06em;
                     color: var(--muted); margin-bottom: .4rem; }
    .onboard-input {
      width: 100%; padding: .55rem .8rem;
      border: 1.5px solid var(--border); border-radius: 10px;
      font-size: .88rem; font-family: 'Segoe UI', monospace;
      outline: none; transition: border-color .15s;
    }
    .onboard-input:focus { border-color: var(--brand); }
    .onboard-hint  { text-align: left; font-size: .78rem; color: var(--muted);
                     margin-top: .4rem; margin-bottom: 1.5rem; }
    .onboard-hint code { font-size: .75rem; background: var(--bg);
                         padding: .1rem .3rem; border-radius: 4px; }
    .onboard-btn-primary {
      width: 100%; padding: .7rem;
      background: var(--nero); color: var(--brand);
      border: none; border-radius: 10px; font-weight: 700;
      font-size: .95rem; cursor: pointer; transition: background .15s;
      display: flex; align-items: center; justify-content: center; gap: .5rem;
    }
    .onboard-btn-primary:hover { background: #222; }
    .onboard-btn-skip {
      width: 100%; margin-top: .75rem; padding: .5rem;
      background: transparent; color: var(--muted);
      border: 1.5px solid var(--border); border-radius: 10px;
      font-size: .85rem; cursor: pointer; transition: all .15s;
    }
    .onboard-btn-skip:hover { border-color: var(--nero); color: var(--nero); }
    #onboardResult { margin-top: 1rem; }

    

    
    .pres-tabs-bar {
      display: flex; gap: .25rem; background: #F3F4F6; border-radius: 10px; padding: .2rem;
    }
    .pres-tab {
      padding: .4rem 1rem; border: none; background: transparent;
      border-radius: 8px; font-size: .85rem; font-weight: 500;
      cursor: pointer; transition: all .15s; color: var(--muted);
      display: flex; align-items: center; gap: .4rem;
    }
    .pres-tab:hover { color: var(--nero); }
    .pres-tab.active {
      background: #fff; color: var(--nero); font-weight: 600;
      box-shadow: 0 1px 3px rgba(0,0,0,.08);
    }

    
    .pres-nav-bar {
      display: flex; align-items: center; justify-content: space-between;
      flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem;
      padding: .5rem .75rem; background: #FAFBFC; border-radius: 10px;
      border: 1px solid var(--border);
    }
    .pres-nav-arrows {
      display: flex; align-items: center; gap: .35rem;
    }
    .pres-nav-btn {
      width: 32px; height: 32px; border: 1px solid var(--border);
      background: #fff; border-radius: 8px; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: all .1s; font-size: .9rem; color: var(--nero);
    }
    .pres-nav-btn:hover { background: #F3F4F6; border-color: #D1D5DB; }
    .pres-nav-label {
      font-weight: 600; font-size: .95rem; min-width: 260px; text-align: center;
    }
    .pres-legenda {
      display: flex; gap: .75rem; align-items: center; font-size: .78rem; color: #6B7280;
    }

    
    .pres-table { font-size: .85rem; }
    .pres-table thead th {
      position: sticky; top: 0; z-index: 2;
      background: #F9FAFB; text-align: center; padding: .55rem .5rem;
      font-size: .82rem; font-weight: 600;
    }
    .pres-table thead th:first-child {
      text-align: left; min-width: 190px; position: sticky; left: 0; z-index: 3;
      background: #F9FAFB;
    }
    .pres-table tbody td {
      padding: .5rem .4rem; text-align: center; cursor: pointer;
      border: 1px solid #F0F0F0; transition: all .12s;
      height: 42px;
    }
    .pres-table tbody td:first-child {
      text-align: left; cursor: default; font-weight: 600; font-size: .85rem;
      padding-left: .75rem; position: sticky; left: 0; z-index: 1;
      background: #fff; border-right: 2px solid var(--border);
      min-width: 190px; white-space: nowrap;
    }
    .pres-table tbody td:hover:not(:first-child):not(.pres-dom) {
      filter: brightness(.92); transform: scale(1.02);
    }
    .pres-table tbody td.pres-dom { background: #F9FAFB !important; cursor: default; }

    .pres-cell-presente { background: #ECFDF5; }
    .pres-cell-assente  { background: #FEE2E2; }
    .pres-cell-permesso { background: #FEF3C7; }
    .pres-cell-ferie    { background: #DBEAFE; }
    .pres-cell-malattia { background: #F3E8FF; }

    .pres-dot {
      display: inline-block; width: 9px; height: 9px; border-radius: 50%;
      margin-right: .3rem; vertical-align: middle;
    }
    .pres-dot.pres-presente { background: #10B981; }
    .pres-dot.pres-assente  { background: #EF4444; }
    .pres-dot.pres-permesso { background: #F59E0B; }
    .pres-dot.pres-ferie    { background: #3B82F6; }
    .pres-dot.pres-malattia { background: #8B5CF6; }

    .pres-cell-icon { font-size: .78rem; }

    .pres-stats-card {
      flex: 1; min-width: 100px; padding: .5rem .7rem;
      background: #fff; border: 1px solid var(--border); border-radius: 10px;
    }

    
    .pn-verifiche { background: #FFF8E1; border: 1px solid #F5D06B; border-left: 5px solid #E0A800; border-radius: 14px;
                    padding: .8rem 1rem; margin-bottom: 1rem; }
    .pv-testa { font-weight: 700; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .5rem; }
    .pv-testa small { font-weight: 400; color: var(--muted); }
    .pv-item { background: #fff; border: 1px solid #F1E2B0; border-radius: 10px; padding: .65rem .8rem; margin-top: .5rem; }
    .pv-item.pv-alta { border-left: 4px solid #DC3545; }
    .pv-tit { font-weight: 600; font-size: .9rem; }
    .pv-det { font-size: .8rem; color: #4B5563; margin: .2rem 0 .4rem; }
    .pv-riga { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; font-size: .82rem; padding: .3rem .5rem;
               background: #F9FAFB; border-radius: 8px; margin-top: .3rem; }
    .pv-riga small { color: var(--muted); }
    .pv-cand { border-top: 1px dashed #E5E7EB; padding-top: .4rem; margin-top: .4rem; }
    .pv-mot { font-size: .74rem; color: var(--muted); margin: .2rem 0 0 .2rem; }
    .pv-az { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
    .pres-stats-card .pres-stats-label { font-size: .7rem; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; }
    .pres-stats-card .pres-stats-val { font-size: 1.05rem; font-weight: 700; margin-top: .1rem; }

    
    .pres-popup {
      position: fixed; z-index: 9999;
      background: #fff; border: 1px solid var(--border);
      border-radius: 12px; box-shadow: 0 8px 30px rgba(0,0,0,.18);
      min-width: 210px; padding: 0; overflow: hidden;
    }
    .pres-popup-header {
      padding: .5rem .75rem; font-size: .78rem; font-weight: 600;
      background: #F9FAFB; border-bottom: 1px solid var(--border);
      color: #6B7280;
    }
    .pres-popup-body { padding: .35rem; display: flex; flex-direction: column; gap: .15rem; }
    .pres-popup-btn {
      display: flex; align-items: center; gap: .5rem;
      padding: .5rem .7rem; border: none; background: transparent;
      border-radius: 8px; font-size: .85rem; cursor: pointer;
      transition: background .1s; text-align: left; width: 100%;
    }
    .pres-popup-btn:hover { background: #F3F4F6; }
    .pres-popup-btn.pres-popup-active { background: #E0E7FF; font-weight: 600; }
    .pres-popup-permesso-row {
      display: flex; align-items: center; gap: .35rem;
    }
    .pres-popup-permesso-row input {
      border-radius: 8px; text-align: center; font-size: .82rem;
    }

    
    :root {
      --dash-navy:        #2B2418;
      --dash-navy-2:      #3A3122;
      --dash-navy-deep:   #1E2327;
      --dash-yellow:      #086AD8;
      --dash-shadow-sm:   0 1px 3px rgba(17,24,39,.06);
      --dash-shadow-md:   0 4px 14px rgba(17,24,39,.08);
      --dash-radius:      14px;
      --dash-text:        #0F172A;
      --dash-muted:       #64748B;
      --dash-border:      #E5E7EB;
    }

    
    .dash-hero {
      background: linear-gradient(135deg, var(--dash-navy-deep) 0%, var(--dash-navy) 60%, var(--dash-navy-2) 100%);
      color: #fff;
      border-radius: var(--dash-radius);
      padding: 1.4rem 1.6rem;
      margin: 0 1.25rem 1.25rem;
      display: flex; flex-wrap: wrap;
      align-items: center; justify-content: space-between;
      gap: 1rem;
      box-shadow: var(--dash-shadow-md);
    }
    .dash-hero-title {
      display: flex; align-items: center; gap: .8rem;
    }
    .dash-hero-title-icon {
      width: 38px; height: 38px;
      background: rgba(244,208,63,.18);
      color: var(--dash-yellow);
      border-radius: 10px;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.15rem;
    }
    .dash-hero-title h2 {
      font-size: 1.25rem; font-weight: 800; margin: 0;
      letter-spacing: -.2px; line-height: 1.1;
    }
    .dash-hero-title small {
      color: rgba(255,255,255,.7); font-size: .82rem; display:block;
      margin-top: .15rem;
    }
    .dash-hero-filters {
      display: flex; align-items: center; gap: .65rem;
      flex-wrap: wrap;
    }
    .dash-hero-filter-group {
      display: flex; flex-direction: column; gap: .2rem;
    }
    .dash-hero-filter-group label {
      font-size: .68rem; font-weight: 700;
      color: rgba(255,255,255,.55);
      letter-spacing: .12em; text-transform: uppercase;
    }
    .dash-hero-filters .form-control,
    .dash-hero-filters .btn {
      background: rgba(255,255,255,.08);
      color: #fff; border: 1px solid rgba(255,255,255,.18);
      border-radius: 8px; font-size: .85rem; height: 36px;
    }
    .dash-hero-filters .form-control::-webkit-calendar-picker-indicator {
      filter: invert(.85);
    }
    .dash-hero-filters .form-control:focus {
      background: rgba(255,255,255,.13); color: #fff;
      border-color: var(--dash-yellow);
      box-shadow: 0 0 0 3px rgba(244,208,63,.18);
    }
    .dash-hero-btn-primary {
      background: var(--dash-yellow) !important;
      color: var(--dash-navy-deep) !important;
      font-weight: 700; border-color: var(--dash-yellow) !important;
    }
    .dash-hero-btn-primary:hover { filter: brightness(1.05); }
    .dash-hero-btn-ghost {
      background: rgba(255,255,255,.08) !important;
      color: #fff !important;
    }
    .dash-hero-btn-ghost:hover { background: rgba(255,255,255,.14) !important; }

    
    .dash-kpi-row {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
      gap: 1rem;
      padding: 0 1.25rem;
      margin-bottom: 1.25rem;
    }
    .dash-kpi {
      position: relative;
      background: #fff;
      border: 1px solid var(--dash-border);
      border-radius: var(--dash-radius);
      padding: 1.1rem 1.2rem;
      box-shadow: var(--dash-shadow-sm);
      cursor: pointer;
      transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
      text-align: left;
      overflow: hidden;
    }
    .dash-kpi:hover {
      transform: translateY(-2px);
      box-shadow: var(--dash-shadow-md);
    }
    
    .dash-kpi::before {
      content: '';
      position: absolute; top: 0; left: 0; right: 0;
      height: 3px;
      background: var(--dash-kpi-accent, var(--dash-yellow));
    }
    .dash-kpi-head {
      display: flex; align-items: center; gap: .65rem;
      margin-bottom: .65rem;
    }
    .dash-kpi-icon {
      width: 38px; height: 38px;
      border-radius: 10px;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.05rem;
      background: var(--dash-kpi-icon-bg, #F1F5F9);
      color: var(--dash-kpi-icon-fg, var(--dash-navy));
      flex-shrink: 0;
    }
    .dash-kpi-label {
      font-size: .72rem; font-weight: 700;
      letter-spacing: .08em; text-transform: uppercase;
      color: var(--dash-muted);
    }
    .dash-kpi-value {
      font-size: 1.6rem; font-weight: 800;
      color: var(--dash-text); line-height: 1.1;
      letter-spacing: -.4px;
      margin-top: .15rem;
    }
    .dash-kpi-sub {
      margin-top: .55rem;
      font-size: .75rem; color: var(--dash-muted);
      display: flex; flex-wrap: wrap; gap: .5rem .9rem;
    }
    .dash-kpi-sub strong { color: var(--dash-text); font-weight: 600; }
    .dash-kpi-sub .dot {
      display: inline-block; width: 7px; height: 7px;
      border-radius: 50%; margin-right: .25rem; vertical-align: middle;
    }
    .dash-kpi-hint {
      margin-top: .55rem; font-size: .7rem; color: #94A3B8;
      display: flex; align-items: center; gap: .25rem;
    }

    
    .dash-kpi--costi    { --dash-kpi-accent: #DC2626; --dash-kpi-icon-bg: #FEE2E2; --dash-kpi-icon-fg: #B91C1C; }
    .dash-kpi--margine  { --dash-kpi-accent: var(--dash-navy); --dash-kpi-icon-bg: #E0E7FF; --dash-kpi-icon-fg: var(--dash-navy); }
    .dash-kpi--brand    { --dash-kpi-accent: var(--dash-yellow); --dash-kpi-icon-bg: #FEF9C3; --dash-kpi-icon-fg: #92400E; }
    .dash-kpi--dipendenti    { --dash-kpi-accent: #0D9488; --dash-kpi-icon-bg: #CCFBF1; --dash-kpi-icon-fg: #0F766E; }
    .dash-kpi--f24           { --dash-kpi-accent: #6D28D9; --dash-kpi-icon-bg: #EDE9FE; --dash-kpi-icon-fg: #5B21B6; }
    .dash-kpi--revisioni     { --dash-kpi-accent: #7C3AED; --dash-kpi-icon-bg: #EDE9FE; --dash-kpi-icon-fg: #5B21B6; }
    .dash-kpi--presenze      { --dash-kpi-accent: #16A34A; --dash-kpi-icon-bg: #DCFCE7; --dash-kpi-icon-fg: #15803D; }
    .dash-kpi--finanziamenti { --dash-kpi-accent: #2563EB; --dash-kpi-icon-bg: #DBEAFE; --dash-kpi-icon-fg: #1D4ED8; }
    .dash-kpi--cespiti       { --dash-kpi-accent: #EA580C; --dash-kpi-icon-bg: #FFEDD5; --dash-kpi-icon-fg: #C2410C; }
    .dash-kpi--sincro        { --dash-kpi-accent: #0891B2; --dash-kpi-icon-bg: #CFFAFE; --dash-kpi-icon-fg: #0E7490; }
    
    .dash-kpi-value--green { color: #15803D; }
    .dash-kpi-value--red   { color: #B91C1C; }

    
    .repo-schede-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: 1rem;
    }
    .repo-scheda-card {
      display: flex; align-items: center; gap: 1rem;
      background: #fff;
      border: 1px solid var(--dash-border);
      border-radius: var(--dash-radius);
      padding: 1.25rem 1.4rem;
      box-shadow: var(--dash-shadow-sm);
      cursor: pointer;
      text-align: left;
      transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
      width: 100%;
    }
    .repo-scheda-card:hover {
      transform: translateY(-2px);
      box-shadow: var(--dash-shadow-md);
      border-color: var(--dash-navy);
    }
    .repo-scheda-icon {
      width: 46px; height: 46px; flex-shrink: 0;
      border-radius: 12px;
      background: #E0E7FF; color: var(--dash-navy);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.3rem;
    }
    .repo-scheda-text h3 {
      font-size: 1rem; font-weight: 800; margin: 0 0 .2rem;
      color: var(--dash-text);
    }
    .repo-scheda-text p {
      font-size: .82rem; color: var(--dash-muted); margin: 0; line-height: 1.4;
    }
    .repo-scheda-arrow {
      margin-left: auto; color: var(--dash-muted); font-size: 1.1rem; flex-shrink: 0;
    }

    
    .ce-anno-group { display: flex; gap: .35rem; align-self: flex-end; }
    .ce-anno-btn {
      background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.18);
      border-radius: 8px; font-size: .85rem; height: 36px; padding: 0 .9rem; font-weight: 600;
      cursor: pointer;
    }
    .ce-anno-btn:hover { background: rgba(255,255,255,.14); }
    .ce-anno-btn.active { background: var(--dash-yellow); color: var(--dash-navy-deep); border-color: var(--dash-yellow); }

    .ce-ricavi-row {
      width: 100%; display: flex; align-items: center; gap: .75rem;
      padding: 1.1rem 1.4rem; background: #fff; border: none; cursor: pointer;
      text-align: left; font-size: 1.05rem;
    }
    .ce-ricavi-row:hover { background: #F8FAFC; }
    .ce-ricavi-icon { color: var(--dash-navy); font-size: 1.2rem; }
    .ce-ricavi-label { font-weight: 800; color: var(--dash-text); }
    .ce-ricavi-valore { margin-left: auto; font-weight: 800; font-size: 1.2rem; color: #15803D; }
    #ceRicaviDettaglio { border-top: 1px solid var(--dash-border); }
    #ceRicaviBody td { padding: .65rem 1.4rem 0.65rem 3rem; }
    #ceRicaviBody td.text-end { padding-right: 1.4rem; }

    
    .ce-section-title {
      font-size: .92rem; font-weight: 800; color: var(--dash-muted);
      text-transform: uppercase; letter-spacing: .04em; margin: 0;
    }
    .ce-subtotale-row {
      display: flex; justify-content: space-between; align-items: center;
      padding: .85rem 1.4rem; font-size: 1rem; font-weight: 800;
    }
    .ce-margine-panel { text-align: center; padding: 1.4rem 1.5rem; }
    .ce-margine-label {
      font-size: .78rem; color: var(--dash-muted); text-transform: uppercase;
      letter-spacing: .05em; font-weight: 700;
    }
    .ce-margine-valore { font-size: 2.2rem; font-weight: 900; margin-top: .3rem; }
    .ce-margine-perc { font-size: .85rem; color: var(--dash-muted); margin-top: .25rem; }

    
    .ce2-panel { padding: 0; overflow: hidden; }
    .ce2-head { display:flex; justify-content:space-between; align-items:center; gap:.6rem;
                padding:1rem 1.2rem .8rem; border-bottom:1px solid var(--dash-border); }
    .ce2-sec { padding:.5rem 1.2rem .35rem; font-size:.7rem; font-weight:800; letter-spacing:.07em;
               text-transform:uppercase; color:var(--dash-muted); background:#F8FAFC;
               border-bottom:1px solid var(--dash-border); }
    .ce2-row { display:flex; align-items:center; gap:.5rem; width:100%; padding:.5rem 1.2rem; border:0;
               border-bottom:1px solid #F1F5F9; background:none; text-align:left; font-size:.86rem; color:#0F172A; }
    .ce2-row.exp { cursor:pointer; }
    .ce2-row.exp:hover { background:#F8FAFC; }
    .ce2-row .ic { width:14px; color:#94A3B8; font-size:.72rem; flex:none; }
    .ce2-row .lbl { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .ce2-row .val { font-variant-numeric:tabular-nums; font-weight:600; flex:none; }
    .ce2-row .pct { color:var(--dash-muted); font-size:.72rem; width:46px; text-align:right; flex:none; }
    .ce2-row.l2 { padding-left:2.2rem; font-size:.83rem; }
    .ce2-row.l3 { padding-left:3.4rem; font-size:.78rem; color:#334155; background:#FCFCFD; cursor:default; }
    .ce2-row.l3 .val { font-weight:500; }
    .ce2-row.muted { color:#94A3B8; }
    .ce2-sub { max-height:300px; overflow-y:auto; border-bottom:1px solid #EEF2F7; }
    .ce2-find { display:block; width:calc(100% - 2.6rem); margin:.4rem 1.2rem .4rem 1.4rem; padding:.25rem .55rem;
                font-size:.76rem; border:1px solid #E2E8F0; border-radius:6px; }
    .ce2-tot { display:flex; justify-content:space-between; align-items:center; padding:.65rem 1.2rem;
               font-size:.92rem; font-weight:800; background:#F1F5F9; border-top:2px solid #CBD5E1;
               border-bottom:1px solid #CBD5E1; }
    .ab-tabs { display:flex; gap:.4rem; overflow-x:auto; padding:.9rem 1.25rem .4rem; scrollbar-width:none; }
    .ab-tabs::-webkit-scrollbar { display:none; }
    .ab-tabs button { flex:none; border:1px solid var(--dash-border); background:#fff; color:#334155; border-radius:999px;
                      padding:.42rem .9rem; font-size:.84rem; font-weight:600; white-space:nowrap; }
    .ab-tabs button.active { background:var(--dash-navy-deep, #0B1F3A); color:#fff; border-color:transparent; }
    #rvTab tbody tr.mp-r, #mpTab tbody tr.mp-r { cursor:pointer; }
    .ab-chev { font-size:.7rem; color:#94A3B8; margin-right:.35rem; }
    tr.ab-exp > td { background:#FCFCFD; border-bottom:2px solid #CBD5E1; }
    .ab-exp-box { padding:.2rem 0 .6rem; }
    .ab-exp-box .ce2-sec { background:#F1F5F9; }
    .ab-crit { margin:.9rem 1.2rem 0; padding:.8rem 1rem; border:1px solid var(--dash-border); border-radius:10px; background:#F8FAFC;
               font-size:.8rem; color:#334155; line-height:1.5; }
    .ab-crit-t { font-weight:800; font-size:.86rem; color:#0F172A; margin-bottom:.35rem; }
    .ab-crit p { margin:.25rem 0 .4rem; }
    .ab-crit ol { margin:0 0 .3rem; padding-left:1.2rem; }
    .ab-crit ol > li { margin-bottom:.35rem; }
    .ab-crit ul { margin:.15rem 0 0; padding-left:1rem; }
    #rvTab tbody tr.mp-r.sel td { background:#FEF9C3; }
    #rvTab tbody tr.mp-tot td { font-weight:800; background:#F1F5F9; border-top:2px solid #CBD5E1; }
    #svTab tbody tr.mp-r, #gbTab tbody tr.mp-r, #peTab tbody tr.mp-r, #reTab tbody tr.mp-r { cursor:pointer; }
    #reTab td.num, .re-mini td.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
    #reTab tr.mp-tot td { font-weight:800; background:#F1F5F9; border-top:2px solid #CBD5E1; }
    #reTab tr.re-sub td { font-weight:700; background:#F8FAFC; }
    #reTab tr.re-str td { color:#B91C1C; }
    #reTab td .y0 { display:block; font-size:.7rem; color:var(--dash-muted); font-weight:500; }
    .re-grid > div { min-width:0; overflow-x:auto; }
    .re-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:.6rem 1.2rem; padding:.5rem 1rem .7rem 2rem; }
    .re-mini { width:100%; font-size:.76rem; }
    .re-mini th { font-size:.66rem; text-transform:uppercase; letter-spacing:.04em; color:var(--dash-muted); font-weight:800; padding:.25rem .35rem; text-align:right; white-space:nowrap; }
    .re-mini th:first-child, .re-mini td:first-child { text-align:left; }
    .re-mini td { padding:.2rem .35rem; border-top:1px solid var(--dash-border); }
    .re-mini tr.t td { font-weight:800; border-top:2px solid #CBD5E1; }
    .re-ind { display:flex; flex-wrap:wrap; gap:.4rem; padding:.2rem 1rem 0 2rem; }
    .re-ind > div { border:1px solid var(--dash-border); border-radius:8px; padding:.35rem .6rem; font-size:.72rem; background:#fff; }
    .re-ind b { display:block; font-size:.92rem; }
    #peTab tbody tr.mp-tot td, #peGr tbody tr.mp-tot td { font-weight:800; background:#F1F5F9; border-top:2px solid #CBD5E1; }
    #peTab td.num, #peGr td.num, .pe-mini td.num, #peF24 td.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
    .pe-mini { width:100%; font-size:.76rem; margin:.2rem 0 .5rem; }
    .pe-mini th { font-size:.66rem; text-transform:uppercase; letter-spacing:.04em; color:var(--dash-muted); font-weight:800; padding:.25rem .4rem; text-align:right; white-space:nowrap; }
    .pe-mini th:first-child, .pe-mini td:first-child { text-align:left; }
    .pe-mini td { padding:.22rem .4rem; border-top:1px solid var(--dash-border); }
    .pe-sub { font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--dash-muted); margin:.7rem 0 .2rem; }
    #peF24 tr.stima td { color:var(--dash-muted); font-style:italic; }
    #peF24 tr.anom td { background:#FFFBEB; }
    #gbTab tbody tr.mp-tot td { font-weight:800; background:#F1F5F9; border-top:2px solid #CBD5E1; }
    #gbTab td.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
    #svTab tbody tr.mp-tot td { font-weight:800; background:#F1F5F9; border-top:2px solid #CBD5E1; }
    #svTab td.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
    #rvTab td.num, #rvX td.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
    #mpTab tbody tr.mp-r.sel td { background:#FEF9C3; }
    #mpTab tbody tr.mp-tot td { font-weight:800; background:#F1F5F9; border-top:2px solid #CBD5E1; }
    #mpTab td.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
    .mp-lines { max-height:360px; overflow-y:auto; background:#FCFCFD; border-bottom:1px solid #EEF2F7; }
    .mp-line { display:grid; grid-template-columns:82px minmax(0,1fr) 96px; gap:.5rem; padding:.3rem 1.2rem .3rem 2.6rem; font-size:.76rem;
               border-bottom:1px solid #F1F5F9; color:#334155; }
    .mp-line .d { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .mp-line .v { text-align:right; font-variant-numeric:tabular-nums; }
    .mp-line .s { grid-column:2 / 3; font-size:.68rem; color:#94A3B8; margin-top:-.15rem; }
    @media (max-width: 640px) { .mp-line { grid-template-columns:64px minmax(0,1fr) 72px; padding-left:1rem; padding-right:.8rem; } }
    .cf-row { display:grid; grid-template-columns:minmax(0,1fr) 118px 118px 108px 62px; gap:.4rem; align-items:center; width:100%;
              padding:.45rem 1.2rem; border:0; border-bottom:1px solid #F1F5F9; background:none; text-align:left; font-size:.85rem; color:#0F172A; }
    .cf-row > span:not(:first-child) { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
    .cf-row .lbl { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .cf-row.exp { cursor:pointer; }
    .cf-row.exp:hover { background:#F8FAFC; }
    .cf-row.l2 { padding-left:2.4rem; font-size:.79rem; color:#334155; background:#FCFCFD; }
    .cf-row.hd { font-size:.7rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--dash-muted); background:#F8FAFC; }
    .cf-row.tot { font-weight:800; background:#F1F5F9; border-top:2px solid #CBD5E1; border-bottom:1px solid #CBD5E1; }
    .cf-row.big { font-size:.95rem; background:#F0FDF4; }
    .cf-row .up { color:#15803D; } .cf-row .down { color:#DC2626; }
    .cf-row.hd small { display:block; font-weight:600; letter-spacing:0; text-transform:none; }
    .cf-head { flex-wrap:wrap; }
    #cfBody .cf-row { grid-template-columns:minmax(0,1fr) 112px 54px 112px 54px 104px 56px; }
    #cfBody.con24 .cf-row { grid-template-columns:minmax(0,1fr) 104px 50px 112px 54px 112px 54px 104px 56px; }
    #cfBody .cf-row > span.b24 { color:#64748B; }
    .br-sel { display:flex; flex-wrap:wrap; gap:.4rem; padding:.2rem 1.2rem .8rem; }
    .br-sel button { border:1.5px solid #E2E8F0; background:#fff; border-radius:999px; padding:.3rem .8rem; font-size:.78rem; font-weight:700; color:#475569; }
    .br-sel button.on { background:#111; border-color:#111; color:#086AD8; }
    .br-sel button .m { font-weight:600; margin-left:.3rem; }
    .br-sel button .m.neg { color:#DC2626; } .br-sel button.on .m.neg { color:#FCA5A5; }
    .br-chart { position:relative; height:340px; padding:0 1.2rem; }
    .br-kpi { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.6rem; padding:.2rem 1.2rem .9rem; }
    .br-kpi > div { border:1px solid #E2E8F0; border-radius:10px; padding:.55rem .75rem; background:#F8FAFC; }
    .br-kpi .l { font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:#64748B; }
    .br-kpi .v { font-size:1.15rem; font-weight:800; } .br-kpi .s { font-size:.74rem; color:#64748B; }
    .br-tab { padding:.6rem 1.2rem 1rem; overflow-x:auto; }
    .br-row { display:grid; grid-template-columns:minmax(180px,1fr) 118px 62px 118px 62px 104px; gap:.4rem; align-items:center; padding:.42rem .5rem; border-bottom:1px solid #F1F5F9; font-size:.82rem; }
    .br-row > span:not(:first-child) { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
    .br-row.hd { font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:#64748B; background:#F8FAFC; }
    .br-row.tot { font-weight:800; background:#F1F5F9; border-top:2px solid #CBD5E1; }
    .br-row.big { font-size:.92rem; background:#F0FDF4; }
    .br-row .pc { color:#64748B; font-size:.74rem; }
    .br-row .up { color:#15803D; } .br-row .down { color:#DC2626; }
    .br-row.l2 { padding-left:1.6rem; color:#475569; font-size:.78rem; }
    .br-row.br-click { cursor:pointer; } .br-row.br-click:hover { background:#FFFBEB; }
    .br-det { background:#FAFAFA; border-left:3px solid #086AD8; margin:0 0 .3rem; }
    .br-row.br-l1 { padding-left:1.2rem; font-weight:700; font-size:.8rem; }
    .br-row.br-l2 { padding-left:1.8rem; font-size:.79rem; color:#334155; }
    .br-row.br-l3 { padding-left:3.2rem; font-size:.75rem; color:#64748B; border-bottom:1px dashed #F1F5F9; }
    @media (max-width: 820px) {
      .br-kpi { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; padding:.2rem .6rem .8rem; }
      .br-kpi .v { font-size:1rem; } .br-sel { padding:.2rem .6rem .8rem; } .br-sel button { padding:.25rem .6rem; font-size:.74rem; } .br-tab { padding:.6rem .4rem 1rem; }
      .br-chart { height:300px; padding:0 .4rem; }
      .br-row { grid-template-columns:minmax(150px,1fr) 104px 52px 104px 52px 92px; font-size:.76rem; }
    }
    #cfBody .cf-row > span.pc { color:var(--dash-muted); font-size:.74rem; }
    #cfBody .cf-row.l3 { padding-left:3.4rem; font-size:.76rem; color:#475569; background:#fff; border-bottom:1px dashed #F1F5F9; }
    #cfBody .cf-row.l3.muted .lbl { color:#94A3B8; font-style:italic; }
    #cfBody .cf-row.l2.exp { cursor:pointer; } #cfBody .cf-row.l2.exp:hover { background:#F8FAFC; }
    #cfBody .cf-row.tot > span.pc { color:#334155; }
    @media (max-width: 640px) {
      .cf-row { grid-template-columns:1fr 1fr 52px; row-gap:.1rem; padding-left:.8rem; padding-right:.8rem; font-size:.8rem; }
      .cf-row > span:first-child { grid-column:1 / -1; }
      .cf-row.hd > span:first-child { display:none; }
      .cf-row.l2 { padding-left:1.4rem; }
      .cf-row > span:nth-child(4) { display:none; }
      #cfBody .cf-row { grid-template-columns:1fr 40px 1fr 40px; }
      #cfBody.con24 .cf-row { grid-template-columns:1fr 40px 1fr 40px; }
      #cfBody .cf-row > span:nth-child(4) { display:block; }
      #cfBody .cf-row > span:nth-child(6), #cfBody .cf-row > span:nth-child(7) { display:none; }
      #cfBody.con24 .cf-row > span:nth-child(6), #cfBody.con24 .cf-row > span:nth-child(7) { display:block; }
      #cfBody.con24 .cf-row > span:nth-child(8) { display:none; }
      .cf-row .lbl { white-space:normal; }
    }
    .ae-kpi { display:grid; grid-template-columns:repeat(auto-fit, minmax(135px, 1fr)); gap:.5rem; padding:1rem 1.2rem .4rem; }
    .ae-kpi > div { border:1px solid var(--dash-border); border-radius:10px; padding:.6rem .75rem; background:#fff; }
    .ae-kpi .l { font-size:.68rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--dash-muted); }
    .ae-kpi .v { font-size:1.15rem; font-weight:800; font-variant-numeric:tabular-nums; margin-top:.15rem; white-space:nowrap; }
    .ae-kpi .s { font-size:.72rem; color:var(--dash-muted); }
    .ae-kpi .big { background:#F0FDF4; border-color:#BBF7D0; }
    .ae-kpi .big .v { font-size:1.4rem; }
    #aeTab tbody tr.ae-r { cursor:pointer; }
    #aeTab tbody tr.ae-r.sel td { background:#FEF9C3; }
    #aeTab tbody tr.ae-tot td { font-weight:800; background:#F1F5F9; border-top:2px solid #CBD5E1; }
    #aeTab td.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
    .ae-note { margin:.5rem 1.2rem 0; font-size:.78rem; color:#475569; line-height:1.45; }
    .ce2-margine { text-align:center; padding:1.1rem 1.2rem 1.2rem; }
    .ce2-margine .l { font-size:.72rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--dash-muted); }
    .ce2-margine .v { font-size:2rem; font-weight:900; margin-top:.15rem; }
    .ce2-margine .p { font-size:.8rem; color:var(--dash-muted); margin-top:.15rem; }

    
    .pn-catbil-col { display: none; }
    #tabPagamenti.catbil-visible .pn-catbil-col { display: table-cell; }
    #pnCatBilToggleBtn.active { background: #2B2418; color: #fff; border-color: #2B2418; }
    .catbil-select {
      font-size: .74rem; padding: 2px 4px; border-radius: 6px;
      border: 1px solid var(--dash-border); background: #fff; cursor: pointer;
    }
    .catbil-select.is-empty { color: var(--muted); border-style: dashed; }

    
    .dash-panel {
      background: #fff;
      border: 1px solid var(--dash-border);
      border-radius: var(--dash-radius);
      box-shadow: var(--dash-shadow-sm);
      padding: 1.15rem 1.25rem;
    }
    .dash-panel-head {
      display: flex; justify-content: space-between; align-items: center;
      margin-bottom: .9rem;
    }
    .dash-panel-title {
      font-size: .98rem; font-weight: 800; color: var(--dash-text);
      display: flex; align-items: center; gap: .45rem;
    }
    .dash-panel-title i { color: var(--dash-navy); }
    .dash-panel-sub { font-size: .78rem; color: var(--dash-muted); }

    
    .sec-home.dash-home-v2 {
      align-items: stretch;
      padding-top: 1.25rem;
    }
    .sec-home.dash-home-v2 .home-logo-wrap,
    .sec-home.dash-home-v2 .home-title,
    .sec-home.dash-home-v2 .home-sub { display: none; }

    
    @media (max-width: 720px) {
      .dash-hero { flex-direction: column; align-items: flex-start; }
      .dash-hero-filters { width: 100%; }
    }
  

    
    @media (max-width: 820px) {
      :root { --nav-h: 52px; }
      body { font-size: .85rem; }

      
      .app-nav {
        overflow-x: auto; overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 0 .6rem; gap: .5rem;
      }
      .app-nav::-webkit-scrollbar { display: none; }
      .nav-stats { display: none; }            
      .app-nav-brand span { display: none; }   
      .nav-pill-btn { padding: .45rem .8rem; } 

      
      .sec-wrap { padding: .8rem .6rem; }
      .sec-header { margin-bottom: .9rem; flex-wrap: wrap; row-gap: .5rem; }
      #systemAlerts { padding: .5rem .6rem 0; }

      
      .filters-bar { padding: .55rem .7rem; gap: .45rem; }
      .filters-bar .form-control,
      .filters-bar .form-select { min-width: 0; flex: 1 1 130px; }

      
      .table-responsive, .table-wrap, .proj-table-wrap {
        overflow-x: auto; -webkit-overflow-scrolling: touch;
      }
      .app-card { overflow-x: auto; }  
      .app-table thead th { padding: .55rem .6rem; }
      .app-table tbody td { padding-left: .6rem; padding-right: .6rem; }

      
      .cm-table-wrap { display: none; }
      .cm-cards-wrap { display: block; }

      
      .sec-home { padding: 1.2rem .8rem; }
      .home-stat-card { min-width: 128px; max-width: none; }

      
      .modal-dialog { margin: .5rem auto; max-width: calc(100vw - 1rem); }

      
      #grCEGrid       { grid-template-columns: repeat(2, 1fr) !important; gap: .75rem !important; padding: .8rem !important; }
      #riepContent    { grid-template-columns: 1fr !important; }

      
      #pnNuovaVoceModal .form-control,
      #pnNuovaVoceModal .form-select { font-size: 16px; padding: .5rem .65rem; } 
    }


  .cassa-riga { display:flex; justify-content:space-between; align-items:center; padding:.4rem 0; font-size:.86rem; border-bottom:1px solid var(--dash-border,#eee); }
  .cassa-riga:last-child { border-bottom:none; }
  .cassa-riga.cassa-tot { margin-top:.3rem; padding-top:.6rem; border-top:2px solid #ddd; border-bottom:none; font-size:.92rem; }
  .pa-gruppo { border-bottom:1px solid var(--dash-border,#eee); }
  .pa-gruppo-head { display:flex; justify-content:space-between; align-items:center; padding:.55rem .9rem; cursor:pointer; font-size:.86rem; }
  .pa-gruppo-head:hover { background:#F9FAFB; }
  .pa-gruppo-righe { display:none; padding:0 .9rem .6rem 1.6rem; }
  .pa-riga { display:flex; justify-content:space-between; font-size:.8rem; color:var(--dash-muted); padding:.2rem 0; }


  .ec-ric-gruppo-tabs { display:flex; gap:.5rem; border-bottom:2px solid var(--dash-border,#E5E7EB); padding-bottom:.6rem; }
  .ec-ric-gruppo-btn {
    border:none; background:#F1F5F9; color:#475569; font-weight:700; font-size:.85rem;
    padding:.5rem 1rem; border-radius:8px; cursor:pointer; transition:background .15s,color .15s;
  }
  .ec-ric-gruppo-btn:hover { background:#E2E8F0; }
  .ec-ric-gruppo-btn.active { background:#2B2418; color:#fff; }
  .ec-ric-sugg-card {
    display:flex; align-items:center; gap:.7rem; padding:.6rem .8rem;
    background:#FAF5FF; border:1px solid #E9D5FF; border-radius:8px; font-size:.83rem;
  }
  .ec-ric-sugg-card .ec-ric-sugg-icon {
    width:32px; height:32px; border-radius:8px; background:#EDE9FE; color:#7C3AED;
    display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:.95rem;
  }
  .ec-ric-sugg-conf { font-size:.68rem; font-weight:700; padding:.15rem .5rem; border-radius:20px; white-space:nowrap; }
  .ec-ric-sugg-conf.alta  { background:#DCFCE7; color:#15803D; }
  .ec-ric-sugg-conf.media { background:#FEF3C7; color:#B45309; }
  .ec-ric-sugg-conf.bassa { background:#FEE2E2; color:#B91C1C; }

  
  .ec-appr-card { background:#fff; border:1px solid var(--border); border-radius:10px; margin-bottom:1rem; overflow:hidden; }
  .ec-appr-head { padding:.8rem 1rem; background:#F8FAFC; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
  .ec-appr-head .descr { font-weight:600; font-size:.88rem; flex:1; min-width:200px; }
  .ec-appr-head .meta { font-size:.78rem; color:var(--muted); }
  .ec-appr-head .imp { font-weight:700; font-size:.95rem; }
  .ec-appr-cand { display:flex; align-items:center; gap:.7rem; padding:.65rem 1rem; border-top:1px solid #F1F5F9; font-size:.85rem; }
  .ec-appr-cand .lbl { flex:1; }
  .ec-appr-cand .lbl strong { display:block; }
  .ec-appr-cand .lbl .motivo { color:var(--muted); font-size:.78rem; margin-top:.15rem; }

  
  .pn-adv-field label { font-size:.74rem; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.4px; margin-bottom:.25rem; display:block; }


#saving-overlay {
  display: none; position: fixed; inset: 0; z-index: 9999;
  background: rgba(0,0,0,.75);
  align-items: center; justify-content: center; flex-direction: column; gap: 1rem;
  font-family: 'Segoe UI', system-ui, sans-serif;
}
#saving-overlay.visible { display: flex; }
#saving-overlay .sov-spinner {
  width: 44px; height: 44px;
  border: 4px solid rgba(8,106,216,.25); border-top-color: #086AD8;
  border-radius: 50%; animation: sov-spin .8s linear infinite;
}
@keyframes sov-spin { to { transform: rotate(360deg); } }
#saving-overlay .sov-msg { color: #086AD8; font-size: 1rem; font-weight: 700; }
#saving-overlay .sov-sub { color: rgba(255,255,255,.55); font-size: .82rem; }


  #waDialog, #waPwDialog, #waMenuDialog { border: none; border-radius: 14px; padding: 0; width: calc(100% - 32px); max-width: 440px;
              box-shadow: 0 18px 60px rgba(0,0,0,.35); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
  #waDialog::backdrop, #waPwDialog::backdrop, #waMenuDialog::backdrop { background: rgba(15,23,42,.55); }
  .wa-head { display:flex; align-items:center; justify-content:space-between; padding:14px 18px;
                       border-bottom:1px solid #E5E7EB; font-weight:800; font-size:1rem; color:#0F172A; }
  .wa-body { padding:16px 18px; color:#334155; font-size:.9rem; }
  .wa-x { background:none; border:none; font-size:1.3rem; line-height:1; cursor:pointer; color:#64748B; }
  .wa-dev { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0;
                      border-bottom:1px solid #F1F5F9; }
  .wa-dev small { color:#94A3B8; }
  .wa-row { display:flex; gap:8px; margin-top:12px; }
  #waDialog input, #waPwDialog input { flex:1; min-width:0; padding:.5rem .65rem; border:1px solid #CBD5E1; border-radius:8px; font-size:.9rem; }
  .wa-btn { padding:.5rem .9rem; border:none; border-radius:8px; background:#2B2418; color:#fff;
                      font-weight:700; font-size:.88rem; cursor:pointer; white-space:nowrap; }
  .wa-btn:disabled { opacity:.55; cursor:default; }
  .wa-del { background:none; border:1px solid #FCA5A5; color:#DC2626; border-radius:8px; padding:.25rem .6rem; cursor:pointer; }
  .wa-msg { margin-top:10px; font-size:.83rem; min-height:1.1em; }
  .wa-msg.err { color:#DC2626; } .wa-msg.ok { color:#15803D; }


  
  .fe-ov{position:fixed;inset:0;background:rgba(15,15,15,.55);z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px 12px;overscroll-behavior:contain}
  .fe-ov.fe-hidden{display:none}
  .fe-box{background:#fff;border-radius:14px;width:100%;max-width:920px;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.25);font-size:14px;color:#1a1a1a}
  .fe-box > .fe-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .fe-head{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid #eee;flex-wrap:wrap;flex:0 0 auto}
  .fe-scelte{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
  .fe-scelta{border:2px solid #eee;border-radius:14px;padding:16px;cursor:pointer;background:#fff;text-align:left;font:inherit;color:inherit}
  .fe-scelta:hover,.fe-scelta:focus{border-color:#111;background:#FFFBD6;outline:none}
  .fe-scelta b{display:block;font-size:16px;margin-bottom:6px}
  .fe-scelta .ico{font-size:26px;display:block;margin-bottom:8px}
  .fe-steps{display:flex;gap:4px;padding:10px 14px;border-bottom:1px solid #eee;overflow-x:auto;flex:0 0 auto;background:#FAFAFA}
  .fe-step{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:6px;border:0;background:none;padding:6px 4px;font:inherit;font-size:13px;color:#888;cursor:pointer;border-bottom:3px solid #e5e5e5;white-space:nowrap}
  .fe-step:disabled{cursor:default}
  .fe-step .n{flex:0 0 22px;height:22px;border-radius:50%;background:#e5e5e5;color:#555;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}
  .fe-step .t{overflow:hidden;text-overflow:ellipsis}
  .fe-step.on{color:#111;font-weight:700;border-bottom-color:#111}.fe-step.on .n{background:#111;color:#086AD8}
  .fe-step.ok{color:#11632e;border-bottom-color:#7cc79a}.fe-step.ok .n{background:#D9F2E1;color:#11632e}
  .fe-riga{border:1px solid #e5e5e5;border-radius:12px;padding:10px 12px;margin-bottom:10px;background:#FCFCFC}
  .fe-riga-a{display:grid;grid-template-columns:150px 1fr auto;gap:8px;align-items:end}
  .fe-riga-b{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:8px}
  .fe-cod input{font-family:monospace}
  .fe-pt{padding:8px 2px;font-weight:700;font-size:15px}
  .fe-riep{width:100%;border-collapse:collapse;font-size:13px}.fe-riep th{text-align:left;color:#666;font-weight:600;border-bottom:1px solid #eee;padding:4px}.fe-riep td{padding:4px;border-bottom:1px solid #f4f4f4}
  #feArtPop{position:fixed;z-index:2100;max-height:300px}
  [id^="feC_"]:not(#feC_pec){text-transform:uppercase}   
  .fe-passo{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#111;color:#086AD8;font-size:11px;margin-right:6px;vertical-align:1px}
  .fe-head h3{margin:0;font-size:18px;font-weight:700;flex:1;min-width:180px}
  .fe-badge{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;background:#eee}
  .fe-badge.prova{background:#FFF3CD;color:#7a5b00}
  .fe-b-bozza{background:#EEE}.fe-b-inviata{background:#DCEBFF;color:#0b4a99}.fe-b-consegnata{background:#D9F2E1;color:#11632e}
  .fe-b-mancata_consegna{background:#E7F0D9;color:#3d5a12}.fe-b-scartata{background:#FCDADA;color:#9b1c1c}
  .fe-body{padding:16px 18px}
  .fe-sec{border:1px solid #eee;border-radius:12px;padding:12px 14px;margin-bottom:12px}
  .fe-sec h4{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#666}
  .fe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 10px}
  .fe-f label{display:block;font-size:12px;color:#555;margin-bottom:3px}
  
  .fe-f input,.fe-f select,.fe-tab input,.fe-tab select,#feCercaCli{width:100%;box-sizing:border-box;border:1px solid #ccc;border-radius:8px;padding:7px 9px;font-size:16px;background:#fff}
  .fe-f input:focus,.fe-tab input:focus{outline:2px solid #086AD8;border-color:#111}
  .fe-btn{border:1px solid #ccc;background:#fff;border-radius:9px;padding:8px 14px;font-size:14px;cursor:pointer}
  .fe-btn:disabled{opacity:.5;cursor:default}
  .fe-btn.pri{background:#111;color:#086AD8;border-color:#111;font-weight:600}
  .fe-btn.war{background:#086AD8;border-color:#e6cf00;font-weight:600}
  .fe-btn.sm{padding:4px 10px;font-size:13px}
  .fe-foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid #eee;flex-wrap:wrap;flex:0 0 auto;background:#fff;border-radius:0 0 14px 14px}
  .fe-tab{width:100%;border-collapse:collapse;table-layout:fixed}
  .fe-tab col.c-cod{width:120px}.fe-tab col.c-desc{width:auto}.fe-tab col.c-q{width:70px}.fe-tab col.c-p{width:110px}.fe-tab col.c-iva{width:96px}.fe-tab col.c-tot{width:100px}.fe-tab col.c-x{width:40px}
  .fe-tab th{font-size:12px;color:#666;text-align:left;padding:4px;border-bottom:1px solid #eee}
  .fe-tab td{padding:4px;vertical-align:top}
  .fe-tab td.num{text-align:right;white-space:nowrap;padding-top:11px}
  .fe-tot{display:flex;gap:18px;justify-content:flex-end;margin-top:8px;font-size:15px}
  .fe-tot b{font-size:17px}
  .fe-warn{background:#FFF3CD;border-radius:9px;padding:8px 10px;margin-top:8px;font-size:13px}
  .fe-err{background:#FCDADA;color:#7f1414;border-radius:9px;padding:9px 11px;margin-bottom:10px}
  .fe-ok{background:#D9F2E1;color:#11632e;border-radius:9px;padding:9px 11px;margin-bottom:10px}
  .fe-ac{position:relative}
  .fe-ac-list{position:absolute;left:0;right:0;top:100%;background:#fff;border:1px solid #ddd;border-radius:9px;box-shadow:0 6px 18px rgba(0,0,0,.12);z-index:5;max-height:260px;overflow:auto}
  .fe-ac-list div{padding:8px 10px;cursor:pointer;border-bottom:1px solid #f3f3f3}
  .fe-ac-list .cod{font-family:monospace;font-weight:700;margin-right:6px}
  .fe-ac-list div:hover{background:#FFFBD6}
  .fe-small{font-size:12px;color:#666}
  .fe-list-row{display:grid;grid-template-columns:90px 92px 1fr 110px 120px;gap:8px;align-items:center;padding:8px 6px;border-bottom:1px solid #f0f0f0;cursor:pointer}
  .fe-list-row:hover{background:#FFFBD6}
  @media (max-width:640px){
    .fe-step .t{display:none}.fe-step.on .t{display:inline}
    .fe-riga-a{grid-template-columns:1fr auto}.fe-riga-a .fe-desc{grid-column:1/-1;order:3}
    .fe-ov{padding:0;align-items:stretch}.fe-box{border-radius:0;max-height:none;height:100vh;height:100dvh}
    .fe-foot{border-radius:0}
    .fe-head{flex-wrap:nowrap;padding:10px 12px;gap:6px}
    .fe-head h3{font-size:16px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .fe-head .fe-badge:not(.prova){display:none}
    .fe-tab,.fe-tab tbody{display:block}.fe-tab colgroup{display:none}
    .fe-tab thead{display:none}.fe-tab tr{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;border-bottom:1px solid #eee;padding:6px 0}
    .fe-tab td.c-desc{grid-column:1/-1}
    .fe-tab td.num{padding-top:4px;text-align:left}
    .fe-list-row{grid-template-columns:1fr 1fr}
    
    .fe-btn{min-height:44px}
    .fe-btn.sm{min-height:40px;padding:8px 12px;font-size:14px}
    #feBox input[type=checkbox]{width:22px;height:22px;flex:0 0 22px;margin:0}
    #feBox label:has(> input[type=checkbox]){min-height:40px}
    .fe-step.on{flex:4 1 auto}.fe-step.on .t{overflow:visible}
    
    .fe-riep,.fe-riep tbody{display:block}
    .fe-riep tr:first-child{display:none}
    .fe-riep tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding:8px 0;border-bottom:1px solid #eee}
    .fe-riep td:nth-child(1),.fe-riep td:nth-child(2){flex-basis:100%}
    .fe-riep td:nth-child(7){margin-left:auto}
    
    .fe-sec{position:relative}
    .fe-sec > button[onclick^="FE._vai"]{position:absolute;top:8px;right:8px;float:none!important}
    .fe-sec > button[onclick^="FE._vai"] + h4{padding-right:96px;min-height:28px}
    .fe-riep td{border:0;padding:0;font-size:14px}
    .fe-riep td:nth-child(1):empty{display:none}.fe-riep td:nth-child(1){font-size:12px;color:#888}
    .fe-riep td:nth-child(2){font-weight:600}
    .fe-riep td:nth-child(3)::before{content:'Q.tà ';color:#888}
    .fe-riep td:nth-child(4)::before{content:'× ';color:#888}
    .fe-riep td:nth-child(5):empty{display:none}.fe-riep td:nth-child(5)::before{content:'sc. ';color:#888}
    .fe-riep td:nth-child(6)::before{content:'IVA ';color:#888}
    .fe-riep td:nth-child(7){text-align:right;font-weight:700}
    .fe-riep td{white-space:nowrap}.fe-riep td:nth-child(1),.fe-riep td:nth-child(2){white-space:normal}
    .fe-tot{flex-wrap:wrap;gap:2px 12px;text-align:right}.fe-tot b{flex-basis:100%;text-align:right}
    .fe-foot{flex-wrap:nowrap;padding:10px 12px;gap:6px}
  }
  @media (max-width:420px){ .fe-lg{display:none} }
