:root { --blu: #1f4e79; --blu2: #2e75b6; --fondo: #f4f6f9; --bordo: #d5dbe3; --testo: #1d2733;
        --rosso: #c0392b; --giallo: #f0b400; --grigio: #6b7785; --verde: #2e8b57; }
* { box-sizing: border-box; }
body { margin: 0; font-family: "Segoe UI", Arial, sans-serif; color: var(--testo); background: var(--fondo); font-size: 15px; }
a { color: var(--blu2); }
.barra { background: var(--blu); color: #fff; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 10px 20px; }
.barra a { color: #fff; text-decoration: none; }
.marchio { font-weight: 700; letter-spacing: .5px; }
.marchio small { font-weight: 400; opacity: .75; margin-left: 6px; }
.barra nav { display: flex; flex-wrap: wrap; gap: 4px 16px; flex: 1; }
.barra nav a { opacity: .9; } .barra nav a:hover { opacity: 1; text-decoration: underline; }
.chi { font-size: 13px; opacity: .9; }
main { max-width: 1300px; margin: 0 auto; padding: 16px 20px 60px; }
h1 small { font-size: 14px; color: var(--grigio); font-weight: 400; }
h2 { margin-top: 32px; border-bottom: 2px solid var(--bordo); padding-bottom: 4px; }
.sotto { color: var(--grigio); }
.nota { background: #e8f1fb; border-left: 4px solid var(--blu2); padding: 8px 12px; }
.errore { background: #fdecea; border-left: 4px solid var(--rosso); padding: 8px 12px; }
.briciole { font-size: 13px; color: var(--grigio); margin: 0; }
.riquadri { display: flex; flex-wrap: wrap; gap: 12px; margin: 12px 0; }
.riquadro { flex: 1 1 180px; background: #fff; border: 1px solid var(--bordo); border-radius: 8px; padding: 14px; text-decoration: none; color: var(--testo); }
.riquadro b { display: block; font-size: 28px; }
.riquadro.alto { border-left: 6px solid var(--rosso); } .riquadro.medio { border-left: 6px solid var(--giallo); } .riquadro.info { border-left: 6px solid var(--grigio); }
.avvisi { list-style: none; padding: 0; }
.avvisi li { background: #fff; border: 1px solid var(--bordo); border-left: 6px solid var(--grigio); padding: 8px 12px; margin: 6px 0; border-radius: 4px; }
.avvisi li.alto { border-left-color: var(--rosso); } .avvisi li.medio { border-left-color: var(--giallo); }
.avvisi a { color: var(--testo); text-decoration: none; } .avvisi a:hover { text-decoration: underline; }
.griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.scheda { background: #fff; border: 1px solid var(--bordo); border-radius: 8px; padding: 12px; text-decoration: none; color: var(--testo); }
.scheda:hover { border-color: var(--blu2); }
.scheda b { display: block; } .scheda span { font-size: 13px; color: var(--grigio); }
.scorri { overflow-x: auto; }
table.elenco { width: 100%; border-collapse: collapse; background: #fff; font-size: 14px; }
table.elenco th { background: #e9eef4; text-align: left; position: sticky; top: 0; }
table.elenco th, table.elenco td { border: 1px solid var(--bordo); padding: 6px 8px; vertical-align: top; }
td.piccolo { font-size: 12px; color: var(--grigio); max-width: 320px; word-break: break-word; }
.etichetta { display: inline-block; font-size: 12px; padding: 2px 8px; border-radius: 10px; background: #e9eef4; }
.etichetta.in_vigore { background: #dff3e8; color: var(--verde); } .etichetta.bozza { background: #fff4d6; color: #8a6500; }
.etichetta.obsoleta { background: #eee; color: #777; }
.modulo { background: #fff; border: 1px solid var(--bordo); border-radius: 8px; padding: 16px; max-width: 760px; display: grid; gap: 12px; }
.modulo.largo { max-width: none; }
.modulo label { display: grid; gap: 4px; font-size: 13px; color: var(--grigio); }
.modulo .valore { color: var(--testo); font-size: 15px; white-space: pre-wrap; }
input, select, textarea { font: inherit; padding: 6px 8px; border: 1px solid var(--bordo); border-radius: 4px; color: var(--testo); background: #fff; }
textarea.mono { font-family: Consolas, monospace; font-size: 13px; }
button, .bottone { background: var(--blu2); color: #fff; border: 0; padding: 8px 14px; border-radius: 4px; cursor: pointer; text-decoration: none; display: inline-block; font: inherit; }
button.pericolo { background: var(--rosso); } button.conferma { background: var(--verde); }
.azioni { display: flex; gap: 10px; flex-wrap: wrap; }
.cerca, .in-linea { display: flex; gap: 8px; align-items: end; flex-wrap: wrap; margin: 10px 0; }
.in-linea label { display: grid; gap: 4px; font-size: 13px; color: var(--grigio); }
article.documento { background: #fff; border: 1px solid var(--bordo); padding: 24px 32px; max-width: 900px; }
article.documento .giallo, .giallo { background: #fff3a8; font-weight: 600; padding: 4px 6px; }
table.doc { border-collapse: collapse; width: 100%; margin: 10px 0; } table.doc th, table.doc td { border: 1px solid var(--bordo); padding: 4px 6px; }
.pagina-login { display: grid; place-items: center; min-height: 100vh; background: var(--blu); }
.scatola-login { background: #fff; padding: 28px; border-radius: 10px; width: min(360px, 92vw); display: grid; gap: 12px; }
.scatola-login h1 { margin: 0; color: var(--blu); font-size: 22px; }
.scatola-login label { display: grid; gap: 4px; font-size: 13px; color: var(--grigio); }

/* --- pagina d'ingresso e aggiornamenti (04/10/2026) --- */
.riquadro small { display: block; font-size: 12px; color: var(--grigio); margin-top: 2px; }
.riquadro.nuovo { border-left: 6px solid var(--blu2); }
.colonne { display: grid; grid-template-columns: 3fr 2fr; gap: 24px; }
@media (max-width: 900px) { .colonne { grid-template-columns: 1fr; } }
.colonne h3 { margin: 14px 0 6px; }
.avvisi li { display: flex; gap: 8px; align-items: baseline; }
.vai { margin-left: auto; white-space: nowrap; font-weight: 600; text-decoration: none; }
.cert { font-size: 11px; background: #e9eef4; color: var(--blu); padding: 1px 6px; border-radius: 8px; white-space: nowrap; }
ul.voci { list-style: none; padding: 0; margin: 0; }
ul.voci li { background: #fff; border: 1px solid var(--bordo); padding: 8px 10px; margin: 5px 0; border-radius: 4px; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.certificati { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.cartella-cert { background: #fff; border: 2px solid var(--bordo); border-top: 8px solid var(--blu); border-radius: 10px; padding: 18px 20px;
                 text-decoration: none; color: var(--testo); display: grid; gap: 8px; }
.cartella-cert:hover { border-color: var(--blu2); }
.nome-cert { font-size: 26px; font-weight: 700; color: var(--blu); }
.desc-cert { color: var(--grigio); }
.numeri { display: flex; flex-wrap: wrap; gap: 6px; }
.numeri span { background: #f0f3f7; border-radius: 10px; padding: 2px 10px; font-size: 13px; }
.numeri .rosso { background: #fdecea; color: var(--rosso); } .numeri .giallo-t { background: #fff4d6; color: #8a6500; } .numeri .blu-t { background: #e8f1fb; color: var(--blu2); }
.entra { font-weight: 700; color: var(--blu2); }
.benvenuto { background: #fff; border: 2px solid var(--blu2); border-radius: 10px; padding: 14px 20px; margin-bottom: 18px; position: relative; }
.benvenuto h2 { border: 0; margin: 0 0 6px; }
.benvenuto .chiudi { position: absolute; right: 10px; top: 8px; background: none; color: var(--grigio); font-size: 22px; padding: 0 6px; }
.prio-alta { background: #fdecea; color: var(--rosso); } .prio-media { background: #fff4d6; color: #8a6500; } .prio-bassa { background: #eee; color: #666; }
.stato-da_valutare { background: #e8f1fb; color: var(--blu2); } .stato-da_discutere { background: #fff4d6; color: #8a6500; }
.stato-accettata { background: #dff3e8; color: var(--verde); } .stato-rifiutata { background: #eee; color: #777; }
tr.chiusa td { color: var(--grigio); }
.filtri a { margin-right: 10px; } .filtri a.attivo { font-weight: 700; text-decoration: none; color: var(--testo); }
.piccolo-doc { padding: 12px 18px; }
