/* Stili specifici delle pagine verranno aggiunti solo quando non sono riutilizzabili. */

/* Censimento: blocco per singola sede con uffici collegati annidati */
.blocco-sede { margin-bottom: 16px; }
.blocco-sede:last-child { margin-bottom: 0; }
.blocco-sede-intestazione { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.sotto-tabella { margin-top: 10px; border-top: 1px solid var(--bordo); padding-top: 10px; }
.sotto-tabella-titolo { margin-bottom: 8px; color: var(--attenuato); font-size: .75rem; text-transform: uppercase; }

/* Censimento: indicatori sì/no compatti (cifratura, backup, 2FA, ecc.) */
.chip-si { color: var(--verde); background: var(--verde-sfondo); }
.chip-no { color: var(--attenuato); background: #eef2f6; }
.riga-chip { display: flex; flex-wrap: wrap; gap: 6px; }

/* Censimento: avviso di riepilogo dati mancanti */
.avviso-mancanti { display: flex; align-items: center; gap: 10px; }

/* =========================================================
   AREA SICUREZZA
   ========================================================= */

/* Barra filtri con più campi di .barra-filtri-trattamenti (quella è
   dimensionata per 5 campi + ordinamento; qui i filtri sono fino a 8):
   stesso .campo-filtro riusato, solo il contenitore cambia. */
.barra-filtri-sicurezza {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 14px;
    align-items: end;
}
.barra-filtri-sicurezza .campo-filtro-ricerca { grid-column: span 2; }

/* Panoramica: donut stato misure + legenda cliccabile (link diretto a
   sistemi.php filtrato per stato_misure, stessa area filtri già esistente). */
.riga-donut { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.legenda-donut { display: flex; flex-direction: column; gap: 10px; flex: 1; min-width: 200px; }
.voce-legenda-donut {
    display: flex; align-items: center; gap: 10px;
    padding: 6px 8px; border-radius: 8px;
    color: var(--testo); text-decoration: none;
}
.voce-legenda-donut:hover { background: var(--sfondo); }
.voce-legenda-donut span:nth-child(2) { flex: 1; }
.pallino-legenda { width: 11px; height: 11px; border-radius: 50%; flex-shrink: 0; }

/* =========================================================
   AREA DASHBOARD — PERCORSO UTENTE
   ========================================================= */

.barra-avanzamento-percorso { height: 6px; background: var(--bordo); border-radius: 4px; overflow: hidden; margin: 4px 0 20px; }
.barra-avanzamento-percorso-riempimento { height: 100%; background: var(--blu-600); border-radius: 4px; }

.riga-percorso { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--bordo); }
.riga-percorso:last-child { border-bottom: 0; }
.riga-percorso-corrente {
    background: var(--blu-100); border: 1px solid var(--blu-600); border-bottom: 1px solid var(--blu-600);
    border-radius: 10px; padding: 16px 14px; margin: 4px -14px;
}
.riga-percorso-futuro .titolo-passo, .riga-percorso-futuro .descrizione-passo { color: var(--attenuato); }

.testo-passo { flex: 1; }
.titolo-passo { font-size: 15px; font-weight: 600; color: var(--testo); }
.descrizione-passo { font-size: 13px; color: var(--attenuato); margin-top: 2px; }
.riga-percorso-corrente .descrizione-passo { color: var(--blu-700); }

.pallino-passo {
    width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 14px; font-weight: 600;
}
.pallino-passo-fatto, .pallino-passo-ok { background: var(--verde-sfondo); color: var(--verde); }
.pallino-passo-corrente { background: var(--blu-600); color: #fff; }
.pallino-passo-attenzione, .pallino-passo-parziale { background: var(--giallo-sfondo); color: var(--giallo); }
.pallino-passo-da_iniziare, .pallino-passo-non_disponibile { background: #eef2f6; color: var(--attenuato); }



/* =========================================================
   PANORAMICA ORGANIZZAZIONE
   ========================================================= */

.pagina-organizzazione {
    display: grid;
    gap: 24px;
}

.organizzazione-testata {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 28px;
}

.organizzazione-testata h1 {
    margin: 4px 0 8px;
    color: var(--blu-950);
    font-size: clamp(1.7rem, 2.5vw, 2.25rem);
}

.organizzazione-testata p {
    max-width: 760px;
    margin: 0;
    color: var(--attenuato);
    line-height: 1.55;
}

.sovratitolo {
    color: var(--blu-600) !important;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.organizzazione-riepilogo {
    display: grid;
    grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr);
    gap: 18px;
}

.organizzazione-avanzamento,
.organizzazione-prossimo-passo {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    padding: 22px;

    border: 1px solid var(--bordo);
    border-radius: 14px;

    background: var(--superficie);
    box-shadow: var(--ombra);
}

.organizzazione-avanzamento-testo span,
.organizzazione-avanzamento-testo strong,
.organizzazione-avanzamento-testo small {
    display: block;
}

.organizzazione-avanzamento-testo span {
    color: var(--attenuato);
    font-size: .76rem;
    font-weight: 750;
}

.organizzazione-avanzamento-testo strong {
    margin: 6px 0 2px;
    color: var(--blu-950);
    font-size: 2rem;
}

.organizzazione-avanzamento-testo small {
    color: var(--attenuato);
    font-size: .74rem;
}

.organizzazione-anello {
    --valore: calc(var(--percentuale) * 3.6deg);

    display: grid;
    width: 82px;
    height: 82px;
    flex: 0 0 82px;
    place-items: center;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            #ffffff 57%,
            transparent 59%
        ),
        conic-gradient(
            var(--blu-600) var(--valore),
            #e8edf4 0
        );
}

.organizzazione-anello span {
    color: var(--blu-950);
    font-size: .82rem;
    font-weight: 850;
}

.organizzazione-prossimo-passo {
    position: relative;
    overflow: hidden;
}

.organizzazione-prossimo-passo::before {
    position: absolute;
    inset: 0 auto 0 0;

    width: 4px;

    content: "";
    background: var(--blu-600);
}

.organizzazione-priorita-alta::before {
    background: var(--rosso);
}

.organizzazione-priorita-media::before {
    background: var(--giallo);
}

.organizzazione-priorita-bassa::before {
    background: var(--verde);
}

.organizzazione-etichetta {
    color: var(--blu-600);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.organizzazione-prossimo-passo h2 {
    margin: 7px 0 5px;
    color: var(--blu-950);
    font-size: 1.05rem;
}

.organizzazione-prossimo-passo p {
    margin: 0;
    color: var(--attenuato);
    font-size: .82rem;
}

.organizzazione-sezione {
    display: grid;
    gap: 16px;
}

.organizzazione-sezione-testata {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.organizzazione-sezione-testata h2 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: 1.05rem;
}

.organizzazione-sezione-testata p {
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
}

.organizzazione-griglia-aree {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.organizzazione-area {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: 14px;

    padding: 18px;

    border: 1px solid var(--bordo);
    border-radius: 13px;

    background: var(--superficie);
    color: var(--testo);

    text-align: left;
    cursor: pointer;
    box-shadow: var(--ombra);

    transition:
        transform 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease;
}

.organizzazione-area:hover {
    transform: translateY(-2px);
    border-color: #b9c9e2;
    box-shadow: 0 14px 30px rgb(15 35 65 / 10%);
}

.organizzazione-area-icona {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;

    border-radius: 10px;

    background: var(--blu-100);
    color: var(--blu-600);

    font-size: 17px;
    font-weight: 850;
}

.organizzazione-area-da-avviare
.organizzazione-area-icona {
    background: #eef1f5;
    color: var(--attenuato);
}

.organizzazione-area-contenuto {
    display: grid;
    min-width: 0;
    flex: 1;
    gap: 7px;
}

.organizzazione-area-testata {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.organizzazione-area-testata strong {
    color: var(--blu-950);
    font-size: .88rem;
}

.organizzazione-stato {
    padding: 3px 7px;
    border-radius: 999px;
    font-size: .6rem;
    font-weight: 800;
    white-space: nowrap;
}

.organizzazione-stato-avviata {
    background: var(--verde-sfondo);
    color: var(--verde);
}

.organizzazione-stato-da-avviare {
    background: #eef1f5;
    color: var(--attenuato);
}

.organizzazione-area-descrizione {
    min-height: 34px;
    color: var(--attenuato);
    font-size: .73rem;
    line-height: 1.45;
}

.organizzazione-area-metrica {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.organizzazione-area-metrica strong {
    color: var(--blu-950);
    font-size: 1.45rem;
}

.organizzazione-area-metrica small {
    color: var(--attenuato);
    font-size: .68rem;
}

.organizzazione-area-azione {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding-top: 7px;
    border-top: 1px solid var(--bordo);

    color: var(--blu-600);
    font-size: .7rem;
    font-weight: 800;
}

.organizzazione-due-colonne {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
    gap: 18px;
}

.organizzazione-lista-criticita,
.organizzazione-lista-cataloghi {
    display: grid;
    margin-top: 15px;
}

.organizzazione-criticita-riga,
.organizzazione-lista-cataloghi button {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 12px;

    padding: 13px 0;

    border: 0;
    border-bottom: 1px solid var(--bordo);

    background: transparent;
    color: var(--testo);

    text-align: left;
    cursor: pointer;
}

.organizzazione-criticita-riga:last-child,
.organizzazione-lista-cataloghi button:last-child {
    border-bottom: 0;
}

.organizzazione-criticita-riga > span:nth-child(2),
.organizzazione-lista-cataloghi button > span {
    display: grid;
    min-width: 0;
    flex: 1;
    gap: 3px;
}

.organizzazione-criticita-riga strong,
.organizzazione-lista-cataloghi strong {
    color: var(--blu-950);
    font-size: .8rem;
}

.organizzazione-criticita-riga small,
.organizzazione-lista-cataloghi small {
    color: var(--attenuato);
    font-size: .7rem;
    line-height: 1.4;
}

.organizzazione-priorita {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
}

.organizzazione-priorita-alta {
    background: var(--rosso);
}

.organizzazione-priorita-media {
    background: var(--giallo);
}

.organizzazione-priorita-bassa {
    background: var(--verde);
}

.organizzazione-lista-cataloghi b {
    display: grid;
    min-width: 32px;
    height: 32px;
    place-items: center;

    border-radius: 9px;

    background: var(--blu-100);
    color: var(--blu-600);

    font-size: .75rem;
}

.organizzazione-stato-positivo {
    display: flex;
    align-items: center;
    gap: 12px;

    margin-top: 16px;
    padding: 14px;

    border-radius: 10px;

    background: var(--verde-sfondo);
    color: var(--verde);
}

.organizzazione-stato-positivo > span {
    display: grid;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    place-items: center;

    border-radius: 50%;
    background: #ffffff;
}

.organizzazione-stato-positivo strong {
    display: block;
    font-size: .8rem;
}

.organizzazione-stato-positivo p {
    margin: 3px 0 0;
    font-size: .7rem;
}


/* =========================================================
   MODALE ORGANIZZAZIONE
   ========================================================= */

.modale-organizzazione-overlay {
    position: fixed;
    inset: 0;
    z-index: 1200;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    background: rgb(12 25 44 / 58%);
}

.modale-organizzazione {
    display: flex;
    width: min(1120px, 100%);
    height: min(88vh, 900px);
    flex-direction: column;
    overflow: hidden;

    border-radius: 14px;

    background: #ffffff;
    box-shadow: 0 24px 70px rgb(8 20 38 / 35%);
}

.modale-organizzazione-testata {
    display: flex;
    min-height: 58px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;

    padding: 0 20px;

    border-bottom: 1px solid var(--bordo);
}

.modale-organizzazione-testata strong {
    color: var(--blu-950);
    font-size: .92rem;
}

.modale-organizzazione-testata button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;

    border: 0;
    border-radius: 8px;

    background: #eef2f6;
    color: var(--attenuato);

    font-size: 20px;
    cursor: pointer;
}

.modale-organizzazione-corpo {
    width: 100%;
    flex: 1;
    border: 0;
}

@media (max-width: 1180px) {
    .organizzazione-griglia-aree {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .organizzazione-riepilogo,
    .organizzazione-due-colonne {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .organizzazione-testata,
    .organizzazione-prossimo-passo {
        align-items: stretch;
        flex-direction: column;
    }

    .organizzazione-griglia-aree {
        grid-template-columns: 1fr;
    }

    .modale-organizzazione-overlay {
        padding: 0;
    }

    .modale-organizzazione {
        width: 100%;
        height: 100%;
        border-radius: 0;
    }
}


/* =========================================================
   WORKSPACE INTERNO DEL CENSIMENTO
   ========================================================= */

.workspace-censimento {
    display: grid;
    grid-template-columns: 248px minmax(0, 1fr);
    min-height: calc(100vh - 120px);
    overflow: hidden;
    border: 1px solid var(--bordo);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--ombra);
}

.menu-interno-censimento {
    display: flex;
    min-width: 0;
    flex-direction: column;
    border-right: 1px solid var(--bordo);
    background: #f8fafc;
}

.menu-interno-censimento-testata {
    padding: 20px 18px 16px;
    border-bottom: 1px solid var(--bordo);
}

.menu-interno-censimento-sovratitolo {
    color: var(--blu-600);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.menu-interno-censimento-testata h1 {
    margin: 5px 0 3px;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.menu-interno-censimento-testata p {
    margin: 0;
    overflow: hidden;
    color: var(--attenuato);
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.menu-interno-censimento-navigazione {
    flex: 1;
    min-height: 0;
    padding: 12px 10px 18px;
    overflow-y: auto;
}

.menu-interno-censimento-gruppo +
.menu-interno-censimento-gruppo {
    margin-top: 18px;
}

.menu-interno-censimento-etichetta {
    display: block;
    margin: 0 8px 7px;
    color: #8794a8;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.menu-interno-censimento-link {
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 10px;
    padding: 8px 9px;
    border-radius: 9px;
    color: #46536a;
    text-decoration: none;
}

.menu-interno-censimento-link:hover {
    background: #eef3fa;
    color: var(--blu-950);
    text-decoration: none;
}

.menu-interno-censimento-link.attivo {
    background: #eaf1ff;
    color: var(--blu-700);
    box-shadow: inset 3px 0 0 var(--blu-600);
}

.menu-interno-censimento-icona {
    display: grid;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    place-items: center;
    border-radius: 7px;
    background: #eef2f6;
    color: #6a7890;
    font-size: 12px;
    font-weight: 800;
}

.menu-interno-censimento-link.attivo
.menu-interno-censimento-icona {
    background: #fff;
    color: var(--blu-600);
}

.menu-interno-censimento-testo {
    display: grid;
    min-width: 0;
    flex: 1;
    gap: 2px;
}

.menu-interno-censimento-testo strong {
    overflow: hidden;
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.menu-interno-censimento-testo small {
    color: #8a96a8;
    font-size: .58rem;
}

.menu-interno-censimento-freccia {
    color: #9da8b8;
    font-size: 16px;
}

.contenuto-interno-censimento {
    display: flex;
    min-width: 0;
    flex-direction: column;
    background: #fff;
}

.contenuto-interno-censimento-testata {
    display: flex;
    min-height: 84px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 16px 22px;
    border-bottom: 1px solid var(--bordo);
    background: #fff;
}

.contenuto-interno-censimento-testata h2 {
    margin: 3px 0 4px;
    color: var(--blu-950);
    font-size: 1.2rem;
}

.contenuto-interno-censimento-testata p {
    margin: 0;
    color: var(--attenuato);
    font-size: .76rem;
}

.contenuto-interno-censimento-frame {
    min-width: 0;
    min-height: 680px;
    flex: 1;
    background: #f6f8fb;
}

.contenuto-interno-censimento-frame iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 680px;
    border: 0;
    background: #f6f8fb;
}

/* Panoramica interna */

.censimento-panoramica {
    display: grid;
    gap: 20px;
    padding: 22px;
}

.censimento-panoramica-riepilogo {
    display: grid;
    grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr);
    gap: 16px;
}

.censimento-panoramica-stato,
.censimento-panoramica-guida {
    padding: 20px;
    border: 1px solid var(--bordo);
    border-radius: 12px;
    background: #fff;
}

.censimento-panoramica-stato > span,
.censimento-panoramica-guida > span {
    color: var(--attenuato);
    font-size: .7rem;
    font-weight: 750;
}

.censimento-panoramica-stato strong {
    display: block;
    margin: 6px 0 2px;
    color: var(--blu-950);
    font-size: 2rem;
}

.censimento-panoramica-stato small {
    color: var(--attenuato);
    font-size: .7rem;
}

.censimento-panoramica-barra {
    height: 7px;
    margin-top: 15px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8edf4;
}

.censimento-panoramica-barra span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--blu-600);
}

.censimento-panoramica-guida h3 {
    margin: 7px 0 6px;
    color: var(--blu-950);
    font-size: 1rem;
}

.censimento-panoramica-guida p {
    margin: 0 0 14px;
    color: var(--attenuato);
    font-size: .76rem;
    line-height: 1.5;
}

.censimento-panoramica-mappa {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.censimento-panoramica-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    color: var(--testo);
    text-decoration: none;
}

.censimento-panoramica-card:hover {
    border-color: #b8c8df;
    background: #f8fbff;
    text-decoration: none;
}

.censimento-panoramica-card-icona {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    place-items: center;
    border-radius: 9px;
    background: var(--blu-100);
    color: var(--blu-600);
}

.censimento-panoramica-card > span:nth-child(2) {
    display: grid;
    min-width: 0;
    flex: 1;
    gap: 3px;
}

.censimento-panoramica-card strong {
    color: var(--blu-950);
    font-size: .78rem;
}

.censimento-panoramica-card small {
    color: var(--attenuato);
    font-size: .66rem;
}

@media (max-width: 1100px) {
    .workspace-censimento {
        grid-template-columns: 220px minmax(0, 1fr);
    }
}

@media (max-width: 820px) {
    .workspace-censimento {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .menu-interno-censimento {
        border-right: 0;
        border-bottom: 1px solid var(--bordo);
    }

    .menu-interno-censimento-testata {
        padding: 15px 16px 12px;
    }

    .menu-interno-censimento-navigazione {
        display: flex;
        gap: 8px;
        padding: 10px;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .menu-interno-censimento-gruppo,
    .menu-interno-censimento-gruppo +
    .menu-interno-censimento-gruppo {
        display: contents;
        margin: 0;
    }

    .menu-interno-censimento-etichetta {
        display: none;
    }

    .menu-interno-censimento-link {
        min-width: max-content;
        flex: 0 0 auto;
    }

    .menu-interno-censimento-testo small,
    .menu-interno-censimento-freccia {
        display: none;
    }

    .contenuto-interno-censimento-frame,
    .contenuto-interno-censimento-frame iframe {
        min-height: 760px;
    }
}

@media (max-width: 700px) {
    .censimento-panoramica-riepilogo,
    .censimento-panoramica-mappa {
        grid-template-columns: 1fr;
    }

    .contenuto-interno-censimento-testata {
        min-height: 74px;
        padding: 14px 16px;
    }

    .censimento-panoramica {
        padding: 16px;
    }
}


/* =========================================================
   REVISIONE VISIVA WORKSPACE CENSIMENTO
   Più vicina alla bozza approvata
   ========================================================= */

/*
 * Il workspace occupa quasi tutta l'area disponibile e non appare
 * come una piccola scheda centrata dentro la pagina.
 */
.contenuto-pagina:has(.workspace-censimento) {
    padding: 0;
}

.workspace-censimento {
    grid-template-columns: 262px minmax(0, 1fr);

    min-height: calc(100vh - 64px);

    border: 0;
    border-radius: 0;

    background: #f5f7fb;
    box-shadow: none;
}


/* =========================================================
   BARRA INTERNA
   ========================================================= */

.menu-interno-censimento {
    border-right: 1px solid #e1e7f0;
    background: #ffffff;
}

.menu-interno-censimento-testata {
    padding: 24px 22px 19px;
    border-bottom: 1px solid #e8edf4;
}

.menu-interno-censimento-sovratitolo {
    color: #2f6fe4;
    font-size: .62rem;
    letter-spacing: .1em;
}

.menu-interno-censimento-testata h1 {
    margin: 6px 0 4px;
    font-size: 1.2rem;
}

.menu-interno-censimento-testata p {
    color: #7a879a;
    font-size: .68rem;
}

.menu-interno-censimento-navigazione {
    padding: 18px 14px 28px;
}

.menu-interno-censimento-gruppo +
.menu-interno-censimento-gruppo {
    margin-top: 22px;
}

.menu-interno-censimento-etichetta {
    margin: 0 10px 9px;

    color: #75849b;

    font-size: .58rem;
    letter-spacing: .085em;
}

.menu-interno-censimento-link {
    min-height: 48px;
    gap: 11px;

    padding: 9px 11px;

    border-radius: 10px;

    color: #253750;
}

.menu-interno-censimento-link:hover {
    background: #f2f6fc;
}

.menu-interno-censimento-link.attivo {
    background: #e9f1ff;
    color: #1556c0;
    box-shadow: none;
}

.menu-interno-censimento-icona {
    width: 30px;
    height: 30px;
    flex-basis: 30px;

    border: 1px solid #e4eaf2;
    border-radius: 8px;

    background: #ffffff;
    color: #65758d;

    font-size: 13px;
}

.menu-interno-censimento-link.attivo
.menu-interno-censimento-icona {
    border-color: #cddfff;
    background: #ffffff;
    color: #2467dc;
}

.menu-interno-censimento-testo strong {
    font-size: .76rem;
    font-weight: 720;
}

.menu-interno-censimento-testo small {
    margin-top: 1px;
    color: #8b98aa;
    font-size: .59rem;
}

.menu-interno-censimento-freccia {
    color: #98a6b8;
}


/* =========================================================
   AREA CENTRALE
   ========================================================= */

.contenuto-interno-censimento {
    background: #f5f7fb;
}

.contenuto-interno-censimento-testata {
    min-height: 104px;

    padding: 22px 30px;

    border-bottom: 1px solid #e1e7f0;
    background: #ffffff;
}

.contenuto-interno-censimento-testata h2 {
    margin: 4px 0 5px;
    font-size: 1.45rem;
}

.contenuto-interno-censimento-testata p {
    font-size: .8rem;
}

.contenuto-interno-censimento-frame {
    min-height: calc(100vh - 168px);

    padding: 20px 24px 30px;

    background: #f5f7fb;
}

.contenuto-interno-censimento-frame iframe {
    min-height: calc(100vh - 218px);

    border: 1px solid #e0e6ef;
    border-radius: 12px;

    background: #ffffff;
    box-shadow: 0 6px 20px rgb(22 42 72 / 5%);
}


/* =========================================================
   PANORAMICA INTERNA
   ========================================================= */

.censimento-panoramica {
    padding: 24px 28px 32px;
}

.censimento-panoramica-stato,
.censimento-panoramica-guida,
.censimento-panoramica-card {
    border-color: #e0e6ef;
    box-shadow: 0 5px 18px rgb(22 42 72 / 4%);
}


/* =========================================================
   ADATTAMENTO DELLE PAGINE EMBED
   Le pagine già esistenti restano dentro l'area centrale.
   ========================================================= */

.contenuto-interno-censimento-frame iframe {
    color-scheme: light;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1100px) {
    .workspace-censimento {
        grid-template-columns: 236px minmax(0, 1fr);
    }

    .contenuto-interno-censimento-testata {
        padding-inline: 24px;
    }

    .contenuto-interno-censimento-frame {
        padding-inline: 18px;
    }
}

@media (max-width: 820px) {
    .contenuto-pagina:has(.workspace-censimento) {
        padding: 0;
    }

    .workspace-censimento {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .menu-interno-censimento-testata {
        padding: 16px;
    }

    .menu-interno-censimento-navigazione {
        padding: 10px 12px;
    }

    .contenuto-interno-censimento-testata {
        min-height: 84px;
        padding: 16px 18px;
    }

    .contenuto-interno-censimento-frame {
        padding: 14px;
    }

    .contenuto-interno-censimento-frame iframe {
        min-height: 760px;
    }
}


/* =========================================================
   CENSIMENTO — PERSONE E RUOLI
   ========================================================= */

.pagina-persone-censimento {
    display: grid;
    gap: 18px;
}

.testata-operativa-censimento {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.testata-operativa-censimento h2 {
    margin: 0 0 5px;
    color: var(--blu-950);
    font-size: 1.35rem;
}

.testata-operativa-censimento p {
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
}

.griglia-kpi-persone {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.scheda-kpi-persone {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;

    padding: 15px;

    border: 1px solid var(--bordo);
    border-radius: 11px;

    background: #ffffff;
}

.icona-kpi-persone {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;

    border-radius: 10px;

    background: var(--blu-100);
    color: var(--blu-600);

    font-size: 16px;
    font-weight: 800;
}

.scheda-kpi-persone div {
    min-width: 0;
}

.scheda-kpi-persone small,
.scheda-kpi-persone strong,
.scheda-kpi-persone div > span {
    display: block;
}

.scheda-kpi-persone small {
    color: var(--attenuato);
    font-size: .64rem;
}

.scheda-kpi-persone strong {
    margin: 2px 0;
    color: var(--blu-950);
    font-size: 1.3rem;
}

.scheda-kpi-persone div > span {
    overflow: hidden;
    color: var(--attenuato);
    font-size: .58rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pannello-elenco-persone {
    padding: 0;
    overflow: hidden;
}

.barra-filtri-persone {
    display: grid;
    grid-template-columns: minmax(260px, 1.7fr) repeat(2, minmax(150px, .7fr)) auto;
    gap: 12px;
    align-items: end;

    padding: 16px 18px;

    border-bottom: 1px solid var(--bordo);
}

.filtro-checkbox-persone {
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 8px;

    color: var(--attenuato);
    font-size: .72rem;
    white-space: nowrap;
    cursor: pointer;
}

.filtro-checkbox-persone input {
    width: auto;
}

.tabella-persone th,
.tabella-persone td {
    padding: 13px 14px;
}

.persona-identita {
    display: flex;
    min-width: 190px;
    align-items: center;
    gap: 10px;
}

.persona-avatar {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;

    border-radius: 9px;

    background: #eef4ff;
    color: var(--blu-600);

    font-size: .68rem;
    font-weight: 850;
}

.persona-identita div,
.persona-contatti {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.persona-identita strong {
    color: var(--blu-950);
    font-size: .78rem;
}

.persona-identita small,
.persona-contatti small {
    color: var(--attenuato);
    font-size: .62rem;
}

.persona-contatti span {
    font-size: .72rem;
}

.azioni-riga-persone {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
}

.pulsante-icona-tabella {
    display: grid;
    width: 31px;
    height: 31px;
    place-items: center;

    border: 1px solid var(--bordo);
    border-radius: 7px;

    background: #ffffff;
    color: var(--blu-600);

    font-size: .82rem;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.pulsante-icona-tabella:hover {
    border-color: var(--blu-600);
    background: #f7faff;
    text-decoration: none;
}

.pulsante-icona-elimina {
    color: var(--rosso);
}

.piede-tabella-persone {
    padding: 12px 16px;

    border-top: 1px solid var(--bordo);

    color: var(--attenuato);
    font-size: .68rem;
}

.pannello-form-persona {
    scroll-margin-top: 20px;
}

.testata-form-persona {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;

    margin-bottom: 18px;
}

.testata-form-persona h2 {
    margin: 3px 0 5px;
    color: var(--blu-950);
    font-size: 1.05rem;
}

.testata-form-persona p {
    margin: 0;
    color: var(--attenuato);
    font-size: .75rem;
}

.pulsante-chiudi-form {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;

    border: 0;
    border-radius: 8px;

    background: #eef2f6;
    color: var(--attenuato);

    font-size: 18px;
    cursor: pointer;
}

.griglia-form-persona {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}

.griglia-form-persona label {
    display: grid;
    gap: 6px;
}

.griglia-form-persona label > span {
    color: var(--testo);
    font-size: .72rem;
    font-weight: 750;
}

.griglia-form-persona input,
.griglia-form-persona select,
.griglia-form-persona textarea {
    width: 100%;
    min-height: 42px;

    padding: 9px 11px;

    border: 1px solid var(--bordo);
    border-radius: 8px;

    background: #ffffff;
    color: var(--testo);
    font: inherit;
}

.griglia-form-persona textarea {
    min-height: 90px;
    resize: vertical;
}

.griglia-form-persona input:focus,
.griglia-form-persona select:focus,
.griglia-form-persona textarea:focus {
    border-color: var(--blu-600);
    outline: 0;
    box-shadow: 0 0 0 3px rgb(47 111 228 / 12%);
}

.campo-form-esteso {
    grid-column: 1 / -1;
}

.azioni-form-persona {
    display: flex;
    justify-content: flex-end;
    gap: 10px;

    margin-top: 20px;
}

@media (max-width: 1250px) {
    .griglia-kpi-persone {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .barra-filtri-persone {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .campo-filtro-ricerca {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .testata-operativa-censimento {
        align-items: stretch;
        flex-direction: column;
    }

    .griglia-kpi-persone,
    .barra-filtri-persone,
    .griglia-form-persona {
        grid-template-columns: 1fr;
    }

    .campo-filtro-ricerca,
    .campo-form-esteso {
        grid-column: auto;
    }

    .filtro-checkbox-persone {
        white-space: normal;
    }

    .azioni-form-persona {
        flex-direction: column-reverse;
    }

    .azioni-form-persona .pulsante {
        width: 100%;
    }
}


/* =========================================================
   PERSONE E RUOLI — GERARCHIA + DRAWER
   ========================================================= */

.pagina-persone-drawer {
    display: grid;
    gap: 18px;
}

.testata-operativa-persone {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.testata-operativa-persone h2 {
    margin: 0 0 5px;
    color: var(--blu-950);
    font-size: 1.45rem;
}

.testata-operativa-persone p {
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
}

.griglia-kpi-persone-drawer {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.griglia-kpi-persone-drawer article {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    background: #fff;
}

.kpi-icona {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 10px;
    background: var(--blu-100);
    color: var(--blu-600);
    font-weight: 850;
}

.kpi-verde {
    background: #eaf8ef;
    color: #1e9b55;
}

.kpi-viola {
    background: #f1ebff;
    color: #7446d5;
}

.kpi-arancio {
    background: #fff2df;
    color: #dc8500;
}

.griglia-kpi-persone-drawer small,
.griglia-kpi-persone-drawer strong,
.griglia-kpi-persone-drawer div > span {
    display: block;
}

.griglia-kpi-persone-drawer small {
    color: var(--attenuato);
    font-size: .62rem;
}

.griglia-kpi-persone-drawer strong {
    margin: 2px 0;
    color: var(--blu-950);
    font-size: 1.3rem;
}

.griglia-kpi-persone-drawer div > span {
    color: var(--attenuato);
    font-size: .58rem;
}

.pannello-persone-gerarchia {
    padding: 0;
    overflow: hidden;
}

.barra-filtri-gerarchia {
    display: grid;
    grid-template-columns: minmax(280px, 1.5fr) minmax(170px, .6fr) auto;
    gap: 12px;
    align-items: end;
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
}

.filtro-switch-persone {
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 8px;
    color: var(--attenuato);
    font-size: .72rem;
    cursor: pointer;
}

.filtro-switch-persone input {
    width: auto;
}

.intestazione-tabella-gerarchica,
.riga-persona-gerarchica {
    display: grid;
    grid-template-columns:
        minmax(220px, 1.5fr)
        minmax(105px, .7fr)
        minmax(110px, .8fr)
        minmax(130px, .9fr)
        minmax(170px, 1fr)
        78px
        30px;
    gap: 12px;
    align-items: center;
}

.intestazione-tabella-gerarchica {
    padding: 11px 18px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
    color: #66758c;
    font-size: .59rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.gruppo-gerarchico-persone {
    border-bottom: 1px solid var(--bordo);
}

.riga-gruppo-gerarchico,
.riga-sottogruppo-privacy {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 9px;
    padding: 13px 18px;
    border: 0;
    background: #fff;
    color: var(--blu-950);
    text-align: left;
    cursor: pointer;
}

.riga-gruppo-gerarchico:hover,
.riga-sottogruppo-privacy:hover {
    background: #f8fbff;
}

.freccia-gerarchia {
    display: inline-block;
    color: #8090a7;
    font-size: 17px;
    transition: transform 150ms ease;
}

.freccia-gerarchia.aperta {
    transform: rotate(90deg);
}

.icona-gruppo-gerarchico {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 7px;
    background: var(--blu-100);
    color: var(--blu-600);
}

.icona-privacy {
    background: #f1ebff;
    color: #7446d5;
}

.riga-gruppo-gerarchico strong,
.riga-sottogruppo-privacy strong {
    font-size: .75rem;
}

.conteggio-gruppo {
    padding: 3px 8px;
    border-radius: 999px;
    background: #edf1f6;
    color: #65748a;
    font-size: .59rem;
    font-weight: 750;
}

.contenuto-gruppo-gerarchico {
    padding-left: 38px;
    border-left: 1px solid #dfe6ef;
    margin-left: 30px;
}

.riga-persona-gerarchica {
    width: 100%;
    padding: 11px 14px;
    border: 0;
    border-top: 1px solid #edf0f4;
    background: #fff;
    color: var(--testo);
    text-align: left;
    cursor: pointer;
}

.riga-persona-gerarchica:hover,
.riga-persona-gerarchica.selezionata {
    background: #edf4ff;
}

.persona-cella-identita {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.avatar-persona {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 9px;
    background: #eaf1ff;
    color: #2767d6;
    font-size: .65rem;
    font-weight: 850;
}

.avatar-privacy {
    background: #f1ebff;
    color: #7446d5;
}

.persona-cella-identita > span:last-child,
.contatti-persona-gerarchia {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.persona-cella-identita strong {
    color: var(--blu-950);
    font-size: .73rem;
}

.persona-cella-identita small,
.contatti-persona-gerarchia small {
    color: var(--attenuato);
    font-size: .58rem;
}

.riga-persona-gerarchica > span {
    overflow: hidden;
    font-size: .68rem;
    text-overflow: ellipsis;
}

.menu-riga-persona {
    color: #687991;
    font-size: 16px !important;
    text-align: center;
}

.sottogruppo-privacy {
    border-top: 1px solid #edf0f4;
}

.riga-sottogruppo-privacy {
    padding-left: 14px;
    background: #fbfaff;
}

.riga-persona-privacy {
    padding-left: 26px;
}


/* =========================================================
   DRAWER LATERALE
   ========================================================= */

.sfondo-drawer-persona {
    position: fixed;
    inset: 0;
    z-index: 1250;
    background: rgb(13 27 47 / 35%);
}

.drawer-persona {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1300;

    display: flex;
    width: min(430px, 92vw);
    height: 100vh;
    flex-direction: column;

    transform: translateX(100%);
    transition: transform 220ms ease;

    background: #fff;
    box-shadow: -18px 0 48px rgb(13 27 47 / 20%);
}

.drawer-persona.aperto {
    transform: translateX(0);
}

.drawer-persona-testata {
    display: flex;
    min-height: 82px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--bordo);
}

.drawer-persona-testata h2 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.drawer-persona-testata p {
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
}

.drawer-persona-testata button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 0;
    border-radius: 8px;
    background: #eef2f6;
    color: #65748a;
    font-size: 19px;
    cursor: pointer;
}

.drawer-persona-form {
    flex: 1;
    overflow-y: auto;
    padding: 20px 22px 100px;
}

.sezione-form-drawer + .sezione-form-drawer {
    margin-top: 24px;
}

.sezione-form-drawer h3 {
    margin: 0 0 13px;
    color: var(--blu-950);
    font-size: .78rem;
}

.sezione-form-drawer label {
    display: grid;
    gap: 6px;
}

.sezione-form-drawer label + label,
.sezione-form-drawer .griglia-due-campi + label {
    margin-top: 12px;
}

.sezione-form-drawer label > span {
    color: #46556c;
    font-size: .68rem;
    font-weight: 700;
}

.sezione-form-drawer input,
.sezione-form-drawer select,
.sezione-form-drawer textarea {
    width: 100%;
    min-height: 42px;
    padding: 9px 11px;
    border: 1px solid var(--bordo);
    border-radius: 8px;
    background: #fff;
    color: var(--testo);
    font: inherit;
}

.sezione-form-drawer textarea {
    resize: vertical;
}

.sezione-form-drawer input:focus,
.sezione-form-drawer select:focus,
.sezione-form-drawer textarea:focus {
    border-color: var(--blu-600);
    outline: 0;
    box-shadow: 0 0 0 3px rgb(47 111 228 / 12%);
}

.griglia-due-campi {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.drawer-persona-azioni {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--bordo);
    background: #fff;
}

.drawer-elimina-persona {
    position: absolute;
    left: 18px;
    bottom: 16px;
    z-index: 2;
}

.drawer-elimina-persona button {
    border: 0;
    background: transparent;
    color: var(--rosso);
    font-size: .7rem;
    font-weight: 750;
    cursor: pointer;
}

@media (max-width: 1250px) {
    .griglia-kpi-persone-drawer {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .intestazione-tabella-gerarchica,
    .riga-persona-gerarchica {
        grid-template-columns:
            minmax(200px, 1.5fr)
            minmax(100px, .7fr)
            minmax(110px, .8fr)
            minmax(130px, .9fr)
            minmax(160px, 1fr)
            76px
            26px;
    }
}

@media (max-width: 900px) {
    .barra-filtri-gerarchia {
        grid-template-columns: 1fr;
    }

    .intestazione-tabella-gerarchica {
        display: none;
    }

    .riga-persona-gerarchica {
        grid-template-columns: 1fr auto;
        gap: 8px;
    }

    .riga-persona-gerarchica > span:not(
        .persona-cella-identita
    ):not(.menu-riga-persona) {
        display: none;
    }

    .contenuto-gruppo-gerarchico {
        padding-left: 12px;
        margin-left: 12px;
    }
}

@media (max-width: 700px) {
    .testata-operativa-persone {
        align-items: stretch;
        flex-direction: column;
    }

    .griglia-kpi-persone-drawer {
        grid-template-columns: 1fr 1fr;
    }

    .drawer-persona {
        width: 100%;
    }

    .griglia-due-campi {
        grid-template-columns: 1fr;
    }

    .drawer-persona-azioni {
        flex-direction: column-reverse;
    }

    .drawer-persona-azioni .pulsante {
        width: 100%;
    }

    .drawer-elimina-persona {
        position: static;
        padding: 0 22px 84px;
    }
}


/* =========================================================
   RIFINITURE WORKSPACE CENSIMENTO
   ========================================================= */

/* Elimina lo spazio esterno attorno al contenuto operativo. */
.contenuto-interno-censimento-frame {
    padding: 0;
}

/* Il contenuto centrale diventa parte integrante del workspace. */
.contenuto-interno-censimento-frame iframe {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

/* Evita qualsiasi ombra residua sui lati del pannello centrale. */
.contenuto-interno-censimento {
    box-shadow: none;
}

/* Un po' di respiro dopo l'ultima riga dell'elenco gerarchico. */
.albero-persone {
    padding-bottom: 24px;
}

/* Mantiene il fondo bianco fino alla fine dell'elenco. */
.pannello-persone-gerarchia {
    background: #ffffff;
}

/* Su mobile il contenuto resta comunque privo del margine esterno. */
@media (max-width: 820px) {
    .contenuto-interno-censimento-frame {
        padding: 0;
    }
}


/* =========================================================
   SISTEMI E APPLICAZIONI — GERARCHIA + DRAWER
   ========================================================= */

.pagina-sistemi-drawer {
    display: grid;
    gap: 18px;
}

.testata-operativa-sistemi {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.testata-operativa-sistemi h2 {
    margin: 0 0 5px;
    color: var(--blu-950);
    font-size: 1.45rem;
}

.testata-operativa-sistemi p {
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
}

.griglia-kpi-sistemi {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.griglia-kpi-sistemi article {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    background: #fff;
}

.kpi-icona-sistema {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 10px;
    background: var(--blu-100);
    color: var(--blu-600);
    font-weight: 850;
}

.kpi-giallo {
    background: #fff3dc;
    color: #d98a00;
}

.kpi-rosso {
    background: #ffe9ea;
    color: #d6424d;
}

.kpi-viola {
    background: #f1ebff;
    color: #7446d5;
}

.griglia-kpi-sistemi small,
.griglia-kpi-sistemi strong,
.griglia-kpi-sistemi div > span {
    display: block;
}

.griglia-kpi-sistemi small {
    color: var(--attenuato);
    font-size: .62rem;
}

.griglia-kpi-sistemi strong {
    margin: 2px 0;
    color: var(--blu-950);
    font-size: 1.3rem;
}

.griglia-kpi-sistemi div > span {
    color: var(--attenuato);
    font-size: .58rem;
}

.pannello-sistemi-gerarchia {
    padding: 0;
    overflow: hidden;
}

.barra-filtri-sistemi {
    display: grid;
    grid-template-columns: minmax(280px, 1.5fr) repeat(2, minmax(170px, .6fr));
    gap: 12px;
    align-items: end;
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
}

.intestazione-tabella-sistemi,
.riga-sistema-gerarchica {
    display: grid;
    grid-template-columns:
        minmax(220px, 1.4fr)
        minmax(110px, .7fr)
        minmax(120px, .8fr)
        minmax(110px, .7fr)
        minmax(120px, .8fr)
        minmax(110px, .7fr)
        78px
        30px;
    gap: 12px;
    align-items: center;
}

.intestazione-tabella-sistemi {
    padding: 11px 18px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
    color: #66758c;
    font-size: .59rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.gruppo-gerarchico-sistemi {
    border-bottom: 1px solid var(--bordo);
}

.riga-gruppo-sistemi {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 9px;
    padding: 13px 18px;
    border: 0;
    background: #fff;
    color: var(--blu-950);
    text-align: left;
    cursor: pointer;
}

.riga-gruppo-sistemi:hover {
    background: #f8fbff;
}

.icona-gruppo-sistema {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 7px;
    background: var(--blu-100);
    color: var(--blu-600);
}

.contenuto-gruppo-sistemi {
    padding-left: 38px;
    margin-left: 30px;
    border-left: 1px solid #dfe6ef;
}

.riga-sistema-gerarchica {
    width: 100%;
    padding: 11px 14px;
    border: 0;
    border-top: 1px solid #edf0f4;
    background: #fff;
    color: var(--testo);
    text-align: left;
    cursor: pointer;
}

.riga-sistema-gerarchica:hover,
.riga-sistema-gerarchica.selezionata {
    background: #edf4ff;
}

.sistema-identita {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.avatar-sistema {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 9px;
    background: #eaf1ff;
    color: #2767d6;
    font-size: .75rem;
}

.sistema-identita > span:last-child {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.sistema-identita strong {
    color: var(--blu-950);
    font-size: .73rem;
}

.sistema-identita small,
.stato-verifica small {
    color: var(--attenuato);
    font-size: .58rem;
}

.riga-sistema-gerarchica > span {
    overflow: hidden;
    font-size: .68rem;
    text-overflow: ellipsis;
}

.stato-verifica {
    display: grid;
    gap: 2px;
}

.stato-verifica strong {
    font-size: .66rem;
}

.stato-verifica-ok strong {
    color: #1e9b55;
}

.stato-verifica-scaduta strong {
    color: #d98a00;
}

.stato-verifica-mai strong {
    color: #d6424d;
}

.misure-sistema {
    display: flex;
    gap: 4px;
}

.misure-sistema b {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 6px;
    font-size: .55rem;
}

.misure-sistema .attiva {
    background: #eaf8ef;
    color: #1e9b55;
}

.misure-sistema .non-attiva {
    background: #eef1f5;
    color: #8b98aa;
}

.menu-riga-sistema {
    color: #687991;
    font-size: 16px !important;
    text-align: center;
}

.albero-sistemi {
    padding-bottom: 24px;
}


/* Drawer */

.sfondo-drawer-sistema {
    position: fixed;
    inset: 0;
    z-index: 1250;
    background: rgb(13 27 47 / 35%);
}

.drawer-sistema {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1300;

    display: flex;
    width: min(440px, 92vw);
    height: 100vh;
    flex-direction: column;

    transform: translateX(100%);
    transition: transform 220ms ease;

    background: #fff;
    box-shadow: -18px 0 48px rgb(13 27 47 / 20%);
}

.drawer-sistema.aperto {
    transform: translateX(0);
}

.drawer-sistema-testata {
    display: flex;
    min-height: 82px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--bordo);
}

.drawer-sistema-testata h2 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.drawer-sistema-testata p {
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
}

.drawer-sistema-testata button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 0;
    border-radius: 8px;
    background: #eef2f6;
    color: #65748a;
    font-size: 19px;
    cursor: pointer;
}

.drawer-sistema-form {
    flex: 1;
    overflow-y: auto;
    padding: 20px 22px 100px;
}

.griglia-check-sistemi {
    display: grid;
    gap: 10px;
}

.griglia-check-sistemi label {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 12px;
    border: 1px solid var(--bordo);
    border-radius: 8px;
    background: #fafbfd;
    cursor: pointer;
}

.griglia-check-sistemi input {
    width: auto;
    min-height: auto;
}

.drawer-sistema-azioni {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--bordo);
    background: #fff;
}

.drawer-elimina-sistema {
    position: absolute;
    left: 18px;
    bottom: 16px;
    z-index: 2;
}

.drawer-elimina-sistema button {
    border: 0;
    background: transparent;
    color: var(--rosso);
    font-size: .7rem;
    font-weight: 750;
    cursor: pointer;
}

@media (max-width: 1250px) {
    .griglia-kpi-sistemi {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .barra-filtri-sistemi {
        grid-template-columns: 1fr;
    }

    .intestazione-tabella-sistemi {
        display: none;
    }

    .riga-sistema-gerarchica {
        grid-template-columns: 1fr auto;
        gap: 8px;
    }

    .riga-sistema-gerarchica > span:not(
        .sistema-identita
    ):not(.menu-riga-sistema) {
        display: none;
    }

    .contenuto-gruppo-sistemi {
        padding-left: 12px;
        margin-left: 12px;
    }
}

@media (max-width: 700px) {
    .testata-operativa-sistemi {
        align-items: stretch;
        flex-direction: column;
    }

    .griglia-kpi-sistemi {
        grid-template-columns: 1fr 1fr;
    }

    .drawer-sistema {
        width: 100%;
    }

    .drawer-sistema-azioni {
        flex-direction: column-reverse;
    }

    .drawer-sistema-azioni .pulsante {
        width: 100%;
    }

    .drawer-elimina-sistema {
        position: static;
        padding: 0 22px 84px;
    }
}


/* =========================================================
   BANCHE DATI E ARCHIVI — GERARCHIA + DRAWER
   ========================================================= */

.pagina-banche-dati-drawer {
    display: grid;
    gap: 18px;
}

.testata-operativa-banche {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.testata-operativa-banche h2 {
    margin: 0 0 5px;
    color: var(--blu-950);
    font-size: 1.45rem;
}

.testata-operativa-banche p {
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
}

.griglia-kpi-banche {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.griglia-kpi-banche article {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    background: #fff;
}

.kpi-icona-banca {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 10px;
    background: var(--blu-100);
    color: var(--blu-600);
    font-weight: 850;
}

.kpi-giallo {
    background: #fff3dc;
    color: #d98a00;
}

.kpi-rosso {
    background: #ffe9ea;
    color: #d6424d;
}

.kpi-viola {
    background: #f1ebff;
    color: #7446d5;
}

.griglia-kpi-banche small,
.griglia-kpi-banche strong,
.griglia-kpi-banche div > span {
    display: block;
}

.griglia-kpi-banche small {
    color: var(--attenuato);
    font-size: .62rem;
}

.griglia-kpi-banche strong {
    margin: 2px 0;
    color: var(--blu-950);
    font-size: 1.3rem;
}

.griglia-kpi-banche div > span {
    color: var(--attenuato);
    font-size: .58rem;
}

.pannello-banche-gerarchia {
    padding: 0;
    overflow: hidden;
}

.barra-filtri-banche {
    display: grid;
    grid-template-columns:
        minmax(280px, 1.5fr)
        repeat(2, minmax(170px, .6fr));
    gap: 12px;
    align-items: end;
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
}

.intestazione-tabella-banche,
.riga-banca-apri {
    display: grid;
    grid-template-columns:
        minmax(220px, 1.4fr)
        minmax(110px, .7fr)
        minmax(120px, .8fr)
        minmax(120px, .8fr)
        minmax(150px, 1fr)
        minmax(110px, .7fr)
        78px;
    gap: 12px;
    align-items: center;
}

.intestazione-tabella-banche {
    padding: 11px 48px 11px 18px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
    color: #66758c;
    font-size: .59rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.gruppo-gerarchico-banche {
    border-bottom: 1px solid var(--bordo);
}

.riga-gruppo-banche {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 9px;
    padding: 13px 18px;
    border: 0;
    background: #fff;
    color: var(--blu-950);
    text-align: left;
    cursor: pointer;
}

.riga-gruppo-banche:hover {
    background: #f8fbff;
}

.icona-gruppo-banca {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 7px;
    background: var(--blu-100);
    color: var(--blu-600);
}

.contenuto-gruppo-banche {
    padding-left: 38px;
    margin-left: 30px;
    border-left: 1px solid #dfe6ef;
}

.blocco-banca-gerarchica {
    border-top: 1px solid #edf0f4;
}

.riga-banca-gerarchica {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 32px;
    align-items: stretch;
    background: #fff;
}

.riga-banca-gerarchica:hover,
.riga-banca-gerarchica.selezionata {
    background: #edf4ff;
}

.riga-banca-apri {
    width: 100%;
    padding: 11px 14px;
    border: 0;
    background: transparent;
    color: var(--testo);
    text-align: left;
    cursor: pointer;
}

.banca-identita {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.avatar-banca {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 9px;
    background: #eaf1ff;
    color: #2767d6;
    font-size: .75rem;
}

.banca-identita > span:last-child {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.banca-identita strong {
    color: var(--blu-950);
    font-size: .73rem;
}

.banca-identita small {
    color: var(--attenuato);
    font-size: .58rem;
}

.riga-banca-apri > span {
    overflow: hidden;
    font-size: .68rem;
    text-overflow: ellipsis;
}

.protezioni-banca {
    display: flex;
    gap: 4px;
}

.protezioni-banca b {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 6px;
    font-size: .55rem;
}

.protezioni-banca .attiva {
    background: #eaf8ef;
    color: #1e9b55;
}

.protezioni-banca .non-attiva {
    background: #eef1f5;
    color: #8b98aa;
}

.protezioni-banca .sensibile {
    background: #ffe9ea;
    color: #d6424d;
}

.pulsante-dettagli-banca {
    border: 0;
    background: transparent;
    color: #687991;
    font-size: 16px;
    cursor: pointer;
}

.dettagli-banca {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    padding: 16px 18px 18px 48px;
    border-top: 1px solid #e4eaf2;
    background: #f8fafc;
}

.dettagli-banca-colonna {
    padding: 14px;
    border: 1px solid var(--bordo);
    border-radius: 10px;
    background: #fff;
}

.dettagli-banca-colonna h4 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 10px;
    color: var(--blu-950);
    font-size: .72rem;
}

.dettagli-banca-colonna h4 span {
    display: grid;
    min-width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 7px;
    background: var(--blu-100);
    color: var(--blu-600);
    font-size: .6rem;
}

.lista-dettagli-banca {
    display: grid;
}

.lista-dettagli-banca > div {
    display: grid;
    gap: 2px;
    padding: 8px 0;
    border-bottom: 1px solid var(--bordo);
}

.lista-dettagli-banca > div:last-child {
    border-bottom: 0;
}

.lista-dettagli-banca strong {
    color: var(--testo);
    font-size: .68rem;
}

.lista-dettagli-banca small {
    color: var(--attenuato);
    font-size: .58rem;
}

.albero-banche {
    padding-bottom: 24px;
}


/* Drawer */

.sfondo-drawer-banca {
    position: fixed;
    inset: 0;
    z-index: 1250;
    background: rgb(13 27 47 / 35%);
}

.drawer-banca {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1300;

    display: flex;
    width: min(450px, 92vw);
    height: 100vh;
    flex-direction: column;

    transform: translateX(100%);
    transition: transform 220ms ease;

    background: #fff;
    box-shadow: -18px 0 48px rgb(13 27 47 / 20%);
}

.drawer-banca.aperto {
    transform: translateX(0);
}

.drawer-banca-testata {
    display: flex;
    min-height: 82px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--bordo);
}

.drawer-banca-testata h2 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.drawer-banca-testata p {
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
}

.drawer-banca-testata button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 0;
    border-radius: 8px;
    background: #eef2f6;
    color: #65748a;
    font-size: 19px;
    cursor: pointer;
}

.drawer-banca-form {
    flex: 1;
    overflow-y: auto;
    padding: 20px 22px 100px;
}

.griglia-check-banche {
    display: grid;
    gap: 10px;
}

.griglia-check-banche label {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 12px;
    border: 1px solid var(--bordo);
    border-radius: 8px;
    background: #fafbfd;
    cursor: pointer;
}

.griglia-check-banche input {
    width: auto;
    min-height: auto;
}

.drawer-banca-azioni {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--bordo);
    background: #fff;
}

.drawer-elimina-banca {
    position: absolute;
    left: 18px;
    bottom: 16px;
    z-index: 2;
}

.drawer-elimina-banca button {
    border: 0;
    background: transparent;
    color: var(--rosso);
    font-size: .7rem;
    font-weight: 750;
    cursor: pointer;
}

@media (max-width: 1250px) {
    .griglia-kpi-banche {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .barra-filtri-banche {
        grid-template-columns: 1fr;
    }

    .intestazione-tabella-banche {
        display: none;
    }

    .riga-banca-apri {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .riga-banca-apri > span:not(.banca-identita) {
        display: none;
    }

    .contenuto-gruppo-banche {
        padding-left: 12px;
        margin-left: 12px;
    }

    .dettagli-banca {
        grid-template-columns: 1fr;
        padding-left: 18px;
    }
}

@media (max-width: 700px) {
    .testata-operativa-banche {
        align-items: stretch;
        flex-direction: column;
    }

    .griglia-kpi-banche {
        grid-template-columns: 1fr 1fr;
    }

    .drawer-banca {
        width: 100%;
    }

    .drawer-banca-azioni {
        flex-direction: column-reverse;
    }

    .drawer-banca-azioni .pulsante {
        width: 100%;
    }

    .drawer-elimina-banca {
        position: static;
        padding: 0 22px 84px;
    }
}


/* FORNITORI E RESPONSABILI — GERARCHIA + DRAWER */

.pagina-responsabili-drawer {
    display: grid;
    gap: 18px;
}

.testata-operativa-responsabili {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.testata-operativa-responsabili h2 {
    margin: 0 0 5px;
    color: var(--blu-950);
    font-size: 1.45rem;
}

.testata-operativa-responsabili p {
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
}

.griglia-kpi-responsabili {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.griglia-kpi-responsabili article {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    background: #fff;
}

.kpi-icona-responsabile {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 10px;
    background: var(--blu-100);
    color: var(--blu-600);
    font-weight: 850;
}

.kpi-verde { background: #eaf8ef; color: #1e9b55; }
.kpi-giallo { background: #fff3dc; color: #d98a00; }
.kpi-rosso { background: #ffe9ea; color: #d6424d; }
.kpi-viola { background: #f1ebff; color: #7446d5; }

.griglia-kpi-responsabili small,
.griglia-kpi-responsabili strong,
.griglia-kpi-responsabili div > span {
    display: block;
}

.griglia-kpi-responsabili small {
    color: var(--attenuato);
    font-size: .62rem;
}

.griglia-kpi-responsabili strong {
    margin: 2px 0;
    color: var(--blu-950);
    font-size: 1.3rem;
}

.griglia-kpi-responsabili div > span {
    color: var(--attenuato);
    font-size: .58rem;
}

.pannello-responsabili-gerarchia {
    padding: 0;
    overflow: hidden;
}

.barra-filtri-responsabili {
    display: grid;
    grid-template-columns: minmax(280px, 1.5fr) repeat(2, minmax(170px, .6fr));
    gap: 12px;
    align-items: end;
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
}

.intestazione-tabella-responsabili,
.riga-responsabile-gerarchica {
    display: grid;
    grid-template-columns:
        minmax(220px, 1.4fr)
        minmax(150px, 1fr)
        minmax(110px, .7fr)
        minmax(105px, .7fr)
        minmax(110px, .7fr)
        minmax(170px, 1fr)
        78px;
    gap: 12px;
    align-items: center;
}

.intestazione-tabella-responsabili {
    padding: 11px 18px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
    color: #66758c;
    font-size: .59rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.gruppo-gerarchico-responsabili {
    border-bottom: 1px solid var(--bordo);
}

.riga-gruppo-responsabili {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 9px;
    padding: 13px 18px;
    border: 0;
    background: #fff;
    color: var(--blu-950);
    text-align: left;
    cursor: pointer;
}

.riga-gruppo-responsabili:hover {
    background: #f8fbff;
}

.icona-gruppo-responsabile {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 7px;
    background: var(--blu-100);
    color: var(--blu-600);
}

.contenuto-gruppo-responsabili {
    padding-left: 38px;
    margin-left: 30px;
    border-left: 1px solid #dfe6ef;
}

.riga-responsabile-gerarchica {
    width: 100%;
    padding: 11px 14px;
    border: 0;
    border-top: 1px solid #edf0f4;
    background: #fff;
    color: var(--testo);
    text-align: left;
    cursor: pointer;
}

.riga-responsabile-gerarchica:hover {
    background: #edf4ff;
}

.responsabile-identita {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.avatar-responsabile {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 9px;
    background: #eaf1ff;
    color: #2767d6;
    font-size: .65rem;
    font-weight: 850;
}

.responsabile-identita > span:last-child,
.contatti-responsabile {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.responsabile-identita strong {
    color: var(--blu-950);
    font-size: .73rem;
}

.responsabile-identita small,
.contatti-responsabile small {
    color: var(--attenuato);
    font-size: .58rem;
}

.riga-responsabile-gerarchica > span {
    overflow: hidden;
    font-size: .68rem;
    text-overflow: ellipsis;
}

.scadenza-responsabile {
    font-size: .66rem !important;
}

.scadenza-responsabile.scaduta {
    color: var(--rosso);
    font-weight: 750;
}

.albero-responsabili {
    padding-bottom: 24px;
}

.sfondo-drawer-responsabile {
    position: fixed;
    inset: 0;
    z-index: 1250;
    background: rgb(13 27 47 / 35%);
}

.drawer-responsabile {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1300;
    display: flex;
    width: min(460px, 92vw);
    height: 100vh;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 220ms ease;
    background: #fff;
    box-shadow: -18px 0 48px rgb(13 27 47 / 20%);
}

.drawer-responsabile.aperto {
    transform: translateX(0);
}

.drawer-responsabile-testata {
    display: flex;
    min-height: 82px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--bordo);
}

.drawer-responsabile-testata h2 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.drawer-responsabile-testata p {
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
}

.drawer-responsabile-testata button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 0;
    border-radius: 8px;
    background: #eef2f6;
    color: #65748a;
    font-size: 19px;
    cursor: pointer;
}

.drawer-responsabile-form {
    flex: 1;
    overflow-y: auto;
    padding: 20px 22px 100px;
}

.campo-check-drawer {
    display: flex !important;
    min-height: 42px;
    align-items: center;
    gap: 9px !important;
    padding: 10px 12px;
    border: 1px solid var(--bordo);
    border-radius: 8px;
    background: #fafbfd;
    cursor: pointer;
}

.campo-check-drawer input {
    width: auto;
    min-height: auto;
}

.drawer-responsabile-azioni {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--bordo);
    background: #fff;
}

.drawer-elimina-responsabile {
    position: absolute;
    left: 18px;
    bottom: 16px;
    z-index: 2;
}

.drawer-elimina-responsabile button {
    border: 0;
    background: transparent;
    color: var(--rosso);
    font-size: .7rem;
    font-weight: 750;
    cursor: pointer;
}

@media (max-width: 1250px) {
    .griglia-kpi-responsabili {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .barra-filtri-responsabili {
        grid-template-columns: 1fr;
    }

    .intestazione-tabella-responsabili {
        display: none;
    }

    .riga-responsabile-gerarchica {
        grid-template-columns: 1fr;
    }

    .riga-responsabile-gerarchica > span:not(
        .responsabile-identita
    ) {
        display: none;
    }

    .contenuto-gruppo-responsabili {
        padding-left: 12px;
        margin-left: 12px;
    }
}

@media (max-width: 700px) {
    .testata-operativa-responsabili {
        align-items: stretch;
        flex-direction: column;
    }

    .griglia-kpi-responsabili {
        grid-template-columns: 1fr 1fr;
    }

    .drawer-responsabile {
        width: 100%;
    }

    .drawer-responsabile-azioni {
        flex-direction: column-reverse;
    }

    .drawer-responsabile-azioni .pulsante {
        width: 100%;
    }

    .drawer-elimina-responsabile {
        position: static;
        padding: 0 22px 84px;
    }
}

/* INCARICHI PRIVACY — GERARCHIA + DRAWER */
.pagina-incarichi-drawer{display:grid;gap:18px}.testata-operativa-incarichi{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.testata-operativa-incarichi h2{margin:0 0 5px;color:var(--blu-950);font-size:1.45rem}.testata-operativa-incarichi p{margin:0;color:var(--attenuato);font-size:.8rem}.griglia-kpi-incarichi{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.griglia-kpi-incarichi article{display:flex;min-width:0;align-items:center;gap:12px;padding:15px;border:1px solid var(--bordo);border-radius:11px;background:#fff}.kpi-icona-incarico{display:grid;width:40px;height:40px;flex:0 0 40px;place-items:center;border-radius:10px;background:var(--blu-100);color:var(--blu-600);font-weight:850}.kpi-verde{background:#eaf8ef;color:#1e9b55}.kpi-giallo{background:#fff3dc;color:#d98a00}.kpi-rosso{background:#ffe9ea;color:#d6424d}.kpi-viola{background:#f1ebff;color:#7446d5}.griglia-kpi-incarichi small,.griglia-kpi-incarichi strong,.griglia-kpi-incarichi div>span{display:block}.griglia-kpi-incarichi small{color:var(--attenuato);font-size:.62rem}.griglia-kpi-incarichi strong{margin:2px 0;color:var(--blu-950);font-size:1.3rem}.griglia-kpi-incarichi div>span{color:var(--attenuato);font-size:.58rem}.pannello-incarichi-gerarchia{padding:0;overflow:hidden}.barra-filtri-incarichi{display:grid;grid-template-columns:minmax(280px,1.5fr) repeat(2,minmax(170px,.6fr));gap:12px;align-items:end;padding:16px 18px;border-bottom:1px solid var(--bordo)}.intestazione-tabella-incarichi,.riga-incarico-gerarchica{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(150px,1fr) minmax(160px,1fr) minmax(105px,.7fr) minmax(105px,.7fr) 80px;gap:12px;align-items:center}.intestazione-tabella-incarichi{padding:11px 18px;border-bottom:1px solid var(--bordo);background:#f8fafc;color:#66758c;font-size:.59rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.gruppo-gerarchico-incarichi{border-bottom:1px solid var(--bordo)}.riga-gruppo-incarichi{display:flex;width:100%;align-items:center;gap:9px;padding:13px 18px;border:0;background:#fff;color:var(--blu-950);text-align:left;cursor:pointer}.riga-gruppo-incarichi:hover{background:#f8fbff}.icona-gruppo-incarico{display:grid;width:26px;height:26px;place-items:center;border-radius:7px;background:var(--blu-100);color:var(--blu-600)}.contenuto-gruppo-incarichi{padding-left:38px;margin-left:30px;border-left:1px solid #dfe6ef}.riga-incarico-gerarchica{width:100%;padding:11px 14px;border:0;border-top:1px solid #edf0f4;background:#fff;color:var(--testo);text-align:left;cursor:pointer}.riga-incarico-gerarchica:hover{background:#edf4ff}.incarico-identita{display:flex;min-width:0;align-items:center;gap:10px}.avatar-incarico{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border-radius:9px;background:#eaf1ff;color:#2767d6;font-size:.65rem;font-weight:850}.incarico-identita>span:last-child{display:grid;min-width:0;gap:2px}.incarico-identita strong{color:var(--blu-950);font-size:.73rem}.incarico-identita small{overflow:hidden;color:var(--attenuato);font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.riga-incarico-gerarchica>span{overflow:hidden;font-size:.68rem;text-overflow:ellipsis}.periodo-incarico.scaduto{color:var(--rosso);font-weight:750}.albero-incarichi{padding-bottom:24px}.sfondo-drawer-incarico{position:fixed;inset:0;z-index:1250;background:rgb(13 27 47 / 35%)}.drawer-incarico{position:fixed;inset:0 0 0 auto;z-index:1300;display:flex;width:min(470px,92vw);height:100vh;flex-direction:column;transform:translateX(100%);transition:transform 220ms ease;background:#fff;box-shadow:-18px 0 48px rgb(13 27 47 / 20%)}.drawer-incarico.aperto{transform:translateX(0)}.drawer-incarico-testata{display:flex;min-height:82px;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid var(--bordo)}.drawer-incarico-testata h2{margin:0 0 4px;color:var(--blu-950);font-size:1.15rem}.drawer-incarico-testata p{margin:0;color:var(--attenuato);font-size:.72rem}.drawer-incarico-testata button{display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:8px;background:#eef2f6;color:#65748a;font-size:19px;cursor:pointer}.drawer-incarico-form{flex:1;overflow-y:auto;padding:20px 22px 100px}.nota-drawer-incarico{margin:10px 0 0;color:var(--attenuato);font-size:.67rem;line-height:1.45}.drawer-incarico-azioni{position:absolute;inset:auto 0 0;display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--bordo);background:#fff}.drawer-elimina-incarico{position:absolute;left:18px;bottom:16px;z-index:2}.drawer-elimina-incarico button{border:0;background:transparent;color:var(--rosso);font-size:.7rem;font-weight:750;cursor:pointer}@media(max-width:1250px){.griglia-kpi-incarichi{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:980px){.barra-filtri-incarichi{grid-template-columns:1fr}.intestazione-tabella-incarichi{display:none}.riga-incarico-gerarchica{grid-template-columns:1fr}.riga-incarico-gerarchica>span:not(.incarico-identita){display:none}.contenuto-gruppo-incarichi{padding-left:12px;margin-left:12px}}@media(max-width:700px){.testata-operativa-incarichi{align-items:stretch;flex-direction:column}.griglia-kpi-incarichi{grid-template-columns:1fr 1fr}.drawer-incarico{width:100%}.drawer-incarico-azioni{flex-direction:column-reverse}.drawer-incarico-azioni .pulsante{width:100%}.drawer-elimina-incarico{position:static;padding:0 22px 84px}}


/* CATEGORIE DI INTERESSATI — ELENCO + DRAWER */

.pagina-categorie-interessati-drawer {
    display: grid;
    gap: 18px;
}

.testata-operativa-categorie {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.testata-operativa-categorie h2 {
    margin: 0 0 5px;
    color: var(--blu-950);
    font-size: 1.45rem;
}

.testata-operativa-categorie p {
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
}

.griglia-kpi-categorie {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.griglia-kpi-categorie article {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    background: #fff;
}

.kpi-icona-categoria {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 10px;
    background: var(--blu-100);
    color: var(--blu-600);
    font-weight: 850;
}

.kpi-verde { background: #eaf8ef; color: #1e9b55; }
.kpi-giallo { background: #fff3dc; color: #d98a00; }
.kpi-rosso { background: #ffe9ea; color: #d6424d; }
.kpi-viola { background: #f1ebff; color: #7446d5; }

.griglia-kpi-categorie small,
.griglia-kpi-categorie strong,
.griglia-kpi-categorie div > span {
    display: block;
}

.griglia-kpi-categorie small {
    color: var(--attenuato);
    font-size: .62rem;
}

.griglia-kpi-categorie strong {
    margin: 2px 0;
    color: var(--blu-950);
    font-size: 1.3rem;
}

.griglia-kpi-categorie div > span {
    color: var(--attenuato);
    font-size: .58rem;
}

.pannello-categorie-interessati {
    padding: 0;
    overflow: hidden;
}

.barra-filtri-categorie {
    display: grid;
    grid-template-columns:
        minmax(280px, 1.5fr)
        repeat(2, minmax(170px, .6fr));
    gap: 12px;
    align-items: end;
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
}

.intestazione-tabella-categorie,
.riga-categoria-interessato {
    display: grid;
    grid-template-columns:
        minmax(240px, 1.5fr)
        minmax(150px, .8fr)
        minmax(150px, .8fr)
        90px
        90px
        80px;
    gap: 12px;
    align-items: center;
}

.intestazione-tabella-categorie {
    padding: 11px 18px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
    color: #66758c;
    font-size: .59rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.riga-categoria-interessato {
    border-bottom: 1px solid #edf0f4;
    background: #fff;
}

.riga-categoria-interessato:hover {
    background: #edf4ff;
}

.riga-categoria-contenuto {
    display: grid;
    grid-column: 1 / 6;
    grid-template-columns:
        minmax(240px, 1.5fr)
        minmax(150px, .8fr)
        minmax(150px, .8fr)
        90px
        90px;
    gap: 12px;
    align-items: center;
    width: 100%;
    padding: 11px 14px;
    border: 0;
    background: transparent;
    color: var(--testo);
    text-align: left;
    cursor: pointer;
}

.riga-categoria-contenuto:disabled {
    cursor: default;
}

.categoria-identita {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.avatar-categoria {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 9px;
    background: #eaf1ff;
    color: #2767d6;
    font-size: .65rem;
    font-weight: 850;
}

.categoria-identita > span:last-child {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.categoria-identita strong {
    color: var(--blu-950);
    font-size: .73rem;
}

.categoria-identita small {
    overflow: hidden;
    color: var(--attenuato);
    font-size: .58rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.riga-categoria-contenuto > span {
    overflow: hidden;
    font-size: .68rem;
    text-overflow: ellipsis;
}

.azioni-categoria {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.azioni-categoria form {
    margin: 0;
}

.pulsante-azione-categoria {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid var(--bordo);
    border-radius: 7px;
    background: #fff;
    color: var(--blu-600);
    cursor: pointer;
}

.categoria-bloccata {
    color: var(--attenuato);
    font-size: .8rem;
}

.elenco-categorie-interessati {
    padding-bottom: 24px;
}

.sfondo-drawer-categoria {
    position: fixed;
    inset: 0;
    z-index: 1250;
    background: rgb(13 27 47 / 35%);
}

.drawer-categoria {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1300;
    display: flex;
    width: min(430px, 92vw);
    height: 100vh;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 220ms ease;
    background: #fff;
    box-shadow: -18px 0 48px rgb(13 27 47 / 20%);
}

.drawer-categoria.aperto {
    transform: translateX(0);
}

.drawer-categoria-testata {
    display: flex;
    min-height: 82px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--bordo);
}

.drawer-categoria-testata h2 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.drawer-categoria-testata p {
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
}

.drawer-categoria-testata button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 0;
    border-radius: 8px;
    background: #eef2f6;
    color: #65748a;
    font-size: 19px;
    cursor: pointer;
}

.drawer-categoria-form {
    flex: 1;
    overflow-y: auto;
    padding: 20px 22px 100px;
}

.nota-drawer-categoria {
    margin: 12px 0 0;
    color: var(--attenuato);
    font-size: .67rem;
    line-height: 1.45;
}

.drawer-categoria-azioni {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--bordo);
    background: #fff;
}

@media (max-width: 1250px) {
    .griglia-kpi-categorie {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .barra-filtri-categorie {
        grid-template-columns: 1fr;
    }

    .intestazione-tabella-categorie {
        display: none;
    }

    .riga-categoria-interessato {
        grid-template-columns: 1fr 80px;
    }

    .riga-categoria-contenuto {
        grid-column: 1;
        grid-template-columns: 1fr;
    }

    .riga-categoria-contenuto > span:not(.categoria-identita) {
        display: none;
    }
}

@media (max-width: 700px) {
    .testata-operativa-categorie {
        align-items: stretch;
        flex-direction: column;
    }

    .griglia-kpi-categorie {
        grid-template-columns: 1fr 1fr;
    }

    .drawer-categoria {
        width: 100%;
    }

    .drawer-categoria-azioni {
        flex-direction: column-reverse;
    }

    .drawer-categoria-azioni .pulsante {
        width: 100%;
    }
}

/* CATEGORIE DI DATI — ELENCO + DRAWER */

.pagina-categorie-dati-drawer {
    display: grid;
    gap: 18px;
}

.testata-operativa-categorie-dati {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.testata-operativa-categorie-dati h2 {
    margin: 0 0 5px;
    color: var(--blu-950);
    font-size: 1.45rem;
}

.testata-operativa-categorie-dati p {
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
}

.griglia-kpi-categorie-dati {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.griglia-kpi-categorie-dati article {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    background: #fff;
}

.kpi-icona-categoria-dato {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 10px;
    background: var(--blu-100);
    color: var(--blu-600);
    font-weight: 850;
}

.kpi-verde { background: #eaf8ef; color: #1e9b55; }
.kpi-giallo { background: #fff3dc; color: #d98a00; }
.kpi-rosso { background: #ffe9ea; color: #d6424d; }
.kpi-viola { background: #f1ebff; color: #7446d5; }

.griglia-kpi-categorie-dati small,
.griglia-kpi-categorie-dati strong,
.griglia-kpi-categorie-dati div > span {
    display: block;
}

.griglia-kpi-categorie-dati small {
    color: var(--attenuato);
    font-size: .62rem;
}

.griglia-kpi-categorie-dati strong {
    margin: 2px 0;
    color: var(--blu-950);
    font-size: 1.3rem;
}

.griglia-kpi-categorie-dati div > span {
    color: var(--attenuato);
    font-size: .58rem;
}

.pannello-categorie-dati {
    padding: 0;
    overflow: hidden;
}

.barra-filtri-categorie-dati {
    display: grid;
    grid-template-columns:
        minmax(280px, 1.5fr)
        repeat(3, minmax(150px, .55fr));
    gap: 12px;
    align-items: end;
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
}

.intestazione-tabella-categorie-dati,
.riga-categoria-dato {
    display: grid;
    grid-template-columns:
        minmax(240px, 1.5fr)
        minmax(150px, .8fr)
        minmax(150px, .8fr)
        90px
        70px
        90px
        80px;
    gap: 12px;
    align-items: center;
}

.intestazione-tabella-categorie-dati {
    padding: 11px 18px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
    color: #66758c;
    font-size: .59rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.riga-categoria-dato {
    border-bottom: 1px solid #edf0f4;
    background: #fff;
}

.riga-categoria-dato:hover {
    background: #edf4ff;
}

.riga-categoria-dato-contenuto {
    display: grid;
    grid-column: 1 / 7;
    grid-template-columns:
        minmax(240px, 1.5fr)
        minmax(150px, .8fr)
        minmax(150px, .8fr)
        90px
        70px
        90px;
    gap: 12px;
    align-items: center;
    width: 100%;
    padding: 11px 14px;
    border: 0;
    background: transparent;
    color: var(--testo);
    text-align: left;
    cursor: pointer;
}

.riga-categoria-dato-contenuto:disabled {
    cursor: default;
}

.categoria-dato-identita {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.avatar-categoria-dato {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 9px;
    background: #eaf1ff;
    color: #2767d6;
    font-size: .65rem;
    font-weight: 850;
}

.categoria-dato-identita > span:last-child {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.categoria-dato-identita strong {
    color: var(--blu-950);
    font-size: .73rem;
}

.categoria-dato-identita small {
    overflow: hidden;
    color: var(--attenuato);
    font-size: .58rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.riga-categoria-dato-contenuto > span {
    overflow: hidden;
    font-size: .68rem;
    text-overflow: ellipsis;
}

.azioni-categoria-dato {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.azioni-categoria-dato form {
    margin: 0;
}

.pulsante-azione-categoria-dato {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid var(--bordo);
    border-radius: 7px;
    background: #fff;
    color: var(--blu-600);
    cursor: pointer;
}

.categoria-dato-bloccata {
    color: var(--attenuato);
    font-size: .8rem;
}

.elenco-categorie-dati {
    padding-bottom: 24px;
}

.sfondo-drawer-categoria-dato {
    position: fixed;
    inset: 0;
    z-index: 1250;
    background: rgb(13 27 47 / 35%);
}

.drawer-categoria-dato {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1300;
    display: flex;
    width: min(440px, 92vw);
    height: 100vh;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 220ms ease;
    background: #fff;
    box-shadow: -18px 0 48px rgb(13 27 47 / 20%);
}

.drawer-categoria-dato.aperto {
    transform: translateX(0);
}

.drawer-categoria-dato-testata {
    display: flex;
    min-height: 82px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--bordo);
}

.drawer-categoria-dato-testata h2 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.drawer-categoria-dato-testata p {
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
}

.drawer-categoria-dato-testata button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 0;
    border-radius: 8px;
    background: #eef2f6;
    color: #65748a;
    font-size: 19px;
    cursor: pointer;
}

.drawer-categoria-dato-form {
    flex: 1;
    overflow-y: auto;
    padding: 20px 22px 100px;
}

.nota-drawer-categoria-dato {
    margin: 12px 0 0;
    color: var(--attenuato);
    font-size: .67rem;
    line-height: 1.45;
}

.drawer-categoria-dato-azioni {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--bordo);
    background: #fff;
}

@media (max-width: 1250px) {
    .griglia-kpi-categorie-dati {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .barra-filtri-categorie-dati {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .barra-filtri-categorie-dati .campo-filtro-ricerca {
        grid-column: 1 / -1;
    }
}

@media (max-width: 980px) {
    .intestazione-tabella-categorie-dati {
        display: none;
    }

    .riga-categoria-dato {
        grid-template-columns: 1fr 80px;
    }

    .riga-categoria-dato-contenuto {
        grid-column: 1;
        grid-template-columns: 1fr;
    }

    .riga-categoria-dato-contenuto > span:not(
        .categoria-dato-identita
    ) {
        display: none;
    }
}

@media (max-width: 700px) {
    .testata-operativa-categorie-dati {
        align-items: stretch;
        flex-direction: column;
    }

    .griglia-kpi-categorie-dati,
    .barra-filtri-categorie-dati {
        grid-template-columns: 1fr;
    }

    .barra-filtri-categorie-dati .campo-filtro-ricerca {
        grid-column: auto;
    }

    .drawer-categoria-dato {
        width: 100%;
    }

    .drawer-categoria-dato-azioni {
        flex-direction: column-reverse;
    }

    .drawer-categoria-dato-azioni .pulsante {
        width: 100%;
    }
}


/* MISURE DI SICUREZZA — ELENCO + DETTAGLIO + DRAWER */

.pagina-misure-sicurezza {
    display: grid;
    gap: 18px;
}

.testata-operativa-misure h2 {
    margin: 0 0 5px;
    color: var(--blu-950);
    font-size: 1.45rem;
}

.testata-operativa-misure p {
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
}

.griglia-kpi-misure {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.griglia-kpi-misure article {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    background: #fff;
}

.kpi-icona-misura {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 10px;
    background: var(--blu-100);
    color: var(--blu-600);
    font-weight: 850;
}

.kpi-verde { background: #eaf8ef; color: #1e9b55; }
.kpi-giallo { background: #fff3dc; color: #d98a00; }
.kpi-rosso { background: #ffe9ea; color: #d6424d; }
.kpi-viola { background: #f1ebff; color: #7446d5; }

.griglia-kpi-misure small,
.griglia-kpi-misure strong,
.griglia-kpi-misure div > span {
    display: block;
}

.griglia-kpi-misure small {
    color: var(--attenuato);
    font-size: .62rem;
}

.griglia-kpi-misure strong {
    margin: 2px 0;
    color: var(--blu-950);
    font-size: 1.3rem;
}

.griglia-kpi-misure div > span {
    color: var(--attenuato);
    font-size: .58rem;
}

.pannello-misure-sicurezza {
    padding: 0;
    overflow: hidden;
}

.barra-filtri-misure {
    display: grid;
    grid-template-columns:
        minmax(280px, 1.5fr)
        repeat(3, minmax(150px, .55fr));
    gap: 12px;
    align-items: end;
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
}

.intestazione-tabella-misure,
.riga-misura-contenuto {
    display: grid;
    grid-template-columns:
        minmax(260px, 1.6fr)
        minmax(100px, .6fr)
        minmax(150px, .8fr)
        80px
        90px
        100px;
    gap: 12px;
    align-items: center;
}

.intestazione-tabella-misure {
    padding: 11px 18px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
    color: #66758c;
    font-size: .59rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.gruppo-gerarchico-misure {
    border-bottom: 1px solid var(--bordo);
}

.riga-gruppo-misure {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 9px;
    padding: 13px 18px;
    border: 0;
    background: #fff;
    color: var(--blu-950);
    text-align: left;
    cursor: pointer;
}

.riga-gruppo-misure:hover {
    background: #f8fbff;
}

.icona-gruppo-misura {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 7px;
    background: var(--blu-100);
    color: var(--blu-600);
}

.contenuto-gruppo-misure {
    padding-left: 38px;
    margin-left: 30px;
    border-left: 1px solid #dfe6ef;
}

.blocco-misura {
    border-top: 1px solid #edf0f4;
}

.riga-misura-contenuto {
    width: 100%;
    padding: 11px 14px;
    border: 0;
    background: #fff;
    color: var(--testo);
    text-align: left;
    cursor: pointer;
}

.riga-misura-contenuto:hover {
    background: #edf4ff;
}

.misura-identita {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.avatar-misura {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 9px;
    background: #eaf1ff;
    color: #2767d6;
    font-size: .65rem;
    font-weight: 850;
}

.misura-identita > span:last-child {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.misura-identita strong {
    color: var(--blu-950);
    font-size: .73rem;
}

.misura-identita small {
    overflow: hidden;
    color: var(--attenuato);
    font-size: .58rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.riga-misura-contenuto > span {
    overflow: hidden;
    font-size: .68rem;
    text-overflow: ellipsis;
}

.azione-dettaglio-misura {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--blu-600);
    font-weight: 750;
}

.dettaglio-misura {
    padding: 18px;
    border-top: 1px solid var(--bordo);
    background: #f8fafc;
}

.testata-dettaglio-misura {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 14px;
}

.testata-dettaglio-misura h3 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: .82rem;
}

.testata-dettaglio-misura p {
    margin: 0;
    color: var(--attenuato);
    font-size: .68rem;
}

.tabella-scroll-misure {
    margin-bottom: 14px;
    overflow-x: auto;
}

.pulsante-modifica-collegamento,
.form-rimuovi-misura button {
    border: 0;
    background: transparent;
    color: var(--blu-600);
    font-size: .68rem;
    font-weight: 750;
    cursor: pointer;
}

.form-rimuovi-misura {
    display: inline;
}

.form-rimuovi-misura button {
    color: var(--rosso);
}

.albero-misure {
    padding-bottom: 24px;
}

.sfondo-drawer-collegamento {
    position: fixed;
    inset: 0;
    z-index: 1250;
    background: rgb(13 27 47 / 35%);
}

.drawer-collegamento-misura {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1300;
    display: flex;
    width: min(440px, 92vw);
    height: 100vh;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 220ms ease;
    background: #fff;
    box-shadow: -18px 0 48px rgb(13 27 47 / 20%);
}

.drawer-collegamento-misura.aperto {
    transform: translateX(0);
}

.drawer-collegamento-testata {
    display: flex;
    min-height: 82px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--bordo);
}

.drawer-collegamento-testata h2 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.drawer-collegamento-testata p {
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
}

.drawer-collegamento-testata button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 0;
    border-radius: 8px;
    background: #eef2f6;
    color: #65748a;
    font-size: 19px;
    cursor: pointer;
}

.drawer-collegamento-form {
    flex: 1;
    overflow-y: auto;
    padding: 20px 22px 100px;
}

.drawer-collegamento-azioni {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--bordo);
    background: #fff;
}

@media (max-width: 1250px) {
    .griglia-kpi-misure {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .barra-filtri-misure {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .barra-filtri-misure .campo-filtro-ricerca {
        grid-column: 1 / -1;
    }
}

@media (max-width: 980px) {
    .intestazione-tabella-misure {
        display: none;
    }

    .riga-misura-contenuto {
        grid-template-columns: 1fr auto;
    }

    .riga-misura-contenuto > span:not(
        .misura-identita
    ):not(.azione-dettaglio-misura) {
        display: none;
    }

    .contenuto-gruppo-misure {
        padding-left: 12px;
        margin-left: 12px;
    }
}

@media (max-width: 700px) {
    .griglia-kpi-misure,
    .barra-filtri-misure {
        grid-template-columns: 1fr;
    }

    .barra-filtri-misure .campo-filtro-ricerca {
        grid-column: auto;
    }

    .drawer-collegamento-misura {
        width: 100%;
    }

    .drawer-collegamento-azioni {
        flex-direction: column-reverse;
    }

    .drawer-collegamento-azioni .pulsante {
        width: 100%;
    }
}

/* ORGANIZZAZIONE — PERCORSO GUIDATO */

.organizzazione-percorso {
    display: grid;
    gap: 18px;
    padding: 18px;
}

.organizzazione-percorso-eroe {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
    gap: 18px;
}

.organizzazione-percorso-introduzione,
.organizzazione-percorso-avanzamento,
.organizzazione-percorso-passaggi,
.organizzazione-percorso-risultato {
    border: 1px solid var(--bordo);
    border-radius: 14px;
    background: #fff;
}

.organizzazione-percorso-introduzione {
    display: flex;
    min-height: 250px;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    padding: 30px;
}

.organizzazione-percorso-etichetta,
.organizzazione-percorso-passaggi > header span,
.organizzazione-percorso-risultato > div > span {
    color: var(--blu-600);
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.organizzazione-percorso-introduzione h3 {
    max-width: 650px;
    margin: 9px 0 10px;
    color: var(--blu-950);
    font-size: clamp(1.55rem, 2.3vw, 2.25rem);
    line-height: 1.08;
}

.organizzazione-percorso-introduzione p {
    max-width: 680px;
    margin: 0 0 22px;
    color: var(--attenuato);
    font-size: .82rem;
    line-height: 1.65;
}

.organizzazione-percorso-avanzamento {
    display: flex;
    justify-content: center;
    flex-direction: column;
    padding: 26px;
}

.organizzazione-percorso-avanzamento-testa {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
}

.organizzazione-percorso-avanzamento-testa span {
    color: var(--attenuato);
    font-size: .7rem;
    font-weight: 750;
}

.organizzazione-percorso-avanzamento-testa strong {
    color: var(--blu-950);
    font-size: 2rem;
}

.organizzazione-percorso-barra {
    height: 9px;
    margin: 14px 0 8px;
    overflow: hidden;
    border-radius: 999px;
    background: #e9eef5;
}

.organizzazione-percorso-barra span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--blu-600);
}

.organizzazione-percorso-avanzamento > small {
    color: var(--attenuato);
    font-size: .65rem;
}

.organizzazione-prossimo-passaggio {
    display: grid;
    gap: 3px;
    margin-top: 22px;
    padding: 14px;
    border: 1px solid #dce8fb;
    border-radius: 10px;
    background: #f4f8ff;
}

.organizzazione-prossimo-passaggio > span {
    color: var(--blu-600);
    font-size: .6rem;
    font-weight: 850;
    text-transform: uppercase;
}

.organizzazione-prossimo-passaggio strong {
    color: var(--blu-950);
    font-size: .8rem;
}

.organizzazione-prossimo-passaggio small {
    color: var(--attenuato);
    font-size: .62rem;
}

.organizzazione-percorso-passaggi {
    overflow: hidden;
}

.organizzazione-percorso-passaggi > header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 24px;
    border-bottom: 1px solid var(--bordo);
}

.organizzazione-percorso-passaggi > header h3 {
    margin: 5px 0 0;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.organizzazione-percorso-passaggi > header p {
    max-width: 480px;
    margin: 0;
    color: var(--attenuato);
    font-size: .7rem;
    line-height: 1.55;
    text-align: right;
}

.organizzazione-passaggi-elenco {
    display: grid;
}

.organizzazione-passaggio {
    display: grid;
    grid-template-columns: 34px 42px minmax(0, 1fr) minmax(145px, auto);
    gap: 13px;
    align-items: center;
    min-height: 78px;
    padding: 13px 22px;
    border-bottom: 1px solid #edf0f4;
    color: inherit;
    text-decoration: none;
}

.organizzazione-passaggio:last-child {
    border-bottom: 0;
}

.organizzazione-passaggio:hover {
    background: #f7faff;
}

.organizzazione-passaggio-numero {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 999px;
    background: #eef2f7;
    color: #718096;
    font-size: .62rem;
    font-weight: 850;
}

.organizzazione-passaggio-icona {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 10px;
    background: #edf4ff;
    color: var(--blu-600);
    font-size: .85rem;
}

.organizzazione-passaggio-contenuto {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.organizzazione-passaggio-contenuto strong {
    color: var(--blu-950);
    font-size: .77rem;
}

.organizzazione-passaggio-contenuto small {
    color: var(--attenuato);
    font-size: .61rem;
}

.organizzazione-passaggio-contenuto > span {
    margin-top: 3px;
    color: #53647b;
    font-size: .62rem;
    font-weight: 700;
}

.organizzazione-passaggio-stato {
    display: grid;
    justify-items: end;
    gap: 4px;
    text-align: right;
}

.organizzazione-passaggio-stato b {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 9px;
    border-radius: 999px;
    background: #eef2f7;
    color: #718096;
    font-size: .58rem;
}

.organizzazione-passaggio-stato small {
    color: var(--blu-600);
    font-size: .59rem;
    font-weight: 750;
}

.organizzazione-passaggio.completato
.organizzazione-passaggio-numero,
.organizzazione-passaggio.completato
.organizzazione-passaggio-stato b {
    background: #e7f8ed;
    color: #18884a;
}

.organizzazione-passaggio.in-corso
.organizzazione-passaggio-numero,
.organizzazione-passaggio.in-corso
.organizzazione-passaggio-stato b {
    background: #fff2d9;
    color: #c67a00;
}

.organizzazione-percorso-risultato {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding: 22px 25px;
}

.organizzazione-percorso-risultato h3 {
    margin: 5px 0 0;
    color: var(--blu-950);
    font-size: .95rem;
}

.organizzazione-risultato-flusso {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}

.organizzazione-risultato-flusso span {
    padding: 8px 11px;
    border: 1px solid #dce6f3;
    border-radius: 8px;
    background: #f7faff;
    color: var(--blu-800);
    font-size: .64rem;
    font-weight: 800;
}

.organizzazione-risultato-flusso b {
    color: #8a99ad;
    font-size: .75rem;
}

@media (max-width: 1000px) {
    .organizzazione-percorso-eroe {
        grid-template-columns: 1fr;
    }

    .organizzazione-percorso-passaggi > header,
    .organizzazione-percorso-risultato {
        align-items: flex-start;
        flex-direction: column;
    }

    .organizzazione-percorso-passaggi > header p {
        text-align: left;
    }
}

@media (max-width: 700px) {
    .organizzazione-percorso {
        padding: 12px;
    }

    .organizzazione-percorso-introduzione {
        min-height: 0;
        padding: 22px;
    }

    .organizzazione-passaggio {
        grid-template-columns: 30px 38px minmax(0, 1fr);
        padding: 13px;
    }

    .organizzazione-passaggio-stato {
        grid-column: 2 / -1;
        justify-items: start;
        text-align: left;
    }

    .organizzazione-risultato-flusso b {
        display: none;
    }
}


/* SEDI E UFFICI — GERARCHIA + DRAWER */

.pagina-sedi-drawer {
    display: grid;
    gap: 18px;
}

.testata-operativa-sedi {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.testata-operativa-sedi h2 {
    margin: 0 0 5px;
    color: var(--blu-950);
    font-size: 1.45rem;
}

.testata-operativa-sedi p {
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
}

.griglia-kpi-sedi {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.griglia-kpi-sedi article {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    background: #fff;
}

.kpi-icona-sede {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 10px;
    background: var(--blu-100);
    color: var(--blu-600);
    font-weight: 850;
}

.kpi-verde { background: #eaf8ef; color: #1e9b55; }
.kpi-giallo { background: #fff3dc; color: #d98a00; }
.kpi-rosso { background: #ffe9ea; color: #d6424d; }
.kpi-viola { background: #f1ebff; color: #7446d5; }

.griglia-kpi-sedi small,
.griglia-kpi-sedi strong,
.griglia-kpi-sedi div > span {
    display: block;
}

.griglia-kpi-sedi small {
    color: var(--attenuato);
    font-size: .62rem;
}

.griglia-kpi-sedi strong {
    margin: 2px 0;
    color: var(--blu-950);
    font-size: 1.3rem;
}

.griglia-kpi-sedi div > span {
    color: var(--attenuato);
    font-size: .58rem;
}

.pannello-sedi-gerarchia {
    padding: 0;
    overflow: hidden;
}

.barra-filtri-sedi {
    display: grid;
    grid-template-columns:
        minmax(280px, 1.5fr)
        repeat(2, minmax(170px, .6fr));
    gap: 12px;
    align-items: end;
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
}

.intestazione-tabella-sedi,
.riga-sede-contenuto {
    display: grid;
    grid-template-columns:
        minmax(220px, 1.25fr)
        minmax(120px, .7fr)
        minmax(210px, 1.1fr)
        minmax(170px, .9fr)
        70px
        80px
        95px;
    gap: 12px;
    align-items: center;
}

.intestazione-tabella-sedi {
    padding: 11px 52px 11px 18px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
    color: #66758c;
    font-size: .59rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.blocco-sede-gerarchica {
    border-bottom: 1px solid var(--bordo);
}

.riga-sede-gerarchica {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 34px;
    align-items: stretch;
}

.riga-sede-gerarchica:hover {
    background: #edf4ff;
}

.riga-sede-contenuto {
    width: 100%;
    padding: 11px 14px;
    border: 0;
    background: transparent;
    color: var(--testo);
    text-align: left;
    cursor: pointer;
}

.sede-identita {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.avatar-sede {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 9px;
    background: #eaf1ff;
    color: #2767d6;
    font-size: .75rem;
}

.sede-identita > span:last-child,
.contatti-sede {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.sede-identita strong {
    color: var(--blu-950);
    font-size: .73rem;
}

.sede-identita small,
.contatti-sede small {
    color: var(--attenuato);
    font-size: .58rem;
}

.riga-sede-contenuto > span {
    overflow: hidden;
    font-size: .68rem;
    text-overflow: ellipsis;
}

.azione-dettaglio-sede {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--blu-600);
    font-weight: 750;
}

.pulsante-espandi-sede {
    border: 0;
    background: transparent;
    color: #687991;
    font-size: 16px;
    cursor: pointer;
}

.dettaglio-uffici-sede {
    padding: 18px;
    border-top: 1px solid var(--bordo);
    background: #f8fafc;
}

.testata-dettaglio-uffici {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.testata-dettaglio-uffici h3 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: .82rem;
}

.testata-dettaglio-uffici p {
    margin: 0;
    color: var(--attenuato);
    font-size: .68rem;
}

.tabella-scroll-sedi {
    overflow-x: auto;
}

.pulsante-modifica-ufficio,
.form-elimina-ufficio button {
    border: 0;
    background: transparent;
    color: var(--blu-600);
    font-size: .68rem;
    font-weight: 750;
    cursor: pointer;
}

.form-elimina-ufficio {
    display: inline;
}

.form-elimina-ufficio button {
    color: var(--rosso);
}

.albero-sedi {
    padding-bottom: 24px;
}

/* Drawer sede */

.sfondo-drawer-sede,
.sfondo-drawer-ufficio {
    position: fixed;
    inset: 0;
    z-index: 1250;
    background: rgb(13 27 47 / 35%);
}

.drawer-sede,
.drawer-ufficio {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 1300;
    display: flex;
    width: min(460px, 92vw);
    height: 100vh;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 220ms ease;
    background: #fff;
    box-shadow: -18px 0 48px rgb(13 27 47 / 20%);
}

.drawer-sede.aperto,
.drawer-ufficio.aperto {
    transform: translateX(0);
}

.drawer-sede-testata,
.drawer-ufficio-testata {
    display: flex;
    min-height: 82px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--bordo);
}

.drawer-sede-testata h2,
.drawer-ufficio-testata h2 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.drawer-sede-testata p,
.drawer-ufficio-testata p {
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
}

.drawer-sede-testata button,
.drawer-ufficio-testata button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 0;
    border-radius: 8px;
    background: #eef2f6;
    color: #65748a;
    font-size: 19px;
    cursor: pointer;
}

.drawer-sede-form,
.drawer-ufficio-form {
    flex: 1;
    overflow-y: auto;
    padding: 20px 22px 100px;
}

.drawer-sede-azioni,
.drawer-ufficio-azioni {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--bordo);
    background: #fff;
}

.drawer-elimina-sede {
    position: absolute;
    left: 18px;
    bottom: 16px;
    z-index: 2;
}

.drawer-elimina-sede button {
    border: 0;
    background: transparent;
    color: var(--rosso);
    font-size: .7rem;
    font-weight: 750;
    cursor: pointer;
}

@media (max-width: 1250px) {
    .griglia-kpi-sedi {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .barra-filtri-sedi {
        grid-template-columns: 1fr;
    }

    .intestazione-tabella-sedi {
        display: none;
    }

    .riga-sede-contenuto {
        grid-template-columns: 1fr auto;
    }

    .riga-sede-contenuto > span:not(
        .sede-identita
    ):not(.azione-dettaglio-sede) {
        display: none;
    }
}

@media (max-width: 700px) {
    .testata-operativa-sedi {
        align-items: stretch;
        flex-direction: column;
    }

    .griglia-kpi-sedi {
        grid-template-columns: 1fr 1fr;
    }

    .testata-dettaglio-uffici {
        flex-direction: column;
    }

    .drawer-sede,
    .drawer-ufficio {
        width: 100%;
    }

    .drawer-sede-azioni,
    .drawer-ufficio-azioni {
        flex-direction: column-reverse;
    }

    .drawer-sede-azioni .pulsante,
    .drawer-ufficio-azioni .pulsante {
        width: 100%;
    }

    .drawer-elimina-sede {
        position: static;
        padding: 0 22px 84px;
    }
}


/* ORGANIZZAZIONE — HUB DEI PERCORSI */

.organizzazione-hub {
    display: grid;
    gap: 18px;
    padding: 18px;
}

.organizzazione-hub-eroe {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(290px, .65fr);
    gap: 18px;
}

.organizzazione-hub-eroe > div,
.organizzazione-hub-avanzamento,
.organizzazione-percorso-card,
.organizzazione-hub-flusso {
    border: 1px solid var(--bordo);
    border-radius: 14px;
    background: #fff;
}

.organizzazione-hub-eroe > div {
    display: flex;
    min-height: 235px;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    padding: 30px;
}

.organizzazione-hub-etichetta {
    color: var(--blu-600);
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.organizzazione-hub-eroe h3 {
    max-width: 650px;
    margin: 9px 0 10px;
    color: var(--blu-950);
    font-size: clamp(1.55rem, 2.3vw, 2.2rem);
    line-height: 1.08;
}

.organizzazione-hub-eroe p {
    max-width: 680px;
    margin: 0 0 22px;
    color: var(--attenuato);
    font-size: .82rem;
    line-height: 1.65;
}

.organizzazione-hub-avanzamento {
    display: flex;
    justify-content: center;
    flex-direction: column;
    padding: 26px;
}

.organizzazione-hub-avanzamento > span {
    color: var(--attenuato);
    font-size: .7rem;
    font-weight: 750;
}

.organizzazione-hub-avanzamento > strong {
    margin-top: 5px;
    color: var(--blu-950);
    font-size: 2rem;
}

.organizzazione-hub-barra,
.organizzazione-percorso-card-barra {
    overflow: hidden;
    border-radius: 999px;
    background: #e9eef5;
}

.organizzazione-hub-barra {
    height: 9px;
    margin: 14px 0 8px;
}

.organizzazione-hub-barra span,
.organizzazione-percorso-card-barra span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--blu-600);
}

.organizzazione-hub-avanzamento small {
    color: var(--attenuato);
    font-size: .65rem;
}

.organizzazione-hub-percorsi {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.organizzazione-percorso-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
}

.organizzazione-percorso-card > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px 0;
}

.organizzazione-percorso-card-icona {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 11px;
    background: #edf4ff;
    color: var(--blu-600);
    font-weight: 850;
}

.organizzazione-percorso-card-stato {
    padding: 5px 10px;
    border-radius: 999px;
    background: #eef2f7;
    color: #718096;
    font-size: .58rem;
    font-weight: 800;
}

.organizzazione-percorso-card.completato
.organizzazione-percorso-card-stato {
    background: #e7f8ed;
    color: #18884a;
}

.organizzazione-percorso-card.in-corso
.organizzazione-percorso-card-stato {
    background: #fff2d9;
    color: #c67a00;
}

.organizzazione-percorso-card-corpo {
    padding: 15px 20px;
}

.organizzazione-percorso-card-corpo h3 {
    margin: 0 0 5px;
    color: var(--blu-950);
    font-size: 1rem;
}

.organizzazione-percorso-card-corpo p {
    min-height: 38px;
    margin: 0 0 14px;
    color: var(--attenuato);
    font-size: .68rem;
    line-height: 1.5;
}

.organizzazione-percorso-card-barra {
    height: 7px;
    margin-bottom: 7px;
}

.organizzazione-percorso-card-corpo > small {
    color: var(--attenuato);
    font-size: .6rem;
}

.organizzazione-percorso-card-passaggi {
    display: grid;
    border-top: 1px solid var(--bordo);
    border-bottom: 1px solid var(--bordo);
}

.organizzazione-percorso-card-passaggi a {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 56px;
    padding: 9px 20px;
    border-bottom: 1px solid #edf0f4;
    color: inherit;
    text-decoration: none;
}

.organizzazione-percorso-card-passaggi a:last-child {
    border-bottom: 0;
}

.organizzazione-percorso-card-passaggi a:hover {
    background: #f7faff;
}

.organizzazione-percorso-card-passaggi a > span:first-child {
    display: grid;
    width: 23px;
    height: 23px;
    place-items: center;
    border-radius: 999px;
    background: #eef2f7;
    color: #718096;
    font-size: .6rem;
    font-weight: 850;
}

.organizzazione-percorso-card-passaggi
a > span:first-child.completato {
    background: #e7f8ed;
    color: #18884a;
}

.organizzazione-percorso-card-passaggi a > span:nth-child(2) {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.organizzazione-percorso-card-passaggi strong {
    color: var(--blu-950);
    font-size: .69rem;
}

.organizzazione-percorso-card-passaggi small {
    color: var(--attenuato);
    font-size: .58rem;
}

.organizzazione-percorso-card-passaggi b {
    color: var(--blu-600);
    font-size: .72rem;
}

.organizzazione-percorso-card > footer {
    margin-top: auto;
    padding: 14px 20px;
    text-align: right;
}

.organizzazione-hub-flusso {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 18px;
    flex-wrap: wrap;
}

.organizzazione-hub-flusso span {
    padding: 8px 11px;
    border: 1px solid #dce6f3;
    border-radius: 8px;
    background: #f7faff;
    color: var(--blu-800);
    font-size: .64rem;
    font-weight: 800;
}

.organizzazione-hub-flusso b {
    color: #8a99ad;
    font-size: .75rem;
}

@media (max-width: 1000px) {
    .organizzazione-hub-eroe,
    .organizzazione-hub-percorsi {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .organizzazione-hub {
        padding: 12px;
    }

    .organizzazione-hub-eroe > div {
        min-height: 0;
        padding: 22px;
    }

    .organizzazione-hub-flusso b {
        display: none;
    }
}

/* PERCORSO GUIDATO — STRUTTURA ORGANIZZATIVA */

.wizard-struttura {
    display: grid;
    gap: 18px;
}

.wizard-struttura-testata {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.wizard-struttura-testata h1 {
    margin: 5px 0 7px;
    color: var(--blu-950);
}

.wizard-struttura-testata p {
    max-width: 720px;
    margin: 0;
    color: var(--attenuato);
    font-size: .78rem;
    line-height: 1.55;
}

.wizard-struttura-indietro {
    color: var(--blu-600);
    font-size: .68rem;
    font-weight: 750;
    text-decoration: none;
}

.wizard-struttura-avanzamento {
    min-width: 220px;
}

.wizard-struttura-avanzamento > span,
.wizard-struttura-avanzamento > strong {
    display: block;
}

.wizard-struttura-avanzamento > span {
    color: var(--attenuato);
    font-size: .62rem;
}

.wizard-struttura-avanzamento > strong {
    margin: 3px 0 8px;
    color: var(--blu-950);
    font-size: 1.35rem;
}

.wizard-struttura-avanzamento > div {
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: #e9eef5;
}

.wizard-struttura-avanzamento > div span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--blu-600);
}

.wizard-struttura-passi {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--bordo);
    border-radius: 12px;
    background: #fff;
}

.wizard-struttura-passi a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 66px;
    padding: 12px 15px;
    border-right: 1px solid var(--bordo);
    color: inherit;
    text-decoration: none;
}

.wizard-struttura-passi a:last-child {
    border-right: 0;
}

.wizard-struttura-passi a > span:first-child {
    display: grid;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    place-items: center;
    border-radius: 999px;
    background: #eef2f7;
    color: #718096;
    font-size: .65rem;
}

.wizard-struttura-passi a > span:last-child {
    display: grid;
    gap: 2px;
}

.wizard-struttura-passi strong {
    color: var(--blu-950);
    font-size: .68rem;
}

.wizard-struttura-passi small {
    color: var(--attenuato);
    font-size: .56rem;
}

.wizard-struttura-passi a.attivo {
    background: #f3f7ff;
}

.wizard-struttura-passi a.attivo > span:first-child {
    background: var(--blu-600);
    color: #fff;
}

.wizard-struttura-passi a.completato > span:first-child {
    background: #e7f8ed;
    color: #18884a;
}

.wizard-struttura-corpo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 270px;
    gap: 18px;
    align-items: start;
}

.wizard-struttura-contenuto,
.wizard-assistente {
    border: 1px solid var(--bordo);
    border-radius: 14px;
    background: #fff;
}

.wizard-struttura-contenuto {
    min-width: 0;
    overflow: hidden;
}

.wizard-domanda {
    display: flex;
    min-height: 520px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 46px;
    text-align: center;
}

.wizard-domanda-icona {
    display: grid;
    width: 66px;
    height: 66px;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 18px;
    background: #edf4ff;
    color: var(--blu-600);
    font-size: 1.4rem;
}

.wizard-domanda-etichetta {
    margin: 0;
    color: var(--blu-600) !important;
    font-size: .64rem !important;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.wizard-domanda h2,
.wizard-step-testata h2,
.wizard-riepilogo-finale h2 {
    margin: 8px 0 9px;
    color: var(--blu-950);
    font-size: 1.45rem;
}

.wizard-domanda > p:not(.wizard-domanda-etichetta) {
    max-width: 650px;
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
    line-height: 1.65;
}

.wizard-scelte-introduttive {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
    margin: 28px 0;
}

.wizard-scelte-introduttive article {
    display: grid;
    gap: 6px;
    padding: 18px;
    border: 1px solid var(--bordo);
    border-radius: 10px;
    text-align: left;
}

.wizard-scelte-introduttive strong {
    color: var(--blu-950);
    font-size: .72rem;
}

.wizard-scelte-introduttive span {
    color: var(--attenuato);
    font-size: .62rem;
    line-height: 1.5;
}

.wizard-step-testata {
    padding: 24px 26px;
    border-bottom: 1px solid var(--bordo);
}

.wizard-step-testata > p:not(.wizard-domanda-etichetta) {
    max-width: 760px;
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
    line-height: 1.55;
}

.wizard-riepilogo-rapido {
    display: flex;
    gap: 10px;
    margin-top: 15px;
    flex-wrap: wrap;
}

.wizard-riepilogo-rapido span {
    padding: 7px 10px;
    border-radius: 8px;
    background: #f3f6fa;
    color: #5d6d82;
    font-size: .62rem;
}

.wizard-riepilogo-rapido strong {
    color: var(--blu-950);
}

.wizard-frame-operativo {
    height: 620px;
    background: #f8fafc;
}

.wizard-frame-operativo iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.wizard-azioni {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 15px 20px;
    border-top: 1px solid var(--bordo);
    background: #fff;
}

.wizard-assistente {
    position: sticky;
    top: 18px;
    padding: 20px;
}

.wizard-assistente-identita {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--bordo);
}

.wizard-assistente-identita > span {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 10px;
    background: var(--blu-600);
    color: #fff;
    font-weight: 850;
}

.wizard-assistente-identita div {
    display: grid;
    gap: 2px;
}

.wizard-assistente-identita strong {
    color: var(--blu-950);
    font-size: .72rem;
}

.wizard-assistente-identita small,
.wizard-assistente > small {
    color: var(--attenuato);
    font-size: .6rem;
    line-height: 1.55;
}

.wizard-assistente > p {
    margin: 18px 0 10px;
    color: #44546a;
    font-size: .7rem;
    line-height: 1.65;
}

.wizard-riepilogo-finale {
    padding: 28px;
}

.wizard-esito {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
    border-radius: 12px;
}

.wizard-esito > span {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border-radius: 999px;
    font-weight: 850;
}

.wizard-esito.positivo {
    background: #f1faf4;
}

.wizard-esito.positivo > span {
    background: #dff4e6;
    color: #18884a;
}

.wizard-esito.attenzione {
    background: #fff8e9;
}

.wizard-esito.attenzione > span {
    background: #ffedc6;
    color: #b86e00;
}

.wizard-esito p:last-child {
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
    line-height: 1.55;
}

.wizard-controlli {
    display: grid;
    gap: 10px;
    margin: 20px 0;
}

.wizard-controlli article {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--bordo);
    border-radius: 10px;
}

.wizard-controlli article > span {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 999px;
    background: #eef2f7;
    color: #718096;
    font-size: .65rem;
}

.wizard-controlli article.completato > span {
    background: #e7f8ed;
    color: #18884a;
}

.wizard-controlli article div {
    display: grid;
    gap: 2px;
}

.wizard-controlli strong {
    color: var(--blu-950);
    font-size: .72rem;
}

.wizard-controlli small {
    color: var(--attenuato);
    font-size: .6rem;
}

.wizard-controlli a {
    color: var(--blu-600);
    font-size: .64rem;
    font-weight: 750;
    text-decoration: none;
}

.wizard-risultato-spiegazione {
    padding: 18px;
    border-radius: 10px;
    background: #f7faff;
}

.wizard-risultato-spiegazione h3 {
    margin: 0 0 12px;
    color: var(--blu-950);
    font-size: .8rem;
}

.wizard-risultato-spiegazione div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.wizard-risultato-spiegazione span {
    padding: 9px;
    border-radius: 7px;
    background: #fff;
    color: #53647b;
    font-size: .62rem;
}

@media (max-width: 1050px) {
    .wizard-struttura-corpo {
        grid-template-columns: 1fr;
    }

    .wizard-assistente {
        position: static;
    }
}

@media (max-width: 780px) {
    .wizard-struttura-testata {
        align-items: flex-start;
        flex-direction: column;
    }

    .wizard-struttura-avanzamento {
        width: 100%;
    }

    .wizard-struttura-passi {
        grid-template-columns: 1fr 1fr;
    }

    .wizard-struttura-passi a {
        border-bottom: 1px solid var(--bordo);
    }

    .wizard-scelte-introduttive,
    .wizard-risultato-spiegazione div {
        grid-template-columns: 1fr;
    }

    .wizard-domanda {
        min-height: 0;
        padding: 28px 20px;
    }
}

/* PERCORSO GUIDATO — STRUTTURA ORGANIZZATIVA */

.wizard-struttura {
    display: grid;
    gap: 18px;
}

.wizard-struttura-testata {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.wizard-struttura-testata h1 {
    margin: 5px 0 7px;
    color: var(--blu-950);
}

.wizard-struttura-testata p {
    max-width: 720px;
    margin: 0;
    color: var(--attenuato);
    font-size: .78rem;
    line-height: 1.55;
}

.wizard-struttura-indietro {
    color: var(--blu-600);
    font-size: .68rem;
    font-weight: 750;
    text-decoration: none;
}

.wizard-struttura-avanzamento {
    min-width: 220px;
}

.wizard-struttura-avanzamento > span,
.wizard-struttura-avanzamento > strong {
    display: block;
}

.wizard-struttura-avanzamento > span {
    color: var(--attenuato);
    font-size: .62rem;
}

.wizard-struttura-avanzamento > strong {
    margin: 3px 0 8px;
    color: var(--blu-950);
    font-size: 1.35rem;
}

.wizard-struttura-avanzamento > div {
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: #e9eef5;
}

.wizard-struttura-avanzamento > div span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--blu-600);
}

.wizard-struttura-passi {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--bordo);
    border-radius: 12px;
    background: #fff;
}

.wizard-struttura-passi a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 66px;
    padding: 12px 15px;
    border-right: 1px solid var(--bordo);
    color: inherit;
    text-decoration: none;
}

.wizard-struttura-passi a:last-child {
    border-right: 0;
}

.wizard-struttura-passi a > span:first-child {
    display: grid;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    place-items: center;
    border-radius: 999px;
    background: #eef2f7;
    color: #718096;
    font-size: .65rem;
}

.wizard-struttura-passi a > span:last-child {
    display: grid;
    gap: 2px;
}

.wizard-struttura-passi strong {
    color: var(--blu-950);
    font-size: .68rem;
}

.wizard-struttura-passi small {
    color: var(--attenuato);
    font-size: .56rem;
}

.wizard-struttura-passi a.attivo {
    background: #f3f7ff;
}

.wizard-struttura-passi a.attivo > span:first-child {
    background: var(--blu-600);
    color: #fff;
}

.wizard-struttura-passi a.completato > span:first-child {
    background: #e7f8ed;
    color: #18884a;
}

.wizard-struttura-corpo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 270px;
    gap: 18px;
    align-items: start;
}

.wizard-struttura-contenuto,
.wizard-assistente {
    border: 1px solid var(--bordo);
    border-radius: 14px;
    background: #fff;
}

.wizard-struttura-contenuto {
    min-width: 0;
    overflow: hidden;
}

.wizard-domanda {
    display: flex;
    min-height: 520px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 46px;
    text-align: center;
}

.wizard-domanda-icona {
    display: grid;
    width: 66px;
    height: 66px;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 18px;
    background: #edf4ff;
    color: var(--blu-600);
    font-size: 1.4rem;
}

.wizard-domanda-etichetta {
    margin: 0;
    color: var(--blu-600) !important;
    font-size: .64rem !important;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.wizard-domanda h2,
.wizard-step-testata h2,
.wizard-riepilogo-finale h2 {
    margin: 8px 0 9px;
    color: var(--blu-950);
    font-size: 1.45rem;
}

.wizard-domanda > p:not(.wizard-domanda-etichetta) {
    max-width: 650px;
    margin: 0;
    color: var(--attenuato);
    font-size: .8rem;
    line-height: 1.65;
}

.wizard-scelte-introduttive {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
    margin: 28px 0;
}

.wizard-scelte-introduttive article {
    display: grid;
    gap: 6px;
    padding: 18px;
    border: 1px solid var(--bordo);
    border-radius: 10px;
    text-align: left;
}

.wizard-scelte-introduttive strong {
    color: var(--blu-950);
    font-size: .72rem;
}

.wizard-scelte-introduttive span {
    color: var(--attenuato);
    font-size: .62rem;
    line-height: 1.5;
}

.wizard-step-testata {
    padding: 24px 26px;
    border-bottom: 1px solid var(--bordo);
}

.wizard-step-testata > p:not(.wizard-domanda-etichetta) {
    max-width: 760px;
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
    line-height: 1.55;
}

.wizard-riepilogo-rapido {
    display: flex;
    gap: 10px;
    margin-top: 15px;
    flex-wrap: wrap;
}

.wizard-riepilogo-rapido span {
    padding: 7px 10px;
    border-radius: 8px;
    background: #f3f6fa;
    color: #5d6d82;
    font-size: .62rem;
}

.wizard-riepilogo-rapido strong {
    color: var(--blu-950);
}

.wizard-frame-operativo {
    height: 620px;
    background: #f8fafc;
}

.wizard-frame-operativo iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.wizard-azioni {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 15px 20px;
    border-top: 1px solid var(--bordo);
    background: #fff;
}

.wizard-assistente {
    position: sticky;
    top: 18px;
    padding: 20px;
}

.wizard-assistente-identita {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--bordo);
}

.wizard-assistente-identita > span {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 10px;
    background: var(--blu-600);
    color: #fff;
    font-weight: 850;
}

.wizard-assistente-identita div {
    display: grid;
    gap: 2px;
}

.wizard-assistente-identita strong {
    color: var(--blu-950);
    font-size: .72rem;
}

.wizard-assistente-identita small,
.wizard-assistente > small {
    color: var(--attenuato);
    font-size: .6rem;
    line-height: 1.55;
}

.wizard-assistente > p {
    margin: 18px 0 10px;
    color: #44546a;
    font-size: .7rem;
    line-height: 1.65;
}

.wizard-riepilogo-finale {
    padding: 28px;
}

.wizard-esito {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
    border-radius: 12px;
}

.wizard-esito > span {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border-radius: 999px;
    font-weight: 850;
}

.wizard-esito.positivo {
    background: #f1faf4;
}

.wizard-esito.positivo > span {
    background: #dff4e6;
    color: #18884a;
}

.wizard-esito.attenzione {
    background: #fff8e9;
}

.wizard-esito.attenzione > span {
    background: #ffedc6;
    color: #b86e00;
}

.wizard-esito p:last-child {
    margin: 0;
    color: var(--attenuato);
    font-size: .72rem;
    line-height: 1.55;
}

.wizard-controlli {
    display: grid;
    gap: 10px;
    margin: 20px 0;
}

.wizard-controlli article {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--bordo);
    border-radius: 10px;
}

.wizard-controlli article > span {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 999px;
    background: #eef2f7;
    color: #718096;
    font-size: .65rem;
}

.wizard-controlli article.completato > span {
    background: #e7f8ed;
    color: #18884a;
}

.wizard-controlli article div {
    display: grid;
    gap: 2px;
}

.wizard-controlli strong {
    color: var(--blu-950);
    font-size: .72rem;
}

.wizard-controlli small {
    color: var(--attenuato);
    font-size: .6rem;
}

.wizard-controlli a {
    color: var(--blu-600);
    font-size: .64rem;
    font-weight: 750;
    text-decoration: none;
}

.wizard-risultato-spiegazione {
    padding: 18px;
    border-radius: 10px;
    background: #f7faff;
}

.wizard-risultato-spiegazione h3 {
    margin: 0 0 12px;
    color: var(--blu-950);
    font-size: .8rem;
}

.wizard-risultato-spiegazione div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.wizard-risultato-spiegazione span {
    padding: 9px;
    border-radius: 7px;
    background: #fff;
    color: #53647b;
    font-size: .62rem;
}

@media (max-width: 1050px) {
    .wizard-struttura-corpo {
        grid-template-columns: 1fr;
    }

    .wizard-assistente {
        position: static;
    }
}

@media (max-width: 780px) {
    .wizard-struttura-testata {
        align-items: flex-start;
        flex-direction: column;
    }

    .wizard-struttura-avanzamento {
        width: 100%;
    }

    .wizard-struttura-passi {
        grid-template-columns: 1fr 1fr;
    }

    .wizard-struttura-passi a {
        border-bottom: 1px solid var(--bordo);
    }

    .wizard-scelte-introduttive,
    .wizard-risultato-spiegazione div {
        grid-template-columns: 1fr;
    }

    .wizard-domanda {
        min-height: 0;
        padding: 28px 20px;
    }
}


/* =========================================================
   PERCORSO STRUTTURA — INSERIMENTO RAPIDO
   ========================================================= */

.wizard-blocco-rapido {
    margin: 20px 24px;
    overflow: hidden;
    border: 1px solid var(--bordo);
    border-radius: 12px;
    background: #fff;
}

.wizard-blocco-rapido > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
}

.wizard-blocco-rapido > header > div {
    display: flex;
    align-items: center;
    gap: 11px;
}

.wizard-numero-piccolo {
    display: grid;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    place-items: center;
    border-radius: 999px;
    background: #eaf1ff;
    color: var(--blu-600);
    font-size: .65rem;
    font-weight: 850;
}

.wizard-blocco-rapido h3 {
    margin: 0 0 3px;
    color: var(--blu-950);
    font-size: .78rem;
}

.wizard-blocco-rapido header p {
    margin: 0;
    color: var(--attenuato);
    font-size: .6rem;
}

.wizard-contatore {
    padding: 5px 9px;
    border-radius: 999px;
    background: #eef2f7;
    color: #65748a;
    font-size: .58rem;
    font-weight: 750;
    white-space: nowrap;
}

.wizard-elenco-rapido {
    display: grid;
}

.wizard-riga-esistente {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 48px;
    padding: 8px 18px;
    border-bottom: 1px solid #edf0f4;
}

.wizard-check {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 999px;
    background: #e7f8ed;
    color: #18884a;
    font-size: .58rem;
    font-weight: 850;
}

.wizard-riga-esistente > span:nth-child(2) {
    display: grid;
    gap: 2px;
}

.wizard-riga-esistente strong {
    color: var(--blu-950);
    font-size: .67rem;
}

.wizard-riga-esistente small {
    color: var(--attenuato);
    font-size: .56rem;
}

.wizard-riga-esistente a {
    color: var(--blu-600);
    font-size: .58rem;
    font-weight: 750;
    text-decoration: none;
}

.wizard-riga-inserimento {
    display: grid;
    gap: 10px;
    align-items: end;
    padding: 14px 18px;
    background: #fbfcfe;
}

.wizard-riga-inserimento label {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.wizard-riga-inserimento label > span {
    color: #62738a;
    font-size: .57rem;
    font-weight: 750;
}

.wizard-riga-inserimento input,
.wizard-riga-inserimento select {
    width: 100%;
    min-width: 0;
    height: 38px;
    padding: 0 10px;
    border: 1px solid var(--bordo);
    border-radius: 8px;
    background: #fff;
    color: var(--testo);
    font: inherit;
    font-size: .68rem;
}

.wizard-riga-inserimento input:focus,
.wizard-riga-inserimento select:focus {
    outline: none;
    border-color: var(--blu-600);
    box-shadow: 0 0 0 3px rgb(47 111 228 / 12%);
}

.wizard-riga-inserimento .pulsante {
    height: 38px;
    margin: 0;
    white-space: nowrap;
}

.wizard-riga-sede {
    grid-template-columns:
        minmax(180px, 1.3fr)
        minmax(160px, .8fr)
        minmax(150px, .8fr)
        auto;
}

.wizard-riga-ufficio {
    grid-template-columns:
        minmax(190px, .9fr)
        minmax(240px, 1.3fr)
        auto;
}

.wizard-riga-persona {
    grid-template-columns:
        minmax(145px, .8fr)
        minmax(120px, .7fr)
        minmax(140px, .8fr)
        minmax(170px, 1fr)
        minmax(170px, 1fr)
        minmax(180px, 1fr)
        auto;
}

.pulsante-disabilitato {
    opacity: .45;
    cursor: not-allowed;
}

@media (max-width: 1250px) {
    .wizard-riga-persona {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .wizard-riga-persona .pulsante {
        width: 100%;
    }
}

@media (max-width: 850px) {
    .wizard-riga-sede,
    .wizard-riga-ufficio,
    .wizard-riga-persona {
        grid-template-columns: 1fr;
    }

    .wizard-riga-inserimento .pulsante {
        width: 100%;
    }

    .wizard-blocco-rapido {
        margin: 14px;
    }
}

/* =========================================================
   FRAMEWORK PERCORSI GUIDATI LABGDPR
   ========================================================= */

.wizard-labgdpr { display:grid; gap:18px; }
.wizard-labgdpr-testata { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }
.wizard-labgdpr-testata h1 { margin:5px 0 7px; color:var(--blu-950); }
.wizard-labgdpr-testata p { max-width:720px; margin:0; color:var(--attenuato); font-size:.78rem; line-height:1.55; }
.wizard-labgdpr-indietro { color:var(--blu-600); font-size:.68rem; font-weight:750; text-decoration:none; }
.wizard-labgdpr-avanzamento { min-width:220px; }
.wizard-labgdpr-avanzamento > span,.wizard-labgdpr-avanzamento > strong { display:block; }
.wizard-labgdpr-avanzamento > span { color:var(--attenuato); font-size:.62rem; }
.wizard-labgdpr-avanzamento > strong { margin:3px 0 8px; color:var(--blu-950); font-size:1.35rem; }
.wizard-labgdpr-avanzamento > div { height:7px; overflow:hidden; border-radius:999px; background:#e9eef5; }
.wizard-labgdpr-avanzamento > div span { display:block; height:100%; border-radius:inherit; background:var(--blu-600); }

.wizard-labgdpr-passi { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:hidden; border:1px solid var(--bordo); border-radius:12px; background:#fff; }
.wizard-labgdpr-passi a { display:flex; align-items:center; gap:10px; min-height:66px; padding:12px 15px; border-right:1px solid var(--bordo); color:inherit; text-decoration:none; }
.wizard-labgdpr-passi a:last-child { border-right:0; }
.wizard-labgdpr-passi a > span:first-child { display:grid; width:28px; height:28px; flex:0 0 28px; place-items:center; border-radius:999px; background:#eef2f7; color:#718096; font-size:.65rem; }
.wizard-labgdpr-passi a > span:last-child { display:grid; gap:2px; }
.wizard-labgdpr-passi strong { color:var(--blu-950); font-size:.68rem; }
.wizard-labgdpr-passi small { color:var(--attenuato); font-size:.56rem; }
.wizard-labgdpr-passi a.attivo { background:#f3f7ff; }
.wizard-labgdpr-passi a.attivo > span:first-child { background:var(--blu-600); color:#fff; }
.wizard-labgdpr-passi a.completato > span:first-child { background:#e7f8ed; color:#18884a; }

.wizard-labgdpr-corpo { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:18px; align-items:start; }
.wizard-labgdpr-contenuto,.wizard-labgdpr-assistente { border:1px solid var(--bordo); border-radius:14px; background:#fff; }
.wizard-labgdpr-contenuto { min-width:0; overflow:hidden; }
.wizard-labgdpr-assistente { position:sticky; top:18px; padding:20px; }
.wizard-labgdpr-assistente-identita { display:flex; align-items:center; gap:10px; padding-bottom:15px; border-bottom:1px solid var(--bordo); }
.wizard-labgdpr-assistente-identita > span { display:grid; width:38px; height:38px; place-items:center; border-radius:10px; background:var(--blu-600); color:#fff; font-weight:850; }
.wizard-labgdpr-assistente-identita div { display:grid; gap:2px; }
.wizard-labgdpr-assistente-identita strong { color:var(--blu-950); font-size:.72rem; }
.wizard-labgdpr-assistente-identita small,.wizard-labgdpr-assistente > small { color:var(--attenuato); font-size:.6rem; line-height:1.55; }
.wizard-labgdpr-assistente > p { margin:18px 0 10px; color:#44546a; font-size:.7rem; line-height:1.65; }

.wizard-labgdpr-domanda { display:flex; min-height:520px; align-items:center; justify-content:center; flex-direction:column; padding:46px; text-align:center; }
.wizard-labgdpr-domanda-icona { display:grid; width:66px; height:66px; place-items:center; margin-bottom:18px; border-radius:18px; background:#edf4ff; color:var(--blu-600); font-size:1.4rem; }
.wizard-labgdpr-etichetta { margin:0; color:var(--blu-600)!important; font-size:.64rem!important; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.wizard-labgdpr-domanda h2,.wizard-labgdpr-step-testata h2,.wizard-labgdpr-esito h2 { margin:8px 0 9px; color:var(--blu-950); font-size:1.45rem; }
.wizard-labgdpr-domanda > p:not(.wizard-labgdpr-etichetta) { max-width:650px; margin:0; color:var(--attenuato); font-size:.8rem; line-height:1.65; }
.wizard-labgdpr-scelte { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; width:100%; margin:28px 0; }
.wizard-labgdpr-scelte article { display:grid; gap:6px; padding:18px; border:1px solid var(--bordo); border-radius:10px; text-align:left; }
.wizard-labgdpr-scelte strong { color:var(--blu-950); font-size:.72rem; }
.wizard-labgdpr-scelte span { color:var(--attenuato); font-size:.62rem; line-height:1.5; }

.wizard-labgdpr-step-testata { padding:24px 26px; border-bottom:1px solid var(--bordo); }
.wizard-labgdpr-step-testata > p:not(.wizard-labgdpr-etichetta) { max-width:760px; margin:0; color:var(--attenuato); font-size:.72rem; line-height:1.55; }

.wizard-labgdpr-blocco-rapido { margin:20px 24px; overflow:hidden; border:1px solid var(--bordo); border-radius:12px; background:#fff; }
.wizard-labgdpr-blocco-rapido > header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 18px; border-bottom:1px solid var(--bordo); background:#f8fafc; }
.wizard-labgdpr-blocco-rapido > header > div { display:flex; align-items:center; gap:11px; }
.wizard-labgdpr-numero { display:grid; width:30px; height:30px; flex:0 0 30px; place-items:center; border-radius:999px; background:#eaf1ff; color:var(--blu-600); font-size:.65rem; font-weight:850; }
.wizard-labgdpr-blocco-rapido h3 { margin:0 0 3px; color:var(--blu-950); font-size:.78rem; }
.wizard-labgdpr-blocco-rapido header p { margin:0; color:var(--attenuato); font-size:.6rem; }
.wizard-labgdpr-contatore { padding:5px 9px; border-radius:999px; background:#eef2f7; color:#65748a; font-size:.58rem; font-weight:750; white-space:nowrap; }
.wizard-labgdpr-elenco-rapido { display:grid; }
.wizard-labgdpr-riga-esistente { display:grid; grid-template-columns:26px minmax(0,1fr) auto; gap:10px; align-items:center; min-height:48px; padding:8px 18px; border-bottom:1px solid #edf0f4; }
.wizard-labgdpr-check { display:grid; width:22px; height:22px; place-items:center; border-radius:999px; background:#e7f8ed; color:#18884a; font-size:.58rem; font-weight:850; }
.wizard-labgdpr-riga-esistente > span:nth-child(2) { display:grid; gap:2px; }
.wizard-labgdpr-riga-esistente strong { color:var(--blu-950); font-size:.67rem; }
.wizard-labgdpr-riga-esistente small { color:var(--attenuato); font-size:.56rem; }
.wizard-labgdpr-riga-esistente a { color:var(--blu-600); font-size:.58rem; font-weight:750; text-decoration:none; }

.wizard-riga-inserimento { display:grid; gap:10px; align-items:end; padding:14px 18px; background:#fbfcfe; }
.wizard-riga-inserimento label { display:grid; gap:5px; min-width:0; }
.wizard-riga-inserimento label > span { color:#62738a; font-size:.57rem; font-weight:750; }
.wizard-riga-inserimento input,.wizard-riga-inserimento select { width:100%; min-width:0; height:38px; padding:0 10px; border:1px solid var(--bordo); border-radius:8px; background:#fff; color:var(--testo); font:inherit; font-size:.68rem; }
.wizard-riga-inserimento input:focus,.wizard-riga-inserimento select:focus { outline:none; border-color:var(--blu-600); box-shadow:0 0 0 3px rgb(47 111 228 / 12%); }
.wizard-riga-inserimento .pulsante { height:38px; margin:0; white-space:nowrap; }
.wizard-riga-sede { grid-template-columns:minmax(180px,1.3fr) minmax(160px,.8fr) minmax(150px,.8fr) auto; }
.wizard-riga-ufficio { grid-template-columns:minmax(190px,.9fr) minmax(240px,1.3fr) auto; }
.wizard-riga-persona { grid-template-columns:minmax(145px,.8fr) minmax(120px,.7fr) minmax(140px,.8fr) minmax(170px,1fr) minmax(170px,1fr) minmax(180px,1fr) auto; }

.wizard-labgdpr-azioni { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 20px; border-top:1px solid var(--bordo); background:#fff; }
.pulsante-disabilitato { opacity:.45; cursor:not-allowed; }

.wizard-labgdpr-esito { display:flex; align-items:flex-start; gap:16px; padding:20px; border-radius:12px; }
.wizard-labgdpr-esito > span { display:grid; width:42px; height:42px; flex:0 0 42px; place-items:center; border-radius:999px; font-weight:850; }
.wizard-labgdpr-esito.positivo { background:#f1faf4; }
.wizard-labgdpr-esito.positivo > span { background:#dff4e6; color:#18884a; }
.wizard-labgdpr-esito.attenzione { background:#fff8e9; }
.wizard-labgdpr-esito.attenzione > span { background:#ffedc6; color:#b86e00; }
.wizard-labgdpr-esito p:last-child { margin:0; color:var(--attenuato); font-size:.72rem; line-height:1.55; }

@media (max-width:1050px) { .wizard-labgdpr-corpo { grid-template-columns:1fr; } .wizard-labgdpr-assistente { position:static; } }
@media (max-width:780px) { .wizard-labgdpr-testata { align-items:flex-start; flex-direction:column; } .wizard-labgdpr-avanzamento { width:100%; } .wizard-labgdpr-passi { grid-template-columns:1fr 1fr; } .wizard-labgdpr-passi a { border-bottom:1px solid var(--bordo); } .wizard-labgdpr-scelte { grid-template-columns:1fr; } .wizard-labgdpr-domanda { min-height:0; padding:28px 20px; } }
@media (max-width:1250px) { .wizard-riga-persona { grid-template-columns:repeat(3,minmax(0,1fr)); } .wizard-riga-persona .pulsante { width:100%; } }
@media (max-width:850px) { .wizard-riga-sede,.wizard-riga-ufficio,.wizard-riga-persona { grid-template-columns:1fr; } .wizard-riga-inserimento .pulsante { width:100%; } .wizard-labgdpr-blocco-rapido { margin:14px; } }

/* PERCORSO SOGGETTI E RESPONSABILITÀ */

.wizard-riga-responsabile {
    grid-template-columns:
        minmax(175px, 1.1fr)
        minmax(180px, 1.1fr)
        minmax(150px, .8fr)
        minmax(170px, .9fr)
        minmax(110px, .6fr)
        minmax(160px, .8fr)
        auto;
}

.wizard-riga-incarico {
    grid-template-columns:
        minmax(180px, 1.1fr)
        minmax(190px, 1fr)
        minmax(210px, 1.2fr)
        minmax(140px, .7fr)
        auto;
}

.wizard-checkbox-rapida {
    display: flex !important;
    min-height: 38px;
    align-items: center;
    flex-direction: row !important;
    gap: 8px !important;
    padding: 0 10px;
    border: 1px solid var(--bordo);
    border-radius: 8px;
    background: #fff;
}

.wizard-checkbox-rapida input {
    width: auto !important;
    height: auto !important;
    margin: 0;
}

.wizard-sottoblocco {
    padding: 14px 18px 0;
    border-top: 1px solid #edf0f4;
}

.wizard-sottoblocco h3 {
    margin: 0 0 8px;
    color: var(--blu-950);
    font-size: .68rem;
}

@media (max-width: 1250px) {
    .wizard-riga-responsabile,
    .wizard-riga-incarico {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 850px) {
    .wizard-riga-responsabile,
    .wizard-riga-incarico {
        grid-template-columns: 1fr;
    }
}

/* PERCORSO INFRASTRUTTURA E ARCHIVI */

.wizard-riga-sistema {
    grid-template-columns:
        minmax(170px, 1.1fr)
        minmax(155px, .85fr)
        minmax(160px, .85fr)
        minmax(160px, .9fr)
        minmax(150px, .8fr)
        repeat(4, minmax(115px, .6fr))
        auto;
}

.wizard-riga-archivio {
    grid-template-columns:
        minmax(180px, 1.1fr)
        minmax(135px, .7fr)
        minmax(180px, 1fr)
        minmax(150px, .8fr)
        minmax(150px, .8fr)
        minmax(170px, .9fr)
        repeat(4, minmax(120px, .65fr))
        auto;
}

@media (max-width: 1450px) {
    .wizard-riga-sistema,
    .wizard-riga-archivio {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 850px) {
    .wizard-riga-sistema,
    .wizard-riga-archivio {
        grid-template-columns: 1fr;
    }
}


/* PERCORSO CLASSIFICAZIONI GDPR */

.wizard-catalogo-chip {
    display: flex;
    gap: 8px;
    padding: 16px 18px;
    flex-wrap: wrap;
}

.wizard-catalogo-chip > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 10px;
    border: 1px solid #dfe6ef;
    border-radius: 999px;
    background: #f8fafc;
    color: var(--blu-950);
    font-size: .64rem;
    font-weight: 750;
}

.wizard-catalogo-chip > span small {
    color: var(--attenuato);
    font-size: .52rem;
    font-weight: 650;
}

.wizard-catalogo-chip > span.personalizzata {
    border-color: #cfe0ff;
    background: #eef5ff;
    color: var(--blu-700);
}

.wizard-catalogo-aggiunta {
    padding: 16px 18px;
    border-top: 1px solid var(--bordo);
    background: #fbfcfe;
}

.wizard-catalogo-aggiunta h3 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: .72rem;
}

.wizard-catalogo-aggiunta > p {
    margin: 0 0 12px;
    color: var(--attenuato);
    font-size: .6rem;
}

.wizard-riga-categoria {
    grid-template-columns:
        minmax(190px, .8fr)
        minmax(300px, 1.5fr)
        auto;
    padding: 0;
    background: transparent;
}

.wizard-riga-dato {
    grid-template-columns:
        minmax(190px, .9fr)
        minmax(135px, .6fr)
        minmax(240px, 1.2fr)
        minmax(170px, .75fr)
        auto;
    padding: 0;
    background: transparent;
}

.wizard-catalogo-gruppi {
    display: grid;
    gap: 0;
}

.wizard-catalogo-gruppi > section {
    border-bottom: 1px solid #edf0f4;
}

.wizard-catalogo-gruppi > section:last-child {
    border-bottom: 0;
}

.wizard-catalogo-gruppi h3 {
    margin: 0;
    padding: 12px 18px 0;
    color: #62738a;
    font-size: .58rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}

@media (max-width: 1050px) {
    .wizard-riga-categoria,
    .wizard-riga-dato {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .wizard-riga-categoria,
    .wizard-riga-dato {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   WIZARD TRATTAMENTI — PROPOSTE DAL CENSIMENTO
   ========================================================= */

.trattamenti-proposte-riepilogo {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
}

.trattamenti-proposte-riepilogo span {
    display: flex;
    align-items: baseline;
    gap: 5px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #fff;
    color: var(--attenuato);
    font-size: .62rem;
}

.trattamenti-proposte-riepilogo strong {
    color: var(--blu-950);
    font-size: 1rem;
}

.trattamenti-proposte-elenco {
    display: grid;
    padding: 18px 22px;
    gap: 10px;
}

.trattamento-proposta {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    background: #fff;
    cursor: pointer;
}

.trattamento-proposta:hover {
    border-color: #bfd4f7;
    background: #fbfdff;
}

.trattamento-proposta.suggerito {
    border-color: #b9d0f6;
    background: #f5f9ff;
}

.trattamento-proposta.gia-aggiunto {
    opacity: .62;
    cursor: default;
}

.trattamento-proposta-check {
    padding-top: 2px;
}

.trattamento-proposta-check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.trattamento-proposta-check > span {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border: 1px solid #bec9d8;
    border-radius: 6px;
    background: #fff;
}

.trattamento-proposta-check input:checked + span {
    border-color: var(--blu-600);
    background: var(--blu-600);
}

.trattamento-proposta-check input:checked + span::after {
    content: "✓";
    color: #fff;
    font-size: .65rem;
    font-weight: 900;
}

.trattamento-proposta-corpo {
    display: grid;
    gap: 6px;
}

.trattamento-proposta-testa {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.trattamento-proposta-testa > strong {
    color: var(--blu-950);
    font-size: .78rem;
}

.trattamento-proposta-testa b {
    padding: 5px 9px;
    border-radius: 999px;
    font-size: .55rem;
}

.stato-suggerito {
    background: #dff0ff;
    color: #2164bf;
}

.stato-facoltativo {
    background: #eef2f7;
    color: #6b7789;
}

.stato-esistente {
    background: #e7f8ed;
    color: #18884a;
}

.trattamento-proposta-corpo > small {
    color: var(--attenuato);
    font-size: .61rem;
    line-height: 1.5;
}

.trattamento-proposta-motivi {
    display: grid;
    gap: 3px;
}

.trattamento-proposta-motivi em {
    color: #42617f;
    font-size: .58rem;
    font-style: normal;
}

.trattamento-affinita {
    color: var(--attenuato);
    font-size: .56rem;
}

.trattamento-affinita strong {
    color: var(--blu-600);
}

.trattamenti-conferma-elenco,
.trattamenti-creati {
    display: grid;
    gap: 9px;
    padding: 20px 22px;
}

.trattamenti-conferma-elenco article,
.trattamenti-creati a {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 13px 14px;
    border: 1px solid var(--bordo);
    border-radius: 9px;
    color: inherit;
    text-decoration: none;
}

.trattamenti-conferma-elenco article > span,
.trattamenti-creati a > span {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 999px;
    background: #e7f8ed;
    color: #18884a;
    font-size: .6rem;
    font-weight: 900;
}

.trattamenti-conferma-elenco article div,
.trattamenti-creati a div {
    display: grid;
    gap: 3px;
}

.trattamenti-conferma-elenco strong,
.trattamenti-creati strong {
    color: var(--blu-950);
    font-size: .7rem;
}

.trattamenti-conferma-elenco small,
.trattamenti-creati small {
    color: var(--attenuato);
    font-size: .58rem;
}

.trattamenti-creati b {
    color: var(--blu-600);
    font-size: .6rem;
}

.trattamenti-avviso-bozza {
    margin: 0 22px 20px;
    padding: 15px;
    border: 1px solid #f1dcae;
    border-radius: 10px;
    background: #fff9ea;
}

.trattamenti-avviso-bozza strong {
    color: #8a630d;
    font-size: .68rem;
}

.trattamenti-avviso-bozza p {
    margin: 5px 0 0;
    color: #786a4a;
    font-size: .61rem;
    line-height: 1.5;
}

.trattamenti-saltati {
    display: grid;
    gap: 3px;
    margin: 0 22px 20px;
    padding: 12px 14px;
    border-radius: 9px;
    background: #f4f6f9;
}

.trattamenti-saltati strong {
    color: var(--blu-950);
    font-size: .65rem;
}

.trattamenti-saltati small {
    color: var(--attenuato);
    font-size: .57rem;
}

@media (max-width: 850px) {
    .trattamenti-proposte-riepilogo {
        grid-template-columns: 1fr 1fr;
    }

    .trattamento-proposta-testa {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* CTA TRATTAMENTI DALL'ORGANIZZAZIONE */

.organizzazione-trattamenti-pronti {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 20px 22px;
    border: 1px solid #cfe0ff;
    border-radius: 14px;
    background: #f4f8ff;
}

.organizzazione-trattamenti-pronti > div > span {
    color: var(--blu-600);
    font-size: .58rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.organizzazione-trattamenti-pronti h3 {
    margin: 4px 0;
    color: var(--blu-950);
    font-size: .9rem;
}

.organizzazione-trattamenti-pronti p {
    max-width: 720px;
    margin: 0;
    color: var(--attenuato);
    font-size: .64rem;
    line-height: 1.5;
}

@media (max-width: 700px) {
    .organizzazione-trattamenti-pronti {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* =========================================================
   PIANO GUIDATO DEI TRATTAMENTI
   ========================================================= */

.piano-trattamenti-riepilogo,
.piano-finale {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
}

.piano-trattamenti-riepilogo article,
.piano-finale > div {
    display: grid;
    gap: 3px;
    padding: 13px;
    border: 1px solid #e5eaf1;
    border-radius: 9px;
    background: #fff;
}

.piano-trattamenti-riepilogo strong,
.piano-finale strong {
    color: var(--blu-950);
    font-size: 1.1rem;
}

.piano-trattamenti-riepilogo span,
.piano-finale span {
    color: var(--attenuato);
    font-size: .58rem;
}

.piano-trattamenti-elenco,
.verifica-piano-elenco {
    display: grid;
    gap: 11px;
    padding: 20px 22px;
}

.piano-trattamento {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 12px;
    padding: 17px;
    border: 1px solid var(--bordo);
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
}

.piano-trattamento.presente {
    border-left: 4px solid #46a36b;
}

.piano-trattamento.suggerito {
    border-color: #b9d0f6;
    border-left: 4px solid var(--blu-600);
    background: #f7faff;
}

.piano-trattamento.possibile {
    border-left: 4px solid #c8d0dc;
}

.piano-trattamento-check {
    padding-top: 2px;
}

.piano-trattamento-check input {
    position: absolute;
    opacity: 0;
}

.piano-trattamento-check > span {
    display: grid;
    width: 23px;
    height: 23px;
    place-items: center;
    border: 1px solid #bac6d6;
    border-radius: 6px;
    background: #fff;
}

.piano-trattamento-check input:checked + span {
    border-color: var(--blu-600);
    background: var(--blu-600);
}

.piano-trattamento-check input:checked + span::after {
    content: "✓";
    color: #fff;
    font-size: .65rem;
    font-weight: 900;
}

.piano-trattamento-contenuto {
    display: grid;
    gap: 9px;
}

.piano-trattamento-testa {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
}

.piano-trattamento-testa > span:first-child {
    display: grid;
    gap: 4px;
}

.piano-trattamento-testa strong {
    color: var(--blu-950);
    font-size: .78rem;
}

.piano-trattamento-testa small {
    max-width: 750px;
    color: var(--attenuato);
    font-size: .6rem;
    line-height: 1.45;
}

.piano-trattamento-testa b {
    padding: 5px 9px;
    border-radius: 999px;
    font-size: .54rem;
    white-space: nowrap;
}

.etichetta-presente {
    background: #e7f8ed;
    color: #18884a;
}

.etichetta-suggerito {
    background: #e5f0ff;
    color: #2164bf;
}

.etichetta-possibile {
    background: #eef2f7;
    color: #6b7789;
}

.piano-trattamento-motivi {
    display: grid;
    gap: 3px;
}

.piano-trattamento-motivi em {
    color: #45627d;
    font-size: .58rem;
    font-style: normal;
}

.piano-trattamento-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.piano-trattamento-meta > span {
    padding: 5px 8px;
    border-radius: 7px;
    background: #f1f4f8;
    color: #687990;
    font-size: .55rem;
}

.piano-trattamento-meta .attenzione {
    background: #fff3dc;
    color: #996200;
}

.piano-trattamenti-spiegazione {
    margin: 0 22px 20px;
    padding: 15px;
    border: 1px solid #d8e5f8;
    border-radius: 10px;
    background: #f5f9ff;
}

.piano-trattamenti-spiegazione strong {
    color: var(--blu-950);
    font-size: .67rem;
}

.piano-trattamenti-spiegazione p {
    margin: 5px 0 0;
    color: #53647b;
    font-size: .61rem;
    line-height: 1.55;
}

.verifica-trattamento {
    overflow: hidden;
    border: 1px solid var(--bordo);
    border-radius: 12px;
    background: #fff;
}

.verifica-trattamento > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
}

.verifica-trattamento > header > div {
    display: flex;
    align-items: center;
    gap: 10px;
}

.verifica-trattamento-stato {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 9px;
    background: #eaf1ff;
    color: var(--blu-600);
    font-weight: 900;
}

.verifica-trattamento header strong,
.verifica-trattamento header small {
    display: block;
}

.verifica-trattamento header strong {
    color: var(--blu-950);
    font-size: .72rem;
}

.verifica-trattamento header small {
    margin-top: 2px;
    color: var(--attenuato);
    font-size: .56rem;
}

.verifica-trattamento header a {
    color: var(--blu-600);
    font-size: .58rem;
    font-weight: 750;
    text-decoration: none;
}

.verifica-trattamento-griglia {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.verifica-trattamento-griglia section {
    display: flex;
    min-width: 0;
    align-content: flex-start;
    gap: 6px;
    padding: 14px;
    border-right: 1px solid #edf0f4;
    flex-wrap: wrap;
}

.verifica-trattamento-griglia section:last-child {
    border-right: 0;
}

.verifica-trattamento-griglia h3 {
    width: 100%;
    margin: 0 0 4px;
    color: #607087;
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.relazione-chip,
.nessuna-proposta {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 7px;
    border-radius: 999px;
    font-size: .54rem;
}

.relazione-chip.esistente {
    background: #e7f8ed;
    color: #187944;
}

.relazione-chip.proposta {
    background: #eaf2ff;
    color: #285fae;
}

.relazione-chip small {
    opacity: .72;
    font-size: .48rem;
}

.nessuna-proposta {
    background: #f1f3f6;
    color: #7a8799;
}

.verifica-trattamento-mancanze {
    display: flex;
    gap: 7px;
    padding: 10px 14px;
    border-top: 1px solid #f0e4c9;
    background: #fff9eb;
    flex-wrap: wrap;
}

.verifica-trattamento-mancanze span {
    color: #8b650d;
    font-size: .55rem;
}

.piano-finale {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-bottom: 0;
}

.piano-prossimo-passo {
    margin: 0 22px 20px;
    padding: 20px;
    border: 1px solid #cfe0ff;
    border-radius: 12px;
    background: #f4f8ff;
}

.piano-prossimo-passo > span {
    color: var(--blu-600);
    font-size: .56rem;
    font-weight: 850;
    text-transform: uppercase;
}

.piano-prossimo-passo h3 {
    margin: 5px 0;
    color: var(--blu-950);
    font-size: .85rem;
}

.piano-prossimo-passo p {
    margin: 0;
    color: var(--attenuato);
    font-size: .62rem;
    line-height: 1.5;
}

@media (max-width: 1150px) {
    .verifica-trattamento-griglia {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .piano-trattamenti-riepilogo,
    .piano-finale {
        grid-template-columns: 1fr 1fr;
    }

    .piano-trattamento-testa {
        flex-direction: column;
    }

    .verifica-trattamento-griglia {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   VERIFICA ASSISTITA DEL TRATTAMENTO
   ========================================================= */

.verifica-assistita {
    display: grid;
}

.verifica-assistita-blocco {
    display: grid;
    grid-template-columns: 42px minmax(210px, .55fr) minmax(0, 1.45fr);
    gap: 18px;
    padding: 24px;
    border-bottom: 1px solid var(--bordo);
}

.verifica-assistita-numero {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 999px;
    background: #eaf1ff;
    color: var(--blu-600);
    font-size: .68rem;
    font-weight: 900;
}

.verifica-assistita-domanda > span,
.verifica-assistita-conferma > span {
    color: var(--blu-600);
    font-size: .57rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.verifica-assistita-domanda h2,
.verifica-assistita-conferma h2 {
    margin: 5px 0 7px;
    color: var(--blu-950);
    font-size: 1rem;
}

.verifica-assistita-domanda p,
.verifica-assistita-conferma p {
    margin: 0;
    color: var(--attenuato);
    font-size: .63rem;
    line-height: 1.55;
}

.verifica-assistita-campi {
    display: grid;
    gap: 11px;
}

.verifica-assistita-campi label {
    display: grid;
    gap: 5px;
}

.verifica-assistita-campi label > span {
    color: #607188;
    font-size: .57rem;
    font-weight: 750;
}

.verifica-assistita-campi input,
.verifica-assistita-campi textarea {
    width: 100%;
    padding: 10px 11px;
    border: 1px solid var(--bordo);
    border-radius: 8px;
    background: #fff;
    color: var(--testo);
    font: inherit;
    font-size: .68rem;
    line-height: 1.5;
    resize: vertical;
}

.verifica-assistita-due-colonne {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.verifica-assistita-selezioni {
    display: grid;
    align-content: start;
    gap: 7px;
    padding: 14px;
    border: 1px solid #e5eaf1;
    border-radius: 10px;
    background: #fbfcfe;
}

.verifica-assistita-selezioni h3 {
    margin: 0 0 4px;
    color: var(--blu-950);
    font-size: .68rem;
}

.verifica-selezione {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    padding: 8px 9px;
    border: 1px solid #e7ebf0;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
}

.verifica-selezione input {
    margin-top: 3px;
}

.verifica-selezione > span {
    display: grid;
    gap: 3px;
}

.verifica-selezione strong {
    color: var(--blu-950);
    font-size: .64rem;
}

.verifica-selezione small {
    width: max-content;
    padding: 3px 6px;
    border-radius: 999px;
    font-size: .49rem;
}

.verifica-selezione small.esistente {
    background: #e7f8ed;
    color: #187944;
}

.verifica-selezione small.proposta {
    background: #eaf2ff;
    color: #285fae;
}

.verifica-sistemi-contesto {
    display: flex;
    gap: 6px;
    margin-top: 7px;
    padding-top: 10px;
    border-top: 1px solid #e5eaf1;
    flex-wrap: wrap;
}

.verifica-sistemi-contesto > strong {
    width: 100%;
    color: #607188;
    font-size: .55rem;
}

.verifica-sistemi-contesto > span {
    padding: 5px 7px;
    border-radius: 999px;
    background: #eef2f7;
    color: #53647b;
    font-size: .54rem;
}

.verifica-sistemi-contesto small {
    opacity: .7;
}

.verifica-nessun-elemento {
    margin: 0;
    color: var(--attenuato);
    font-size: .58rem;
    line-height: 1.5;
}

.verifica-assistita-conferma {
    margin: 20px 24px 24px;
    padding: 20px;
    border: 1px solid #cfe0ff;
    border-radius: 12px;
    background: #f4f8ff;
}

.verifica-stato-attuale {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-top: 13px;
    color: #53647b;
    font-size: .6rem;
}

.verifica-stato-attuale span {
    padding: 4px 7px;
    border-radius: 999px;
    background: #fff;
    color: var(--blu-600);
    font-weight: 750;
    text-transform: capitalize;
}

.verifica-assistita-conferma
.wizard-labgdpr-azioni {
    padding: 16px 0 0;
    border-top: 0;
    background: transparent;
}

@media (max-width: 980px) {
    .verifica-assistita-blocco {
        grid-template-columns: 36px minmax(0, 1fr);
    }

    .verifica-assistita-campi,
    .verifica-assistita-due-colonne {
        grid-column: 2;
    }
}

@media (max-width: 700px) {
    .verifica-assistita-blocco {
        grid-template-columns: 1fr;
    }

    .verifica-assistita-campi,
    .verifica-assistita-due-colonne {
        grid-column: 1;
    }

    .verifica-assistita-due-colonne {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   CODA DI VERIFICA DEI TRATTAMENTI
   ========================================================= */

.coda-verifica {
    display: grid;
}

.coda-verifica-successo {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 18px 22px 0;
    padding: 13px 15px;
    border: 1px solid #ccebd7;
    border-radius: 10px;
    background: #f2fbf5;
}

.coda-verifica-successo > span {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 999px;
    background: #dff4e6;
    color: #18884a;
    font-weight: 900;
}

.coda-verifica-successo div {
    display: grid;
    gap: 2px;
}

.coda-verifica-successo strong {
    color: #176f40;
    font-size: .68rem;
}

.coda-verifica-successo small {
    color: #557463;
    font-size: .57rem;
}

.coda-verifica-progresso {
    display: grid;
    grid-template-columns: minmax(180px, .35fr) minmax(0, 1fr);
    gap: 20px;
    align-items: center;
    padding: 20px 22px;
    border-bottom: 1px solid var(--bordo);
}

.coda-verifica-progresso > div:first-child {
    display: grid;
    gap: 3px;
}

.coda-verifica-progresso span {
    color: var(--attenuato);
    font-size: .56rem;
}

.coda-verifica-progresso strong {
    color: var(--blu-950);
    font-size: 1.35rem;
}

.coda-verifica-progresso small {
    color: var(--attenuato);
    font-size: .57rem;
}

.coda-verifica-barra {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8edf4;
}

.coda-verifica-barra > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--blu-600);
}

.coda-verifica-prossimo,
.coda-verifica-completata {
    margin: 22px;
    padding: 24px;
    border: 1px solid #cfe0ff;
    border-radius: 14px;
    background: #f5f9ff;
}

.coda-verifica-etichetta,
.coda-verifica-completata > span:first-child {
    color: var(--blu-600);
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.coda-verifica-prossimo h2,
.coda-verifica-completata h2 {
    margin: 6px 0;
    color: var(--blu-950);
    font-size: 1.15rem;
}

.coda-verifica-prossimo > p,
.coda-verifica-completata > p {
    max-width: 780px;
    margin: 0 0 15px;
    color: var(--attenuato);
    font-size: .64rem;
    line-height: 1.55;
}

.coda-verifica-motivo {
    display: grid;
    gap: 3px;
    margin-bottom: 13px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #fff4da;
}

.coda-verifica-motivo strong {
    color: #8e6507;
    font-size: .57rem;
}

.coda-verifica-motivo span {
    color: #786334;
    font-size: .57rem;
}

.coda-verifica-meta {
    display: flex;
    gap: 7px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.coda-verifica-meta > span {
    padding: 5px 8px;
    border-radius: 7px;
    background: #fff;
    color: #607188;
    font-size: .54rem;
    text-transform: capitalize;
}

.coda-verifica-completata {
    text-align: center;
}

.coda-verifica-completata-icona {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    margin: 0 auto 10px;
    border-radius: 999px;
    background: #e2f6e9;
    color: #18884a !important;
    font-size: 1.1rem !important;
}

.coda-verifica-cosa-ora {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 20px 0;
    text-align: left;
}

.coda-verifica-cosa-ora article {
    display: grid;
    gap: 5px;
    padding: 14px;
    border: 1px solid #dce7f7;
    border-radius: 9px;
    background: #fff;
}

.coda-verifica-cosa-ora strong {
    color: var(--blu-950);
    font-size: .64rem;
}

.coda-verifica-cosa-ora span {
    color: var(--attenuato);
    font-size: .56rem;
    line-height: 1.45;
}

.coda-verifica-elenco {
    margin: 0 22px 22px;
    overflow: hidden;
    border: 1px solid var(--bordo);
    border-radius: 12px;
    background: #fff;
}

.coda-verifica-elenco > header {
    padding: 14px 16px;
    border-bottom: 1px solid var(--bordo);
    background: #f8fafc;
}

.coda-verifica-elenco h3 {
    margin: 0 0 3px;
    color: var(--blu-950);
    font-size: .7rem;
}

.coda-verifica-elenco p {
    margin: 0;
    color: var(--attenuato);
    font-size: .56rem;
}

.coda-verifica-riga {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 52px;
    padding: 9px 15px;
    border-bottom: 1px solid #edf0f4;
    color: inherit;
    text-decoration: none;
}

.coda-verifica-riga:last-child {
    border-bottom: 0;
}

.coda-verifica-riga:hover {
    background: #f8fbff;
}

.coda-verifica-riga-stato {
    display: grid;
    width: 23px;
    height: 23px;
    place-items: center;
    border-radius: 999px;
    background: #eef2f7;
    color: #718096;
    font-size: .57rem;
    font-weight: 900;
}

.coda-verifica-riga.verificato
.coda-verifica-riga-stato {
    background: #e7f8ed;
    color: #18884a;
}

.coda-verifica-riga.da_rivedere
.coda-verifica-riga-stato {
    background: #fff0d2;
    color: #a96c00;
}

.coda-verifica-riga > span:nth-child(2) {
    display: grid;
    gap: 2px;
}

.coda-verifica-riga strong {
    color: var(--blu-950);
    font-size: .65rem;
}

.coda-verifica-riga small {
    color: var(--attenuato);
    font-size: .53rem;
    text-transform: capitalize;
}

.coda-verifica-riga b {
    color: var(--blu-600);
    font-size: .56rem;
}

@media (max-width: 700px) {
    .coda-verifica-progresso {
        grid-template-columns: 1fr;
    }

    .coda-verifica-cosa-ora {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   HOME TRATTAMENTI — CABINA DI REGIA
   ========================================================= */

.trattamenti-home {
    display: grid;
    gap: 18px;
}

.trattamenti-home-testata {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 22px;
}

.trattamenti-home-testata h1 {
    margin: 5px 0 7px;
    color: var(--blu-950);
    font-size: 1.5rem;
}

.trattamenti-home-testata > div > p:last-child {
    max-width: 780px;
    margin: 0;
    color: var(--attenuato);
    font-size: .68rem;
    line-height: 1.55;
}

.trattamenti-stato,
.trattamenti-prossima-azione,
.trattamenti-ciclo,
.trattamenti-quadro,
.trattamenti-segnali,
.trattamenti-strumenti {
    border: 1px solid var(--bordo);
    border-radius: 14px;
    background: #fff;
}

.trattamenti-stato {
    padding: 20px 22px;
}

.trattamenti-stato-intestazione {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.trattamenti-stato-intestazione span,
.trattamenti-ciclo header span,
.trattamenti-quadro header span,
.trattamenti-segnali header span,
.trattamenti-strumenti header span {
    color: var(--blu-600);
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.trattamenti-stato-intestazione h2,
.trattamenti-ciclo h2,
.trattamenti-quadro h2,
.trattamenti-segnali h2,
.trattamenti-strumenti h2 {
    margin: 4px 0 0;
    color: var(--blu-950);
    font-size: .86rem;
}

.trattamenti-stato-intestazione > strong {
    color: var(--blu-600);
    font-size: 1.6rem;
}

.trattamenti-stato-barra {
    height: 8px;
    overflow: hidden;
    margin: 14px 0 18px;
    border-radius: 999px;
    background: #e9eef5;
}

.trattamenti-stato-barra span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--blu-600);
}

.trattamenti-stato-numeri {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.trattamenti-stato-numeri article {
    display: grid;
    gap: 3px;
    padding: 11px 12px;
    border-radius: 9px;
    background: #f7f9fc;
}

.trattamenti-stato-numeri strong {
    color: var(--blu-950);
    font-size: 1rem;
}

.trattamenti-stato-numeri span {
    color: var(--attenuato);
    font-size: .56rem;
}

.trattamenti-prossima-azione {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 20px 22px;
    border-color: #c8dcfb;
    background: #f5f9ff;
}

.trattamenti-prossima-azione-icona {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 12px;
    background: var(--blu-600);
    color: #fff;
    font-size: 1rem;
}

.trattamenti-prossima-azione-corpo > span {
    color: var(--blu-600);
    font-size: .55rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.trattamenti-prossima-azione h2 {
    margin: 4px 0;
    color: var(--blu-950);
    font-size: 1rem;
}

.trattamenti-prossima-azione p {
    margin: 0;
    color: var(--attenuato);
    font-size: .62rem;
    line-height: 1.5;
}

.trattamenti-prossimo-nome {
    display: flex;
    gap: 7px;
    align-items: center;
    margin-top: 9px;
}

.trattamenti-prossimo-nome span {
    color: var(--attenuato);
    font-size: .54rem;
}

.trattamenti-prossimo-nome strong {
    color: var(--blu-950);
    font-size: .6rem;
}

.trattamenti-ciclo {
    padding: 20px 22px;
}

.trattamenti-ciclo > header,
.trattamenti-strumenti > header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.trattamenti-ciclo > header > p,
.trattamenti-strumenti > header > p {
    max-width: 520px;
    margin: 0;
    color: var(--attenuato);
    font-size: .58rem;
    line-height: 1.45;
    text-align: right;
}

.trattamenti-ciclo-linea {
    display: grid;
    grid-template-columns:
        minmax(120px, 1fr)
        minmax(30px, .35fr)
        minmax(120px, 1fr)
        minmax(30px, .35fr)
        minmax(120px, 1fr)
        minmax(30px, .35fr)
        minmax(120px, 1fr);
    align-items: center;
    margin-top: 24px;
}

.trattamenti-ciclo-linea article {
    display: grid;
    justify-items: center;
    gap: 5px;
    text-align: center;
}

.trattamenti-ciclo-punto {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 2px solid #d8dfe8;
    border-radius: 999px;
    background: #fff;
    color: #8a96a6;
    font-size: .62rem;
    font-weight: 900;
}

.trattamenti-ciclo-linea article.completato
.trattamenti-ciclo-punto {
    border-color: #bde5cb;
    background: #e7f8ed;
    color: #18884a;
}

.trattamenti-ciclo-linea article.attivo
.trattamenti-ciclo-punto {
    border-color: var(--blu-600);
    background: var(--blu-600);
    color: #fff;
}

.trattamenti-ciclo-linea strong {
    color: var(--blu-950);
    font-size: .62rem;
}

.trattamenti-ciclo-linea small {
    color: var(--attenuato);
    font-size: .52rem;
}

.trattamenti-ciclo-collegamento {
    height: 2px;
    background: #e1e6ed;
}

.trattamenti-home-due-colonne {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: 18px;
}

.trattamenti-quadro > header,
.trattamenti-segnali > header {
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
}

.trattamenti-quadro-card {
    display: grid;
}

.trattamenti-quadro-card article {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 14px 18px;
    border-bottom: 1px solid #edf0f4;
}

.trattamenti-quadro-card article:last-child {
    border-bottom: 0;
}

.trattamenti-quadro-card .icona {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 9px;
    font-size: .65rem;
    font-weight: 900;
}

.trattamenti-quadro-card .da-verificare {
    background: #edf3ff;
    color: var(--blu-600);
}

.trattamenti-quadro-card .da-rivedere {
    background: #fff0d2;
    color: #a96c00;
}

.trattamenti-quadro-card .verificati {
    background: #e7f8ed;
    color: #18884a;
}

.trattamenti-quadro-card article > div {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 7px;
    align-items: baseline;
}

.trattamenti-quadro-card article > div strong {
    color: var(--blu-950);
    font-size: .9rem;
}

.trattamenti-quadro-card article > div span {
    color: var(--blu-950);
    font-size: .62rem;
    font-weight: 750;
}

.trattamenti-quadro-card article > div small {
    grid-column: 1 / -1;
    color: var(--attenuato);
    font-size: .54rem;
}

.trattamenti-quadro-card article > a,
.trattamenti-segnali-elenco article > a {
    color: var(--blu-600);
    font-size: .55rem;
    font-weight: 750;
    text-decoration: none;
}

.trattamenti-segnali-vuoto {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 20px 18px;
}

.trattamenti-segnali-vuoto > span {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 999px;
    background: #e7f8ed;
    color: #18884a;
    font-weight: 900;
}

.trattamenti-segnali-vuoto div {
    display: grid;
    gap: 3px;
}

.trattamenti-segnali-vuoto strong {
    color: var(--blu-950);
    font-size: .64rem;
}

.trattamenti-segnali-vuoto small {
    color: var(--attenuato);
    font-size: .54rem;
}

.trattamenti-segnali-elenco {
    display: grid;
}

.trattamenti-segnali-elenco article {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 13px 16px;
    border-bottom: 1px solid #edf0f4;
}

.trattamenti-segnali-elenco article:last-child {
    border-bottom: 0;
}

.trattamenti-segnali-elenco article > span {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 8px;
    background: #edf3ff;
    color: var(--blu-600);
    font-size: .58rem;
    font-weight: 900;
}

.trattamenti-segnali-elenco article.attenzione > span {
    background: #fff0d2;
    color: #a96c00;
}

.trattamenti-segnali-elenco article > div {
    display: grid;
    gap: 3px;
}

.trattamenti-segnali-elenco strong {
    color: var(--blu-950);
    font-size: .6rem;
}

.trattamenti-segnali-elenco small {
    color: var(--attenuato);
    font-size: .53rem;
    line-height: 1.4;
}

.trattamenti-segnali-elenco em {
    color: #8a6c2b;
    font-size: .49rem;
    font-style: normal;
}

.trattamenti-strumenti {
    padding: 18px 20px 20px;
}

.trattamenti-strumenti > div {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.trattamenti-strumenti > div > a {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 3px 9px;
    padding: 13px;
    border: 1px solid #e3e8ef;
    border-radius: 9px;
    color: inherit;
    text-decoration: none;
}

.trattamenti-strumenti > div > a:hover {
    border-color: #c9daf5;
    background: #f8fbff;
}

.trattamenti-strumenti a > span {
    display: grid;
    grid-row: 1 / 3;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 8px;
    background: #eef3fa;
    color: var(--blu-600);
    font-size: .62rem;
}

.trattamenti-strumenti a > strong {
    color: var(--blu-950);
    font-size: .61rem;
}

.trattamenti-strumenti a > small {
    color: var(--attenuato);
    font-size: .51rem;
    line-height: 1.35;
}

@media (max-width: 1050px) {
    .trattamenti-home-due-colonne {
        grid-template-columns: 1fr;
    }

    .trattamenti-stato-numeri {
        grid-template-columns: repeat(3, 1fr);
    }

    .trattamenti-strumenti > div {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 760px) {
    .trattamenti-home-testata,
    .trattamenti-ciclo > header,
    .trattamenti-strumenti > header {
        align-items: flex-start;
        flex-direction: column;
    }

    .trattamenti-prossima-azione {
        grid-template-columns: 1fr;
    }

    .trattamenti-ciclo > header > p,
    .trattamenti-strumenti > header > p {
        text-align: left;
    }

    .trattamenti-ciclo-linea {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .trattamenti-ciclo-collegamento {
        width: 2px;
        height: 20px;
        margin: auto;
    }

    .trattamenti-stato-numeri,
    .trattamenti-strumenti > div {
        grid-template-columns: 1fr 1fr;
    }
}

/* =========================================================
   WORKSPACE INTERNO — MACROAREA TRATTAMENTI
   ========================================================= */

.contenuto-pagina.area-trattamenti {
    padding: 0;
}

.workspace-trattamenti {
    display: grid;
    grid-template-columns: 258px minmax(0, 1fr);
    min-height: calc(100vh - 54px);
    background: #f5f7fb;
}

.menu-interno-trattamenti {
    display: flex;
    min-width: 0;
    flex-direction: column;
    border-right: 1px solid var(--bordo);
    background: #fff;
}

.menu-interno-trattamenti-testata {
    padding: 22px 18px 16px;
    border-bottom: 1px solid var(--bordo);
}

.menu-interno-trattamenti-testata > span {
    color: var(--blu-600);
    font-size: .58rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.menu-interno-trattamenti-testata h1 {
    margin: 5px 0 3px;
    color: var(--blu-950);
    font-size: 1.08rem;
}

.menu-interno-trattamenti-testata p {
    margin: 0;
    overflow: hidden;
    color: var(--attenuato);
    font-size: .62rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.menu-interno-trattamenti-navigazione {
    min-height: 0;
    flex: 1;
    padding: 13px 10px 22px;
    overflow-y: auto;
}

.menu-interno-trattamenti-gruppo +
.menu-interno-trattamenti-gruppo {
    margin-top: 18px;
}

.menu-interno-trattamenti-etichetta {
    display: block;
    margin: 0 8px 7px;
    color: #8794a8;
    font-size: .55rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.menu-interno-trattamenti-link {
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: 9px;
    padding: 7px 9px;
    border-radius: 9px;
    color: #46536a;
    text-decoration: none;
}

.menu-interno-trattamenti-link:hover {
    background: #f2f5fa;
    color: var(--blu-950);
    text-decoration: none;
}

.menu-interno-trattamenti-link.attivo {
    background: #eaf1ff;
    color: var(--blu-700);
    box-shadow: inset 3px 0 0 var(--blu-600);
}

.menu-interno-trattamenti-icona {
    display: grid;
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    place-items: center;
    border: 1px solid #e4eaf1;
    border-radius: 7px;
    background: #f8fafc;
    color: #64748b;
    font-size: .62rem;
    font-weight: 900;
}

.menu-interno-trattamenti-link.attivo
.menu-interno-trattamenti-icona {
    border-color: #d7e5ff;
    background: #fff;
    color: var(--blu-600);
}

.menu-interno-trattamenti-testo {
    display: grid;
    min-width: 0;
    flex: 1;
    gap: 2px;
}

.menu-interno-trattamenti-testo strong {
    overflow: hidden;
    font-size: .65rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.menu-interno-trattamenti-testo small {
    overflow: hidden;
    color: #8a96a8;
    font-size: .52rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.menu-interno-trattamenti-freccia {
    color: #a4aebb;
    font-size: 14px;
}

.contenuto-workspace-trattamenti {
    min-width: 0;
    padding: 22px;
    background: #f5f7fb;
}

.contenuto-workspace-trattamenti
.trattamenti-home {
    max-width: none;
}

/* pagine secondarie */
.pagina-trattamenti-sezione {
    display: grid;
    gap: 16px;
}

.pagina-trattamenti-sezione-testata {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.pagina-trattamenti-sezione-testata h1 {
    margin: 4px 0 5px;
    color: var(--blu-950);
    font-size: 1.35rem;
}

.pagina-trattamenti-sezione-testata > div > p:last-child {
    max-width: 760px;
    margin: 0;
    color: var(--attenuato);
    font-size: .64rem;
    line-height: 1.5;
}

.trattamenti-lista-assistita,
.analisi-trattamenti-segnali,
.duplicazioni-trattamenti,
.revisioni-trattamenti {
    display: grid;
    gap: 10px;
}

.trattamenti-lista-assistita > article {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid var(--bordo);
    border-radius: 11px;
    background: #fff;
}

.trattamenti-lista-stato {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 999px;
    background: #eef3fa;
    color: #718096;
    font-size: .62rem;
    font-weight: 900;
}

.trattamenti-lista-stato.verificato {
    background: #e7f8ed;
    color: #18884a;
}

.trattamenti-lista-stato.da_rivedere {
    background: #fff0d2;
    color: #a96c00;
}

.trattamenti-lista-corpo {
    display: grid;
    gap: 5px;
}

.trattamenti-lista-corpo > div {
    display: flex;
    align-items: center;
    gap: 8px;
}

.trattamenti-lista-corpo strong {
    color: var(--blu-950);
    font-size: .68rem;
}

.trattamenti-lista-corpo p {
    max-width: 900px;
    margin: 0;
    color: var(--attenuato);
    font-size: .57rem;
    line-height: 1.45;
}

.trattamenti-lista-motivo {
    color: #9a6b00;
    font-size: .54rem;
}

.badge-rischio {
    padding: 3px 6px;
    border-radius: 999px;
    background: #eef2f7;
    color: #66758a;
    font-size: .49rem;
}

.badge-rischio.alto {
    background: #ffe8e8;
    color: #b72a2a;
}

.badge-rischio.medio {
    background: #fff1cf;
    color: #986700;
}

.badge-rischio.basso {
    background: #e7f8ed;
    color: #18884a;
}

.trattamenti-vuoto {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 22px;
    border: 1px solid var(--bordo);
    border-radius: 12px;
    background: #fff;
}

.trattamenti-vuoto > span {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 999px;
    background: #e7f8ed;
    color: #18884a;
    font-weight: 900;
}

.trattamenti-vuoto strong {
    color: var(--blu-950);
    font-size: .68rem;
}

.trattamenti-vuoto p {
    margin: 3px 0 0;
    color: var(--attenuato);
    font-size: .58rem;
}

.analisi-trattamenti-segnali article {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 14px 15px;
    border: 1px solid var(--bordo);
    border-radius: 10px;
    background: #fff;
}

.analisi-trattamenti-segnali article > span {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 8px;
    background: #edf3ff;
    color: var(--blu-600);
    font-weight: 900;
}

.analisi-trattamenti-segnali article.attenzione > span {
    background: #fff0d2;
    color: #a96c00;
}

.analisi-trattamenti-segnali article div {
    display: grid;
    gap: 3px;
}

.analisi-trattamenti-segnali strong {
    color: var(--blu-950);
    font-size: .64rem;
}

.analisi-trattamenti-segnali p {
    margin: 0;
    color: var(--attenuato);
    font-size: .56rem;
}

.analisi-trattamenti-segnali a {
    color: var(--blu-600);
    font-size: .55rem;
    font-weight: 750;
    text-decoration: none;
}

.duplicazioni-trattamenti > article {
    overflow: hidden;
    border: 1px solid #f0d9a7;
    border-radius: 11px;
    background: #fff;
}

.duplicazioni-trattamenti header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 15px;
    background: #fff9ea;
}

.duplicazioni-trattamenti header > span {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 999px;
    background: #fff0d2;
    color: #a96c00;
    font-weight: 900;
}

.duplicazioni-trattamenti header div {
    display: grid;
    gap: 2px;
}

.duplicazioni-trattamenti header strong {
    color: #825b00;
    font-size: .64rem;
}

.duplicazioni-trattamenti header small {
    color: #8b7651;
    font-size: .54rem;
}

.duplicazioni-trattamenti > article > div {
    display: grid;
}

.duplicazioni-trattamenti > article > div a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 15px;
    border-top: 1px solid #edf0f4;
    text-decoration: none;
}

.duplicazioni-trattamenti a strong {
    color: var(--blu-950);
    font-size: .6rem;
}

.duplicazioni-trattamenti a span {
    color: var(--blu-600);
    font-size: .53rem;
}

.revisioni-trattamenti article {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid var(--bordo);
    border-radius: 9px;
    background: #fff;
}

.revisioni-trattamenti article > span {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    border-radius: 999px;
    background: #eef2f7;
    color: #64748b;
    font-size: .55rem;
    font-weight: 900;
}

.revisioni-trattamenti article > span.verificato {
    background: #e7f8ed;
    color: #18884a;
}

.revisioni-trattamenti article > span.da_rivedere {
    background: #fff0d2;
    color: #a96c00;
}

.revisioni-trattamenti article > div {
    display: grid;
    gap: 3px;
}

.revisioni-trattamenti strong {
    color: var(--blu-950);
    font-size: .62rem;
}

.revisioni-trattamenti small {
    color: var(--attenuato);
    font-size: .52rem;
}

.revisioni-trattamenti em {
    color: #946c16;
    font-size: .5rem;
    font-style: normal;
}

.revisioni-trattamenti a {
    color: var(--blu-600);
    font-size: .54rem;
    font-weight: 750;
    text-decoration: none;
}

@media (max-width: 1100px) {
    .workspace-trattamenti {
        grid-template-columns: 220px minmax(0, 1fr);
    }
}

@media (max-width: 860px) {
    .workspace-trattamenti {
        grid-template-columns: 1fr;
    }

    .menu-interno-trattamenti {
        border-right: 0;
        border-bottom: 1px solid var(--bordo);
    }

    .menu-interno-trattamenti-testata {
        display: none;
    }

    .menu-interno-trattamenti-navigazione {
        display: flex;
        gap: 8px;
        padding: 10px;
        overflow-x: auto;
    }

    .menu-interno-trattamenti-gruppo,
    .menu-interno-trattamenti-gruppo +
    .menu-interno-trattamenti-gruppo {
        display: flex;
        gap: 6px;
        margin: 0;
    }

    .menu-interno-trattamenti-etichetta,
    .menu-interno-trattamenti-testo small,
    .menu-interno-trattamenti-freccia {
        display: none;
    }

    .menu-interno-trattamenti-link {
        min-width: max-content;
    }

    .contenuto-workspace-trattamenti {
        padding: 16px;
    }
}


/* =========================================================
   HOME TRATTAMENTI — CABINA DI REGIA
   ========================================================= */

.trattamenti-home {
    display: grid;
    gap: 18px;
}

.trattamenti-home-testata {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 22px;
}

.trattamenti-home-testata h1 {
    margin: 5px 0 7px;
    color: var(--blu-950);
    font-size: 1.5rem;
}

.trattamenti-home-testata > div > p:last-child {
    max-width: 780px;
    margin: 0;
    color: var(--attenuato);
    font-size: .68rem;
    line-height: 1.55;
}

.trattamenti-stato,
.trattamenti-prossima-azione,
.trattamenti-ciclo,
.trattamenti-quadro,
.trattamenti-segnali,
.trattamenti-strumenti {
    border: 1px solid var(--bordo);
    border-radius: 14px;
    background: #fff;
}

.trattamenti-stato {
    padding: 20px 22px;
}

.trattamenti-stato-intestazione {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.trattamenti-stato-intestazione span,
.trattamenti-ciclo header span,
.trattamenti-quadro header span,
.trattamenti-segnali header span,
.trattamenti-strumenti header span {
    color: var(--blu-600);
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.trattamenti-stato-intestazione h2,
.trattamenti-ciclo h2,
.trattamenti-quadro h2,
.trattamenti-segnali h2,
.trattamenti-strumenti h2 {
    margin: 4px 0 0;
    color: var(--blu-950);
    font-size: .86rem;
}

.trattamenti-stato-intestazione > strong {
    color: var(--blu-600);
    font-size: 1.6rem;
}

.trattamenti-stato-barra {
    height: 8px;
    overflow: hidden;
    margin: 14px 0 18px;
    border-radius: 999px;
    background: #e9eef5;
}

.trattamenti-stato-barra span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--blu-600);
}

.trattamenti-stato-numeri {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.trattamenti-stato-numeri article {
    display: grid;
    gap: 3px;
    padding: 11px 12px;
    border-radius: 9px;
    background: #f7f9fc;
}

.trattamenti-stato-numeri strong {
    color: var(--blu-950);
    font-size: 1rem;
}

.trattamenti-stato-numeri span {
    color: var(--attenuato);
    font-size: .56rem;
}

.trattamenti-prossima-azione {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 20px 22px;
    border-color: #c8dcfb;
    background: #f5f9ff;
}

.trattamenti-prossima-azione-icona {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 12px;
    background: var(--blu-600);
    color: #fff;
    font-size: 1rem;
}

.trattamenti-prossima-azione-corpo > span {
    color: var(--blu-600);
    font-size: .55rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.trattamenti-prossima-azione h2 {
    margin: 4px 0;
    color: var(--blu-950);
    font-size: 1rem;
}

.trattamenti-prossima-azione p {
    margin: 0;
    color: var(--attenuato);
    font-size: .62rem;
    line-height: 1.5;
}

.trattamenti-prossimo-nome {
    display: flex;
    gap: 7px;
    align-items: center;
    margin-top: 9px;
}

.trattamenti-prossimo-nome span {
    color: var(--attenuato);
    font-size: .54rem;
}

.trattamenti-prossimo-nome strong {
    color: var(--blu-950);
    font-size: .6rem;
}

.trattamenti-ciclo {
    padding: 20px 22px;
}

.trattamenti-ciclo > header,
.trattamenti-strumenti > header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.trattamenti-ciclo > header > p,
.trattamenti-strumenti > header > p {
    max-width: 520px;
    margin: 0;
    color: var(--attenuato);
    font-size: .58rem;
    line-height: 1.45;
    text-align: right;
}

.trattamenti-ciclo-linea {
    display: grid;
    grid-template-columns:
        minmax(120px, 1fr)
        minmax(30px, .35fr)
        minmax(120px, 1fr)
        minmax(30px, .35fr)
        minmax(120px, 1fr)
        minmax(30px, .35fr)
        minmax(120px, 1fr);
    align-items: center;
    margin-top: 24px;
}

.trattamenti-ciclo-linea article {
    display: grid;
    justify-items: center;
    gap: 5px;
    text-align: center;
}

.trattamenti-ciclo-punto {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 2px solid #d8dfe8;
    border-radius: 999px;
    background: #fff;
    color: #8a96a6;
    font-size: .62rem;
    font-weight: 900;
}

.trattamenti-ciclo-linea article.completato
.trattamenti-ciclo-punto {
    border-color: #bde5cb;
    background: #e7f8ed;
    color: #18884a;
}

.trattamenti-ciclo-linea article.attivo
.trattamenti-ciclo-punto {
    border-color: var(--blu-600);
    background: var(--blu-600);
    color: #fff;
}

.trattamenti-ciclo-linea strong {
    color: var(--blu-950);
    font-size: .62rem;
}

.trattamenti-ciclo-linea small {
    color: var(--attenuato);
    font-size: .52rem;
}

.trattamenti-ciclo-collegamento {
    height: 2px;
    background: #e1e6ed;
}

.trattamenti-home-due-colonne {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: 18px;
}

.trattamenti-quadro > header,
.trattamenti-segnali > header {
    padding: 16px 18px;
    border-bottom: 1px solid var(--bordo);
}

.trattamenti-quadro-card {
    display: grid;
}

.trattamenti-quadro-card article {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 14px 18px;
    border-bottom: 1px solid #edf0f4;
}

.trattamenti-quadro-card article:last-child {
    border-bottom: 0;
}

.trattamenti-quadro-card .icona {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 9px;
    font-size: .65rem;
    font-weight: 900;
}

.trattamenti-quadro-card .da-verificare {
    background: #edf3ff;
    color: var(--blu-600);
}

.trattamenti-quadro-card .da-rivedere {
    background: #fff0d2;
    color: #a96c00;
}

.trattamenti-quadro-card .verificati {
    background: #e7f8ed;
    color: #18884a;
}

.trattamenti-quadro-card article > div {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 7px;
    align-items: baseline;
}

.trattamenti-quadro-card article > div strong {
    color: var(--blu-950);
    font-size: .9rem;
}

.trattamenti-quadro-card article > div span {
    color: var(--blu-950);
    font-size: .62rem;
    font-weight: 750;
}

.trattamenti-quadro-card article > div small {
    grid-column: 1 / -1;
    color: var(--attenuato);
    font-size: .54rem;
}

.trattamenti-quadro-card article > a,
.trattamenti-segnali-elenco article > a {
    color: var(--blu-600);
    font-size: .55rem;
    font-weight: 750;
    text-decoration: none;
}

.trattamenti-segnali-vuoto {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 20px 18px;
}

.trattamenti-segnali-vuoto > span {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 999px;
    background: #e7f8ed;
    color: #18884a;
    font-weight: 900;
}

.trattamenti-segnali-vuoto div {
    display: grid;
    gap: 3px;
}

.trattamenti-segnali-vuoto strong {
    color: var(--blu-950);
    font-size: .64rem;
}

.trattamenti-segnali-vuoto small {
    color: var(--attenuato);
    font-size: .54rem;
}

.trattamenti-segnali-elenco {
    display: grid;
}

.trattamenti-segnali-elenco article {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 13px 16px;
    border-bottom: 1px solid #edf0f4;
}

.trattamenti-segnali-elenco article:last-child {
    border-bottom: 0;
}

.trattamenti-segnali-elenco article > span {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 8px;
    background: #edf3ff;
    color: var(--blu-600);
    font-size: .58rem;
    font-weight: 900;
}

.trattamenti-segnali-elenco article.attenzione > span {
    background: #fff0d2;
    color: #a96c00;
}

.trattamenti-segnali-elenco article > div {
    display: grid;
    gap: 3px;
}

.trattamenti-segnali-elenco strong {
    color: var(--blu-950);
    font-size: .6rem;
}

.trattamenti-segnali-elenco small {
    color: var(--attenuato);
    font-size: .53rem;
    line-height: 1.4;
}

.trattamenti-segnali-elenco em {
    color: #8a6c2b;
    font-size: .49rem;
    font-style: normal;
}

.trattamenti-strumenti {
    padding: 18px 20px 20px;
}

.trattamenti-strumenti > div {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.trattamenti-strumenti > div > a {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 3px 9px;
    padding: 13px;
    border: 1px solid #e3e8ef;
    border-radius: 9px;
    color: inherit;
    text-decoration: none;
}

.trattamenti-strumenti > div > a:hover {
    border-color: #c9daf5;
    background: #f8fbff;
}

.trattamenti-strumenti a > span {
    display: grid;
    grid-row: 1 / 3;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 8px;
    background: #eef3fa;
    color: var(--blu-600);
    font-size: .62rem;
}

.trattamenti-strumenti a > strong {
    color: var(--blu-950);
    font-size: .61rem;
}

.trattamenti-strumenti a > small {
    color: var(--attenuato);
    font-size: .51rem;
    line-height: 1.35;
}

@media (max-width: 1050px) {
    .trattamenti-home-due-colonne {
        grid-template-columns: 1fr;
    }

    .trattamenti-stato-numeri {
        grid-template-columns: repeat(3, 1fr);
    }

    .trattamenti-strumenti > div {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 760px) {
    .trattamenti-home-testata,
    .trattamenti-ciclo > header,
    .trattamenti-strumenti > header {
        align-items: flex-start;
        flex-direction: column;
    }

    .trattamenti-prossima-azione {
        grid-template-columns: 1fr;
    }

    .trattamenti-ciclo > header > p,
    .trattamenti-strumenti > header > p {
        text-align: left;
    }

    .trattamenti-ciclo-linea {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .trattamenti-ciclo-collegamento {
        width: 2px;
        height: 20px;
        margin: auto;
    }

    .trattamenti-stato-numeri,
    .trattamenti-strumenti > div {
        grid-template-columns: 1fr 1fr;
    }
}

/* LabGDPR — suggerimenti archivi nel percorso Infrastruttura */
.wizard-suggerimenti-archivi{margin:20px 24px;border:1px solid #cfe0ff;border-radius:12px;background:#f7faff;overflow:hidden}.wizard-suggerimenti-testata{padding:18px 18px 12px}.wizard-suggerimenti-testata h3{margin:5px 0 5px;color:var(--blu-950);font-size:1rem}.wizard-suggerimenti-testata p:last-child{margin:0;max-width:850px;color:var(--attenuato);font-size:.68rem;line-height:1.55}.wizard-suggerimenti-griglia{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:6px 18px 18px}.wizard-suggerimento-card{position:relative;display:flex;gap:11px;padding:15px;border:1px solid var(--bordo);border-radius:10px;background:#fff;cursor:pointer}.wizard-suggerimento-card:has(input:checked){border-color:var(--blu-600);box-shadow:0 0 0 3px rgb(47 111 228 / 10%)}.wizard-suggerimento-card>input{width:17px;height:17px;margin:2px 0 0;flex:0 0 auto}.wizard-suggerimento-contenuto{display:grid;gap:7px;min-width:0}.wizard-suggerimento-riga{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.wizard-suggerimento-riga strong{color:var(--blu-950);font-size:.72rem;line-height:1.35}.wizard-suggerimento-tipo{padding:4px 7px;border-radius:999px;background:#eef3f8;color:#5e6d80;font-size:.52rem;font-weight:800;text-transform:uppercase}.wizard-suggerimento-descrizione{color:#53647a;font-size:.62rem;line-height:1.5}.wizard-suggerimento-motivo{padding-top:7px;border-top:1px solid #edf1f6;color:#65758a;font-size:.58rem;line-height:1.45}.wizard-suggerimenti-azioni{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px;border-top:1px solid #dfe9f8;background:#fff}.wizard-suggerimenti-azioni p{margin:0;color:var(--attenuato);font-size:.6rem;line-height:1.45}.wizard-suggerimenti-azioni .pulsante{white-space:nowrap}@media(max-width:1150px){.wizard-suggerimenti-griglia{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.wizard-suggerimenti-archivi{margin:14px}.wizard-suggerimenti-griglia{grid-template-columns:1fr}.wizard-suggerimenti-azioni{align-items:stretch;flex-direction:column}}


/* =========================================================
   BANCHE DATI - SELEZIONE MULTIPLA SISTEMI
   ========================================================= */

.campo-sistemi-banca {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 2px;
}

.campo-sistemi-banca-etichetta {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--testo-principale, #14213d);
}

.campo-sistemi-banca-aiuto {
    margin: 0 0 6px;
    font-size: 12px;
    line-height: 1.45;
    color: var(--testo-secondario, #64748b);
}

.lista-sistemi-banca {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 240px;
    overflow-y: auto;
}

/*
 * Specificità volutamente alta:
 * impedisce alle regole generiche degli input del drawer
 * di trasformare le checkbox in campi di testo.
 */
.drawer-banca-form
.lista-sistemi-banca
.opzione-sistema-banca {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;

    width: 100%;
    margin: 0;
    padding: 10px 12px;

    border: 1px solid #dbe3ee;
    border-radius: 8px;
    background: #ffffff;

    cursor: pointer;
    box-sizing: border-box;
}

.drawer-banca-form
.lista-sistemi-banca
.opzione-sistema-banca:hover {
    border-color: #b8c7db;
    background: #f8fafc;
}

.drawer-banca-form
.lista-sistemi-banca
.opzione-sistema-banca:has(input:checked) {
    border-color: #94b7ee;
    background: #f3f7fd;
}

/* Reset completo delle regole input del drawer */
.drawer-banca-form
.lista-sistemi-banca
.opzione-sistema-banca
input[type="checkbox"] {
    appearance: auto;
    -webkit-appearance: checkbox;

    display: block;

    width: 16px !important;
    min-width: 16px !important;
    max-width: 16px !important;

    height: 16px !important;
    min-height: 16px !important;
    max-height: 16px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: initial;
    border-radius: initial;

    flex: 0 0 16px;

    cursor: pointer;
}

.drawer-banca-form
.lista-sistemi-banca
.opzione-sistema-banca > span {
    display: flex;
    flex-direction: column;
    gap: 2px;

    min-width: 0;
    flex: 1;
}

.drawer-banca-form
.lista-sistemi-banca
.opzione-sistema-banca strong {
    display: block;
    margin: 0;

    font-size: 13px;
    line-height: 1.3;
    font-weight: 600;
}

.drawer-banca-form
.lista-sistemi-banca
.opzione-sistema-banca small {
    display: block;
    margin: 0;

    font-size: 11px;
    line-height: 1.3;
    color: #64748b;
}

.verifica-sicurezza-trattamento {
    margin-bottom: 18px;
    padding: 16px;
    border: 1px solid var(--bordo);
    border-radius: 12px;
    background: #f8fafc;
}

.verifica-sicurezza-trattamento > header {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 14px;
}

.verifica-sicurezza-trattamento > header > span {
    padding: 4px 8px;
    border-radius: 999px;
    background: #eaf2ff;
    color: var(--blu-600);
    font-size: .58rem;
    font-weight: 800;
}

.verifica-sicurezza-trattamento > header strong,
.verifica-sicurezza-trattamento > header small {
    display: block;
}

.verifica-sicurezza-trattamento > header small {
    margin-top: 4px;
    color: var(--attenuato);
}

.verifica-sicurezza-elenco {
    display: grid;
    gap: 10px;
}

.verifica-sicurezza-misura {
    padding: 12px 14px;
    border: 1px solid var(--bordo);
    border-radius: 10px;
    background: #fff;
}

.verifica-sicurezza-misura strong {
    color: var(--blu-950);
}

.verifica-sicurezza-misura p {
    margin: 5px 0 0;
    color: var(--attenuato);
    font-size: .6rem;
    line-height: 1.45;
}

.verifica-sicurezza-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 8px;
    flex-wrap: wrap;
}

.verifica-sicurezza-meta span,
.verifica-sicurezza-meta small,
.verifica-sicurezza-sistemi span {
    padding: 4px 7px;
    border-radius: 999px;
    font-size: .55rem;
}

.verifica-sicurezza-meta .esistente {
    background: #e7f8ed;
    color: #187944;
}

.verifica-sicurezza-meta .proposta {
    background: #fff3dc;
    color: #996200;
}

.verifica-sicurezza-sistemi {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-top: 8px;
    flex-wrap: wrap;
}

.verifica-sicurezza-sistemi small {
    color: var(--attenuato);
}

.verifica-sicurezza-sistemi span {
    background: #eef3f8;
    color: #53647b;
}

.verifica-misure-suggerite {
    display: grid;
    gap: 12px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--bordo);
}

.verifica-misure-suggerite-titolo {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}

.verifica-misure-suggerite-titolo > div {
    display: grid;
    gap: 4px;
}

.verifica-misure-suggerite-titolo strong {
    color: var(--blu-950);
    font-size: .66rem;
}

.verifica-misure-suggerite-titolo small {
    color: var(--attenuato);
    font-size: .54rem;
    line-height: 1.45;
}

.verifica-misure-suggerite-titolo > span {
    flex: 0 0 auto;
    padding: 5px 8px;
    border-radius: 999px;
    background: #eaf2ff;
    color: var(--blu-600);
    font-size: .52rem;
    font-weight: 800;
}

.verifica-misure-suggerite-elenco {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.verifica-misura-suggerita {
    margin: 0;
}

@media (max-width: 800px) {
    .verifica-misure-suggerite-elenco {
        grid-template-columns: 1fr;
    }
}