:root {
  /* Identita' FastFinance (evoluzione 2026-11): blu, superfici bianche, bordi sottili */
  --sfondo: #f4f6fa;
  --superficie: #ffffff;
  --bordo: #e1e7f0;
  --testo: #13243c;
  --tenue: #5d6d83;
  --accento: #1f5dd2;
  --accento-scuro: #174aa8;
  --accento-tenue: #eaf1fd;
  --allarme: #b42318;
  --allarme-tenue: #fdecea;
  --attenzione: #9a5b00;
  --attenzione-tenue: #fff4e0;
  --positivo: #1b7a3d;
  --positivo-tenue: #e8f6ed;
  --raggio: 10px;
  font-family: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  color: var(--testo);
  background: var(--sfondo);
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--sfondo); }
[hidden] { display: none !important; }
.tenue { color: var(--tenue); }
.errore { color: var(--allarme); background: var(--allarme-tenue); padding: 8px 12px; border-radius: 6px; }

button {
  font: inherit; cursor: pointer; border: 0; border-radius: 6px;
  padding: 10px 16px; background: var(--accento); color: #fff; font-weight: 600;
}
button:disabled { opacity: .6; cursor: not-allowed; }
button.secondario { background: transparent; color: var(--accento); border: 1px solid var(--bordo); padding: 6px 12px; }

/* Accesso */
.login { min-height: 100vh; display: grid; place-items: center; padding: 16px; }
.login-card {
  width: 100%; max-width: 360px; background: var(--superficie); border: 1px solid var(--bordo);
  border-radius: var(--raggio); padding: 32px; display: grid; gap: 16px;
}
.login-card h1 { margin: 0; font-size: 24px; }
.login-card .sotto { margin: -12px 0 8px; color: var(--tenue); }
.login-card label { display: grid; gap: 6px; font-size: 14px; color: var(--tenue); }
.login-card input, .login-card select {
  font: inherit; padding: 10px 12px; border: 1px solid var(--bordo); border-radius: 6px; color: var(--testo);
}
.login-card input:focus, .login-card select:focus { outline: 2px solid var(--accento); outline-offset: 1px; }

/* Applicazione */
.app { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; }
.menu {
  background: var(--superficie); border-right: 1px solid var(--bordo);
  display: flex; flex-direction: column; padding: 20px 12px; gap: 2px;
}
.marchio { font-weight: 700; font-size: 18px; padding: 0 12px 16px; }
.voce { display: flex; justify-content: space-between; align-items: center; padding: 9px 12px; border-radius: 6px; text-decoration: none; color: var(--testo); font-size: 14px; }
.voce.attiva { background: var(--accento-tenue); color: var(--accento); font-weight: 600; }
.voce.disattiva { color: var(--tenue); cursor: default; }
.voce em { font-style: normal; font-size: 11px; border: 1px solid var(--bordo); border-radius: 10px; padding: 1px 7px; }
.utente { margin-top: auto; padding: 16px 12px 0; border-top: 1px solid var(--bordo); display: grid; gap: 4px; font-size: 14px; }
.utente button { justify-self: start; margin-top: 8px; }

