/* FSGest – aspetto da applicazione tradizionale, tabelle fitte.
   Blu #10638C (logo), verde #7FBAA8 solo per ciò che è attivo o selezionato, nero #1E1E1C. */
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-display:swap;src:url("font/IBMPlexSans-Regular-Latin1.678efa63c3fb.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-display:swap;src:url("font/IBMPlexSans-Medium-Latin1.e0399fc4473d.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-display:swap;src:url("font/IBMPlexSans-SemiBold-Latin1.106da8161b57.woff2") format("woff2")}

:root{
  --blu:#10638C;--blu-scuro:#0A4763;--blu-chiaro:#DDEBF1;--blu-velo:#EEF4F6;--blu-hover:#F2F7F9;
  --verde:#7FBAA8;--verde-chiaro:#CFE6DE;--verde-scuro:#17483A;
  --nero:#1E1E1C;--nero-2:#2E2E2B;--grigio-bordo:#C5CCD0;--grigio-riga:#E6EAEC;--grigio-testo:#4A5154;
  --grigio-spento:#6B7275;--grigio-fondo:#F6F7F8;--grigio-th:#F1F3F4;--input-bordo:#B9C2C6;
  --rosso:#A32D2D;--rosso-chiaro:#F6E0E0;--giallo-chiaro:#FBF0D0;--giallo-scuro:#5C4600;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--grigio-fondo);font:400 13.5px/1.4 "IBM Plex Sans",system-ui,sans-serif;color:var(--nero);display:flex;flex-direction:column;min-height:100vh}
a{color:var(--blu)}a:hover{color:var(--blu-scuro)}
h1,h2,h3{margin:0;font-weight:600}
h2{font-size:16px}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blu);outline-offset:1px}
.nascosto{position:absolute;left:-9999px}

