/* Intranet FIC — colori: bianco e rosso FIC. Verde e rosso solo per i KPI. */
:root {
  --rosso: #E40521;
  --rosso-scuro: #C2041C;
  --rosso-chiaro: #FBEDEE;
  --rosso-bordo: #EED3D4;
  --bianco: #FFFFFF;
  --testo: #1F1F1F;
  --testo-tenue: #6B6B6B;
  --kpi-positivo: #1E7B3A;
  --kpi-negativo: #E40521;
  --raggio: 8px;
  --ombra: 0 1px 3px rgba(0, 0, 0, .08);
  color-scheme: light;
}

* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bianco); color: var(--testo); }
body { font-family: "Segoe UI", system-ui, -apple-system, Arial, sans-serif; font-size: 15px; line-height: 1.45; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--rosso); }

/* ---------- Menu di sinistra ---------- */
:root { --larghezza-menu: 250px; }
.laterale {
  display: none; position: fixed; left: 0; top: 0; bottom: 0; width: var(--larghezza-menu); z-index: 40;
  overflow-y: auto; background: var(--bianco); border-right: 1px solid var(--rosso-bordo); padding: 14px 10px 30px;
}
body.con-menu .laterale { display: block; }
body.con-menu .principale { margin-left: var(--larghezza-menu); }
.laterale-logo { display: flex; align-items: center; gap: 10px; padding: 4px 10px 16px; text-decoration: none; color: var(--testo); font-weight: 600; }
.laterale-logo img { width: 110px; height: auto; display: block; }
.laterale-logo span { border-left: 1px solid var(--rosso-bordo); padding-left: 10px; }
.laterale-titolo { font-size: 11px; font-weight: 700; color: var(--testo-tenue); text-transform: uppercase; letter-spacing: .5px; padding: 14px 10px 4px; }
.sezione-titolo {
  display: flex; justify-content: space-between; align-items: center; width: 100%; border: 0; background: transparent;
  font-size: 12.5px; font-weight: 800; color: var(--rosso); padding: 9px 10px; border-radius: 6px; cursor: pointer; text-align: left;
}
.sezione-titolo:hover { background: var(--rosso-chiaro); }
.sezione-titolo::after { content: "+"; font-size: 16px; line-height: 1; }
.sezione.aperta > .sezione-titolo::after { content: "\2212"; }
.sezione-voci { display: none; padding-bottom: 6px; }
.sezione.aperta > .sezione-voci { display: block; }
.gruppo { font-size: 11.5px; font-weight: 700; color: var(--testo-tenue); padding: 6px 10px 2px 14px; }
.voce {
  display: flex; align-items: center; gap: 6px; padding: 6px 10px 6px 14px; border-radius: 6px;
  text-decoration: none; color: var(--testo); font-size: 13.5px; line-height: 1.3;
}
.voce.rientro { padding-left: 24px; }
.voce .voce-nome { flex: 1; min-width: 0; }
.voce small { font-size: 10.5px; white-space: nowrap; color: var(--testo-tenue); }
.voce:hover { background: var(--rosso-chiaro); color: var(--rosso); }
.voce.corrente { background: var(--rosso-chiaro); color: var(--rosso); font-weight: 700; }
.voce.bloccato, .voce.in-arrivo { color: #A3A3A3; }
.voce-home { font-weight: 700; padding-left: 10px; }
.velo { display: none; }

/* ---------- Testata ---------- */
.testata {
  position: sticky; top: 0; z-index: 10;
  display: flex; align-items: center; gap: 16px;
  padding: 0 24px; height: 60px;
  background: var(--bianco); border-bottom: 3px solid var(--rosso);
}
.pulsante-menu { display: none; border: 1px solid var(--rosso); background: var(--bianco); color: var(--rosso); border-radius: 8px; padding: 4px 10px; font-size: 18px; cursor: pointer; }
.marchio-piccolo { display: none; }
.marchio-piccolo img { height: 30px; width: auto; display: block; }
body:not(.con-menu) .marchio-piccolo { display: block; }
.titolo-pagina { flex: 1; margin: 0; font-size: 18px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.accesso .logo-grande { width: 220px; max-width: 70%; height: auto; display: block; margin: 0 auto 20px; }
.utente { display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.utente .chi { text-align: right; line-height: 1.2; }
.utente .chi small { display: block; color: var(--testo-tenue); }

/* ---------- Home ---------- */
.saluto h2 { margin: 0; font-size: 26px; }
.saluto p { margin: 4px 0 22px; color: var(--testo-tenue); }
.home-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; }
.home-sezione { border: 1px solid var(--rosso-bordo); border-left: 4px solid var(--rosso); border-radius: var(--raggio); padding: 14px 16px 16px; box-shadow: var(--ombra); }
.home-sezione h3 { margin: 0 0 12px; font-size: 15px; font-weight: 800; }
.home-pulsanti { display: flex; flex-wrap: wrap; gap: 8px; }
.pulsante-strumento {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 8px;
  border: 1px solid var(--rosso); color: var(--rosso); background: var(--bianco);
  text-decoration: none; font-size: 13.5px; font-weight: 600;
}
.pulsante-strumento:hover { background: var(--rosso); color: var(--bianco); }
.pulsante-strumento.in-arrivo { border: 1px dashed #C9C9C9; color: #8A8A8A; font-weight: 500; }
.pulsante-strumento.in-arrivo:hover { background: #F7F7F7; color: #6E6E6E; }
.pulsante-strumento.bloccato { border-color: #E3E3E3; color: #ABABAB; background: #FAFAFA; font-weight: 500; }
.pulsante-strumento.bloccato:hover { background: #F2F2F2; color: #8A8A8A; }
.pulsante-strumento small { font-size: 10.5px; }
.lucchetto { font-size: 11px; filter: grayscale(1); opacity: .7; }
.legenda { margin-top: 20px; font-size: 12.5px; color: var(--testo-tenue); }
.pallino { display: inline-block; width: 10px; height: 10px; border-radius: 3px; vertical-align: -1px; margin-left: 10px; border: 1px solid var(--rosso); }
.pallino.in-arrivo { border: 1px dashed #A3A3A3; }
.pallino.bloccato { border-color: #D6D6D6; background: #F2F2F2; }

/* ---------- Pagine di messaggio (accesso negato, in arrivo) ---------- */
.pagina-messaggio { max-width: 520px; margin: 8vh auto; text-align: center; padding: 32px; }
.icona-messaggio { font-size: 40px; margin-bottom: 8px; }
.pagina-messaggio h2 { margin: 0 0 8px; }
.pagina-messaggio p { color: var(--testo-tenue); margin: 0 0 22px; }
.pagina-messaggio .pulsante { text-decoration: none; display: inline-block; }

/* ---------- Schede interne (es. CRM) ---------- */
.schede { display: flex; gap: 4px; border-bottom: 1px solid var(--rosso-bordo); margin-bottom: 20px; overflow-x: auto; }
.schede a { padding: 9px 14px; text-decoration: none; color: var(--testo); border-bottom: 3px solid transparent; white-space: nowrap; }
.schede a:hover { color: var(--rosso); }
.schede a.attiva { color: var(--rosso); border-bottom-color: var(--rosso); font-weight: 700; }

/* ---------- Contenuto ---------- */
.contenuto { max-width: 1320px; margin: 0 auto; padding: 24px; }
/* Home come nell'artefatto: foto Pillow Plate a tutta pagina, testo su campo bianco a destra */
.contenuto:has(> .homev) { max-width: none; padding: 0; }
.homev { position: relative; height: calc(100vh - var(--alto-testata, 64px)); min-height: 560px; overflow: hidden; background: #fff url("/pillow-plate.jpg") left center / cover no-repeat; color: #1F1F1F; display: grid; grid-template-columns: minmax(0, 1fr) minmax(420px, 46%); }
.homev::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 38%, rgba(255,255,255,.82) 52%, #fff 60%); pointer-events: none; }
.homev .hv-art { position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(18px,3vh,32px) clamp(18px,2.5vw,36px); }
.homev .hv-logo { align-self: flex-start; background: #fff; border-radius: 12px; padding: 14px 18px; box-shadow: 0 10px 30px rgba(0,0,0,.18); }
.homev .hv-logo img { width: clamp(130px,13vw,190px); height: auto; display: block; }
.homev .hv-tag { align-self: flex-start; background: #E40521; color: #fff; font-weight: 700; font-size: 13px; padding: 7px 14px; border-radius: 20px; box-shadow: 0 6px 18px rgba(228,5,33,.35); }
.homev .hv-txt { position: relative; display: flex; flex-direction: column; justify-content: center; gap: clamp(12px,2.2vh,22px); padding: clamp(20px,4vh,48px) clamp(22px,3.5vw,56px) clamp(20px,4vh,48px) clamp(10px,1.5vw,24px); }
.homev .hv-k { font-size: 12.5px; font-weight: 800; color: #E40521; display: flex; align-items: center; gap: 10px; }
.homev .hv-k::before { content: ""; width: 28px; height: 3px; background: #E40521; border-radius: 2px; }
.homev .hv-claim { margin: 0; font-size: clamp(26px,3.6vh,40px); line-height: 1.12; font-weight: 800; letter-spacing: -.01em; }
.homev .hv-claim em { font-style: normal; color: #E40521; }
.homev .hv-why { margin: 0; font-size: clamp(14px,1.9vh,17px); line-height: 1.55; color: #3A3A3A; max-width: 58ch; }
.homev .hv-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: start; }
.homev .hv-card { background: #fff; border: 1px solid #EEE; border-top: 3px solid #E40521; border-radius: 10px; padding: clamp(12px,1.8vh,18px) 16px; box-shadow: 0 6px 20px rgba(0,0,0,.06); }
.homev .hv-card h2 { margin: 0 0 6px; font-size: 13px; font-weight: 800; color: #E40521; }
.homev .hv-card p { margin: 0; font-size: clamp(12.5px,1.6vh,14px); line-height: 1.5; color: #2A2A2A; }
@media (max-width: 1150px) { .homev .hv-cards { grid-template-columns: 1fr; } }
@media (max-width: 900px) {
  .homev { height: auto; min-height: 100vh; grid-template-columns: 1fr; grid-template-rows: auto 1fr; background-size: auto 46vh; background-position: left top; }
  .homev::before { background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 32vh, #fff 46vh); }
  .homev .hv-art { height: 42vh; }
  .homev .hv-txt { padding: 12px 20px 40px; }
}

/* Pagine incorporate (es. Pipeline): tutta la larghezza e l'altezza disponibili */
.contenuto:has(> .pagina-incorporata) { max-width: none; padding: 0; }
.pagina-incorporata { display: block; width: 100%; height: calc(100vh - var(--alto-testata, 64px)); min-height: 560px; border: 0; background: #fff; }
.intestazione-pagina { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.intestazione-pagina h2 { margin: 0; font-size: 22px; }
.riquadro h3 { margin: 0 0 14px; font-size: 16px; }
tr.non-cliccabile { cursor: default; }
.dettaglio-tecnico { margin-top: 8px; font-size: 12px; color: var(--testo); }
.dettaglio-tecnico summary { cursor: pointer; color: var(--rosso-scuro); }
.dettaglio-tecnico pre { white-space: pre-wrap; word-break: break-word; background: var(--bianco); border: 1px solid var(--rosso-bordo); border-radius: 6px; padding: 8px; margin: 6px 0 0; max-height: 220px; overflow: auto; }
.intestazione-pagina p { margin: 4px 0 0; color: var(--testo-tenue); }
.caricamento { padding: 48px; text-align: center; color: var(--testo-tenue); }

.barra-strumenti { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.barra-strumenti input[type="search"] { width: 260px; max-width: 100%; }
.casella { display: flex; align-items: center; gap: 6px; cursor: pointer; }

/* ---------- Pulsanti e campi ---------- */
.pulsante {
  border: 1px solid var(--rosso); background: var(--rosso); color: var(--bianco);
  padding: 8px 16px; border-radius: var(--raggio); cursor: pointer; font-weight: 600;
}
.pulsante:hover { background: var(--rosso-scuro); border-color: var(--rosso-scuro); }
.pulsante:disabled { opacity: .5; cursor: default; }
.pulsante.secondario { background: var(--bianco); color: var(--rosso); }
.pulsante.secondario:hover { background: var(--rosso-chiaro); }
.pulsante.leggero { background: transparent; border-color: transparent; color: var(--rosso); }
.pulsante.leggero:hover { background: var(--rosso-chiaro); }

input, select, textarea {
  border: 1px solid var(--rosso-bordo); border-radius: var(--raggio);
  padding: 8px 10px; background: var(--bianco); width: 100%;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--rosso); outline-offset: -1px; border-color: var(--rosso); }
input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--rosso); }
input:disabled, select:disabled, textarea:disabled { background: #FCF8F8; color: var(--testo); }

/* ---------- Riquadri ---------- */
.riquadro { border: 1px solid var(--rosso-bordo); border-radius: var(--raggio); background: var(--bianco); box-shadow: var(--ombra); padding: 18px; }
.riquadro h2 { margin: 0 0 14px; font-size: 16px; }
.due-colonne { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 20px; }

/* ---------- KPI ---------- */
.kpi-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 16px; }
.kpi { border: 1px solid var(--rosso-bordo); border-top: 4px solid var(--rosso); border-radius: var(--raggio); padding: 14px 16px; box-shadow: var(--ombra); }
.kpi .etichetta { color: var(--testo-tenue); font-size: 13px; text-transform: uppercase; letter-spacing: .4px; }
.kpi .valore { font-size: 26px; font-weight: 700; margin: 4px 0 2px; }
.kpi .nota { color: var(--testo-tenue); font-size: 13px; }
.kpi.positivo { border-top-color: var(--kpi-positivo); }
.kpi.positivo .valore { color: var(--kpi-positivo); }
.kpi.negativo { border-top-color: var(--kpi-negativo); }
.kpi.negativo .valore { color: var(--kpi-negativo); }

.barra-fase { display: grid; grid-template-columns: 120px 1fr 150px; gap: 10px; align-items: center; margin: 8px 0; }
.barra-fase .traccia { background: var(--rosso-chiaro); border-radius: 4px; height: 14px; overflow: hidden; }
.barra-fase .riempimento { background: var(--rosso); height: 100%; }
.barra-fase .cifre { text-align: right; font-size: 13px; }
.barra-fase .cifre small { color: var(--testo-tenue); }

/* ---------- Tabelle ---------- */
.tabella-contenitore { overflow-x: auto; border: 1px solid var(--rosso-bordo); border-radius: var(--raggio); }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--rosso-bordo); vertical-align: top; }
th { background: var(--rosso-chiaro); font-weight: 600; font-size: 13px; white-space: nowrap; }
tbody tr { cursor: pointer; }
tbody tr:hover { background: #FDF6F6; }
tbody tr:last-child td { border-bottom: none; }
td.numero, th.numero { text-align: right; white-space: nowrap; }
.vuoto { padding: 32px; text-align: center; color: var(--testo-tenue); }
.piccolo { font-size: 13px; color: var(--testo-tenue); }

/* ---------- Pipeline ---------- */
.tabellone { display: grid; grid-template-columns: repeat(6, minmax(200px, 1fr)); gap: 12px; overflow-x: auto; padding-bottom: 8px; }
.colonna { background: #FDF8F8; border: 1px solid var(--rosso-bordo); border-radius: var(--raggio); padding: 10px; min-height: 360px; }
.colonna.sopra { outline: 2px dashed var(--rosso); }
.colonna-testa { display: flex; justify-content: space-between; align-items: center; font-weight: 700; }
.conteggio { background: var(--rosso); color: var(--bianco); border-radius: 10px; font-size: 12px; padding: 1px 8px; }
.colonna-totale { font-size: 13px; color: var(--testo-tenue); margin: 2px 0 10px; }
.scheda {
  background: var(--bianco); border: 1px solid var(--rosso-bordo); border-left: 4px solid var(--rosso);
  border-radius: 6px; padding: 10px; margin-bottom: 8px; cursor: pointer; box-shadow: var(--ombra);
}
.scheda:hover { border-color: var(--rosso); }
.scheda[draggable="true"] { cursor: grab; }
.scheda-titolo { font-weight: 600; }
.scheda-azienda { font-size: 13px; color: var(--testo-tenue); }
.scheda-piede { display: flex; justify-content: space-between; margin-top: 6px; font-size: 13px; }
.scaduta { color: var(--kpi-negativo); font-weight: 600; }

/* ---------- Finestra (modulo) ---------- */
.sfondo-modale {
  position: fixed; inset: 0; background: rgba(0, 0, 0, .35); z-index: 50;
  display: flex; align-items: flex-start; justify-content: center; padding: 40px 16px; overflow-y: auto;
}
.modale { background: var(--bianco); border-radius: 10px; width: 100%; max-width: 720px; box-shadow: 0 10px 40px rgba(0, 0, 0, .25); }
.modale-testa { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 3px solid var(--rosso); }
.modale-testa h2 { margin: 0; font-size: 18px; }
.modale-corpo { padding: 20px; }
.modale-piede { display: flex; justify-content: space-between; gap: 12px; padding: 14px 20px; border-top: 1px solid var(--rosso-bordo); }
.modale-piede .destra { display: flex; gap: 8px; margin-left: auto; }
.griglia-modulo { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.campo { display: flex; flex-direction: column; gap: 4px; }
.campo > span { font-size: 13px; font-weight: 600; }
.campo.largo { grid-column: 1 / -1; }
.campo.casella-campo { flex-direction: row; align-items: center; gap: 8px; }
.messaggio-errore { background: var(--rosso-chiaro); color: var(--rosso-scuro); border: 1px solid var(--rosso-bordo); border-radius: var(--raggio); padding: 10px 12px; margin-bottom: 14px; }
.collegati { margin-top: 18px; border-top: 1px solid var(--rosso-bordo); padding-top: 14px; }
.collegati h3 { font-size: 14px; margin: 10px 0 6px; }
.collegati ul { margin: 0; padding-left: 18px; }
.collegati li { margin: 2px 0; }
.collegati button { background: none; border: none; color: var(--rosso); cursor: pointer; padding: 0; text-align: left; }
.info-sistema { margin-top: 14px; font-size: 12px; color: var(--testo-tenue); }

/* ---------- Accesso ---------- */
.accesso { max-width: 440px; margin: 10vh auto; text-align: center; }
.accesso .logo { font-size: 28px; padding: 8px 18px; display: inline-block; margin-bottom: 16px; }
.accesso h1 { font-size: 22px; margin: 0 0 8px; }
.accesso p { color: var(--testo-tenue); margin: 0 0 24px; }

/* ---------- Avvisi ---------- */
.avvisi { position: fixed; right: 20px; bottom: 20px; z-index: 100; display: flex; flex-direction: column; gap: 8px; }
.avviso { background: var(--bianco); border: 1px solid var(--rosso-bordo); border-left: 4px solid var(--rosso); padding: 10px 14px; border-radius: 6px; box-shadow: 0 4px 16px rgba(0, 0, 0, .12); max-width: 360px; }
.avviso.errore { background: var(--rosso-chiaro); }

.etichetta-stato { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px; font-weight: 600; }
.etichetta-stato.ok { background: #E7F4EA; color: var(--kpi-positivo); }
.etichetta-stato.ko { background: var(--rosso-chiaro); color: var(--kpi-negativo); }

/* ---------- Schermi piccoli ---------- */
@media (max-width: 900px) {
  body.con-menu .principale { margin-left: 0; }
  .laterale { transform: translateX(-100%); transition: transform .2s; box-shadow: 0 0 30px rgba(0, 0, 0, .15); }
  .laterale.aperto { transform: none; }
  .velo.aperto { display: block; position: fixed; inset: 0; background: rgba(0, 0, 0, .3); z-index: 35; }
  body.con-menu .pulsante-menu { display: block; }
  .testata { padding: 0 16px; gap: 10px; }
  .titolo-pagina { font-size: 16px; }
  .utente .chi { display: none; }
  .home-griglia { grid-template-columns: 1fr; }
  .contenuto { padding: 16px; }
  .due-colonne, .griglia-modulo { grid-template-columns: 1fr; }
  .barra-fase { grid-template-columns: 90px 1fr 110px; }
}

/* =================== CRM =================== */
.crm-guscio { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 20px; align-items: start; }
.crm-menu { position: sticky; top: 76px; border: 1px solid var(--rosso-bordo); border-radius: var(--raggio); padding: 10px 8px 14px; background: var(--bianco); }
.crm-menu-titolo { font-weight: 800; font-size: 15px; padding: 2px 8px 8px; border-bottom: 2px solid var(--rosso); margin-bottom: 4px; }
.crm-grp { font-size: 11.5px; font-weight: 800; color: var(--rosso); padding: 12px 8px 4px; }
.crm-voce { display: block; padding: 6px 8px; border-radius: 6px; text-decoration: none; color: var(--testo); font-size: 13.5px; }
.crm-voce.s { padding-left: 16px; }
.crm-voce:hover { background: var(--rosso-chiaro); color: var(--rosso); }
.crm-voce.attiva { background: var(--rosso-chiaro); color: var(--rosso); font-weight: 700; box-shadow: inset 3px 0 0 var(--rosso); }
.crm-contenuto { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.crm-testa { border-bottom: 2px solid var(--testo); padding-bottom: 10px; }
.crm-testa h1 { margin: 0; font-size: 28px; font-weight: 800; }
.sub { color: var(--testo-tenue); font-size: 13.5px; margin: 4px 0 0; }
.lab { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--testo-tenue); font-weight: 700; margin: 0 0 2px; }
.crm-ubar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; border: 1px solid var(--rosso-bordo); border-radius: var(--raggio); padding: 8px 12px; font-size: 13px; }
.crm-pannello { border: 1px solid var(--rosso-bordo); border-radius: var(--raggio); padding: 18px; background: var(--bianco); min-width: 0; }
.crm-pannello h2 { margin: 0 0 6px; font-size: 22px; }
.crm-pannello h3 { margin: 18px 0 8px; font-size: 15px; }
.crm-rif { border: 1px solid var(--rosso-bordo); border-radius: var(--raggio); padding: 0 14px; }
.crm-rif summary { cursor: pointer; font-weight: 700; padding: 10px 0; }
.crm-rif table { margin-bottom: 10px; }
.chip { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 2px 9px; border-radius: 99px; background: #F2F2F2; color: var(--testo); white-space: nowrap; }
.chip.ok { background: #E6F2EA; color: var(--kpi-positivo); }
.chip.warn { background: #FFF4D6; color: #8A5A00; }
.chip.bad { background: var(--rosso-chiaro); color: var(--rosso); }
.chip.acc { background: var(--rosso); color: var(--bianco); }
.verdict { border-radius: 8px; padding: 10px 12px; background: #F6F6F6; font-size: 14px; margin: 8px 0; }
.verdict.ok { background: #E6F2EA; color: var(--kpi-positivo); }
.verdict.warn { background: #FFF4D6; color: #6B4700; }
.ro-banner { background: #FFF4D6; color: #6B4700; border-radius: 8px; padding: 10px 14px; }
.dhead { display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; align-items: flex-start; }
/* Listino aperto dal CRM, sopra la pagina */
.listino-strato { position: fixed; inset: 0; z-index: 900; background: #fff; display: flex; flex-direction: column; }
.listino-barra { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 14px; background: #FBEFD5; color: #7A4A00; font-size: 13.5px; font-weight: 600; border-bottom: 3px solid var(--rosso); }
.listino-frame { flex: 1; width: 100%; border: 0; }
#crm-azione.evidenzia { outline: 3px solid var(--rosso); outline-offset: 6px; border-radius: 8px; }
/* Clienti: elenco e scheda della Gestione clienti */
.cli-kpi .kpi { padding: 10px 12px; font-size: 13.5px; }
.gc-griglia { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(0, 2.2fr); gap: 18px; align-items: start; margin-top: 12px; }
@media (max-width: 900px) { .gc-griglia { grid-template-columns: 1fr; } }
.gc-elenco { list-style: none; margin: 0; padding: 0; max-height: 70vh; overflow: auto; border: 1px solid #EEE; border-radius: 8px; }
.gc-voce { display: block; width: 100%; text-align: left; border: 0; border-bottom: 1px solid #F0F0F0; background: #fff; padding: 8px 10px; cursor: pointer; font: inherit; font-size: 13px; }
.gc-voce:hover, .gc-voce.attiva { background: var(--rosso-chiaro); }
.gc-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; border: 1px solid var(--rosso-bordo); border-radius: 8px; padding: 12px; margin: 10px 0; }
.gc-agg { display: flex; gap: 6px; margin-top: 6px; } .gc-agg input { flex: 1; font-size: 12.5px; }
.pfbar { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; align-items: end; margin: 10px 0; }
.pfbar label { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; font-weight: 700; color: var(--testo-tenue); }
.pfbar select, .pfbar input { font-size: 12.5px; padding: 5px 7px; }
.pfnote { color: var(--rosso); font-weight: 600; font-size: 13px; margin: 0 0 8px; }
.apdot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--rosso); vertical-align: middle; }
.mono { font-family: Consolas, "Courier New", monospace; font-size: 12.5px; }
td.taglia { max-width: 320px; white-space: normal; }
.sezione-titoletto { margin: 18px 0 8px; font-size: 15px; }
.cock-blocco { margin-top: 14px; }
.up { color: var(--kpi-positivo); } .dn { color: var(--kpi-negativo); } .eq { color: var(--testo-tenue); }
tr.ko td { color: #8A8A8A; }
tr.tot td { font-weight: 700; border-top: 2px solid var(--rosso-bordo); }
tr.gruppo-opz td { background: var(--rosso-chiaro); }
.crm-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-top: 12px; }
.crm-form .full, .full { grid-column: 1 / -1; }
.f { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; }
.f > span { font-weight: 600; }
fieldset.tipo { border: 1px solid var(--rosso-bordo); border-radius: 8px; padding: 10px 14px 12px; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; }
fieldset.tipo legend { font-size: 13px; font-weight: 700; padding: 0 6px; }
fieldset.tipo legend small { font-weight: 400; color: var(--testo-tenue); }
.pchip, .opt { display: flex; gap: 8px; align-items: center; border: 1px solid var(--rosso-bordo); border-radius: 8px; padding: 8px 10px; cursor: pointer; font-size: 13.5px; font-weight: 400; }
.pchip:has(input:checked), .opt:has(input:checked) { border-color: var(--rosso); background: var(--rosso-chiaro); font-weight: 700; }
.opt span { display: flex; flex-direction: column; } .opt small { color: var(--testo-tenue); font-weight: 400; }
.opzioni { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.opzioni .opt input.tx { max-width: 260px; }
.lstbox { border: 1px dashed var(--rosso); border-radius: 8px; padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; }
.note { font-size: 12.5px; color: var(--testo-tenue); margin: 0; }
input.mini { width: 86px; text-align: right; padding: 4px 6px; }
input.mini-l { width: 110px; padding: 4px 6px; }
input.tx { padding: 5px 8px; }
.payset { border: 1px solid var(--rosso-bordo); border-radius: 8px; padding: 12px 14px 10px; display: flex; flex-direction: column; gap: 8px; margin: 0; }
.payset legend { font-size: 13px; font-weight: 700; padding: 0 4px; }
.payrow { display: grid; grid-template-columns: 150px 96px 20px minmax(0, 1fr); gap: 8px; align-items: center; font-size: 13.5px; }
.paytot { display: flex; justify-content: space-between; border-top: 1px solid var(--rosso-bordo); padding-top: 8px; font-size: 13px; }
.paytot.ok b { color: var(--kpi-positivo); } .paytot.bad b { color: var(--kpi-negativo); }
.ordsrc { background: #FBFBFB; border: 1px solid var(--rosso-bordo); border-radius: 8px; padding: 10px 14px; margin-top: 10px; }
.ordsrc p { margin: 4px 0 0; }
.btns { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.detail { display: flex; flex-direction: column; gap: 16px; }
.pdone { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; border: 1.5px solid var(--kpi-positivo); background: #F0F8F3; border-radius: 10px; padding: 14px 16px; }
.pdone > div { flex: 1 1 360px; }
.pdone-k { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--kpi-positivo); }
.pdone h3 { margin: 4px 0; font-size: 17px; } .pdone p { margin: 0; font-size: 14px; }
.ostato, .nbox { border: 1px solid var(--rosso-bordo); border-radius: 10px; padding: 10px 14px; }
.ostbtns { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0; }
.ost { border: 1px solid var(--rosso-bordo); background: var(--bianco); border-radius: 999px; padding: 6px 14px; font-weight: 700; font-size: 13px; cursor: pointer; }
.ost:hover:not(:disabled) { border-color: var(--rosso); color: var(--rosso); }
.ost.on { background: var(--rosso); border-color: var(--rosso); color: var(--bianco); }
.ost.on.acquired { background: var(--kpi-positivo); border-color: var(--kpi-positivo); }
.ost:disabled { cursor: not-allowed; opacity: .75; }
.nbox textarea { margin: 6px 0; }
.nint { border-top: 1px solid #F0F0F0; padding: 6px 0; } .nint div { white-space: pre-wrap; }
.steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; list-style: none; margin: 0; padding: 0; }
.steps li { border-top: 4px solid #E3E3E3; padding-top: 6px; font-size: 12.5px; color: var(--testo-tenue); }
.steps li span { display: block; font-family: Consolas, monospace; font-size: 11px; }
.steps li b { color: var(--testo); font-weight: 600; } .steps li em { display: block; font-style: normal; font-size: 11px; }
.steps li.done { border-color: var(--kpi-positivo); } .steps li.cur { border-color: var(--rosso); } .steps li.cur b { color: var(--rosso); }
.steps li.block { border-color: var(--kpi-negativo); } .steps li.skip { border-top-style: dashed; }
.chain { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 13px; }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px 20px; margin: 0; }
.facts dd { margin: 2px 0 0; overflow-wrap: anywhere; }
.facts select, .facts input { max-width: 240px; }
.ordbox { border: 1px solid var(--rosso-bordo); border-left: 4px solid var(--kpi-positivo); border-radius: 8px; padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; }
.docbox { border: 1px solid var(--rosso-bordo); border-radius: 8px; padding: 10px 12px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.docbox .ic { font-size: 20px; margin-right: 6px; }
.doclist { list-style: none; margin: 0; padding: 0; } .doclist li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; border-bottom: 1px solid #F0F0F0; padding: 6px 0; font-size: 13px; }
.act { border: 1px solid var(--rosso); border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; background: #FFFDFD; }

/* ===== Assistente FIC («Chiedi a FIC»): stessa finestra dell'artefatto ===== */
.chat-fab{border:0;border-radius:18px;background:#E40521;color:#FFFFFF;font:inherit;font-weight:700;font-size:13px;padding:7px 14px;cursor:pointer;flex:none;white-space:nowrap;margin-left:auto;margin-right:12px}
.chat-fab:hover{background:#C2041C}
.chat-fab[hidden]{display:none}
@media (max-width:560px){.chat-fab{padding:6px 10px;font-size:12px;margin-right:6px}}
.chat-p{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:61;width:min(420px,calc(100vw - 36px));height:min(640px,calc(100vh - 110px));background:#FFFFFF;color:#1F1F1F;border:1px solid #E3E3E3;border-top:3px solid #E40521;border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.18);display:flex;flex-direction:column;overflow:hidden}
.chat-p[hidden]{display:none}
.chat-h{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #EEEEEE}
.chat-h .tt{flex:1;min-width:0}
.chat-h b{display:block;font-size:14px}
.chat-h span{display:block;font-size:11.5px;color:#6E6E6E}
.chat-h button{border:1px solid #E3E3E3;background:#FFFFFF;color:#1F1F1F;border-radius:6px;font:inherit;font-size:12px;padding:4px 8px;cursor:pointer}
.chat-h button:hover{border-color:#E40521;color:#E40521}
.chat-h button[hidden]{display:none}
.chat-log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}
.chat-log[hidden],.chat-f[hidden]{display:none}
.cm{max-width:88%;font-size:13.5px;line-height:1.45;padding:8px 11px;border-radius:10px;overflow-wrap:anywhere}
.cm.u{align-self:flex-end;background:#E40521;color:#FFFFFF;border-bottom-right-radius:3px;white-space:pre-wrap}
.cm.a{align-self:flex-start;background:#FFFFFF;border:1px solid #E3E3E3;border-bottom-left-radius:3px}
.cm.a ul{margin:4px 0;padding-left:18px}
.cm.a p{margin:0 0 6px}.cm.a p:last-child{margin:0}
.cm .src{display:block;margin-top:6px;font-size:11px;color:#8C8C8C}
.cm.err{border-color:#E40521;color:#B3001B}
.cm .riserv{display:inline-block;background:#FDECEE;color:#E40521;border:1px solid #F4B6BF;font-weight:800;letter-spacing:.6px;padding:6px 12px;border-radius:6px;margin:2px 0}
.chat-hint{font-size:12.5px;color:#6E6E6E;line-height:1.45}
.chat-hint button{display:block;margin:6px 0 0;border:1px solid #E3E3E3;background:#FFFFFF;border-radius:14px;padding:5px 10px;font:inherit;font-size:12.5px;cursor:pointer;text-align:left;color:#1F1F1F}
.chat-hint button:hover{border-color:#E40521;color:#E40521}
.chat-f{display:flex;gap:6px;padding:10px;border-top:1px solid #EEEEEE}
.chat-f textarea{flex:1;resize:none;border:1px solid #D9D9D9;border-radius:8px;padding:8px 10px;font:inherit;font-size:13.5px;background:#FFFFFF;color:#1F1F1F}
.chat-f textarea:focus{outline:3px solid #FDECEE;border-color:#E40521}
.chat-f button{border:0;border-radius:8px;background:#E40521;color:#FFFFFF;font:inherit;font-weight:700;padding:0 14px;cursor:pointer}
.chat-f button[disabled]{opacity:.5;cursor:default}
.chat-docs{flex:1;overflow-y:auto;padding:12px;font-size:13px}
.chat-docs[hidden]{display:none}
.chat-docs h4{margin:0 0 6px;font-size:13px}
.chat-docs .row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #F0F0F0}
.chat-docs .row small{color:#8C8C8C}
.chat-docs .row button{border:1px solid #E3E3E3;background:#FFFFFF;border-radius:6px;font:inherit;font-size:12px;padding:3px 8px;cursor:pointer;color:#B3001B}
.chat-docs form{display:flex;flex-direction:column;gap:6px;margin-top:14px}
.chat-docs input,.chat-docs select,.chat-docs textarea{font:inherit;font-size:13px;border:1px solid #D9D9D9;border-radius:6px;padding:6px 8px;background:#FFFFFF;color:#1F1F1F}
.chat-docs textarea{min-height:120px;resize:vertical}
.chat-docs .save{border:0;border-radius:6px;background:#E40521;color:#FFFFFF;font-weight:700;padding:8px;cursor:pointer}
.chat-docs .msg{font-size:12px;color:#6E6E6E;min-height:16px}
.chat-docs .kb-az{display:flex;flex-direction:column;gap:4px;flex:none}
.chat-docs .row button.kb-chi{color:#1F1F1F}
.chat-docs .kb-ris{display:inline-block;margin-top:2px;font-size:11.5px;font-weight:700;color:#B3001B}
.chat-docs .kb-vis{border:1px solid #E3E3E3;border-radius:6px;padding:6px 8px;margin:0;display:flex;flex-direction:column;gap:4px}
.chat-docs .kb-vis legend{font-weight:700;font-size:12.5px;padding:0 4px}
.chat-docs .kb-r{display:flex;align-items:center;gap:6px;font-size:12.5px}
.chat-docs .kb-solo{display:flex;flex-direction:column;gap:6px}
.chat-docs .kb-solo[hidden]{display:none}
.chat-docs .kb-solo label{display:flex;flex-direction:column;gap:3px;font-size:12px}
.chat-docs .kb-solo textarea{min-height:44px}
.chat-docs .kb-str{max-height:180px;overflow-y:auto;border:1px solid #F0F0F0;border-radius:6px;padding:4px 6px;margin-top:4px}
.chat-docs .kb-sez b{display:block;font-size:11.5px;color:#E40521;margin-top:4px}
.chat-docs .kb-str label{flex-direction:row;align-items:center;gap:6px}
.chat-docs .kb-mod{margin:0 0 8px;padding:8px;background:#FAFAFA;border-radius:6px}
.chat-docs details summary{cursor:pointer;font-size:12px;color:#6E6E6E}
@media (max-width:560px){.chat-p{right:0;bottom:0;width:100vw;height:100%;border-radius:0;padding-top:env(safe-area-inset-top,0px)}}
.act.wait { border-style: dashed; border-color: var(--rosso-bordo); background: #FBFBFB; }
.act h3 { margin: 0; } .act p { margin: 0; }
.check { display: flex; gap: 10px; align-items: flex-start; padding: 4px 0; font-size: 14px; }
.pulsante.danger { background: var(--bianco); color: var(--kpi-negativo); border-color: var(--kpi-negativo); }
.pulsante.danger:hover { background: var(--rosso-chiaro); }
.log { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.log li { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 10px; font-size: 13.5px; }
.log li.mail { color: #6B4700; }
.mailst { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 9px; padding: 0 7px; background: #FFF4D6; color: #8A5A00; }
@media (max-width: 1000px) {
  .crm-guscio { grid-template-columns: 1fr; }
  .crm-menu { position: static; display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 4px; padding: 6px; }
  .crm-menu-titolo, .crm-grp { display: none; }
  .crm-voce, .crm-voce.s { white-space: nowrap; padding: 6px 10px; }
  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .log li { grid-template-columns: 1fr; gap: 0; }
  .payrow { grid-template-columns: 120px 80px 20px; } .payrow > :last-child { grid-column: 1 / -1; }
}
.lstbox td input:not(.mini):not(.mini-l):not([type=radio]) { min-width: 240px; }
.lstbox td { vertical-align: middle; }
.mailst.ok { background: #E6F2EA; color: var(--kpi-positivo); }
.mailst.ko { background: var(--rosso-chiaro); color: var(--kpi-negativo); }