.contenuto { padding: 28px 32px; max-width: 1200px; }
.testata { display: flex; align-items: baseline; gap: 16px; margin-bottom: 20px; }
.testata h2 { margin: 0; font-size: 22px; }
.riquadri { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.riquadro { background: var(--superficie); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 18px 20px; }
.riquadro h3 { margin: 0; font-size: 13px; font-weight: 600; color: var(--tenue); text-transform: uppercase; letter-spacing: .03em; }
.riquadro .valore { margin: 10px 0 4px; font-size: 28px; font-weight: 700; font-variant-numeric: tabular-nums; }
.riquadro .nota { margin: 0; font-size: 13px; color: var(--tenue); }
.riquadro.evidenza { border-color: var(--accento); box-shadow: inset 4px 0 0 var(--accento); }
.riquadro.allarme { border-color: var(--allarme); box-shadow: inset 4px 0 0 var(--allarme); }
.riquadro.allarme .valore { color: var(--allarme); }
.piede { margin-top: 28px; font-size: 13px; }

/* ---- Fase 1a: navigazione, selettore attivita', elenchi e schede ---- */
.voce { cursor: pointer; }
.selettore-org { display: grid; gap: 4px; padding: 0 12px 16px; margin-bottom: 8px; border-bottom: 1px solid var(--bordo); font-size: 12px; }
.selettore-org select { font: inherit; font-size: 14px; padding: 6px 8px; border: 1px solid var(--bordo); border-radius: 6px; color: var(--testo); background: var(--superficie); }
.etichetta { justify-self: start; font-size: 11px; padding: 2px 8px; border-radius: 10px; border: 1px solid var(--bordo); color: var(--tenue); }
.etichetta.forfettario { border-color: #b26a00; color: #8a5200; background: #fff4e0; }
.etichetta.ordinario { border-color: var(--accento); color: var(--accento); background: var(--accento-tenue); }

.testata { justify-content: space-between; }
.filtri { display: flex; gap: 12px; align-items: center; margin-bottom: 16px; flex-wrap: wrap; }
.filtri input[type=search] { flex: 1; min-width: 240px; }
.filtri input, .in-linea-form input, .filtri select, .griglia input, .griglia select, .griglia textarea {
  font: inherit; font-size: 14px; padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 6px; color: var(--testo); background: var(--superficie);
}
.spunta { display: flex !important; align-items: center; gap: 6px; font-size: 14px; color: var(--testo); }
.spunta input { width: auto; }

.due-colonne { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 440px); gap: 16px; align-items: start; }
.due-colonne:has(.dettaglio[hidden]) { grid-template-columns: 1fr; }
.elenco { background: var(--superficie); border: 1px solid var(--bordo); border-radius: var(--raggio); overflow: auto; max-height: calc(100vh - 190px); }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th { text-align: left; font-size: 12px; color: var(--tenue); font-weight: 600; padding: 10px 12px; border-bottom: 1px solid var(--bordo); position: sticky; top: 0; background: var(--superficie); }
td { padding: 9px 12px; border-bottom: 1px solid var(--bordo); }
tbody tr { cursor: pointer; }
tbody tr:hover { background: var(--sfondo); }
tbody tr.scelta { background: var(--accento-tenue); }
tbody tr.spento td { color: var(--tenue); text-decoration: line-through; }
.vuoto { padding: 16px; margin: 0; }

.dettaglio { background: var(--superficie); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 20px; max-height: calc(100vh - 140px); overflow: auto; }
.dettaglio h3 { margin: 0 0 16px; font-size: 17px; }
.griglia { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.griglia label { display: grid; gap: 4px; font-size: 12px; color: var(--tenue); }
.griglia .intera { grid-column: 1 / -1; }
.azioni { display: flex; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
button.pericolo { color: var(--allarme); border-color: var(--allarme-tenue); margin-left: auto; }

.contatti { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--bordo); }
.contatti ul { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 8px; }
.contatti li { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 6px; }
.azioni-riga { display: flex; gap: 6px; align-items: start; }
.azioni-riga button { padding: 4px 8px; font-size: 12px; }
.griglia label { min-width: 0; }
.griglia input, .griglia select, .griglia textarea { width: 100%; min-width: 0; }
.menu { position: sticky; top: 0; height: 100vh; overflow: auto; }

/* ---- Fase 1b: trattative, agenda ---- */
.senza-margine { margin: 0; }
.voce em.avviso { background: var(--allarme); color: #fff; border-color: var(--allarme); font-weight: 600; }
a.riquadro.collegamento { text-decoration: none; color: inherit; display: block; }
a.riquadro.collegamento:hover { border-color: var(--accento); }

.kanban { display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); gap: 10px; align-items: start; overflow-x: auto; }
.colonna { background: var(--superficie); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 10px; display: grid; gap: 8px; min-height: 120px; }
.colonna header { font-size: 13px; display: flex; justify-content: space-between; gap: 6px; flex-wrap: wrap; padding-bottom: 6px; border-bottom: 3px solid var(--bordo); }
.colonna.fase-in_corso header { border-color: #7aa7e6; }
.colonna.fase-preventivo header { border-color: var(--accento); }
.colonna.fase-vinta header { border-color: #2e8b57; }
.colonna.fase-persa header { border-color: #9aa3ad; }
.scheda-trattativa { border: 1px solid var(--bordo); border-radius: 8px; padding: 8px 10px; font-size: 13px; cursor: pointer; display: grid; gap: 3px; background: var(--superficie); }
.scheda-trattativa:hover { border-color: var(--accento); }
.scheda-trattativa.scelta { background: var(--accento-tenue); border-color: var(--accento); }
.scheda-trattativa .prossima { font-size: 12px; color: var(--accento); }
.fase-vinta .scheda-trattativa, .fase-persa .scheda-trattativa { opacity: .75; }

.schede { display: flex; gap: 4px; background: var(--superficie); border: 1px solid var(--bordo); border-radius: 8px; padding: 3px; }
.scheda { background: transparent; color: var(--tenue); padding: 6px 14px; font-weight: 500; }
.scheda.attiva { background: var(--accento-tenue); color: var(--accento); font-weight: 600; }
.scheda:hover:not(:disabled) { background: var(--accento-tenue); color: var(--accento); }

.lista-attivita { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 6px; }
.lista-attivita li { display: flex; gap: 10px; align-items: start; padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 6px; font-size: 14px; }
.lista-attivita.grande li { border: 0; border-bottom: 1px solid var(--bordo); border-radius: 0; padding: 12px 14px; }
.lista-attivita .corpo { flex: 1; cursor: pointer; display: grid; gap: 2px; }
.lista-attivita .tipo { font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--tenue); border: 1px solid var(--bordo); border-radius: 10px; padding: 1px 7px; }
.lista-attivita li.ritardo { border-left: 4px solid var(--allarme); }
.lista-attivita li.ritardo .tenue { color: var(--allarme); }
.lista-attivita li.fatta strong { text-decoration: line-through; color: var(--tenue); }
.lista-attivita .spunta input { width: 18px; height: 18px; margin-top: 2px; }

/* ---- Fase 1c: articoli e listini ---- */
.testata .schede { margin-left: auto; }
th.num, td.num { text-align: right; white-space: nowrap; }
.due-colonne:has(.dettaglio.largo:not([hidden])) { grid-template-columns: minmax(0, 1fr) minmax(420px, 560px); }
table.compatta { font-size: 13px; margin-bottom: 12px; }
table.compatta td, table.compatta th { padding: 6px 8px; }
table.compatta tbody tr { cursor: default; }
input.cella { width: 90px; text-align: right; font: inherit; font-size: 13px; padding: 4px 6px; border: 1px solid var(--bordo); border-radius: 4px; }
input.cella.corta { width: 60px; }
button.piccolo { padding: 2px 8px; font-size: 14px; margin: 0; }
.riga-aggiungi { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.riga-aggiungi input, .riga-aggiungi select { font: inherit; font-size: 14px; padding: 7px 9px; border: 1px solid var(--bordo); border-radius: 6px; }
.riga-aggiungi select { flex: 1; min-width: 200px; }
.riga-aggiungi input { width: 110px; }
#ca-form input { flex: 1; max-width: 420px; width: auto; }
.elenco.stretto { max-width: 640px; }
.lista-semplice { list-style: none; margin: 0; padding: 0; }
.lista-semplice li { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--bordo); font-size: 14px; }
#ar-lista-listini li { align-items: center; }
input.cella.larga { width: auto; flex: 1; text-align: left; font-size: 14px; }
.griglia label.spunta { display: flex !important; flex-direction: row; align-items: center; gap: 8px; color: var(--testo); font-size: 14px; }
.griglia input[type=checkbox] { width: 16px; height: 16px; flex: none; padding: 0; }
#ar-margine:empty { display: none; }
#ar-margine { margin: 0; }

/* ---- Fase 2a: documenti, impostazioni, stampa ---- */
.riquadro.modulo { margin-bottom: 14px; }
.griglia.tre { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.griglia .doppia { grid-column: span 2; }
.stretto { max-width: 720px; }
input.corto { width: 90px; }
.avviso-blu { background: var(--accento-tenue); color: var(--accento); padding: 10px 14px; border-radius: 8px; margin: 0 0 14px; font-size: 14px; }
.ok { color: #1f7a45; background: #e6f4ec; padding: 8px 12px; border-radius: 6px; margin: 0; }
.piccola { font-size: 13px; }
.campo { display: grid; gap: 4px; font-size: 12px; color: var(--tenue); margin-bottom: 10px; }
.campo textarea { font: inherit; font-size: 14px; padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 6px; }
.due-colonne.fisse { grid-template-columns: minmax(0, 1fr) 380px; }
table.righe-doc { font-size: 13px; margin-bottom: 10px; }
table.righe-doc th, table.righe-doc td { padding: 4px 4px; border-bottom: 1px solid var(--bordo); }
table.righe-doc tbody tr { cursor: default; }
table.righe-doc tbody tr:hover { background: transparent; }
table.righe-doc input, table.righe-doc select { width: 100%; font: inherit; font-size: 13px; padding: 5px 6px; border: 1px solid var(--bordo); border-radius: 4px; background: var(--superficie); color: var(--testo); }
table.righe-doc input.num { text-align: right; }
table.righe-doc input:disabled, table.righe-doc select:disabled { background: var(--sfondo); color: var(--testo); }
.c-art { width: 150px; } .c-q { width: 70px; } .c-um { width: 60px; } .c-p { width: 95px; } .c-s { width: 60px; } .c-iva { width: 120px; } .c-imp { width: 100px; }
.c-iva-box { display: flex; gap: 4px; align-items: center; }
.totali table td { border: 0; padding: 4px 6px; }
.totale-doc { display: flex; justify-content: space-between; align-items: baseline; border-top: 2px solid var(--testo); margin-top: 8px; padding-top: 10px; font-size: 16px; }
.totale-doc strong { font-size: 22px; font-variant-numeric: tabular-nums; }
#d-collegati a { color: var(--accento); }
.riquadro.modulo label { color: var(--tenue); }
#stampa { display: none; }

@media print {
  html, body { background: #fff !important; }
  body > *:not(#stampa) { display: none !important; }
  #stampa { display: block !important; color: #000; font-size: 11pt; font-family: "Segoe UI", Arial, sans-serif; }
  #stampa h1 { font-size: 16pt; margin: 0 0 4px; }
  #stampa h2 { font-size: 13pt; margin: 18px 0 8px; }
  #stampa p { margin: 2px 0; }
  .st-testa { display: flex; justify-content: space-between; gap: 24px; }
  .st-dest { border: 1px solid #999; padding: 8px 12px; min-width: 240px; }
  .st-et { font-size: 9pt; color: #555; }
  .st-righe, .st-totali { width: 100%; border-collapse: collapse; margin-top: 10px; }
  .st-righe th, .st-righe td { border-bottom: 1px solid #ccc; padding: 4px 6px; text-align: left; position: static; }
  .st-righe .num, .st-totali .num { text-align: right; }
  .st-totali { width: 50%; margin-left: auto; }
  .st-totali td { padding: 3px 6px; }
  .st-tot td { border-top: 2px solid #000; font-weight: 700; font-size: 12pt; }
  .st-note { margin-top: 10px !important; font-size: 9.5pt; }
  .st-piede { margin-top: 24px !important; font-size: 8.5pt; color: #555; border-top: 1px solid #ccc; padding-top: 6px; }
}

/* ---- Fase 2b: scadenziario ---- */
.riquadri.tre-colonne { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.spazio-sopra { margin-top: 18px; }
.etichetta.ritardo { border-color: var(--allarme); color: var(--allarme); background: var(--allarme-tenue); }
.riga-totale td { border-top: 2px solid var(--testo); font-weight: 700; }
.sotto-titolo { margin: 16px 0 4px !important; font-size: 15px !important; }
.lista-semplice.bordata li { padding: 8px 4px; }
.lista-semplice li.annullato > span:first-child { color: var(--tenue); text-decoration: line-through; }
.etichetta.ritardo { white-space: nowrap; }
.scelta-importo { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
button.piccolo-testo { padding: 4px 10px; font-size: 12px; }

/* ---- Fase 3: Prospect Finder ---- */
.voce em.info { background: var(--accento); color: #fff; border-color: var(--accento); font-weight: 600; }
.c-sel { width: 36px; }
.barra-azioni { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; background: var(--accento-tenue); border-radius: 8px; padding: 8px 12px; margin-bottom: 12px; }
.barra-azioni button { padding: 7px 12px; }
.esito { font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 10px; border: 1px solid var(--bordo); white-space: nowrap; }
.esito.nuovo { color: #1f7a45; border-color: #9fd3b4; background: #e6f4ec; }
.esito.dubbio { color: #8a5200; border-color: #f0c27a; background: #fff4e0; }
.esito.presente { color: var(--tenue); }
.avviso-dati { color: #8a5200; }
.scorri { overflow-x: auto; margin: 10px 0; }
#pf-mappa { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#pf-esito { margin-top: 12px; }
.barra-azioni button.secondario { background: #fff; }
.barra-azioni button.pericolo { border-color: var(--allarme); font-weight: 600; }
.spunta[hidden], .griglia label.spunta[hidden] { display: none !important; }
/* Fase 4a: conti e movimenti */
.riquadro.conto { cursor: pointer; }
.riquadro.conto.scelto { border-color: var(--accento); box-shadow: inset 4px 0 0 var(--accento); }
.riquadro.conto.spento { opacity: .6; }
.riquadro.conto .valore.negativo, td.negativo { color: var(--allarme); }
.riquadro.conto .modifica { float: right; padding: 2px 8px; font-size: 12px; }
td.entrata { color: #1f7a45; }
.avviso-pagina { margin-bottom: 16px; }
label.in-linea { display: flex; flex-direction: row; align-items: center; gap: 6px; white-space: nowrap; }
label.in-linea input { width: auto; }
tr.annullato td:nth-child(-n+4) { color: var(--tenue); text-decoration: line-through; }
/* Fase 4b: acquisti */
.due-colonne-fisse { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 420px); gap: 16px; }
.in-linea-form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.in-linea-form input { flex: 1; }
a.bottone { display: inline-block; text-decoration: none; padding: 8px 14px; border-radius: 6px; border: 1px solid var(--bordo); color: var(--accento); font-weight: 600; }
details.riquadro summary { cursor: pointer; }
#ac-categorie li { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
#ac-categorie li.spento > span:first-child { color: var(--tenue); text-decoration: line-through; }
#ac-categorie input { flex: 1; }
/* Fase 4c: spese ricorrenti */
.intestazione-elenco { padding: 12px 12px 0; margin: 0; }
tr.scaduta td:first-child { color: var(--allarme); font-weight: 600; }
/* Fase 4d: flusso di cassa e report */
#fi-grafico { width: 100%; height: 240px; display: block; }
.valore.entrata { color: #1f7a45; }
.valore.negativo { color: var(--allarme); }
td.negativo { color: var(--allarme); }
.barra-soglia { height: 14px; background: var(--sfondo); border: 1px solid var(--bordo); border-radius: 8px; overflow: hidden; margin: 8px 0; }
.barra-soglia div { height: 100%; background: var(--accento); }
.barra-soglia div.attenzione { background: #d98a00; }
.barra-soglia div.oltre { background: var(--allarme); }
tr.totale td { font-weight: 700; border-top: 2px solid var(--testo); }
.l36 { width: 36%; } .l26 { width: 26%; } .l14 { width: 14%; } .l10 { width: 10%; } .l12 { width: 12%; }
/* Fase 4e: estratto conto */
.lista-estratto { display: grid; gap: 10px; }
.riga-estratto { background: var(--superficie); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 12px 14px; }
.riga-estratto .testa { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.riga-estratto .importo { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.riga-estratto .importo.entrata { color: #1f7a45; }
.riga-estratto .proposte { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.riga-estratto .proposte button.esatta { border-color: var(--accento); font-weight: 600; }
.riga-estratto .nuovo { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 8px; }
.riga-estratto .nuovo select, .riga-estratto .nuovo input { width: auto; min-width: 200px; }
/* Fase 5a: novità normative */
.lista-normativa { display: grid; gap: 10px; }
.notizia { background: var(--superficie); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 12px 14px; }
.notizia.da-leggere { border-left: 4px solid var(--accento); }
.notizia .fonte { font-size: 12px; color: var(--tenue); }
.notizia h3 { font-size: 15px; margin: 4px 0 6px; line-height: 1.35; }
.notizia h3 a { color: var(--testo); text-decoration: none; }
.notizia h3 a:hover { text-decoration: underline; color: var(--accento); }
.notizia .estratto-testo { font-size: 13px; color: var(--tenue); margin: 0 0 8px; white-space: pre-line; }
.notizia .azioni { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.notizia .azioni button, .notizia .azioni a.bottone { padding: 5px 10px; font-size: 13px; }
.nota-fonte { background: #fff8e6; border: 1px solid #f0d79a; border-radius: 6px; padding: 8px 12px; color: #6b5200; }
.avviso-box { border-left: 4px solid #d98a00; margin-bottom: 14px; }
.barra-azioni .spazio { flex: 1; }
#nm-fonti td { vertical-align: top; }
#nm-fonti .stato-errore { color: var(--allarme); }
/* Fase 5a.2: schede IA */
.notizia .meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 12px; color: var(--tenue); }
.impatto { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 10px; text-transform: uppercase; letter-spacing: .3px; }
.impatto.alto { background: #fde8e6; color: #a8231a; }
.impatto.medio { background: #fff1d6; color: #8a5200; }
.impatto.basso { background: #eef0f3; color: #59626e; }
.etichetta.categoria { background: var(--accento-tenue); }
.etichetta.rivedere { background: #fff1d6; color: #8a5200; border-color: #f0c27a; }
.notizia .originale { font-size: 12px; color: var(--tenue); margin: 0 0 6px; }
.notizia ul.punti { margin: 4px 0 8px; padding-left: 20px; }
.notizia ul.punti li { margin: 2px 0; }
.notizia .date-scheda { font-size: 13px; margin: 0 0 8px; }
.notizia .date-scheda strong { color: var(--allarme); }
.notizia details { font-size: 12px; color: var(--tenue); margin: 0 0 8px; }
.notizia details li { margin: 3px 0; }
.notizia details .no { color: var(--allarme); }
.notizia .revisione { background: #fff8e6; border: 1px solid #f0d79a; border-radius: 6px; padding: 6px 10px; font-size: 12px; color: #6b5200; margin: 0 0 8px; }
#nm-ia { margin-bottom: 12px; font-size: 13px; }
.notizia details ul { list-style: none; padding-left: 8px; margin: 4px 0; }
/* Fase 5a.3: preferenze su misura */
#nm-pref { display: grid; gap: 8px; }
#nm-pref p { margin: 0; }
.spunta-riga { display: flex; gap: 8px; align-items: center; font-weight: 400; }
.spunta-riga input { width: auto; }
.griglia-spunte { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 14px; }
.griglia-spunte label { display: flex; gap: 8px; align-items: center; font-weight: 400; }
.griglia-spunte input { width: auto; }
#nm-pref > label:not(.spunta-riga) { display: grid; gap: 4px; }
#nm-pref > label:not(.spunta-riga) input, #nm-pref > label select { width: 100%; padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 6px; font: inherit; }

/* ---------------- Magazzino ---------------- */
.filtri .spazio { flex: 1; }
.c-art select + select { margin-top: 4px; }
td.num.negativo, .valore.negativo, .giacenza-negativa { color: var(--allarme); font-weight: 600; }
tr.sotto-scorta td:first-child { box-shadow: inset 3px 0 0 #d97706; }
.etichetta.scorta { background: #fff4e5; color: #9a5b00; border-color: #f5c27a; }
.merce-riga { display: flex; gap: 6px; align-items: center; margin-top: 4px; flex-wrap: wrap; }
.merce-riga span { font-size: 12px; color: var(--tenue, #667085); }
.merce-riga select { flex: 1 1 140px; min-width: 120px; }
.merce-riga input { width: 80px !important; flex: 0 0 80px; }
#mg-inv-righe input { width: 90px; text-align: right; font: inherit; padding: 4px 6px; border: 1px solid var(--bordo); border-radius: 4px; }
#mg-inv-righe tr.contata td { background: var(--accento-tenue); }
.lista-semplice li .q-pos { color: #1f7a45; font-weight: 600; }
.lista-semplice li .q-neg { color: var(--allarme); font-weight: 600; }
#ar-lista-varianti input { width: 100%; min-width: 50px; font: inherit; font-size: 13px; padding: 4px 6px; border: 1px solid var(--bordo); border-radius: 4px; }
#ar-lista-varianti input.num { text-align: right; }
#ar-lista-varianti tr.spento input { color: var(--tenue); }
#ar-varianti table { margin-top: 8px; }
#ar-varianti table th, #ar-varianti table td { padding: 4px 3px; }
#ar-varianti .azioni-riga { align-items: center; }
#ar-varianti .azioni-riga .spunta { margin: 0; }
#ar-varianti table th, #ar-varianti table td { padding: 4px 3px; }
#ar-varianti .azioni-riga { align-items: center; }
#ar-varianti .azioni-riga .spunta { margin: 0; }

/* Login: occhio per mostrare la password */
.campo-password { position: relative; display: block; }
.campo-password input { width: 100%; padding-right: 44px; box-sizing: border-box; }
.occhio { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); background: transparent; border: 0; padding: 6px;
  color: var(--tenue); cursor: pointer; line-height: 0; border-radius: 6px; }
.occhio:hover, .occhio:focus-visible { color: var(--accento); background: var(--accento-tenue); }
.occhio .barrato { display: none; }
.occhio[aria-pressed="true"] svg { display: none; }
.occhio[aria-pressed="true"] .barrato { display: inline; }
.db-prova { margin: 6px 0 4px; padding: 6px 8px; border-radius: 6px; background: var(--allarme); color: #fff; font-size: 12px; font-weight: 700; text-align: center; letter-spacing: .02em; }
#ar-lista-varianti td:nth-child(3) input { min-width: 95px; }
#ar-varianti-ok { margin-top: 6px; }
#mg-mov-righe td:first-child { white-space: nowrap; }
#mg-mov-righe tr.storno-riga td { color: var(--tenue); font-style: italic; }
.lista-problemi { margin: 6px 0 10px; padding-left: 20px; color: var(--allarme); }
.lista-problemi:empty { display: none; }
#d-fpa h3 { margin: 0 0 6px; }
.errore-testo { color: var(--allarme); }
#ac-import p { margin: 0 0 6px; }
#ac-import ul { margin: 6px 0 0; padding-left: 18px; }
#pagina-acquisti .testata .azioni { display: flex; gap: 8px; }
.spazio-sotto { margin-bottom: 12px; }
#mk-progresso { width: 100%; height: 14px; }
#mk-p-consensi .griglia h3 { margin: 0; font-size: 15px; }
#mk-form .griglia { align-items: start; }
.l40 { width: 40%; }
.destra { text-align: right; }
#ab-righe-modello select[data-c=vat_nature] { margin-top: 4px; }
#ab-da-fatturare label { display: flex; gap: 8px; align-items: center; flex: 1; }


/* =====================================================================
   Ridisegno 2026-11: navigazione a gruppi, cruscotto, stati, riservatezza
   ===================================================================== */
body { line-height: 1.45; -webkit-font-smoothing: antialiased; }
.num, .importo, td.num, .valore, .kpi-valore, .mini-valore { font-variant-numeric: tabular-nums; }
a { color: var(--accento); }
:focus-visible { outline: 2px solid var(--accento); outline-offset: 2px; border-radius: 4px; }
button.link { background: none; border: 0; padding: 0; color: var(--accento); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
a.bottone { display: inline-block; background: var(--accento); color: #fff; font-weight: 600; text-decoration: none; padding: 10px 16px; border-radius: 8px; }
a.bottone:hover, button:not(.secondario):not(.link):hover { background: var(--accento-scuro); }
button.piccolo { padding: 4px 10px; font-size: 13px; }
.testo-allarme { color: var(--allarme); font-weight: 600; }
.testo-attenzione { color: var(--attenzione); font-weight: 600; }
.mancante { color: var(--attenzione); font-style: italic; }

/* ---- Menu laterale a gruppi ---- */
.app { grid-template-columns: 252px 1fr; }
.menu { position: sticky; top: 0; height: 100vh; overflow-y: auto; padding: 18px 10px; }
.menu-corpo { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.marchio-riga { display: flex; align-items: center; justify-content: space-between; padding: 0 10px 12px; }
.marchio { padding: 0; font-size: 19px; color: var(--accento); letter-spacing: -.01em; }
.solo-mobile { display: none; }
.selettore-org { margin: 0 4px 10px; }
.icona { width: 18px; height: 18px; fill: currentColor; flex: none; }
.voce { gap: 8px; justify-content: flex-start; padding: 8px 10px; border-radius: 8px; color: var(--testo); }
.voce > span { flex: 1; }
.voce:hover { background: #f0f3f8; }
.voce.attiva { background: var(--accento-tenue); color: var(--accento); font-weight: 600; box-shadow: inset 3px 0 0 var(--accento); }
.voce-sola { font-weight: 500; }
.gruppo { margin-top: 4px; }
.gruppo-titolo { width: 100%; display: flex; align-items: center; gap: 8px; background: transparent; color: var(--testo); font-weight: 600; font-size: 14px; padding: 8px 10px; border-radius: 8px; text-align: left; }
.gruppo-titolo:hover { background: #f0f3f8; }
.gruppo-titolo > span { flex: 1; }
.gruppo.contiene-attiva > .gruppo-titolo { color: var(--accento); }
.freccia { width: 18px; height: 18px; fill: var(--tenue); transition: transform .15s; }
.gruppo.chiuso .freccia { transform: rotate(-90deg); }
.gruppo.chiuso .gruppo-voci { display: none; }
.gruppo-voci { display: flex; flex-direction: column; gap: 1px; margin: 2px 0 4px 18px; padding-left: 8px; border-left: 1px solid var(--bordo); }
.gruppo-voci .voce { font-size: 13.5px; padding: 7px 10px; }
.gruppo-segnale { width: 8px; height: 8px; border-radius: 50%; background: var(--accento); padding: 0 !important; border: 0 !important; }
.gruppo-segnale.avviso { background: var(--allarme); }
.voce em { font-style: normal; font-size: 11px; font-weight: 600; min-width: 20px; text-align: center; border-radius: 10px; padding: 1px 7px; border: 0; }
.voce em.avviso { background: var(--allarme-tenue); color: var(--allarme); }
.voce em.info { background: var(--accento-tenue); color: var(--accento); }
.utente { gap: 8px; padding: 14px 10px 0; }
.utente-riga { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.utente-riga button { margin: 0; }
.firma { margin: 4px 0 0; font-size: 11.5px; color: var(--tenue); letter-spacing: .02em; }
.ambiente { justify-self: start; background: var(--attenzione-tenue); color: var(--attenzione); border: 1px solid #f0d29a; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.ambiente::before { content: "● "; }
.db-prova { display: none !important; }

/* ---- Barra in alto e contenuto ---- */
.contenuto { padding: 20px 32px 40px; max-width: 1240px; width: 100%; }
.barra-globale { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 4px; }
.testata { align-items: center; flex-wrap: wrap; }
.testata h2 { font-size: 24px; letter-spacing: -.01em; }

/* ---- Riquadri esistenti: piu' sobri (niente bordo colorato su tutti) ---- */
.riquadro { border-radius: var(--raggio); }
.riquadro.evidenza { border-color: var(--bordo); box-shadow: none; }
.riquadro.allarme { border-color: #f3c3bd; box-shadow: none; background: #fffafa; }
.riquadro.attenzione { border-color: #f0d29a; background: #fffcf5; }
.riquadro.attenzione .valore { color: var(--attenzione); }
.riquadri.quattro-colonne { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* ---- Cruscotto ---- */
.cr-testata { justify-content: space-between; align-items: flex-end; }
.cr-testata h2 { margin-bottom: 2px; }
.avviso-prioritario { background: var(--allarme-tenue); color: #7a1610; border: 1px solid #f3c3bd; border-radius: var(--raggio); padding: 12px 16px; margin-bottom: 16px; }
.avviso-prioritario a { color: #7a1610; font-weight: 700; margin-left: 6px; }
.kpi-tre { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.kpi { display: grid; gap: 4px; background: var(--superficie); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 18px 20px; text-decoration: none; color: var(--testo); }
.kpi:hover { border-color: #b9c9e6; }
.kpi-titolo { font-size: 13px; font-weight: 600; color: var(--tenue); }
.kpi-valore { font-size: 30px; font-weight: 700; letter-spacing: -.01em; }
.kpi-valore.negativo, .num.negativo, .valore.negativo { color: var(--allarme); }
.kpi-nota { font-size: 13px; color: var(--tenue); }
.spiega-riga { display: flex; gap: 16px; align-items: center; margin: 8px 2px 0; font-size: 13px; }
.spiegazione { background: #f8fafd; border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 4px 16px; margin-top: 8px; font-size: 13.5px; }
.cr-colonne { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 16px; margin-top: 20px; align-items: start; }
.pannello { background: var(--superficie); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 16px 20px; }
.pannello h3 { margin: 0 0 4px; font-size: 16px; }
.lista-azioni { list-style: none; margin: 8px 0 0; padding: 0; }
.lista-azioni li + li { border-top: 1px solid var(--bordo); }
.azione-riga { display: flex; align-items: center; gap: 12px; padding: 11px 6px; text-decoration: none; color: var(--testo); border-radius: 8px; }
.azione-riga:hover { background: #f5f8fc; }
.azione-testo { flex: 1; display: grid; gap: 1px; min-width: 0; }
.azione-dati { display: grid; justify-items: end; gap: 3px; white-space: nowrap; font-size: 14px; }
.stato-pallino { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.stato-pallino.allarme { background: var(--allarme); }
.stato-pallino.attenzione { background: #d98a00; }
.stato-pallino.info { background: var(--accento); }
.etichetta-stato { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.etichetta-stato.allarme { background: var(--allarme-tenue); color: var(--allarme); }
.etichetta-stato.attenzione { background: var(--attenzione-tenue); color: var(--attenzione); }
.etichetta-stato.info { background: var(--accento-tenue); color: var(--accento); }
.etichetta-stato.positivo { background: var(--positivo-tenue); color: var(--positivo); }
.vuoto-positivo { color: var(--positivo); background: var(--positivo-tenue); border-radius: 8px; padding: 10px 12px; margin: 8px 0 0; }
.conto-scalare { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: 14px; }
.conto-scalare td { padding: 7px 0; border-bottom: 1px solid var(--bordo); }
.conto-scalare .riga-totale td { font-weight: 700; font-size: 16px; border-bottom: 0; }
.riepilogo-secondario { margin-top: 24px; }
.riepilogo-secondario h3 { font-size: 13px; color: var(--tenue); text-transform: uppercase; letter-spacing: .04em; margin: 0 0 8px; }
.mini-griglia { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.mini { display: grid; gap: 2px; padding: 12px 14px; border-radius: 8px; border: 1px solid var(--bordo); background: #fbfcfe; text-decoration: none; color: var(--testo); }
.mini:hover { border-color: #b9c9e6; }
.mini-titolo { font-size: 12px; color: var(--tenue); }
.mini-valore { font-size: 18px; font-weight: 650; }
.mini-nota { font-size: 12px; color: var(--tenue); }

/* ---- Clienti e fornitori: tipo riconoscibile ---- */
.tipi-soggetto { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.tipo-sog { font-size: 11.5px; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
.tipo-sog.cliente { background: var(--accento-tenue); color: var(--accento); }
.tipo-sog.fornitore { background: #eef0f4; color: #3c4a5e; }
.tipo-sog.prospect { background: var(--attenzione-tenue); color: var(--attenzione); }
.tipo-sog.spento { background: #f1f1f1; color: #777; }

/* ---- Conti: movimenti stornati nascosti a richiesta ---- */
#co-tabella.nascondi-stornati tr.annullato { display: none; }
.spunta-piccola { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--tenue); }

/* ---- Trattative: scheda focalizzabile ---- */
.scheda-trattativa:focus-visible { outline: 2px solid var(--accento); }

/* ---- Riservatezza: campi numerici oscurati quando gli importi sono nascosti ---- */
body.importi-nascosti input[inputmode="decimal"] { -webkit-text-security: disc; }

/* ---- Schermi stretti / finestra piccola ---- */
@media (max-width: 1100px) {
  .mini-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cr-colonne { grid-template-columns: minmax(0, 1fr); }
  .riquadri.quattro-colonne { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .app { grid-template-columns: 1fr; }
  .menu { position: sticky; top: 0; z-index: 20; height: auto; max-height: 100vh; border-right: 0; border-bottom: 1px solid var(--bordo); padding: 10px; }
  .marchio-riga { padding: 0 4px; }
  .solo-mobile { display: inline-block; }
  .menu-corpo { display: none; padding-top: 8px; }
  body.menu-aperto .menu-corpo { display: flex; }
  .contenuto { padding: 16px; }
  .kpi-tre { grid-template-columns: 1fr; }
  .riquadri.tre-colonne, .riquadri.quattro-colonne { grid-template-columns: 1fr; }
  .due-colonne, .due-colonne-fisse { grid-template-columns: 1fr !important; }
  .elenco { overflow-x: auto; }
  .azione-riga { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
.testo-positivo { color: var(--positivo); font-weight: 600; }
input.corto { width: 90px; }
#an-p-cliente .mini { background: var(--superficie); }
.sotto-titolo { font-size: 14px; margin: 12px 0 4px; }
/* ---- Analisi: scelta del cliente ---- */
.an-clienti-layout { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 16px; align-items: start; }
.an-elenco-clienti { position: sticky; top: 12px; background: var(--superficie); border: 1px solid var(--bordo); border-radius: var(--raggio); padding: 12px; display: grid; gap: 8px; }
.an-elenco-clienti input[type=search] { font: inherit; padding: 9px 12px; border: 1px solid var(--bordo); border-radius: 8px; width: 100%; }
.chip-filtri { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { background: #f0f3f8; color: var(--testo); font-weight: 500; font-size: 12.5px; padding: 5px 10px; border-radius: 999px; border: 1px solid transparent; }
.chip:hover { background: var(--accento-tenue); }
.chip.attivo { background: var(--accento-tenue); color: var(--accento); border-color: #b9c9e6; font-weight: 600; }
.an-lista { list-style: none; margin: 0; padding: 0; max-height: calc(100vh - 260px); min-height: 200px; overflow-y: auto; }
.an-cliente { width: 100%; display: flex; align-items: center; gap: 10px; text-align: left; background: transparent; color: var(--testo); font-weight: 400; padding: 9px 8px; border-radius: 8px; }
.an-cliente:hover { background: #f5f8fc; }
.an-cliente.scelto { background: var(--accento-tenue); box-shadow: inset 3px 0 0 var(--accento); }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: #e3ebf9; color: var(--accento); display: grid; place-items: center; font-size: 12.5px; font-weight: 700; flex: none; }
.an-cliente.scelto .avatar { background: var(--accento); color: #fff; }
.an-cliente-testo { flex: 1; min-width: 0; display: grid; }
.an-cliente-testo strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 14px; }
.an-cliente-dati { display: grid; justify-items: end; gap: 2px; font-size: 12.5px; white-space: nowrap; }
.an-nessuno { padding: 12px 8px; }
.an-scheda-vuota { border: 1px dashed #c9d5e8; border-radius: var(--raggio); padding: 40px 24px; text-align: center; color: var(--tenue); background: #fbfcfe; }
.an-scheda > h3 { margin: 0 0 10px; font-size: 20px; }
@media (max-width: 860px) {
  .an-clienti-layout { grid-template-columns: 1fr; }
  .an-elenco-clienti { position: static; }
  .an-lista { max-height: 320px; }
}
@media (max-width: 860px) {
  .testata .schede, .filtri .schede { flex-wrap: wrap; max-width: 100%; }
  .filtri { flex-wrap: wrap; }
}
button.an-cliente:hover { background: #f0f4fb; }
button.an-cliente.scelto, button.an-cliente.scelto:hover { background: var(--accento-tenue); color: var(--testo); }
button.chip:hover { background: var(--accento-tenue); }
button.gruppo-titolo:hover { background: #f0f3f8; }
.avviso-licenza { background: var(--attenzione-tenue); color: var(--attenzione); border: 1px solid #f0d29a; border-radius: var(--raggio); padding: 10px 14px; margin: 0 0 12px; }
#imp-licenza h3 { margin: 0 0 8px; font-size: 15px; }

/* Pannello licenze: registro e attivita' dell'account */
.registro-piattaforma { list-style: none; margin: 8px 0 0; padding: 0; }
.registro-piattaforma li { padding: 7px 0; border-bottom: 1px solid var(--bordo); line-height: 1.45; }
.registro-piattaforma li:last-child { border-bottom: 0; }

.avviso-testo { color: #8a5a00; background: #fff6e0; padding: 8px 10px; border-radius: 6px; margin: 0; }

/* Accesso: invito e recupero password */
.login-link { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 13.5px; }
.login-passo { display: grid; gap: 14px; }
.login-card textarea { font: 13px/1.4 ui-monospace, Consolas, monospace; padding: 10px 12px; border: 1px solid var(--bordo); border-radius: 6px; resize: none; word-break: break-all; color: var(--testo); }
.login-card .sotto-testo { margin: -6px 0 0; color: var(--tenue); font-size: 14px; }
.riquadro-invito { margin: 0; padding: 12px; border-radius: 8px; background: var(--accento-tenue); font-size: 14px; line-height: 1.5; }
.login-card .torna-login { justify-self: start; font-size: 13.5px; }
/* Utenti e inviti */
#imp-utenti { min-width: 0; max-width: 100%; }
#imp-utenti .elenco { max-width: 100%; }
select.ut-ruolo { font: inherit; font-size: 13px; padding: 4px 6px; border: 1px solid var(--bordo); border-radius: 6px; background: var(--superficie); color: var(--testo); }
@media (max-width: 640px) { #imp-utenti th:nth-child(3), #imp-utenti td:nth-child(3) { display: none; } }

/* Permessi: pagina in sola lettura (il server rifiuta comunque le modifiche) */
.avviso-sola-lettura { margin: 0 0 12px; padding: 8px 12px; border-radius: 6px; background: #eef2f7; color: #3c4a5e; font-size: 13.5px; }
.sola-lettura .testata .azioni, .sola-lettura .testata button:not(.secondario):not(.scheda), .sola-lettura #d-nuovo-tipo, .sola-lettura form.griglia button[type=submit], .sola-lettura form.modulo button[type=submit],
.sola-lettura .dettaglio button[type=submit], .sola-lettura .solo-modifica { display: none !important; }

.riquadro-permessi { border: 1px solid var(--bordo); border-radius: 8px; padding: 14px; background: var(--sfondo); }
.riquadro-permessi .elenco { max-height: none; }
.azioni-riga .link { white-space: nowrap; }
@media (max-width: 640px) {
  #imp-utenti .azioni-riga .link, #imp-utenti .azioni-riga .etichetta-stato { display: block; margin: 2px 0; }
  #imp-utenti td { word-break: break-word; }
}
.contenuto { min-width: 0; }   /* nel layout a griglia la pagina non si allarga oltre lo schermo: le tabelle scorrono dentro */

/* Primo accesso guidato */
.avvio-banda { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin: 0 0 16px; padding: 12px 16px; border-radius: var(--raggio);
  background: var(--accento-tenue); border: 1px solid #cfdcf6; color: var(--testo); text-decoration: none; }
.avvio-barra { flex: 1; min-width: 120px; height: 8px; border-radius: 4px; background: #fff; overflow: hidden; }
.avvio-barra span { display: block; height: 100%; background: var(--accento); border-radius: 4px; }
.avvio-passi { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 16px 0; counter-reset: passo; }
.avvio-passi li { counter-increment: passo; display: flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 20px;
  background: var(--superficie); border: 1px solid var(--bordo); font-size: 13.5px; cursor: pointer; color: var(--tenue); }
.avvio-passi li::before { content: counter(passo); display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--sfondo); font-weight: 600; font-size: 12px; }
.avvio-passi li.fatto::before { content: '✓'; background: #e6f4ec; color: #1f7a45; }
.avvio-passi li.saltato::before { content: '–'; }
.avvio-passi li.corrente { border-color: var(--accento); color: var(--testo); font-weight: 600; }
.avvio-passi li.corrente::before { background: var(--accento); color: #fff; }
.scelte-regime { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 8px 0; }
.scelta-card { display: grid; gap: 4px; padding: 12px 14px 12px 38px; border: 1px solid var(--bordo); border-radius: 8px; position: relative; cursor: pointer; background: var(--superficie); }
.scelta-card input { position: absolute; left: 12px; top: 14px; }
.scelta-card:has(input:checked) { border-color: var(--accento); background: var(--accento-tenue); }
.avvio-categorie { columns: 2; padding-left: 18px; margin: 8px 0; }
@media (max-width: 640px) { .avvio-categorie { columns: 1; } }
.avvio-comandi { justify-content: flex-start; flex-wrap: wrap; }
.avvio-comandi #av-avanti { margin-left: auto; }
.avvio-banda a.link { font-weight: 600; text-decoration: none; }
.avvio-banda button.link.tenue { color: var(--tenue); font-weight: 400; font-size: 13px; }
.campo-mancante { border-color: #c0392b !important; background: #fff6f5 !important; }

/* Importazione da Excel/CSV */
.pannello-import { display: grid; gap: 10px; }
.import-testa { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.import-testa h3 { margin: 0; }
.import-passi { margin: 0; padding-left: 20px; display: grid; gap: 10px; font-size: 14px; }
.import-passi li > * { margin-top: 6px; }
.import-passi input[type=file] { display: block; font: inherit; font-size: 13px; }
.import-passi select { font: inherit; font-size: 13px; padding: 3px 6px; border: 1px solid var(--bordo); border-radius: 6px; }
.azioni-in-linea { display: flex; gap: 8px; flex-wrap: wrap; }
.import-conti { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.import-presenti { border: 1px solid var(--bordo); border-radius: 8px; padding: 8px 12px; margin: 10px 0 0; display: grid; gap: 4px; font-size: 14px; }

/* Promemoria a schermo */
.promemoria-sfondo { position: fixed; inset: 0; background: rgba(20, 28, 44, .45); display: grid; place-items: center; padding: 16px; z-index: 1000; }
.promemoria-card { width: 100%; max-width: 620px; max-height: calc(100vh - 32px); overflow: auto; background: var(--superficie); border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,.25); padding: 20px 22px; display: grid; gap: 12px; border-top: 4px solid #d97706; }
.promemoria-testa { display: flex; align-items: center; gap: 10px; }
.promemoria-testa h2 { margin: 0; font-size: 20px; }
.promemoria-icona { font-size: 24px; }
.promemoria-elenco { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.promemoria-elenco li { border: 1px solid var(--bordo); border-radius: 8px; padding: 12px; display: grid; gap: 10px; }
.promemoria-note { margin-top: 4px; white-space: pre-line; }
.promemoria-azioni { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.promemoria-azioni select { font: inherit; font-size: 13px; padding: 6px 8px; border: 1px solid var(--bordo); border-radius: 6px; background: var(--superficie); }
.promemoria-piede { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

/* Magazzini multipli: colonna "Dove" nelle giacenze */
.mg-dove { white-space: nowrap; }
.mg-dove + .mg-dove { margin-top: 2px; }

/* Documenti: importa ordini/DDT del cliente nella fattura */
.d-importa { margin-top: 14px; padding: 12px 14px; border: 1px dashed var(--accento); border-radius: var(--raggio); background: var(--accento-tenue); }
.d-importa-testa { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.d-importa table { margin: 10px 0; }
.d-importa td:first-child, .d-importa th:first-child { width: 28px; }

/* Aggiornamenti dell'app */
.aggiornamenti-elenco { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 12px; }
.aggiornamenti-elenco li.nuovo { border-left: 4px solid var(--accento); }
.aggiornamenti-elenco h3 { margin: 8px 0 4px; font-size: 1.05rem; }
.aggiornamenti-elenco p { margin: 0; line-height: 1.5; }
.ag-testa { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ag-testa .spazio { flex: 1; }
.ag-nuovo { color: var(--accento); font-size: .85rem; }

/* Pannello licenze: settori, moduli, funzioni */
.pl-spunte { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 14px; margin-top: 6px; }
.pl-spunte label { display: flex; align-items: center; gap: 6px; font-weight: 400; }
.pl-funzione { margin-bottom: 14px; }
.pl-funzione h3 { margin: 0 0 4px; }
.pl-funzione .pl-spunte { margin-bottom: 8px; }
#pl-form-moduli td select { width: 100%; min-width: 0; padding: 6px 8px; }

/* Registrazione (richiesta di prova) */
.login-card.larga { max-width: 520px; }
.login-prova { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--bordo); display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center; font-size: 14px; color: var(--tenue); }
.login-due { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.login-privacy { display: flex !important; align-items: flex-start; font-size: 13px; line-height: 1.45; }
.login-privacy input { margin-top: 3px; width: auto; padding: 0; }
.codice-sei { font-size: 22px; letter-spacing: 6px; text-align: center; font-variant-numeric: tabular-nums; }
@media (max-width: 480px) { .login-due { grid-template-columns: 1fr; } }

/* Pannello: richieste */
.pl-dati { display: grid; grid-template-columns: max-content 1fr; gap: 4px 12px; margin: 8px 0 0; font-size: 14px; }
.pl-dati dt { color: var(--tenue); }
.pl-dati dd { margin: 0; overflow-wrap: anywhere; }
.scheda .pallino { display: inline-block; min-width: 18px; padding: 0 5px; margin-left: 4px; border-radius: 9px; background: var(--allarme); color: #fff; font-size: 11px; font-style: normal; line-height: 18px; text-align: center; }

/* Avviso nuova richiesta (per UltraGenesi) */
.avviso-richiesta { position: fixed; right: 20px; bottom: 20px; z-index: 60; max-width: 360px; background: var(--superficie); border: 1px solid var(--accento);
  border-left: 5px solid var(--accento); border-radius: var(--raggio); box-shadow: 0 10px 30px rgba(15, 35, 70, .18); padding: 14px 16px; display: grid; gap: 8px; }
.avviso-richiesta span { color: var(--tenue); font-size: 14px; }

/* Pagine informativa privacy e termini */
.pagina-legale { background: var(--sfondo); }
.legale { max-width: 760px; margin: 0 auto; padding: 32px 16px 48px; line-height: 1.6; }
.legale h1 { font-size: 1.5rem; margin-bottom: 4px; }
.legale h2 { font-size: 1.1rem; margin-top: 24px; }
.legale li { margin-bottom: 6px; }
.nota-bozza { margin-top: 32px; padding: 10px 12px; border-radius: 8px; background: var(--attenzione-tenue); color: var(--attenzione); font-size: 14px; }