/* --- barra dei moduli (PC) --- */
.moduli{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 12px;background:#fff;border-bottom:1px solid var(--grigio-bordo)}
.moduli .logo{height:44px;margin-right:18px;display:block}
.tb{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:72px;min-height:60px;padding:8px 10px 6px;border:1px solid transparent;border-radius:6px;background:none;font:500 12.5px "IBM Plex Sans",sans-serif;color:var(--nero);cursor:pointer;text-decoration:none}
.tb:hover{background:var(--blu-velo);border-color:#C9D8DE;color:var(--nero)}
.tb svg{width:26px;height:26px;stroke:var(--blu);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tb.on{background:var(--blu-chiaro);border-color:var(--blu);color:var(--blu-scuro)}
.tb.off{color:var(--grigio-spento);cursor:default}.tb.off svg{stroke:#8A9296}
.tb.off:hover{background:none;border-color:transparent}
@media (max-width:1500px){.tb{min-width:60px;padding:8px 5px 6px}}  /* con tutte le voci (Amministrazione) il menu resta su una riga a 1366 px */
.moduli .sep{width:1px;height:48px;background:var(--grigio-bordo);margin:0 8px}
.moduli .spazio{flex-grow:1}
.moduli form{margin:0}
.menu-utente{position:relative}
.menu-utente summary{list-style:none}.menu-utente summary::-webkit-details-marker{display:none}
.menu-utente .tendina{position:absolute;right:0;top:100%;z-index:10;min-width:220px;display:flex;flex-direction:column;gap:2px;padding:8px;background:#fff;border:1px solid var(--grigio-bordo);border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.menu-utente .tendina .nota{padding:4px 8px 8px;border-bottom:1px solid var(--grigio-riga);margin-bottom:4px}
.menu-utente .tendina a,.menu-utente .tendina button{display:block;width:100%;text-align:left;padding:7px 8px;border:0;border-radius:4px;background:none;color:var(--nero);text-decoration:none;cursor:pointer}
.menu-utente .tendina a:hover,.menu-utente .tendina button:hover{background:var(--blu-velo)}

/* --- barra della pagina (nera su PC) --- */
.barra{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 14px;background:var(--nero);color:#fff}
.barra h1{font-size:17px;margin-right:8px}
.barra .spazio{flex-grow:1}
.barra .utente-tel{display:none}
.dk{display:inline-flex;align-items:center;height:32px;padding:0 12px;border:1px solid #5A6165;border-radius:5px;background:none;font:500 13px "IBM Plex Sans",sans-serif;color:#fff;cursor:pointer;text-decoration:none;white-space:nowrap}
.dk:hover{background:#3A3A37;color:#fff}
.dk.on{background:var(--verde);border-color:var(--verde);color:var(--nero)}
.dk.primario{background:var(--blu);border-color:var(--blu)}
.dk .conta{margin-left:6px;padding:0 6px;border-radius:9px;background:#fff;color:var(--nero);font-size:11.5px;font-weight:600}
.barra input[type=search]{width:320px;max-width:100%;height:32px;padding:0 10px;border:1px solid #5A6165;border-radius:5px;background:var(--nero-2);color:#fff}
.barra input[type=search]::placeholder{color:#AEB5B8}
.barra select{height:32px;padding:0 8px;border:1px solid #5A6165;border-radius:5px;background:var(--nero-2);color:#fff}
.barra form{display:flex;gap:8px;align-items:center;margin:0;flex-wrap:wrap}
.chip-tel{display:none}

/* --- contenuto --- */
main{flex-grow:1;display:flex;flex-direction:column;min-height:0}
/* Su PC l'intestazione (moduli, barra scura, schede, messaggi) resta ferma e scorre solo il contenuto:
   vale per tutte le pagine (elenchi, schede, preventivi, prefatture, contratti...). Le intestazioni delle
   tabelle (.fitta th) restano in cima all'area che scorre. */
@media (min-width:761px){
  body{height:100vh;min-height:0;overflow:hidden}
  main{overflow:auto}
}
.pagina{padding:16px;max-width:1200px;width:100%}
.pagina.stretta{max-width:720px}
.messaggi{margin:0;padding:0;list-style:none}
.messaggi li{padding:8px 14px;border-bottom:1px solid var(--grigio-bordo);background:var(--blu-chiaro);color:var(--blu-scuro)}
.messaggi li.success{background:var(--verde-chiaro);color:var(--verde-scuro)}
.messaggi li.error{background:var(--rosso-chiaro);color:var(--rosso)}
.messaggi li.warning{background:var(--giallo-chiaro);color:var(--giallo-scuro)}

/* --- tabelle fitte --- */
table.fitta{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff}
.fitta th{position:sticky;top:0;z-index:1;text-align:left;padding:8px 10px;background:var(--grigio-th);border-bottom:1px solid var(--grigio-bordo);font-weight:600;color:#3D4447;white-space:nowrap}
.fitta th a{color:inherit;text-decoration:none}.fitta th a:hover{text-decoration:underline}
.fitta td{padding:6px 10px;border-bottom:1px solid var(--grigio-riga);white-space:nowrap;vertical-align:middle}
.fitta td.a-capo{white-space:normal}
.fitta tbody tr:hover td{background:var(--blu-hover)}
.fitta tbody tr.sel td,.fitta tbody tr.sel:hover td{background:var(--blu);color:#fff}
.fitta tr.sel td a{color:#fff}
.fitta .num{text-align:right}
.fitta tr[data-href]{cursor:pointer}
.fitta td a.cod{color:inherit;text-decoration:none}
.fitta .spento td{color:var(--grigio-spento)}
.fitta input[type=text]{height:28px;padding:0 6px;border:1px solid var(--input-bordo);border-radius:4px;width:80px;text-align:right}
.fitta input[type=checkbox]{width:17px;height:17px}
.fitta .mob{display:none}
table.fissa{table-layout:fixed}
.fissa td{overflow:hidden;text-overflow:ellipsis}
.fissa col.mob{width:0}
.fissa .w-cod{width:66px}.fissa .w-nc{width:24%}.fissa .w-cit{width:140px}.fissa .w-km{width:52px}.fissa .w-piva{width:116px}.fissa .w-st{width:82px}.fissa .w-dist{width:86px}

/* --- Clienti: elenco a sinistra, scheda a destra --- */
.divisione{display:flex;flex-wrap:nowrap;flex-grow:1;align-items:stretch;min-height:0;height:calc(100vh - 124px)}
.elenco{flex:1 1 620px;min-width:0;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--grigio-bordo)}
.elenco .scorre{overflow:auto;flex-grow:1}
.pie{display:flex;flex-wrap:wrap;gap:16px;padding:7px 12px;background:var(--grigio-th);border-top:1px solid var(--grigio-bordo);color:#3D4447;font-size:12.5px}
.pie .spazio{flex-grow:1}
.scheda{flex:0 0 470px;min-width:0;display:flex;flex-direction:column;background:#FAFBFB;overflow:auto}
.schede-tab{flex-shrink:0;display:flex;gap:2px;padding:8px 12px 0;border-bottom:1px solid var(--grigio-bordo);position:sticky;top:0;background:#FAFBFB;z-index:1}
.tab{display:inline-flex;align-items:center;height:34px;padding:0 14px;border:1px solid transparent;border-radius:5px 5px 0 0;color:var(--nero);text-decoration:none;font-weight:500}
.tab:hover{background:var(--blu-velo);color:var(--nero)}
.tab.on{background:#FAFBFB;border-color:var(--grigio-bordo);border-bottom-color:#FAFBFB;margin-bottom:-1px;font-weight:600}
.tab.off{color:#8A9296;cursor:default}.tab.off:hover{background:none}
.scheda-corpo{display:flex;flex-direction:column;gap:16px;padding:14px 16px;flex-grow:1}
.titolo-scheda{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.titolo-scheda .nome{font-size:17px;font-weight:600}
.indietro{display:none}
.azioni-rapide:empty{display:none}
.vuota{padding:40px 24px;color:var(--grigio-testo);text-align:center}
.stato{display:inline-block;padding:2px 9px;border-radius:10px;font-size:12px;font-weight:600;white-space:nowrap}
.stato.attivo{background:var(--verde-chiaro);color:var(--verde-scuro)}
.stato.non-attivo{background:#E4E7E9;color:#3D4447}
.stato.avviso{background:var(--giallo-chiaro);color:var(--giallo-scuro)}
.stato.errore{background:var(--rosso-chiaro);color:var(--rosso)}
.sezione{display:flex;flex-direction:column;gap:8px}
.sezione>.intest{font-weight:600;color:var(--blu-scuro);border-bottom:1px solid #D5DCDF;padding-bottom:4px}
.nota{color:var(--grigio-testo);font-size:12.5px}

/* --- campi (etichetta a sinistra) --- */
.fl{display:grid;grid-template-columns:128px minmax(0,1fr);align-items:center;gap:6px 10px}
.fl>label,.fl>.etichetta,.fl>.gruppo-campo>label{color:var(--grigio-testo);font-size:12.5px}
.fl>.gruppo-campo{display:contents}.fl>.gruppo-campo[hidden]{display:none}
.fl .valore{min-height:30px;display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.fl input[type=text],.fl input[type=email],.fl input[type=number],.fl input[type=password],.fl select,.fl textarea,input.campo{width:100%;min-width:0;height:30px;padding:0 8px;border:1px solid var(--input-bordo);border-radius:4px;font:400 13.5px "IBM Plex Sans",sans-serif;color:var(--nero);background:#fff}
.fl textarea{height:auto;padding:6px 8px;resize:vertical}
.fl input[readonly],.fl input:disabled,.fl select:disabled,.fl textarea:disabled{background:#EEF0F1;color:var(--nero)}
.fl input[type=checkbox]{width:18px;height:18px;margin:0}
.fl .errore,.errore{color:var(--rosso);font-size:12.5px;grid-column:2}
.fl .aiuto{color:var(--grigio-testo);font-size:12px;grid-column:2;margin-top:-3px}
.fl ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px}
.fl ul label{display:flex;align-items:center;gap:6px}
.errori-modulo{padding:8px 12px;border-radius:5px;background:var(--rosso-chiaro);color:var(--rosso)}
.errori-modulo ul{margin:0;padding-left:18px}

/* --- pulsanti --- */
.bt{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 14px;border:1px solid var(--input-bordo);border-radius:5px;background:#fff;font:500 13px "IBM Plex Sans",sans-serif;color:var(--nero);cursor:pointer;text-decoration:none;white-space:nowrap}
.bt:hover{background:var(--blu-velo);color:var(--nero)}
.bt.primario{background:var(--blu);border-color:var(--blu);color:#fff}
.bt.primario:hover{background:var(--blu-scuro)}
.bt.piccolo{height:28px;padding:0 10px;font-size:12.5px}
.bt.pericolo{color:var(--rosso)}
.pulsanti{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pulsanti .spazio{flex-grow:1}
form.in-linea{display:inline;margin:0}

/* --- schede (riquadri) --- */
.riquadro{background:#fff;border:1px solid var(--grigio-bordo);border-radius:6px;padding:12px 14px}
.riquadro h2{margin-bottom:8px}
.griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.cifra{font-size:26px;font-weight:600;color:var(--blu-scuro);line-height:1.1}
.cifra-nota{color:var(--grigio-testo);font-size:12.5px}
a.riquadro{text-decoration:none;color:var(--nero)}
a.riquadro:hover{border-color:var(--blu);background:var(--blu-velo)}
.riquadro.allerta{border-left:4px solid #C79A1E}
.elenco-sedi{display:flex;flex-direction:column;gap:10px}
.sede{background:#fff;border:1px solid var(--grigio-bordo);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.sede .riga1{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-weight:600}
.dl{display:grid;grid-template-columns:max-content 1fr;gap:3px 12px;margin:0}
.dl dt{color:var(--grigio-testo);font-size:12.5px}
.dl dd{margin:0}

/* --- doppioni --- */
.caso{background:#fff;border:1px solid var(--grigio-bordo);border-radius:6px;margin-bottom:14px}
.caso .testa{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--grigio-bordo);background:var(--grigio-th)}
.caso .testa strong{font-size:14px}
.caso table{margin:0}
.caso .scelte{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px}
.caso label.scelta{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--input-bordo);border-radius:5px;background:#fff;cursor:pointer}
.caso label.scelta:has(input:checked){background:var(--verde-chiaro);border-color:var(--verde);color:var(--verde-scuro)}

/* --- accesso --- */
.accesso-sfondo{flex-grow:1;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--grigio-fondo)}
.accesso-box{width:100%;max-width:400px;background:#fff;border:1px solid var(--grigio-bordo);border-radius:8px;padding:24px 24px 20px;display:flex;flex-direction:column;gap:16px}
.accesso-box .logo{height:64px;align-self:center}
.accesso-box h1{font-size:18px}
.accesso-box .fl{grid-template-columns:1fr}
.accesso-box .fl input{height:42px;font-size:16px}
.accesso-box .bt{height:42px;font-size:15px}
.accesso-box.largo{max-width:560px}
/* QR sempre nero su bianco, qualunque sia il tema della pagina o del browser */
.qr{display:flex;justify-content:center;color-scheme:only light;forced-color-adjust:none}
.qr img{display:block;box-sizing:content-box;flex:none;min-width:220px;padding:12px;background:#fff;border:1px solid var(--grigio-bordo);border-radius:6px;image-rendering:pixelated;filter:none}
.chiave-manuale{display:flex;flex-direction:column;gap:8px}
.segreto{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px;letter-spacing:.5px;background:var(--grigio-th);padding:8px 10px;border-radius:5px;word-break:normal;overflow-wrap:normal;text-align:center}
ol.passi{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}

/* --- navigazione del telefono --- */
.nav-tel{display:none}
.nv{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:60px;border:0;background:none;font:500 11.5px "IBM Plex Sans",sans-serif;color:var(--grigio-testo);text-decoration:none}
.nv svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.nv.on{color:var(--blu);font-weight:600}
.nv.off{color:#8A9296}

/* ============ Telefono ============ */
@media (max-width:760px){
  body{font-size:15px}
  .moduli{display:none}
  .barra{flex-direction:column;align-items:stretch;gap:12px;padding:14px 16px;background:var(--blu)}
  .barra .titolo-riga{display:flex;align-items:center;justify-content:space-between}
  .barra h1{font-size:20px}
  .barra .utente-tel{display:inline;font-size:13px}
  .barra .spazio,.barra .solo-pc{display:none}
  .barra form{flex-direction:column;align-items:stretch;gap:12px}
  .barra.con-scheda form{display:none}
  .barra input[type=search]{width:100%;height:46px;border:0;border-radius:8px;background:#fff;color:var(--nero);font-size:16px;padding:0 14px}
  .barra input[type=search]::placeholder{color:#6B7275}
  .chip-tel{display:flex;gap:8px;flex-wrap:wrap}
  .chip{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid #fff;border-radius:22px;background:none;color:#fff;font:500 14px "IBM Plex Sans",sans-serif;text-decoration:none}
  .chip:hover{color:#fff}
  .chip.on{background:var(--verde);border-color:var(--verde);color:var(--nero);font-weight:600}
  main{padding-bottom:64px}
  .nav-tel{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:5;border-top:1px solid var(--grigio-bordo);background:#fff}

  .divisione{height:auto;flex-direction:column}
  .elenco{border-right:0}
  .divisione.con-scheda .elenco{display:none}
  .divisione:not(.con-scheda) .scheda{display:none}
  .scheda{flex:1 1 auto;background:#fff}
  .indietro{display:flex;align-items:center;min-height:48px;padding:0 16px;border-bottom:1px solid var(--grigio-riga);font-weight:500;text-decoration:none}
  .schede-tab{overflow-x:auto;background:#fff}
  .tab{height:44px}
  /* solo l'elenco clienti diventa una lista di schede; le altre tabelle scorrono in orizzontale */
  .elenco-schede thead{display:none}
  table.elenco-schede,.elenco-schede tbody,.elenco-schede tr{display:block}
  .elenco-schede colgroup{display:none}
  .elenco-schede tbody td{display:none}
  .elenco-schede tbody td.mob{display:flex;flex-direction:column;gap:3px;min-height:64px;padding:11px 16px;border-bottom:1px solid #E1E6E8;white-space:normal}
  .fitta td.mob .p1{font-size:16px;font-weight:600}
  .fitta td.mob .p2{font-size:13.5px;color:var(--grigio-testo)}
  .fitta tr.sel td.mob .p2{color:#fff}
  .pie{font-size:13px}
  .fl{grid-template-columns:1fr;gap:4px}
  .fl>label{margin-top:6px}
  .fl .errore,.fl .aiuto{grid-column:1}
  .fl input[type=text],.fl input[type=email],.fl input[type=number],.fl input[type=password],.fl select{height:44px;font-size:16px}
  .bt{height:44px;font-size:15px}
  .pagina{padding:12px}
  .tabella-tel{overflow-x:auto}
}
@media (min-width:761px) and (max-width:1100px){
  .scheda{flex-basis:400px}
  .fitta .col-piva,.fitta .col-nc{display:none}
  .fissa .col-piva,.fissa .col-nc{display:table-cell;width:0;padding:0;border:0}
  .fissa col.col-piva,.fissa col.col-nc{display:table-column}
}

/* ============ Fase 1: lavori e interventi ============ */
.urg{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600;white-space:nowrap;background:#E3E8EA;color:#3D4447}
.urg-urgente{background:#F3C4C0;color:#7A120B}
.urg-alta{background:#F6D9C9;color:#7A2E0B}
.rit-ritardo{color:#A32D2D;font-weight:600}
.rit-oggi{color:#8A4B00;font-weight:600}
.fitta tr.sel .rit-ritardo,.fitta tr.sel .rit-oggi{color:#fff}
.stato.st-aperto{background:#E4E7E9;color:#3D4447}
.stato.st-programmato{background:#E7EEF7;color:#24456B}
.stato.st-in_corso{background:var(--blu-chiaro);color:var(--blu-scuro)}
.stato.st-finito{background:var(--verde-chiaro);color:var(--verde-scuro)}
.stato.st-chiuso{background:#E4E7E9;color:#6B7275}
.titolo-scheda .spazio{flex-grow:1}
.chiudi-scheda{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--input-bordo);border-radius:5px;background:#fff;color:var(--nero);text-decoration:none;font-size:15px}
.chiudi-scheda:hover{background:var(--blu-velo);color:var(--nero)}
.schede-tel{display:none}
.tabella-pc .col-cliente{max-width:340px}
.tabella-pc .tronca{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
.tabella-pc .col-cliente .tronca{max-width:300px}
.tabella-pc .col-tecnici{max-width:160px;overflow:hidden;text-overflow:ellipsis}
.divisione.con-scheda .tabella-pc .c-opz{display:none}
.divisione.con-scheda .tabella-pc .col-cliente .tronca{max-width:220px}
.solo-pc-flex{display:flex}
.fitta.compatta td,.fitta.compatta th{padding:5px 6px;font-size:13px}
.voce{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--grigio-riga);color:var(--nero);text-decoration:none}
.voce:hover{color:var(--blu-scuro)}
.voce>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cruscotto{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.cruscotto h2{display:flex;align-items:center;gap:8px}
.conta-titolo{padding:0 7px;border-radius:9px;background:var(--grigio-th);font-size:12.5px}
.riquadro.allerta-forte{border-left:4px solid #A32D2D}
.barra-ore{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.barra-ore-sfondo{flex:1;min-width:120px;height:12px;border-radius:6px;background:#E3E8EA;overflow:hidden}
.barra-ore-pieno{height:100%;background:var(--blu)}
.barra-ore-pieno.oltre{background:#A32D2D}
.testo-riquadro{padding:8px 10px;border:1px solid #D5DCDF;border-radius:4px;background:#fff;min-height:48px}
.campo-testo{width:100%;padding:6px 8px;border:1px solid var(--input-bordo);border-radius:4px;font:400 13.5px "IBM Plex Sans",sans-serif;resize:vertical}
.lb{display:block;font-size:13px;font-weight:600;color:var(--grigio-testo);letter-spacing:.2px}
.filtri-periodo{display:flex;align-items:center;gap:6px;color:#fff;font-size:12.5px}
.filtri-periodo select,.filtri-periodo input{height:32px;padding:0 6px;border:1px solid #5A6165;border-radius:5px;background:var(--nero-2);color:#fff;color-scheme:dark}
.vicini-barra{padding:10px 12px;border-bottom:1px solid var(--grigio-bordo);background:#fff;display:flex;flex-direction:column;gap:6px}
.vicini-barra input[type=range]{flex:1;min-width:140px}
.sottotitolo{font-size:14px}
.indietro-barra{display:inline-flex;align-items:center;justify-content:center;width:36px;margin-left:-8px;color:inherit;text-decoration:none;font-size:26px;line-height:1}
.indietro-barra:hover{color:inherit}

/* schede (telefono) */
.cd{display:flex;flex-direction:column;gap:5px;padding:12px 14px;border:1px solid #D5DCDF;border-radius:8px;background:#fff;color:var(--nero);text-decoration:none}
a.cd:hover{background:#F2F7F9;color:var(--nero)}
.cd-testa{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--nero);text-decoration:none}
.cd-titolo{font-size:16px;font-weight:600}
.cd-titolo-piccolo{font-size:15px}
.cd-desc{font-size:14.5px}
.cd-piede{display:flex;justify-content:space-between;align-items:center;gap:10px}
.go{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:8px;background:var(--blu);color:#fff;font:600 15px "IBM Plex Sans",sans-serif;text-decoration:none;flex-shrink:0}
.go:hover{background:var(--blu-scuro);color:#fff}

/* giornata */
.giornata{display:flex;flex-direction:column;gap:10px}
.titoletto{margin:10px 0 0;font-size:13px;font-weight:600;color:var(--grigio-testo)}
.in-corso{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:8px;background:var(--verde-chiaro);border:1px solid var(--verde)}
.in-corso-etichetta{font-size:12.5px;font-weight:600;color:var(--verde-scuro)}
.in-corso-titolo{font-size:17px;font-weight:600}
.grande{display:flex;align-items:center;justify-content:center;text-align:center;min-height:48px;padding:6px 14px;border-radius:8px;font:600 15px "IBM Plex Sans",sans-serif;text-decoration:none;cursor:pointer;border:1px solid var(--blu)}
.grande.primario{background:var(--blu);color:#fff;border-color:var(--blu)}
.grande.primario:hover{background:var(--blu-scuro);color:#fff}
.grande.secondario{background:#fff;color:var(--blu-scuro)}
.grande.secondario:hover{background:var(--blu-velo);color:var(--blu-scuro)}
.due-pulsanti{display:flex;gap:10px}
.due-pulsanti>*{flex:1}

/* modulo dell'intervento */
.modulo-intervento{display:flex;flex-direction:column;gap:18px}
.blocco{display:flex;flex-direction:column;gap:8px}
.in{height:44px;width:100%;min-width:0;padding:0 10px;border:1px solid var(--input-bordo);border-radius:8px;background:#fff;font:400 15px "IBM Plex Sans",sans-serif;color:var(--nero)}
.modulo-intervento textarea,.modulo-intervento select{width:100%;padding:10px 12px;border:1px solid var(--input-bordo);border-radius:8px;background:#fff;font:400 15px "IBM Plex Sans",sans-serif;color:var(--nero)}
.modulo-intervento select{height:44px;padding:0 10px}
.segmenti{display:flex}
.segmenti input{position:absolute;opacity:0;pointer-events:none}
.segmenti label{flex:1;display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--blu);background:#fff;color:var(--blu-scuro);font-weight:600;cursor:pointer}
.segmenti label:first-of-type{border-radius:8px 0 0 8px}
.segmenti label:last-of-type{border-radius:0 8px 8px 0;border-left:0}
.segmenti input:checked+label{background:var(--blu);color:#fff}
.segmenti input:focus-visible+label{outline:2px solid var(--nero);outline-offset:2px}
.modulo-intervento .sez-adesso{display:none}
.modulo-intervento:has(#modo-adesso:checked) .sez-adesso{display:flex}
.modulo-intervento:has(#modo-adesso:checked) .sez-orari{display:none}
.fasce{display:flex;flex-direction:column;gap:8px}
.fascia{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:8px}
.fascia>div{display:flex;flex-direction:column;gap:4px}
.fascia label{font-size:12.5px;color:var(--grigio-testo)}
.fascia.vuota{display:none}
.riga-durata{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}
button.link{border:0;background:none;color:var(--blu);font:500 14px "IBM Plex Sans",sans-serif;cursor:pointer;padding:6px 0;text-decoration:underline}
.esiti{display:flex;gap:10px}
.esito{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;min-height:64px;padding:8px;border:2px solid var(--input-bordo);border-radius:8px;background:#fff;font-weight:600;cursor:pointer}
.esito input{position:absolute;opacity:0;pointer-events:none}
.esito:has(input:checked){border-color:var(--verde-scuro);background:var(--verde-chiaro);color:var(--verde-scuro)}
.esito:has(input:focus-visible){outline:2px solid var(--nero);outline-offset:2px}
.sez-nota-esito{display:none;flex-direction:column;gap:6px;margin-top:4px}
.blocco:has(input[value="altro"]:checked) .sez-nota-esito,.sez-nota-esito:has(.errore){display:flex}
.trasferta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border:1px solid #D5DCDF;border-radius:8px;background:#fff}
.trasferta input[type=checkbox]{width:22px;height:22px;margin:0}
.trasferta .km{width:90px;height:40px}
.fase2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fase2 button{min-height:44px;border:1px dashed var(--input-bordo);border-radius:8px;background:none;color:#5A6165;font:500 14px "IBM Plex Sans",sans-serif}
.avviso-riquadro{margin:0;padding:10px 12px;border-radius:6px;background:var(--giallo-chiaro);color:var(--giallo-scuro)}
.avviso-riquadro.errore{background:var(--rosso-chiaro);color:var(--rosso)}

@media (max-width:760px){
  .tabella-pc{display:none}
  .tabella-interventi{min-width:980px}
  .tabella-tel,.pagina{overflow-x:auto}
  .schede-tel{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:#F3F5F6}
  .solo-pc-flex{display:none}
  .elenco .scorre{background:#F3F5F6}
  .barra .dk{align-self:flex-start}
  .filtri-periodo{flex-wrap:wrap}
  .cruscotto{grid-template-columns:1fr}
  .grande{min-height:52px;font-size:16px}
  .in{height:48px;font-size:16px}
  .pagina.giornata,.giornata{padding:14px 16px}
}
.fascia .in{padding:0 6px}
.barra .senza-ruolo{font-size:12px;align-self:center;color:var(--giallo-chiaro)}

/* Telefono: "+ Nuovo lavoro" in cima all'elenco, sempre visibile scorrendo */
.nuovo-tel{display:none}
@media (max-width:760px){
  .nuovo-tel{display:block;position:sticky;top:0;z-index:3;padding:10px 16px;background:#F3F5F6;border-bottom:1px solid var(--grigio-bordo)}
  .nuovo-tel .bt{display:flex;width:100%;justify-content:center;box-sizing:border-box}
}
@media (min-width:761px){.barra .cerca-cliente input[type=search]{width:440px}}

/* La mia giornata: totali di oggi */
.totali-oggi{flex-shrink:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:14px;border:1px solid var(--grigio-bordo);border-radius:8px;overflow:hidden;background:var(--grigio-bordo)}
.totali-oggi>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:#fff}
.totali-oggi .tot-val{font-size:17px;font-weight:600;white-space:nowrap}
.totali-oggi .tot-et{font-size:12px;color:var(--grigio-testo)}
.totali-oggi>div:first-child .tot-val{color:var(--blu)}
@media (max-width:760px){.totali-oggi{grid-template-columns:1fr 1fr}}

/* Filtro «Vicini»: paese e raggio */
.vicini-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.vicini-form .v-paese{width:240px;height:32px;padding:0 10px;border:1px solid var(--grigio-bordo);border-radius:5px;font:inherit}
.vicini-form .v-raggio{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.vicini-form .v-raggio input{width:70px;height:32px;padding:0 8px;border:1px solid var(--grigio-bordo);border-radius:5px;font:inherit}
.vicini-barra .nota.errore{color:var(--rosso)}
.solo-tel-inline{display:none}
@media (max-width:760px){
  .vicini-barra{padding:12px 16px}
  .vicini-form .v-paese{flex:1 1 100%;width:auto;height:44px;font-size:16px}
  .vicini-form .v-raggio input{height:44px;font-size:16px}
  .vicini-form label[for=v-paese]{flex-basis:100%}
  .solo-tel-inline{display:inline}
  button.solo-tel-inline,.bt.solo-tel-inline{display:inline-flex}
}

/* Prova dell'invio mail */
.esito-posta.ok{border-left:4px solid var(--verde)}
.esito-posta.errore{border-left:4px solid var(--rosso);background:var(--rosso-chiaro)}
.esito-posta.errore h2{color:var(--rosso)}
.esito-posta p{margin:0 0 8px}
.esito-posta code{white-space:pre-wrap;word-break:break-word}

/* ============ Fase 2: contratti ============ */
.residuo-grande{display:flex;gap:24px;flex-wrap:wrap;align-items:baseline}
.residuo-grande strong{font-size:20px}
.residuo-grande .negativo{color:#A32D2D}
.ore-negative{color:#A32D2D;font-weight:700;white-space:nowrap}
.voce.contratto>span:first-child{white-space:normal}
.fl>div:has(>div>label>input[type=radio]){display:flex;gap:6px 16px;flex-wrap:wrap;min-height:30px;align-items:center}

/* ============ Fase 2: completamento dell'intervento ============ */
.modalita{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.scelta{display:flex;align-items:center;justify-content:center;text-align:center;min-height:48px;padding:6px;border:2px solid var(--input-bordo);border-radius:8px;background:#fff;font-weight:600;font-size:14px;cursor:pointer}
.scelta input{position:absolute;opacity:0;pointer-events:none}
.scelta:has(input:checked){border-color:var(--blu);background:var(--blu-velo);color:var(--blu-scuro)}
.scelta:has(input:focus-visible){outline:2px solid var(--nero);outline-offset:2px}
.modulo-intervento:has(input[name=modalita]:checked:not([value=presso])) .sez-presso{display:none}
.righe-mod{display:flex;flex-direction:column;gap:8px}
.riga-mat{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1.5fr) 70px 60px;gap:6px}
.riga-spesa{display:grid;grid-template-columns:minmax(0,1.2fr) 90px minmax(0,2fr);gap:6px}
.righe-mod .nascosta{display:none}
.foto-griglia{display:flex;flex-wrap:wrap;gap:8px}
.foto-mini{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12.5px}
.foto-mini img{width:96px;height:96px;object-fit:cover;border-radius:6px;border:1px solid var(--grigio-bordo)}
.foto-scheda{display:flex;flex-wrap:wrap;gap:8px}
.foto-scheda img{width:120px;height:120px;object-fit:cover;border-radius:6px;border:1px solid var(--grigio-bordo)}
.tab-mat input{width:90px;height:28px;padding:0 6px;border:1px solid var(--input-bordo);border-radius:4px;text-align:right;font:inherit}
@media (max-width:760px){
  .modalita{grid-template-columns:1fr 1fr}
  .riga-mat{grid-template-columns:minmax(0,1fr) 70px 60px;padding-bottom:8px;border-bottom:1px solid var(--grigio-riga)}
  .riga-mat input[name=mat_descrizione]{grid-column:1/-1}
  .riga-spesa{grid-template-columns:minmax(0,1fr) 90px}
  .riga-spesa input[name=spesa_nota]{grid-column:1/-1}
}
button.link{white-space:nowrap}
.file-foto{padding:10px 0;font:inherit}
.firma-box{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid #D5DCDF;border-radius:8px;background:#fff}
.firma-box canvas{width:100%;height:auto;aspect-ratio:600/220;border:1px dashed var(--input-bordo);border-radius:6px;touch-action:none;background:#FCFCFC}
.scelte-invio{display:flex;flex-direction:column;gap:6px}
.modulo-intervento:not(:has(input[name=invio][value=altro]:checked)) input[name=invio_altro]:not(:has(~.errore)){display:none}
.riga-invio{display:flex;gap:6px;flex-wrap:wrap}
.riga-invio input{flex:1;min-width:160px;height:30px;padding:0 8px;border:1px solid var(--input-bordo);border-radius:4px;font:inherit}

/* ============ Fase 2: prefattura ============ */
.prefattura{display:flex;flex-direction:column;gap:10px}
.scorre-orizzontale{overflow-x:auto}
.righe-prefattura input{width:100%;height:28px;padding:0 6px;border:1px solid var(--input-bordo);border-radius:4px;font:inherit;background:#fff}
.righe-prefattura input.corto{width:84px}.righe-prefattura input.cortissimo{width:48px}
.righe-prefattura input.num{text-align:right}
.righe-prefattura input[type=checkbox]{width:18px;height:18px}
.righe-prefattura .riga-testo td{background:#F4F7F8;font-weight:600}
.righe-prefattura tr.manca td{background:var(--rosso-chiaro)}
.righe-prefattura tr.iva-mancante td{background:var(--rosso-chiaro)}.righe-prefattura tr.iva-mancante .iva-codice{border-color:var(--rosso);outline:1px solid var(--rosso)}
.righe-prefattura tr.iva-mancante .iva-cella::after{content:"aliquota IVA mancante";display:block;color:var(--rosso);font-size:11px}
.righe-prefattura tr.nascosta{display:none}
.totali-fattura{display:flex;justify-content:flex-end;gap:24px;font-size:15px}
.riga-esporta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.riga-esporta input{height:32px;padding:0 8px;border:1px solid var(--input-bordo);border-radius:4px;font:inherit}
.riga-esporta input.corto{width:100px}.riga-esporta input.cortissimo{width:70px}
@media print{.moduli,.barra,.nav-tel,.pulsanti,form .riquadro,.messaggi,details{display:none!important}
  body{height:auto;overflow:visible}main{overflow:visible}}
.righe-prefattura input.descr{min-width:420px}
.nota-barra{color:#C9D3D7;font-size:12.5px;align-self:center}

/* ============ Fase 2: risultato economico ============ */
.risultato{display:flex;flex-direction:column;gap:14px}
.cifre{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.cifre .riquadro{display:flex;flex-direction:column;gap:4px}
.cifre .cifra{font-size:22px;font-weight:600;color:var(--nero)}
.cifre .principale{border-left:4px solid var(--blu)}
.cifre .spento .cifra{color:var(--grigio-testo)}
.griglia-risultato{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px}
.griglia-risultato h2{margin:0 0 8px;font-size:15px}
@media (max-width:760px){.cifre{grid-template-columns:1fr 1fr}.griglia-risultato{grid-template-columns:1fr}.risultato{padding:14px 16px}}
.foto-repertorio{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.foto-repertorio figure{margin:0;display:flex;flex-direction:column;gap:3px}
.foto-repertorio img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;border:1px solid var(--grigio-bordo)}
.foto-repertorio figcaption{font-size:12px;color:var(--grigio-testo)}
.foto-scegli{position:relative;align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;cursor:pointer}
.foto-scegli input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.foto-griglia:empty{display:none}
.firma-toggle>summary{list-style:none;display:inline-flex;align-items:center;min-height:44px;cursor:pointer}
.firma-toggle>summary::-webkit-details-marker{display:none}
.firma-toggle[open]>summary{background:var(--blu-velo);border-color:var(--blu)}
.firma-campi{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.firma-anteprima{max-width:100%;border:1px dashed var(--input-bordo);border-radius:6px;background:#FCFCFC}
.barra-ore-sfondo:has(.barra-ore-attesa){display:flex}
.barra-ore-attesa{height:100%;background:repeating-linear-gradient(45deg,#9CC3D8 0 4px,#C9DEEA 4px 8px)}
.testata-documento{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
.testata-documento select,.testata-documento input{height:32px;padding:0 8px;border:1px solid var(--input-bordo);border-radius:4px;font:inherit;max-width:360px}
.righe-prefattura select{height:28px;max-width:230px;border:1px solid var(--input-bordo);border-radius:4px;font:inherit;background:#fff}
.righe-prefattura tr.tolta td{opacity:.45;text-decoration:line-through}
.riepilogo-documento{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.riepilogo-documento .totali-fattura{flex-direction:column;align-items:flex-end;gap:4px}
.scadenze-documento ul{margin:4px 0 0;padding-left:18px}
@media (max-width:900px){.riepilogo-documento{grid-template-columns:1fr}}
.righe-prefattura input.descr{text-align:left;width:100%}
/* accesso: ricorda questo dispositivo */
.ricorda{display:flex;align-items:center;gap:8px;font-weight:400;margin-top:4px}
.ricorda input{width:18px;height:18px;margin:0}
.blocchi{margin:0 14px 12px}
/* prefattura: editor delle righe */
.righe-prefattura textarea.descr{width:100%;min-width:340px;resize:none;overflow:hidden;font:inherit;line-height:1.35;padding:4px 6px;box-sizing:border-box}
.righe-prefattura td.maniglia,.righe-prefattura th.maniglia{width:18px;cursor:grab;color:var(--grigio-spento);user-select:none;text-align:center;padding-left:2px;padding-right:2px}
.righe-prefattura tr.selezionata td{background:var(--blu-chiaro)}
.righe-prefattura tr.trascinata{opacity:.45}
.righe-prefattura .iva-codice{width:3.8em;text-align:center}
.righe-prefattura .azioni-riga{white-space:nowrap}
.righe-prefattura .mini{border:1px solid var(--grigio-bordo);background:#fff;border-radius:4px;padding:1px 6px;margin-left:2px;cursor:pointer;font:inherit;line-height:1.3}
.righe-prefattura .mini.pericolo{color:var(--rosso)}
.iva-elenco{position:fixed;z-index:50;margin:0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--grigio-bordo);border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.15);max-height:260px;overflow:auto;min-width:260px}
.iva-elenco li{padding:5px 10px;cursor:pointer;white-space:nowrap}
.iva-elenco li:hover,.iva-elenco li.on{background:var(--blu-chiaro)}
.dialogo{max-width:560px;border:1px solid var(--grigio-bordo);border-radius:10px;padding:18px}
.dialogo::backdrop{background:rgba(0,0,0,.35)}
.dialogo h2{margin-top:0}
.dialogo textarea{width:100%;box-sizing:border-box;font:inherit}
.fl-colonna{display:flex;flex-direction:column;gap:4px}
.banca-cliente{align-self:center}
/* catalogo: albero delle categorie */
.albero-categorie{display:flex;flex-direction:column;gap:8px}
.albero-categorie summary{display:flex;align-items:center;gap:8px;cursor:pointer}
.albero-categorie .cat2{margin:10px 0 0 14px}
.albero-categorie .cat-riga{display:flex;align-items:center;gap:8px;margin-bottom:4px}
/* fase 3, passo A4: fabbisogni */
.fabbisogni .gruppo-fabbisogni{margin-bottom:12px}
.fabbisogni .gruppo-fabbisogni h2{margin-bottom:6px}
.barra-fabbisogni input[type=text],.barra-fabbisogni select{height:30px;border:1px solid var(--input-bordo);border-radius:4px;padding:0 8px}
.barra-fabbisogni input[type=text]{min-width:260px}
.azioni-riga-fab{position:relative}
.azioni-riga-fab summary{list-style:none}.azioni-riga-fab summary::-webkit-details-marker{display:none}
.azioni-riga-fab .tendina{position:absolute;right:0;top:30px;z-index:10;min-width:280px;display:flex;flex-direction:column;gap:6px;padding:10px;background:#fff;border:1px solid var(--grigio-bordo);border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.azioni-riga-fab .tendina label{display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--grigio-testo)}
.azioni-riga-fab .tendina input{height:28px;border:1px solid var(--input-bordo);border-radius:4px;padding:0 6px;width:100%;box-sizing:border-box}
.fl input[type=date]{height:30px;padding:0 8px;border:1px solid var(--input-bordo);border-radius:4px;background:#fff;color:var(--nero)}
/* scelta del fornitore da elenco */
.scelta-fornitore{position:fixed;z-index:60;width:370px;background:#fff;border:1px solid var(--grigio-bordo);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:8px;display:flex;flex-direction:column;gap:6px}
.scelta-fornitore input{height:32px;border:1px solid var(--input-bordo);border-radius:4px;padding:0 8px;width:100%}
.scelta-fornitore ul{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto;overscroll-behavior:contain}
.scelta-fornitore li{padding:5px 8px;cursor:pointer;border-radius:4px}
.scelta-fornitore li.on,.scelta-fornitore li:hover{background:var(--blu-chiaro)}
/* valore non collegato a FSGest (materiale senza articolo, codice del fornitore non registrato, testo libero dove c'è
   un elenco): rosa molto chiaro ovunque (fabbisogni, griglia, righe dei preventivi) */
:root{--non-collegato:#FCE9EE}
.non-collegato,.da-sistemare{background:var(--non-collegato)!important}
span.non-collegato,span.da-sistemare{padding:0 4px;border-radius:3px}
.legenda-fab .campione{padding:0 6px;border-radius:3px}
.barra-fabbisogni{padding:8px 16px;background:#fff;border-bottom:1px solid var(--grigio-bordo)}
/* fabbisogni: vista a griglia */
.vista-fab{display:flex;gap:4px}.vista-fab .on{background:#fff;color:var(--nero);cursor:default}
.griglia-fabbisogni{padding:10px 16px}
.griglia-fabbisogni .jexcel>thead>tr>td{position:sticky;top:0;z-index:2;background:var(--grigio-th);font-weight:600;font-size:12px}
.griglia-fabbisogni .jexcel>tbody>tr>td{font-size:13px}
.griglia-fabbisogni .jexcel td.readonly{color:var(--nero)}
.griglia-fabbisogni .jexcel td.cella-scelta{cursor:pointer;color:var(--blu-scuro)}
.griglia-fabbisogni .jexcel td.da-sistemare{background:var(--giallo-chiaro)!important}
/* suggerimenti degli articoli (fabbisogni, chiedi materiale, righe dei preventivi) */
.suggerimenti-articoli{position:fixed;z-index:70;max-width:560px;max-height:320px;overflow:auto;overscroll-behavior:contain;margin:0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--grigio-bordo);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.suggerimenti-articoli li{padding:5px 10px;cursor:pointer;font-size:13px}
.suggerimenti-articoli li.on,.suggerimenti-articoli li[data-i]:hover{background:var(--blu-chiaro)}
.suggerimenti-articoli .cod{font-weight:600;color:var(--blu-scuro);margin-right:4px}
.suggerimenti-articoli .suggerimenti-piede{cursor:default;font-size:11.5px;border-top:1px solid var(--grigio-riga);margin-top:2px}
/* pannello «+ Nuovo fabbisogno» */
.pannello-fabbisogno{max-width:980px;width:calc(100% - 32px)}
.pannello-fabbisogno .testa-pannello{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.pannello-fabbisogno .testa-pannello h2{margin:0}
.pannello-fabbisogno .testata-fabbisogno{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--blu-velo);border-radius:6px;margin-bottom:10px}
.pannello-fabbisogno .scelta-destinazione{display:flex;gap:16px;font-weight:600}
.pannello-fabbisogno .campi-cliente,.pannello-fabbisogno .campi-comuni{display:flex;flex-wrap:wrap;gap:8px 12px}
.pannello-fabbisogno label{display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--grigio-testo)}
.pannello-fabbisogno input[type=text],.pannello-fabbisogno input[type=search],.pannello-fabbisogno input[type=date],.pannello-fabbisogno select{height:32px;border:1px solid var(--input-bordo);border-radius:4px;padding:0 8px;background:#fff;color:var(--nero);font-size:14px}
.pannello-fabbisogno .campo-cliente input[type=search]{width:280px}
.pannello-fabbisogno .campi-cliente select{max-width:260px}
.pannello-fabbisogno .nota-pannello{flex:1;min-width:200px}
.pannello-fabbisogno .righe-pannello{width:100%;margin-bottom:6px}
.pannello-fabbisogno .righe-pannello input[data-r-descrizione]{width:100%;min-width:260px}
.pannello-fabbisogno .q-pannello{width:70px;text-align:right}
.pannello-fabbisogno .scegli-fornitore{min-width:120px;justify-content:flex-start}
.pannello-fabbisogno .articolo-collegato{display:block;color:var(--blu-scuro)}
.pannello-fabbisogno .ok-pannello{color:var(--verde-scuro,#1E6B3A);font-weight:600}
.pannello-fabbisogno .piede-pannello{margin-top:8px}
@media (max-width:760px){
  .pannello-fabbisogno{width:100%;max-width:none;height:100%;max-height:none;margin:0;border-radius:0}
  .pannello-fabbisogno .campo-cliente,.pannello-fabbisogno .campo-cliente input[type=search],.pannello-fabbisogno .campi-cliente label,.pannello-fabbisogno .campi-cliente select{width:100%;max-width:none}
  .pannello-fabbisogno .righe-pannello thead{display:none}
  .pannello-fabbisogno .righe-pannello tr{display:grid;grid-template-columns:80px 1fr 36px;gap:4px;padding:6px 0;border-bottom:1px solid var(--grigio-riga)}
  .pannello-fabbisogno .righe-pannello td{border:0;padding:0}
  .pannello-fabbisogno .righe-pannello td.cella-descr{grid-column:1 / 4}
  .pannello-fabbisogno .righe-pannello input[data-r-descrizione]{min-width:0}
}
.conta-tab{padding:0 6px;border-radius:9px;background:var(--grigio-th);font-size:11.5px;font-weight:500;color:var(--grigio-testo)}
.griglia-fabbisogni .jexcel thead tr.filtri-colonna td{background:#fff;padding:2px}
.griglia-fabbisogni .jexcel thead tr.filtri-colonna input{width:100%;box-sizing:border-box;height:24px;border:1px solid var(--input-bordo);border-radius:3px;padding:0 4px;font-size:12px}
.pannello-fabbisogno .righe-pannello input[data-r-descrizione]{text-align:left}
/* elenco dei fabbisogni: una sola tabella, colonne di larghezza fissa uguali in tutti i gruppi */
.pagina.fabbisogni{max-width:none}
table.fitta.tabella-fabbisogni{table-layout:fixed;width:100%;min-width:900px}
.tabella-fabbisogni col.c-spunta{width:32px}.tabella-fabbisogni col.c-q{width:64px}.tabella-fabbisogni col.c-mag{width:48px}.tabella-fabbisogni col.c-cod{width:112px}
.tabella-fabbisogni col.c-codf{width:124px}.tabella-fabbisogni col.c-cliente{width:180px}.tabella-fabbisogni col.c-costo{width:92px}
.tabella-fabbisogni col.c-urg{width:84px}.tabella-fabbisogni col.c-stato{width:104px}.tabella-fabbisogni col.c-chi{width:104px}
.tabella-fabbisogni col.c-azioni{width:46px}
/* finestre strette (1366 con zoom, finestra non a tutto schermo): «Chiesto da» a larghezza zero (con display:none la
   colonna resterebbe), il resto si stringe; sotto i 900 px
   la tabella scorre e la colonna del «…» resta ferma a destra */
@media (max-width:1279px){
  .tabella-fabbisogni col.c-chi{width:0}.tabella-fabbisogni col.c-cliente{width:150px}
  .tabella-fabbisogni th.c-chi,.tabella-fabbisogni td.c-chi{padding:0;border:0;font-size:0;overflow:hidden}
  .tabella-fabbisogni td.c-chi>*{display:none}
}
@media (max-width:960px){.fabbisogni .tabella-tel{overflow-x:auto}}
.tabella-fabbisogni td.c-azioni,.tabella-fabbisogni th.c-azioni{position:sticky;right:0;background:#fff;z-index:1}
.tabella-fabbisogni td.c-azioni:has(details[open]){z-index:5}
.tabella-fabbisogni thead th.c-azioni{z-index:2}
.tabella-fabbisogni thead th.c-azioni{background:var(--grigio-th)}
.tabella-fabbisogni tr.sel td.c-azioni{background:inherit}
.tabella-fabbisogni td.tronca{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tabella-fabbisogni td.tronca .nota{display:block;overflow:hidden;text-overflow:ellipsis}
.tabella-fabbisogni tr.riga-gruppo td{background:var(--blu-velo);padding-top:10px;border-bottom:1px solid var(--grigio-bordo)}
.tabella-fabbisogni tr.riga-gruppo strong{font-size:14px;color:var(--blu-scuro)}
.tabella-fabbisogni td{vertical-align:top}
.tabella-fabbisogni .azioni-riga-fab .tendina{right:0;left:auto;min-width:300px}
.origine{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle;background:var(--grigio-bordo)}
.origine-preventivo{background:var(--blu)}.origine-lavoro{background:#C77D1B}.origine-scorta{background:var(--verde)}.origine-interno{background:#8A8F93}.origine-ordine{background:#7A4FA0}

.ricerca-vuota{cursor:default}
/* ordini: finestra della riga e «+ Aggiungi riga» (etichette a sinistra, campi a destra) */
.dialogo-riga{max-width:760px;width:calc(100% - 32px)}
.modulo-riga{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 12px;align-items:center}
.modulo-riga>label,.modulo-riga>.etichetta{color:var(--grigio-testo);font-size:12.5px}
.modulo-riga input[type=text],.modulo-riga select,.modulo-riga textarea{height:30px;padding:0 8px;border:1px solid var(--input-bordo);border-radius:4px;font:400 13.5px "IBM Plex Sans",sans-serif;color:var(--nero);background:#fff;box-sizing:border-box;max-width:100%;min-width:0}
.modulo-riga textarea{height:auto;width:100%;padding:6px 8px;resize:vertical}
.modulo-riga .largo{width:100%}
.modulo-riga .medio{width:260px}
.modulo-riga .corto{width:110px}
.modulo-riga .valore{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;min-height:30px}
.modulo-riga .nota{font-size:12px}
.modulo-riga .piede{grid-column:1/-1;display:flex;gap:8px;justify-content:flex-end;align-items:center;border-top:1px solid var(--grigio-riga);padding-top:10px;margin-top:4px}
.modulo-riga .piede .nota{margin-right:auto}
.scelta-compatta{display:inline-flex;flex-wrap:wrap;gap:6px}
.scelta-compatta label{display:inline-flex;align-items:center;gap:5px;padding:3px 12px;border:1px solid var(--input-bordo);border-radius:14px;font-size:13px;cursor:pointer;color:var(--nero);background:#fff}
.scelta-compatta input{margin:0;width:auto;height:auto}
.scelta-compatta label:has(input:checked){background:var(--blu-chiaro);border-color:var(--blu)}
.campi-cliente-riga{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.campi-cliente-riga>input[type=text]{flex:1 1 100%}
.campi-cliente-riga>select{flex:1 1 220px;min-width:0}
@media (max-width:640px){.modulo-riga{grid-template-columns:1fr}.modulo-riga .medio{width:100%}}
.campi-cliente-riga[hidden],.modulo-riga [hidden]{display:none}

/* margini: soglie di Opzioni › Margini; colori leggibili su bianco e un segno per chi distingue male i colori */
.mg{white-space:nowrap}.mg.forte{font-weight:600}.mg-segno{font-size:.85em}
.mg-rosso{color:#B42318}.mg-giallo{color:#8A5300}.mg-verde{color:#1E7A3A}

/* materiale della commessa nel completamento dell'intervento */
.mc-voce{border-top:1px solid #E1E6E8;padding:8px 0}.mc-voce.mc-fatto{opacity:.65}
.mc-lotto{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:4px 0}.mc-lotto .mc-q{margin-left:auto;white-space:nowrap}
.mc-lotto .qta{width:64px;text-align:right}
.mc-furgone{margin:8px 0}.mc-furgone .mc-lotto>span:first-of-type{flex:1 1 200px;min-width:0}
.voce-furgone{padding:8px 0;border-bottom:1px solid var(--bordo,#E3E7EA)}
.mc-consegnato,.mc-grigio{color:#7A8288;font-size:13px}.mc-alt{font-size:13px;padding:2px 0}
.mc-extra{display:flex;flex-direction:column;gap:6px;margin:8px 0}.mc-riga-extra{display:flex;gap:6px}.mc-info{margin:-2px 0 4px}.mc-riga-extra .qta{width:70px}
.mc-prelevati{background:#FFF8E6;border:1px solid #E8D6A8;border-radius:6px;padding:8px 10px;margin:8px 0}
.mc-esito{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:4px}.mc-esito select{width:auto}
/* lettura del QR con la fotocamera */
.qr-leggi{white-space:nowrap}
.qr-velo{position:fixed;inset:0;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;z-index:1000}
.qr-box{background:#fff;border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px;align-items:center;width:min(92vw,460px)}
.qr-box video{width:100%;border-radius:6px;background:#000}.qr-nota{font-size:14px}

/* messaggio dopo un'azione fatta senza ricaricare la pagina (data-aggiorna): resta in vista dove si sta lavorando */
.messaggi-flottanti { position: fixed; right: 16px; bottom: 16px; z-index: 50; max-width: min(460px, calc(100vw - 32px)); margin: 0;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .18); }
/* fattura ricevuta: prezzo diverso dall'ordine, con «Accetta» / «Contesta» */
.riquadro-prezzo { margin-top: 6px; padding: 6px 8px; border: 1px solid var(--grigio-bordo); border-radius: 6px; background: #fffaf0; font-size: 13px; }
.riquadro-prezzo form { margin-top: 4px; }
/* scheda ordine: riga fatturata a un prezzo diverso (come il riquadro della fattura ricevuta) */
.fatturato-riga { font-size: 12px; line-height: 1.3; margin-top: 2px; white-space: nowrap; }
.fatturato-diverso { display: inline-block; padding: 0 4px; border-radius: 4px; background: #fffaf0; border: 1px solid #e8c77a; color: #8a5a00; }
.fatturato-totali td { background: #fffaf0; }

/* --- stato del server (solo l'amministratore di sistema) --- */
.indicatore-server .mini-barre{display:flex;gap:4px;height:26px;align-items:flex-end}
.indicatore-server .mini{position:relative;display:block;width:7px;height:26px;border-radius:2px;background:#fff;box-shadow:inset 0 0 0 1px var(--grigio-bordo);overflow:hidden}
.indicatore-server .mini .riempi{position:absolute;left:0;right:0;bottom:0;height:0;background:var(--blu);border-radius:2px 2px 0 0;transition:height .4s}
.indicatore-server .mini.arancio .riempi{background:#C77700}
.indicatore-server .mini.rosso .riempi{background:var(--rosso)}
.livello-arancio{color:#8A4B00;font-weight:600}.livello-rosso{color:var(--rosso);font-weight:600}
.grafici-server{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.grafico-server{margin:0}.grafico-server svg{width:100%;max-width:520px;height:auto;display:block}
.grafico-server .serie{fill:none;stroke:var(--blu);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.grafico-server .griglia-linea{stroke:var(--grigio-riga);stroke-width:1}
.grafico-server .soglia-arancio{stroke:#C77700;stroke-width:1;stroke-dasharray:4 3}
.grafico-server .soglia-rosso{stroke:var(--rosso);stroke-width:1;stroke-dasharray:4 3}
.grafico-server .asse{font-size:10px;fill:var(--grigio-spento)}
.grafico-server .mirino{stroke:var(--grigio-spento);stroke-width:1}
.grafico-server .punto{fill:var(--blu);stroke:#fff;stroke-width:2}
.grafico-server .area-hover{fill:transparent;cursor:crosshair}

/* fabbisogni: pulsanti sempre visibili (anche su tablet e telefono) nelle celle rosa: «Crea / collega articolo» sotto il
   codice FS, «+ catalogo» sotto il codice del fornitore non registrato */
.tabella-fabbisogni .apri-articolo,.tabella-fabbisogni .agg-codice{display:block;margin-top:3px;height:auto;min-height:24px;padding:2px 6px;
  white-space:normal;line-height:1.2;text-align:left;font-size:12px;max-width:100%}
.dialogo-articolo{width:calc(100% - 32px);max-width:560px}
.dialogo-articolo .campo{display:block;margin:10px 0}
.dialogo-articolo .campo input{display:block;width:100%;box-sizing:border-box;height:32px;margin-top:3px}
.dialogo-articolo h3{font-size:14px;margin:14px 0 4px}
.dialogo-articolo .pulsanti{display:flex;gap:8px;margin-top:12px}
.crea-articolo label{display:block;margin:4px 0}
.crea-articolo input[type=text]{display:block;width:100%;max-width:380px;box-sizing:border-box}
.crea-articolo input[name=um],.crea-articolo input[name=costo]{max-width:110px}
/* fabbisogni: scheda, modifica, annullati in «Tutti», annulla più fabbisogni */
.tabella-fabbisogni a.link-scheda{color:inherit;text-decoration:none}
.tabella-fabbisogni a.link-scheda:hover{text-decoration:underline;color:var(--blu-scuro)}
.tabella-fabbisogni tr.annullata td{color:var(--grigio-spento);background:var(--grigio-fondo)}
.tabella-fabbisogni tr.annullata a.link-scheda{text-decoration:line-through}
.tabella-fabbisogni tr.annullata td.non-collegato{background:var(--grigio-fondo)}
.stato-annullato{color:var(--rosso)}
.azioni-riga-fab .tendina a.bt{justify-content:center;text-align:center}
.barra-fabbisogni .annulla-molti{display:inline-flex;gap:6px;align-items:center}
.barra-fabbisogni .annulla-molti input{min-width:200px}
.scheda-fabbisogno label.scelta{display:block;margin:6px 0;cursor:pointer}
.scheda-fabbisogno label.scelta .nota{display:block;margin-left:22px}
.destinatario-modifica{display:flex;flex-direction:column;gap:6px;align-items:flex-start;justify-self:stretch;width:100%}
.destinatario-modifica [data-campi-cliente]{display:flex;flex-direction:column;gap:6px;max-width:420px}
.destinatario-modifica [data-campi-cliente][hidden]{display:none}
.destinatario-modifica [data-campi-cliente] label{display:flex;flex-direction:column;gap:2px}
.destinatario-modifica .scelta-destinazione{display:flex;gap:14px;flex-wrap:wrap}
.modulo-fabbisogno textarea{width:100%;box-sizing:border-box;font:inherit}
.destinatario-modifica .scelta-destinazione{justify-content:flex-start;margin:0}
/* più forte di «.fl>div:has(>div>label>input[type=radio])» (gruppi di radio in riga) */
.fl>div.destinatario-modifica.destinatario-modifica{flex-direction:column;align-items:flex-start;gap:6px}
/* seriali mancanti scritti dalla pagina dell'arrivo o dell'etichetta */
input[data-seriale-url]{height:28px;border:1px solid var(--input-bordo);border-radius:4px;padding:0 6px;min-width:180px;font:inherit}
input[data-seriale-url].seriale-salvato{border-color:#3C8D5A;background:#F1F8F3}
.esito-seriale{display:block;font-size:12px;margin-top:2px}
.esito-seriale.ok{color:#2E7D4F}
.esito-seriale.avviso-doppio{color:#8A5A00;background:var(--giallo-chiaro);padding:2px 6px;border-radius:4px}
input[data-seriale-url]{text-align:left}
/* ricezione: «Altro cliente…» sotto il «Per chi è?» */
.riga-ricevi .altro-cliente{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:6px;padding:8px;border:1px solid var(--grigio-bordo);border-radius:6px;background:#fff}
.riga-ricevi .altro-cliente[hidden]{display:none}
.riga-ricevi .altro-cliente label{display:flex;flex-direction:column;gap:2px;font-size:12.5px}
.riga-ricevi .altro-cliente input[type=search]{min-width:240px}
.riga-ricevi .altro-cliente select{max-width:320px}
.riga-ricevi .altro-cliente [data-nota-spot]{flex-basis:100%}
.fitta td input[data-seriale-url],input[data-seriale-url]{text-align:left}
/* lista di controllo dell'arrivo R n/aa */
.lista-arrivo h2{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.lista-arrivo .voci-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.lista-arrivo .voci-lista li{padding-left:24px;position:relative}
.lista-arrivo .voci-lista li::before{position:absolute;left:0;top:0;font-weight:700}
.lista-arrivo .voci-lista li.fatta::before{content:"✓";color:#2E7D4F}
.lista-arrivo .voci-lista li.da-fare::before{content:"☐";color:var(--giallo-scuro)}
.lista-arrivo .voci-lista li.da-fare{font-weight:600}
.lista-arrivo:not(.chiusa){border-left:4px solid #E0B000}
.lista-arrivo.chiusa{border-left:4px solid #3C8D5A}
.lista-arrivo .chiudi-comunque{margin-top:8px}
.manca-arrivo{display:inline-flex;flex-wrap:wrap;gap:4px 10px}
.manca-arrivo span{background:var(--giallo-chiaro);color:var(--giallo-scuro);border-radius:4px;padding:0 6px;font-size:12.5px}
.stato-da-completare{background:var(--giallo-chiaro);color:var(--giallo-scuro)}
.ricezioni-pagina .da-completare,section.da-completare{margin:10px 12px}
/* area «Materiale»: schede sotto il menu (Da fare · Ordini · Arrivi · Giacenza · Da sistemare) */
.schede-area{display:flex;gap:2px;padding:0 12px;background:#fff;border-bottom:1px solid var(--grigio-bordo);overflow-x:auto}
.schede-area .scheda-area{padding:9px 14px;color:var(--grigio-testo);text-decoration:none;font-weight:600;font-size:14px;border-bottom:3px solid transparent;white-space:nowrap}
.schede-area .scheda-area:hover{color:var(--blu-scuro)}
.schede-area .scheda-area.on{color:var(--blu-scuro);border-bottom-color:var(--blu-scuro)}
/* «Da fare» del materiale: le fasi in fila */
.materiale-da-fare,.fatturazione-da-fare{max-width:none}
.materiale-da-fare .fasi,.fatturazione-da-fare .fasi{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.materiale-da-fare .fase,.fatturazione-da-fare .fase{background:#fff;border:1px solid var(--grigio-bordo);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:6px}
.materiale-da-fare .fase.con-cose,.fatturazione-da-fare .fase.con-cose{border-top:3px solid var(--blu-scuro)}
.materiale-da-fare .fase h2,.fatturazione-da-fare .fase h2{margin:0 0 4px;font-size:15px;display:flex;align-items:center;gap:6px}
.materiale-da-fare .passo,.fatturazione-da-fare .passo{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--blu-scuro);color:#fff;font-size:12px;align-items:center;justify-content:center}
.voce-fase{display:flex;gap:10px;align-items:flex-start;padding:7px 8px;border-radius:6px;text-decoration:none;color:var(--nero);background:var(--grigio-fondo)}
.voce-fase:hover{background:var(--blu-velo)}
.voce-fase .cifra-voce{min-width:34px;text-align:right;font-size:20px;font-weight:700;color:var(--blu-scuro);line-height:1.1}
.voce-fase.allerta .cifra-voce{color:var(--rosso)}
.voce-fase.info .cifra-voce{color:var(--grigio-testo)}
.tutto-a-posto{font-size:16px;color:#2E7D4F;font-weight:600}
/* «Da sistemare»: filtri per tipo con quanti ce ne sono */
.filtri-sistemare{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.filtri-sistemare .filtro{padding:5px 10px;border:1px solid var(--grigio-bordo);border-radius:16px;text-decoration:none;color:var(--nero);background:#fff;font-size:13.5px}
.filtri-sistemare .filtro.da-fare{border-color:#E0B000;background:var(--giallo-chiaro)}
.filtri-sistemare .filtro.solo-elenco{color:var(--grigio-testo)}
.filtri-sistemare .filtro.on{background:var(--blu-scuro);border-color:var(--blu-scuro);color:#fff}
.filtri-sistemare .filtro.on .conta-tab{background:#fff;color:var(--blu-scuro)}
.materiale-home,.fatturazione-home{margin-bottom:16px;border-top:3px solid var(--blu-scuro)}
.materiale-home h2 a,.fatturazione-home h2 a{color:inherit;text-decoration:none}
.materiale-home h2 a:hover,.fatturazione-home h2 a:hover{text-decoration:underline}
.materiale-home .fasi-home,.fatturazione-home .fasi-home{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.materiale-home .fase-home,.fatturazione-home .fase-home{display:flex;flex-direction:column;gap:4px}
/* Fatturazione: stato dell'export di Danea (incassi e registrazioni aggiornati al caricamento) */
.caricamento-danea{padding:8px 12px;border-radius:6px;background:var(--blu-velo);font-weight:600}
.caricamento-danea.vecchio{background:#FDECEA;color:var(--rosso)}
/* Fatturazione › Da fatturare per cliente: la riga del cliente e «Scegli come fatturare» */
.da-fatturare-clienti tbody.cliente-da-fatturare{border-top:2px solid var(--grigio-bordo)}
.da-fatturare-clienti tr.scegli-riga>td{padding-top:0;background:var(--grigio-fondo)}
.scegli-prefatture>summary{cursor:pointer;color:var(--blu-scuro);font-size:13.5px;padding:4px 0}
.scegli-form{margin:6px 0 10px}
.scegli-form table.scelte{background:#fff;margin-bottom:8px}
.scelta-gruppo{display:flex;gap:10px;flex-wrap:wrap;white-space:nowrap}
.scelta-gruppo label{display:inline-flex;gap:4px;align-items:center;font-weight:normal}
.fattura-separata{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
/* Preventivo confermato › Acconti: i moduli su una riga */
.riga-acconto{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.riga-acconto label{display:inline-flex;gap:4px;align-items:center;font-weight:normal}
.riga-acconto input[type=text]{width:auto}
.acconto-residuo{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.acconto-residuo .grande-residuo{font-size:16px}
.avviso-riquadro.errore-riquadro{background:#FDECEA;border-color:var(--rosso);color:var(--rosso)}
/* Scadenziario unico */
.totali-scadenziario{display:flex;gap:24px;flex-wrap:wrap}
.totali-scadenziario .entrata{color:#2E7D4F;font-weight:600}
.totali-scadenziario .uscita{color:var(--rosso);font-weight:600}

/* ambiente di prova (FSGEST_AMBIENTE=prova): fascia in cima e cornice rossa sempre visibile */
.fascia-prova{background:repeating-linear-gradient(45deg,#C0392B 0 14px,#A93226 14px 28px);color:#fff;font:700 15px/1.3 "IBM Plex Sans",sans-serif;letter-spacing:.08em;text-align:center;padding:6px 12px}
.fascia-prova .nota-prova{font-weight:500;letter-spacing:0;font-size:13px}
.fascia-prova a{color:#fff;text-decoration:underline}
body.prova::after{content:"";position:fixed;inset:0;border:4px solid #C0392B;pointer-events:none;z-index:9999}
@media print{body.prova::after{display:none}}
[data-orario].errore-campo{border-color:#B3261E;background:#FDECEA}
[data-orario]{width:6.5em;font-variant-numeric:tabular-nums}
.pie .pagine{display:flex;gap:10px;align-items:center}
/* Clienti › Doppioni: scelta della scheda che resta (radio visibile, tutta la cella cliccabile) */
.resta-doppione{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--input-bordo);border-radius:5px;background:#fff;cursor:pointer;white-space:nowrap}
.resta-doppione input{margin:0}
.resta-doppione:has(input:checked){background:var(--verde-chiaro);border-color:var(--verde);color:var(--verde-scuro);font-weight:600}
