/* ULA Engine — rifinitura grafica del 21/10/2026. Solo aspetto: nessun dato, nessun calcolo. */

/* Leggibilità: niente testi a 10px, contrasti sufficienti */
.lbl, .section-label, .kpi-card__label { font-size: 11px !important; color: var(--neutral-600) !important; }
.data-table th { font-size: 11px; color: var(--neutral-600); }
.nota { color: var(--neutral-600); }
.muted { color: var(--neutral-500); }
.sidebar__section { color: rgba(255,255,255,.55); font-size: 11px; }
.sidebar__item { color: rgba(255,255,255,.75); }
.sidebar__company-label { color: rgba(255,255,255,.55) !important; font-size: 11px !important; }
.sidebar__company-name { color: rgba(255,255,255,.85) !important; }
.sidebar__home-link { opacity: 1 !important; color: rgba(255,255,255,.55) !important; font-size: 11px !important; }

/* Campi e menu a tendina con lo stesso carattere e lo stesso bordo */
input, select, textarea, button { font-family: var(--font-body); }
select.inp, #az-anno {
  font-family: var(--font-body); font-size: var(--text-sm); color: var(--neutral-800);
  background: #fff; border: 1.5px solid var(--neutral-300); border-radius: var(--r-md);
}
#az-anno { padding: 3px 8px !important; margin: 0 4px; }
.inp:focus, select:focus { outline: none; border-color: var(--primary-500); box-shadow: 0 0 0 3px rgba(41,128,185,.15); }

/* Titoli */
.content__title { letter-spacing: -.01em; }
#az-title { font-size: 22px !important; line-height: 1.25; margin-bottom: 2px !important; }
.topbar__breadcrumb-current { max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Elenco aziende */
.dash td { vertical-align: middle !important; }
.dash td, .dash th { padding: 12px 12px !important; }
.dash tbody tr:hover td { background: var(--primary-50); }
.dash .az-nome { font-weight: 700; color: var(--primary-700); font-size: 14px; line-height: 1.3; }
.dash .az-meta { font-size: 12px; color: var(--neutral-500); margin-top: 3px; }
.dash .az-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.dash .chip { margin: 0; white-space: nowrap; }

/* Scheda azienda: pannello dei dati camerali */
details.reg > summary {
  cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px;
  padding: 14px 18px; background: #fff; border: 1px solid var(--neutral-200); border-radius: var(--r-lg);
  font-size: 14px; font-weight: 700; color: var(--neutral-700);
}
details.reg > summary::-webkit-details-marker { display: none; }
details.reg > summary::before { content: "▸"; color: var(--primary-600); font-size: 13px; transition: transform .15s; }
details.reg[open] > summary::before { transform: rotate(90deg); }
details.reg > summary .reg-sub { font-weight: 400; font-size: 13px; color: var(--neutral-500); }
details.reg[open] > summary { margin-bottom: var(--sp-4); }
details.cessate > summary { cursor: pointer; font-size: 13px; color: var(--neutral-600); padding: 6px 2px; }

/* Giro 2 (21/10/2026): schede Soci, Buste paga, Matrice, Risultati */
.sidebar__module-tag { font-size: 11px !important; }
.topbar__breadcrumb { color: var(--neutral-600); }
.topbar__breadcrumb-sep { color: var(--neutral-400); }
.soci-tab th, .tab-conf thead th { font-size: 11px !important; }
.m-ok { color: #14532d !important; }
.m-off { color: var(--neutral-600) !important; }
.mat th, .mat td { padding: 6px 5px !important; }
.mat td { font-variant-numeric: tabular-nums; }
.mat th.nm { min-width: 210px; }
.mat .badge { font-size: 11px; }
.mat .nm-note { font-size: 11px; color: #92400e; font-weight: 600; margin-top: 2px; line-height: 1.35; }
.mat .nm-note2 { font-size: 11px; color: var(--neutral-600); margin-top: 2px; line-height: 1.35; }
#xls-btn { background: var(--primary-600) !important; color: #fff !important; }
#xls-btn:hover:not(:disabled) { background: var(--primary-700) !important; }
.mat th[style*="--success-600"] { color: #166534 !important; }
.mat td[style*="--neutral-400"] { color: var(--neutral-500) !important; }
#az-profile .card div[style*="--neutral-400"] { color: var(--neutral-600) !important; }

/* Giro 3 (21/10/2026): esiti dei tre collaudi */
.topbar__actions { margin-left: auto; display: flex; gap: 8px; flex-shrink: 0; align-items: center; }
.topbar__title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar__hamburger { background: none; border: none; cursor: pointer; }
@media (max-width: 600px) { #btn-cambia-pw { padding: 4px 8px; font-size: 12px; } }
.topbar__breadcrumb-current { max-width: min(60vw, 700px); }
.sidebar__section, .sidebar__company-label, .sidebar__home-link { color: rgba(255,255,255,.72) !important; }
.sidebar__module-tag { color: rgba(255,255,255,.85) !important; }
/* pannello del Registro: testi leggibili */
#az-profile [style*="neutral-400"], #az-profile [style*="neutral-300"] { color: var(--neutral-600) !important; }
#az-profile [style*="font-size:9px"], #az-profile [style*="font-size:10px"] { font-size: 11px !important; }
#az-profile span[style*="#16a34a"] { color: #166534 !important; }
.kpi-card__val span { color: var(--neutral-600) !important; }
/* tabelle e note */
.tab-conf th { font-size: 11px !important; }
.mat sup { font-size: 11px; }
.nrif { display: inline-block; font-size: 11px; font-weight: 700; padding: 0 5px; margin-left: 4px; border-radius: 8px; background: #fff; border: 1px solid currentColor; vertical-align: 1px; }
/* bersagli comodi da toccare */
.btn--sm { min-height: 30px; }
#notice > button { min-width: 28px; min-height: 28px; }
.soci-tab td > button { min-width: 28px; min-height: 28px; }
.soci-tab input[type=checkbox] { width: 20px; height: 20px; }
#tab-matrice li .btn--sm { min-height: 28px; padding: 2px 10px !important; font-size: 12px !important; }
#az-perline .link { padding: 4px 2px; }
/* stessi bottoni per la stessa funzione */
#d-dc-salva { background: var(--primary-600); color: #fff; border-color: var(--primary-600); }
#d-dc-salva:hover:not(:disabled) { background: var(--primary-700); }
.btn--ghost[style*="danger"] { border-color: var(--danger-100, #f5c2bd) !important; }
.link:hover { color: var(--primary-800); }
details > summary:hover { background: var(--primary-50); }
/* elenco aziende su schermi medi */
@media (max-width: 1100px) {
  .dash .chip { white-space: normal; }
  .dash td[style*="min-width:170px"] { min-width: 140px !important; }
  .dash td[style*="min-width:240px"] { min-width: 170px !important; }
}
/* titolo della scheda su telefono */
@media (max-width: 600px) { #v-az > div:first-child { flex-direction: column; gap: .5rem !important; } }
.topbar__breadcrumb { min-width: 0; flex: 1 1 auto; overflow: hidden; }
.topbar__title { flex: 0 0 auto; max-width: 30%; }
@media (max-width: 1100px) {
  .dash td[style*="white-space:nowrap"], .dash td div[style*="white-space:nowrap"] { white-space: normal !important; }
  .dash td, .dash th { padding: 10px 8px !important; }
}
/* Giro con gli occhi (21/10/2026) */
.tab-conf thead th { text-transform: none !important; letter-spacing: 0 !important; font-size: 12px !important; }
.sidebar.mobile-open { box-shadow: 0 0 0 100vmax rgba(15,23,42,.35); }
@media (max-width: 700px) {
  .dash thead { display: none; }
  .dash, .dash tbody, .dash tr, .dash td { display: block; width: auto !important; min-width: 0 !important; max-width: none !important; }
  .dash tr { position: relative; padding: 12px 0; border-bottom: 1px solid var(--neutral-200); }
  .dash td { padding: 3px 14px !important; border: none !important; white-space: normal !important; }
  .dash td:last-child { position: absolute; top: 10px; right: 0; }
  .dash td:first-child { padding-right: 80px !important; }
  .dash td div[style*="white-space:nowrap"] { white-space: normal !important; }
}
@media (max-width: 900px) {
  .data-table-wrap { margin: 0 !important; border: 1px solid var(--neutral-200) !important; border-radius: var(--r-md) !important; }
}
@media (max-width: 700px) { #az-list .data-table-wrap { border: none !important; } }

/* Ridisegno della pratica (21/10/2026): intestazione unica, passi, numeri chiave, storico */
.section-label { font-size: 16px !important; font-weight: 650 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--neutral-800) !important; margin: 0 0 .85rem !important; }
.data-table th { text-transform: none !important; letter-spacing: 0 !important; font-size: 12px !important; font-weight: 600 !important; }
.az-head { background: #fff; border: 1px solid var(--neutral-200); border-radius: 14px; padding: 14px 22px 0; margin-bottom: 1.5rem; box-shadow: 0 1px 2px rgba(16,24,40,.05); }
.az-back { margin: 0 0 6px -10px; color: var(--neutral-600) !important; }
#az-title { font-size: 24px !important; font-weight: 700; letter-spacing: -.01em; line-height: 1.25; color: var(--neutral-900); }
.az-meta { margin-top: 4px; font-size: 13px; color: var(--neutral-600); }
.az-meta .dot { margin: 0 8px; color: var(--neutral-300); }
.az-per { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 12px; font-size: 13.5px; color: var(--neutral-700); }
.az-per__k { font-size: 12px; font-weight: 600; color: var(--neutral-600); padding: 2px 9px; background: var(--neutral-100); border-radius: 999px; }
.az-per .warn-t { color: #92400e; font-weight: 600; }
.az-per select { padding: 4px 8px; border: 1px solid var(--neutral-300); border-radius: 8px; background: #fff; font-size: 13px; }
.passi { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin: 16px -22px 0; padding: 0; border-top: 1px solid var(--neutral-200); }
.passo button { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: center; gap: 10px; width: 100%; height: 100%; padding: 12px 16px 11px; border-bottom: 3px solid transparent; }
.passo + .passo button { border-left: 1px solid var(--neutral-100); }
.passo button:hover { background: var(--neutral-50); }
.passo button:focus-visible { outline: 2px solid var(--primary-600); outline-offset: -2px; }
.passo.attivo button { border-bottom-color: var(--primary-600); background: var(--primary-50); }
.passo:first-child button { border-bottom-left-radius: 13px; }
.passo:last-child button { border-bottom-right-radius: 13px; }
.passo__n { flex: 0 0 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; background: var(--neutral-100); color: var(--neutral-600); }
.passo__n svg { width: 14px; height: 14px; stroke-width: 3; }
.passo--ok .passo__n { background: #dcfce7; color: #166534; }
.passo--warn .passo__n { background: #fef3c7; color: #92400e; }
.passo__t { display: flex; flex-direction: column; min-width: 0; }
.passo__l { font-size: 13.5px; font-weight: 600; color: var(--neutral-800); }
.passo__s { font-size: 12px; color: var(--neutral-500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.passo--warn .passo__s { color: #92400e; }
@media (max-width: 900px) { .passi { display: flex; overflow-x: auto; } .passo { flex: 0 0 auto; } .passo button { padding: 10px 14px; } }
@media (max-width: 700px) { .az-head { padding: 10px 14px 0; } .passi { margin: 12px -14px 0; } .passo__s { display: none; } #az-title { font-size: 20px !important; } }
.kpi-ris { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin: 0 0 1rem; }
.kpi-t { background: #fff; border: 1px solid var(--neutral-200); border-radius: 12px; padding: 14px 16px; }
.kpi-t__l { font-size: 12px; font-weight: 600; color: var(--neutral-600); }
.kpi-t__v { font-size: 28px; font-weight: 700; color: var(--neutral-900); font-variant-numeric: tabular-nums; margin-top: 4px; line-height: 1.1; }
.kpi-t__s { font-size: 12px; color: var(--neutral-500); margin-top: 3px; }
.kpi-t--ok { border-color: #bbf7d0; background: #f0fdf4; } .kpi-t--ok .kpi-t__v { color: #166534; }
.kpi-t--warn { border-color: #fde68a; background: #fffbeb; } .kpi-t--warn .kpi-t__v { color: #92400e; }
.ris-stato { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--neutral-600); margin: 0 0 12px; }
.ris-stato svg { width: 15px; height: 15px; color: #16a34a; flex: 0 0 auto; }
details.aiuto { margin-top: .75rem; font-size: 13px; }
details.aiuto > summary { cursor: pointer; color: var(--primary-700); font-weight: 500; }
details.aiuto[open] > summary { margin-bottom: 4px; }
.st-card { background: #fff; border: 1px solid var(--neutral-200); border-radius: 12px; padding: 16px 18px; margin-bottom: 14px; }
.st-h { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.st-h h3 { margin: 0; font-size: 15px; font-weight: 650; color: var(--neutral-800); }
.st-h .muted { font-size: 12px; }
.st-az { display: flex; justify-content: flex-end; margin-top: 8px; }
#st-note { width: 100%; min-height: 72px; resize: vertical; font: inherit; font-size: 14px; line-height: 1.5; box-sizing: border-box; }
.st-tab td { vertical-align: top; }
.st-nome { font-weight: 600; word-break: break-word; }
.st-tab .nota { font-weight: 400; margin: 2px 0 0; }
.st-dl { text-align: right; white-space: nowrap; }
.st-card .btn svg { width: 14px; height: 14px; }
.st-sub { margin-top: 12px; font-size: 13px; } .st-sub > summary { cursor: pointer; color: var(--neutral-700); font-weight: 600; margin-bottom: 6px; }
.st-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.st-2 h4 { margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--neutral-600); }
@media (max-width: 1100px) { .st-2 { grid-template-columns: 1fr; } }
.attivita { list-style: none; margin: 0; padding: 0; }
.attivita li { display: flex; align-items: flex-start; gap: 10px; padding: 9px 0; border-top: 1px solid var(--neutral-100); font-size: 13.5px; }
.attivita li:first-child { border-top: 0; padding-top: 2px; }
.attivita .ico { flex: 0 0 28px; height: 28px; border-radius: 8px; background: var(--neutral-100); display: grid; place-items: center; color: var(--neutral-600); }
.attivita .ico svg { width: 15px; height: 15px; }
.attivita .chi { font-size: 12px; color: var(--neutral-500); margin-top: 1px; }

.az-back { border-color: transparent !important; background: transparent !important; padding-left: 8px !important; }
.az-back:hover { background: var(--neutral-100) !important; }
.lbl { text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; font-weight: 600 !important; color: var(--neutral-700) !important; }
.st-tab td { padding-top: 9px !important; padding-bottom: 9px !important; }
.st-data { white-space: nowrap; }
.passo--todo .passo__n { background: var(--neutral-100); color: var(--neutral-500); }

/* Ridisegno, secondo giro (21/10/2026): elenco, Anagrafica, Buste paga, Matrice */
.btn:disabled, .btn[disabled] { opacity: 1 !important; background: var(--neutral-100) !important; color: var(--neutral-400) !important; border-color: var(--neutral-200) !important; box-shadow: none !important; cursor: not-allowed !important; }
.dash td.ult { font-size: 12.5px; white-space: normal; min-width: 130px; }
.dash td.apri { width: 36px; text-align: right; }
.dash td.apri a { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; color: var(--neutral-500); }
.dash tr:hover td.apri a { background: var(--primary-50); color: var(--primary-700); }
.dash td.apri svg { width: 18px; height: 18px; }
.lul-n { display: inline-block; margin-top: 4px; font-size: 12px; font-weight: 600; }
.lul-n.ok { color: #166534; } .lul-n.warn { color: #92400e; }
.puntini { display: flex; gap: 4px; margin-top: 7px; }
.puntini .pt { width: 22px; height: 5px; border-radius: 3px; background: var(--neutral-200); }
.puntini .pt.ok { background: #4ade80; } .puntini .pt.w { background: #fbbf24; }
.reg-vuoto { padding: 14px 16px; border: 1px dashed var(--neutral-300); border-radius: 12px; font-size: 13.5px; color: var(--neutral-600); background: #fff; }
.btn-togli { color: var(--neutral-600) !important; border-color: var(--neutral-200) !important; }
.btn-togli:hover { color: #b91c1c !important; border-color: #fecaca !important; background: #fef2f2 !important; }
.avv-l { list-style: none; margin: 4px 0 0; padding: 0; }
.avv-l li { display: flex; gap: 14px; align-items: flex-start; justify-content: space-between; padding: 9px 0; border-top: 1px solid #fde68a; line-height: 1.55; font-size: 13.5px; }
.avv-l li button { flex: 0 0 auto; white-space: nowrap; background: #fff !important; }
@media (max-width: 700px) { .avv-l li { flex-direction: column; gap: 6px; } .dash td.apri { display: none; } }
@media (max-width: 700px) { .kpi-ris { grid-template-columns: 1fr 1fr; gap: 8px; } .kpi-t { padding: 10px 12px; } .kpi-t__v { font-size: 22px; } }

/* Terzo giro (21/10/2026): una sola navigazione, niente titoli ripetuti */
#sb-az-section, .sidebar__item[data-v]:not([data-v="dash"]) { display: none !important; }
#top-title { display: none !important; }
#tab-soci > .section-label:first-child, #tab-matrice > .section-label:first-child, #tab-risultati > .section-label:first-child, #tab-storico > .section-label:first-child { display: none !important; }
#tab-anagrafica, #tab-soci, #tab-buste, #tab-matrice, #tab-risultati, #tab-storico { padding-top: 2px; }
.passi { grid-template-columns: repeat(5, minmax(0, 1fr)) minmax(0, .8fr); }
.passo--warn .passo__n { font-size: 14px; font-weight: 800; }
.passo--todo .passo__n { background: #fff; border: 2px solid var(--neutral-300); box-sizing: border-box; }
.passo--sto .passo__n { background: var(--neutral-100); color: var(--neutral-600); }
.passo--sto button { border-left: 1px solid var(--neutral-200) !important; }

/* Allineamento dei moduli (21/10/2026): etichette su una riga, campi e pulsanti alla stessa altezza */
.lbl { line-height: 18px !important; margin-bottom: 6px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inp { height: 38px; }
textarea.inp { height: auto; }
.btn-al { padding-top: 24px; }
.btn-al .btn { height: 38px; }

.oppure { padding-top: 24px; line-height: 38px; }
@media (max-width: 700px) { .btn-al { padding-top: 0; align-self: flex-end; } .oppure { padding-top: 0; line-height: 1.4; } }
#new-az .section-label { margin-top: 1.75rem !important; }
.dash th { white-space: nowrap; }
#tab-soci > div > .btn, #tab-soci .btn--sm, #soci-salva { height: 38px; }

/* Imprese ed elaborazioni (21/10/2026) */
.az-head--imp { padding-bottom: 16px; }
#v-impresa .st-card { margin-top: 0; }
#v-impresa .st-h { align-items: center; }
#v-impresa .st-h .btn svg { width: 14px; height: 14px; }
.nuova-elab { background: var(--neutral-50); border: 1px solid var(--neutral-200); border-radius: 10px; padding: 14px 16px; margin: 4px 0 14px; }
.chk { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; margin-top: 10px; line-height: 1.45; }
.chk input { margin-top: 3px; }
.elab .az-nome { font-size: 14px; }
#imp-meta .link { margin-left: 10px; }

.imp-reg { margin-bottom: 14px; }
.imp-reg .reg-vuoto { background: #fff; }
.st-h--imp .muted { white-space: nowrap; }
@media (max-width: 700px) { .st-h--imp { flex-wrap: wrap; } .st-h--imp .btn { white-space: nowrap; } }

.avv-d { flex: 1; min-width: 0; }
.avv-d > summary { cursor: pointer; list-style: none; font-weight: 500; color: var(--neutral-800); }
.avv-d > summary::-webkit-details-marker { display: none; }
.avv-d > summary .link { font-weight: 400; font-size: 12.5px; margin-left: 6px; }
.avv-d[open] > summary .link { display: none; }
.avv-d > div { margin-top: 4px; color: var(--neutral-700); font-weight: 400; }
