* {
    box-sizing: border-box;
}

:root {
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;

    color: #172033;
    background: #eef1f5;
}

html {
    min-height: 100%;
}

body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(
            circle at top,
            #f8fbff 0,
            #eef1f5 42%,
            #e8edf3 100%
        );
}

body.modal-aperta {
    overflow: hidden;
}

button,
input,
select,
textarea {
    font: inherit;
}

a {
    color: inherit;
}

/* HOME */

.pagina-home {
    padding: 28px 0 50px;
}

.home-contenitore {
    width: min(92%, 980px);
    margin: 0 auto;
}

.home-intestazione {
    margin-bottom: 28px;
    text-align: center;
}

.etichetta {
    margin: 0 0 8px;
    color: #4263eb;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 1.6px;
}

.home-intestazione h1 {
    margin: 0;
    font-size: clamp(32px, 5vw, 48px);
    letter-spacing: -1.2px;
}

.home-sottotitolo {
    margin: 9px 0 0;
    color: #64748b;
    font-size: 19px;
}

.griglia-verbali {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.card-verbale {
    min-height: 350px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow:
        0 18px 44px rgba(15, 23, 42, 0.10);
    text-decoration: none;
    transition:
        transform 180ms ease,
        box-shadow 180ms ease,
        border-color 180ms ease;
}

.card-verbale:hover {
    transform: translateY(-4px);
    border-color: rgba(37, 99, 235, 0.35);
    box-shadow:
        0 24px 58px rgba(15, 23, 42, 0.15);
}

.card-verbale:active {
    transform: scale(0.985);
}

.card-immagine {
    min-height: 245px;
    display: grid;
    place-items: center;
    padding: 22px;
    background:
        linear-gradient(
            145deg,
            rgba(239, 246, 255, 0.95),
            rgba(248, 250, 252, 0.82)
        );
}

.card-immagine img {
    display: block;
    width: 100%;
    height: 215px;
    object-fit: contain;
}

.card-immagine-placeholder span {
    width: 150px;
    height: 150px;
    display: grid;
    place-items: center;
    border: 3px dashed #94a3b8;
    border-radius: 38px;
    color: #64748b;
    font-size: 80px;
    font-weight: 300;
}

.card-testo {
    flex: 1;
    padding: 20px 22px 23px;
}

.card-categoria {
    margin: 0 0 6px;
    color: #4263eb;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.2px;
}

.card-testo h2 {
    margin: 0 0 9px;
    font-size: 24px;
    line-height: 1.15;
}

.card-testo span {
    color: #64748b;
    font-size: 15px;
}

.card-verbale-nuovo {
    border-style: dashed;
}

.home-footer {
    padding: 24px 4px 0;
    color: #64748b;
    text-align: center;
}

/* PAGINE VERBALE */

.contenitore {
    width: min(94%, 760px);
    margin: 22px auto 60px;
}

.barra-superiore {
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.btn-home {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.88);
    font-weight: 750;
    text-decoration: none;
}

.badge-pagina {
    max-width: 55%;
    overflow: hidden;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.10);
    color: #1d4ed8;
    font-size: 13px;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.intestazione {
    padding: 8px 4px 20px;
}

.intestazione h1 {
    margin: 0;
    font-size: 34px;
}

.sottotitolo {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 19px;
}

.barra-archivio {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.barra-archivio button {
    flex: 1;
    min-width: 180px;
    min-height: 50px;
    padding: 11px 15px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    background: #ffffff;
    color: #172033;
    font-weight: 750;
    cursor: pointer;
}

.barra-archivio-singola button {
    max-width: 100%;
}

.barra-archivio button:active {
    transform: scale(0.99);
}

.scheda {
    margin-bottom: 18px;
    padding: 22px;
    border-radius: 20px;
    background: #ffffff;
    box-shadow:
        0 8px 24px rgba(15, 23, 42, 0.07);
}

.scheda h2 {
    margin: 0 0 20px;
    font-size: 21px;
}

.campo {
    margin-bottom: 18px;
}

.campo:last-child {
    margin-bottom: 0;
}

label,
legend {
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
    font-weight: 750;
}

input[type="text"],
input[type="tel"],
input[type="date"],
input[type="time"],
select,
textarea {
    width: 100%;
    min-height: 54px;
    padding: 14px 15px;
    border: 1px solid #cbd5e1;
    border-radius: 13px;
    background: #ffffff;
    color: #172033;
    font-size: 18px;
}

textarea {
    min-height: 170px;
    resize: vertical;
    line-height: 1.45;
}

input:focus,
select:focus,
textarea:focus {
    border-color: #4263eb;
    outline: 3px solid rgba(66, 99, 235, 0.15);
}

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

fieldset {
    margin: 0 0 18px;
    padding: 0;
    border: none;
}

.scelta {
    min-height: 52px;
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
    padding: 12px 14px;
    border: 1px solid #d8dee9;
    border-radius: 13px;
    background: #f8fafc;
    cursor: pointer;
}

.scelta input {
    width: 22px;
    height: 22px;
    margin: 0;
}

.scelta span {
    font-size: 17px;
}

#generaPdf,
.btn-primario {
    width: 100%;
    min-height: 62px;
    border: none;
    border-radius: 16px;
    background: #2563eb;
    color: #ffffff;
    font-size: 19px;
    font-weight: 800;
    cursor: pointer;
}

#generaPdf:active,
.btn-primario:active {
    transform: scale(0.99);
}

#generaPdf:disabled {
    opacity: 0.65;
    cursor: wait;
}

#messaggio {
    min-height: 26px;
    margin: 18px 0;
    text-align: center;
    font-weight: 750;
}

/* PAGINE IN PREPARAZIONE */

.pagina-in-preparazione {
    padding: 34px;
    text-align: center;
}

.icona-preparazione {
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    margin: 0 auto 18px;
    border-radius: 22px;
    background: rgba(37, 99, 235, 0.10);
    color: #2563eb;
    font-size: 34px;
}

.etichetta-sezione {
    margin: 0 0 8px;
    color: #4263eb;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.3px;
}

.pagina-in-preparazione h2 {
    max-width: 560px;
    margin: 0 auto 14px;
}

.pagina-in-preparazione p:not(.etichetta-sezione) {
    max-width: 590px;
    margin: 0 auto 24px;
    color: #64748b;
    line-height: 1.55;
}

.soggetto-selezionato {
    border: 1px solid rgba(37, 99, 235, 0.18);
    background:
        linear-gradient(
            145deg,
            #ffffff,
            #f5f9ff
        );
}

.soggetto-selezionato h2 {
    margin-bottom: 6px;
}

.soggetto-selezionato p:last-child {
    margin: 0;
    color: #64748b;
}

/* ARCHIVIO */

.nascosto {
    display: none !important;
}

#modalArchivio.modal-archivio {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15, 23, 42, 0.58);
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
}

#modalArchivio .modal-archivio-contenuto {
    width: 100%;
    max-width: 670px;
    max-height: 86vh;
    overflow-y: auto;
    padding: 24px;
    border-radius: 25px;
    background: #ffffff;
    box-shadow:
        0 28px 90px rgba(15, 23, 42, 0.38);
}

#modalArchivio .modal-archivio-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.modal-sovratitolo {
    margin: 0 0 5px;
    color: #4263eb;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 1.2px;
}

#modalArchivio .modal-archivio-header h2 {
    margin: 0;
    font-size: 25px;
}

#modalArchivio .modal-archivio-header p:last-child {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 15px;
}

#modalArchivio .btn-chiudi-modal {
    flex: 0 0 auto;
    width: 42px;
    min-width: 42px;
    height: 42px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #eef2f7;
    color: #1e293b;
    font-size: 18px;
    cursor: pointer;
}

#modalArchivio #ricercaSoggetto {
    width: 100%;
    min-height: 52px;
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    background: #ffffff;
    color: #0f172a;
    font-size: 16px;
}

#modalArchivio .lista-soggetti {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#modalArchivio .riga-soggetto {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #f8fafc;
}

#modalArchivio .dati-riga-soggetto {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 2px;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

#modalArchivio .nome-riga-soggetto {
    color: #0f172a;
    font-size: 17px;
    font-weight: 800;
}

#modalArchivio .info-riga-soggetto {
    color: #64748b;
    font-size: 14px;
    line-height: 1.4;
}

#modalArchivio .azioni-riga-soggetto {
    display: flex;
    align-items: center;
    gap: 8px;
}

#modalArchivio .btn-carica-soggetto,
#modalArchivio .btn-elimina-soggetto {
    width: auto;
    min-width: auto;
    margin: 0;
    padding: 10px 13px;
    border: 0;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 750;
    cursor: pointer;
}

#modalArchivio .btn-carica-soggetto {
    background: #2563eb;
    color: #ffffff;
}

#modalArchivio .btn-elimina-soggetto {
    background: #fee2e2;
    color: #b91c1c;
}

#modalArchivio .archivio-vuoto {
    margin: 15px 0 0;
    padding: 20px;
    border-radius: 14px;
    background: #f8fafc;
    color: #64748b;
    text-align: center;
}

/* RESPONSIVE */

@media (max-width: 700px) {
    .griglia-verbali {
        gap: 14px;
    }

    .card-verbale {
        min-height: 285px;
        border-radius: 23px;
    }

    .card-immagine {
        min-height: 185px;
        padding: 14px;
    }

    .card-immagine img {
        height: 165px;
    }

    .card-immagine-placeholder span {
        width: 112px;
        height: 112px;
        border-radius: 29px;
        font-size: 60px;
    }

    .card-testo {
        padding: 16px;
    }

    .card-testo h2 {
        font-size: 20px;
    }

    .contenitore {
        margin-top: 14px;
    }

    .intestazione h1 {
        font-size: 29px;
    }

    .scheda {
        padding: 18px;
        border-radius: 17px;
    }

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

    input[type="text"],
    input[type="tel"],
    input[type="date"],
    input[type="time"],
    select,
    textarea {
        font-size: 16px;
    }
}

/*
 * Fascia tablet / iPad
 * Mantiene due colonne quando c'e spazio, ma impedisce ai controlli nativi
 * di Safari (soprattutto data e ora) di allargare o sovrapporre la griglia.
 */
@media (min-width: 701px) and (max-width: 1366px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    .pagina-home {
        padding: 24px 0 44px;
    }

    .home-contenitore {
        width: min(calc(100% - 36px), 1080px);
    }

    .contenitore,
    .foto-page,
    .pagina-verbale .contenitore {
        width: min(calc(100% - 36px), 1020px);
        max-width: 1020px;
        margin-right: auto;
        margin-left: auto;
    }

    .scheda,
    form,
    fieldset,
    .campo,
    .griglia-due,
    .griglia-tre,
    .griglia-quattro,
    .scelta-inline,
    .scelte-perquisizione,
    .azioni-pdf-affiancate,
    .barra-archivio,
    .barra-operatore {
        min-width: 0;
        max-width: 100%;
    }

    .griglia-due,
    .pagina-verbale form[data-verbale-modello] .griglia-due {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px 18px;
    }

    .griglia-due > *,
    .griglia-tre > *,
    .griglia-quattro > *,
    .scelta-inline > *,
    .scelte-perquisizione > *,
    .azioni-pdf-affiancate > * {
        min-width: 0;
        max-width: 100%;
    }

    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        inline-size: 100% !important;
        min-inline-size: 0 !important;
        box-sizing: border-box;
    }

    input[type="date"],
    input[type="time"] {
        -webkit-appearance: none;
        appearance: none;
        overflow: hidden;
    }

    .barra-superiore,
    .barra-operatore,
    .barra-archivio {
        align-items: stretch;
    }

    .barra-operatore > *,
    .barra-archivio > * {
        min-width: 0;
    }

    .scheda {
        padding: 24px;
    }

    .scelta-inline,
    .scelte-perquisizione {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .scelta-radio,
    .scelte-perquisizione > label {
        height: auto;
        min-width: 0;
    }

    .scelta-radio > span,
    .scelte-perquisizione > label > span,
    button,
    .btn-home,
    .badge-pagina {
        overflow-wrap: anywhere;
    }

    .azioni-pdf-affiancate {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #modalArchivio .modal-contenuto,
    .modal-contenuto {
        width: min(calc(100% - 40px), 820px);
        max-height: calc(100dvh - 56px);
    }
}

/* iPad in verticale: lascia piu spazio ai comandi lunghi. */
@media (min-width: 701px) and (max-width: 900px) {
    .home-contenitore,
    .contenitore,
    .foto-page,
    .pagina-verbale .contenitore {
        width: calc(100% - 28px);
    }

    .scheda,
    .pagina-verbale form[data-verbale-modello] .scheda {
        padding: 22px 20px;
    }

    .barra-operatore {
        flex-wrap: wrap;
    }

    .barra-operatore .azioni-operatore {
        width: 100%;
    }

    .verbalizzanti-generico,
    .scelta-sequestro {
        grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(92px, .65fr);
    }
}

/* =========================================================
   PRISMA — TEMA ISTITUZIONALE CONTEMPORANEO
   Solo presentazione: nessuna regola funzionale dei moduli.
   ========================================================= */

html:root {
    --prisma-navy: #18355f;
    --prisma-blue: #214f8d;
    --prisma-blue-soft: #e9eff6;
    --prisma-ink: #1d304a;
    --prisma-muted: #6f7886;
    --prisma-canvas: #f4f1e9;
    --prisma-paper: #ffffff;
    --prisma-line: #d9d5cb;
    --prisma-green: #287252;
    --prisma-red: #a93f49;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    color: var(--prisma-ink);
    background: var(--prisma-canvas);
}

body {
    color: var(--prisma-ink);
    background: var(--prisma-canvas);
}

body::before {
    content: "";
    position: fixed;
    inset: 0 0 auto;
    z-index: 1000;
    height: 3px;
    pointer-events: none;
    background: linear-gradient(90deg, #1c7b4f 0 33.333%, #f8f6f0 33.333% 66.666%, #bd3c48 66.666%);
}

button,
a,
input,
select,
textarea {
    -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(33, 79, 141, .18);
    outline-offset: 2px;
}

/* Barra utente condivisa */

.barra-utente-globale {
    min-height: 64px;
    margin: 0 0 26px;
    padding: 10px 12px 10px 18px;
    border: 1px solid var(--prisma-line);
    border-radius: 14px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 8px 24px rgba(36, 48, 64, .055);
}

.barra-utente-globale::before {
    content: "PRISMA";
    margin-right: auto;
    color: var(--prisma-navy);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .15em;
}

.utente-identita {
    margin-left: 18px;
}

.utente-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: #fff;
    background: var(--prisma-blue);
    font-size: 0;
}

.utente-avatar::after {
    content: "OP";
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .04em;
}

.utente-identita small {
    color: #8a8f97;
    font-size: 8px;
    letter-spacing: .12em;
}

.utente-identita strong {
    color: #33445a;
    font-size: 11px;
}

.utente-azioni a,
.utente-azioni button {
    padding: 8px 12px;
    border-color: #d6d2c8;
    border-radius: 9px;
    color: #425168;
    background: #faf9f6;
    font-size: 11px;
    font-weight: 700;
}

/* Home e catalogo */

.pagina-home {
    padding: 22px 0 48px;
}

.home-contenitore {
    width: min(calc(100% - 40px), 1160px);
}

.home-intestazione {
    margin: 12px 0 28px;
    text-align: left;
}

.etichetta,
.etichetta-sezione,
.card-categoria {
    color: #7b6850;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.home-intestazione h1,
.intestazione h1,
.login-intestazione h1,
.pagina-numerico .hero h1,
.pagina-straordinari-form .stra-hero h1 {
    color: var(--prisma-navy);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
    letter-spacing: -.025em;
}

.home-intestazione h1 {
    font-size: clamp(34px, 5vw, 50px);
}

.home-sottotitolo,
.sottotitolo {
    color: var(--prisma-muted);
}

.home-sottotitolo {
    margin-top: 7px;
    font-size: 16px;
}

.ricerca-verbali {
    position: relative;
    margin: 0 0 25px;
    padding: 17px 18px;
    border: 1px solid var(--prisma-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.ricerca-verbali label {
    display: block;
    margin-bottom: 8px;
    color: #435168;
    font-size: 12px;
    font-weight: 700;
}

.ricerca-verbali-campo {
    position: relative;
}

.ricerca-verbali-campo input {
    width: 100%;
    min-height: 48px;
    padding: 11px 50px 11px 43px;
    border: 1px solid #d6d2c9;
    border-radius: 10px;
    color: #243850;
    background: #fbfaf7;
    font-size: 15px;
}

.ricerca-verbali-icona {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #718096;
    font-size: 18px;
    pointer-events: none;
}

.ricerca-verbali-azzera {
    position: absolute;
    right: 7px;
    top: 50%;
    width: 35px;
    height: 35px;
    transform: translateY(-50%);
    border: 0;
    border-radius: 8px;
    color: #516078;
    background: #ece9e1;
    font-size: 18px;
    cursor: pointer;
}

.ricerca-verbali-azzera[hidden],
.risultati-verbali[hidden] {
    display: none;
}

.risultati-verbali {
    display: grid;
    gap: 7px;
    margin-top: 10px;
}

.risultato-verbale {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 4px 14px;
    align-items: center;
    padding: 12px 13px;
    border: 1px solid #ddd9d0;
    border-radius: 10px;
    color: #263b55;
    background: #fff;
    text-decoration: none;
}

.risultato-verbale:hover,
.risultato-verbale:focus {
    border-color: #8ea7c6;
    background: #f3f6fa;
}

.risultato-verbale strong {
    font-size: 14px;
}

.risultato-verbale span {
    grid-column: 1;
    color: #7b828c;
    font-size: 12px;
}

.risultato-verbale b {
    grid-column: 2;
    grid-row: 1 / 3;
    color: var(--prisma-blue);
}

.nessun-verbale {
    margin: 10px 0 0;
    padding: 12px;
    border-radius: 9px;
    color: #7a4b17;
    background: #fff5e6;
}

.griglia-verbali {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.card-verbale {
    min-height: 104px;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: center;
    border: 1px solid #dedad1;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(38, 48, 61, .04);
}

.card-verbale::after {
    content: "›";
    position: absolute;
    right: 15px;
    color: #a1a6ad;
    font-size: 22px;
}

.card-verbale {
    position: relative;
    padding: 14px 38px 14px 14px;
}

.card-verbale:hover {
    transform: translateY(-2px);
    border-color: #9eb0c8;
    box-shadow: 0 12px 28px rgba(38, 48, 61, .08);
}

.card-immagine {
    min-height: 0;
    width: 44px;
    height: 44px;
    padding: 7px;
    border-radius: 11px;
    background: var(--prisma-blue-soft);
}

.card-immagine img {
    width: 30px;
    height: 30px;
    object-fit: contain;
}

.card-testo {
    min-width: 0;
    padding: 0;
}

.card-categoria {
    margin-bottom: 3px;
    font-size: 8px;
}

.card-testo h2 {
    margin: 0;
    color: #263b55;
    font-size: 15px;
    line-height: 1.2;
}

.card-testo span {
    display: block;
    margin-top: 4px;
    color: #838991;
    font-size: 11px;
    line-height: 1.3;
}

.home-footer {
    padding-top: 20px;
    color: #858a91;
    font-size: 12px;
}

.btn-home-altri {
    margin-bottom: 18px;
}

.intestazione-altri-verbali {
    width: 100%;
    justify-content: flex-start;
    margin-bottom: 28px;
    text-align: left;
}

.icona-pagina-altri {
    width: 68px !important;
    height: 68px !important;
    min-width: 68px;
    max-width: 68px;
    padding: 10px;
    border: 1px solid #d8d4ca;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(38, 48, 61, .06);
}

/* Pagine verbale, profilo e archivio */

.contenitore,
body.pagina-verbale .contenitore {
    width: min(calc(100% - 40px), 1020px);
    max-width: 1020px;
    margin: 20px auto 64px;
}

.barra-superiore {
    min-height: 58px;
    margin-bottom: 0;
    padding: 8px 10px;
    border: 1px solid var(--prisma-line);
    border-radius: 14px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.barra-superiore::before {
    content: "PRISMA";
    margin: 0 auto 0 5px;
    color: var(--prisma-navy);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .15em;
}

.btn-home,
.stra-back,
.pagina-numerico .back {
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid #d4d0c7;
    border-radius: 9px;
    color: #435268;
    background: #faf9f6;
    box-shadow: none;
    font-size: 12px;
    font-weight: 700;
}

.badge-pagina {
    max-width: 48%;
    padding: 7px 11px;
    border-radius: 8px;
    color: var(--prisma-blue);
    background: var(--prisma-blue-soft);
    font-size: 11px;
    font-weight: 700;
}

.pagina-verbale .barra-utente-globale {
    margin: 10px 0 24px;
    box-shadow: none;
}

.intestazione {
    padding: 8px 4px 24px;
}

.intestazione h1 {
    font-size: clamp(31px, 4.5vw, 46px);
}

.sottotitolo {
    max-width: 760px;
    margin-top: 7px;
    font-size: 15px;
    line-height: 1.5;
}

.scheda,
.pagina-verbale form[data-verbale-modello] .scheda {
    margin-bottom: 15px;
    padding: 22px;
    border: 1px solid var(--prisma-line);
    border-radius: 15px;
    background: var(--prisma-paper);
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.scheda h2 {
    margin-bottom: 18px;
    color: #2b3f58;
    font-size: 18px;
    font-weight: 700;
}

.campo {
    margin-bottom: 15px;
}

label,
legend,
.pagina-verbale label,
.pagina-verbale legend {
    margin-bottom: 6px;
    color: #59667a;
    font-size: 13px;
    font-weight: 700;
}

input[type="text"],
input[type="tel"],
input[type="date"],
input[type="time"],
input[type="email"],
input[type="number"],
input[type="search"],
select,
textarea,
.pagina-verbale form[data-verbale-modello] input:not([type]),
.pagina-verbale form[data-verbale-modello] input[type="text"],
.pagina-verbale form[data-verbale-modello] input[type="tel"],
.pagina-verbale form[data-verbale-modello] input[type="date"],
.pagina-verbale form[data-verbale-modello] input[type="time"],
.pagina-verbale form[data-verbale-modello] select,
.pagina-verbale form[data-verbale-modello] textarea {
    min-height: 50px;
    padding: 11px 13px;
    border: 1px solid #d4d0c7;
    border-radius: 10px;
    color: #243850;
    background: #fff;
    font-size: 16px;
    box-shadow: none;
}

textarea,
.pagina-verbale form[data-verbale-modello] textarea {
    min-height: 145px;
}

input:focus,
select:focus,
textarea:focus {
    border-color: #6688b2;
    outline: 3px solid rgba(33, 79, 141, .11);
}

.griglia-due,
.pagina-verbale form[data-verbale-modello] .griglia-due {
    gap: 13px 15px;
}

.scelta,
.scelte-card label,
.interruttore-riga,
.scelte-perquisizione label {
    border-color: #dad6cd;
    border-radius: 10px;
    color: #33465e;
    background: #faf9f6;
}

input[type="checkbox"],
input[type="radio"] {
    accent-color: var(--prisma-blue);
}

.barra-archivio {
    margin-bottom: 15px;
}

.barra-archivio button,
.scelta-segmentata button,
.verbalizzanti-generico button,
.frasi-rapide button,
.rapido {
    border-color: #d5d1c8;
    border-radius: 9px;
    color: #3c4d64;
    background: #faf9f6;
    box-shadow: none;
}

.verbalizzanti-generico button.selezionato,
.scelta-segmentata button.selezionato,
.rapido.attivo {
    border-color: var(--prisma-blue);
    color: #fff;
    background: var(--prisma-blue);
}

#generaPdf,
.btn-primario,
.btn-primary {
    min-height: 52px;
    border-radius: 10px;
    color: #fff;
    background: var(--prisma-blue);
    font-size: 16px;
    font-weight: 700;
    box-shadow: 0 7px 16px rgba(33, 79, 141, .16);
}

.azioni-pdf-affiancate > button {
    min-height: 52px !important;
    border-radius: 10px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

.azioni-pdf-affiancate .btn-salva-pdf {
    background: var(--prisma-green) !important;
    border-color: var(--prisma-green) !important;
}

.azioni-pdf-affiancate .btn-nuova-istanza {
    color: #435268 !important;
    background: #f5f3ee !important;
    border-color: #d4d0c7 !important;
}

.btn-secondario,
.azioni-archivio-form button:not(.btn-primario),
.azioni-cartella button:not(.btn-pericolo) {
    border: 1px solid #d4d0c7;
    border-radius: 9px;
    color: #435268;
    background: #faf9f6;
}

.btn-pericolo {
    border-radius: 9px;
    color: #fff;
    background: var(--prisma-red);
}

.blocco-condizionale,
.nota-campo,
.testo-aiuto {
    color: #6f7886;
}

.modal-archivio-contenuto,
.modal-contenuto {
    border: 1px solid var(--prisma-line);
    border-radius: 16px;
    background: #fff;
}

.card-intervento,
.riga-verbale-intervento,
.soggetto-card {
    border-color: var(--prisma-line);
    border-radius: 12px;
    background: #fbfaf7;
}

.card-intervento.attivo {
    border-color: #7896bb;
    box-shadow: 0 0 0 3px rgba(33, 79, 141, .09);
}

.archivio-hero img,
.profilo-hero img {
    width: 74px;
    height: 74px;
    padding: 8px;
    border: 1px solid var(--prisma-line);
    border-radius: 15px;
    background: #fff;
    filter: none;
}

.backup-icona {
    border: 1px solid #d7d3c9;
    border-radius: 13px;
    background: #f0ede6;
    box-shadow: none;
}

.backup-riepilogo,
.btn-backup {
    border-color: #d8d4ca;
    border-radius: 11px;
    background: #faf9f6;
}

.btn-backup-crea {
    color: #fff;
    background: var(--prisma-blue);
}

.avviso-backup-sicurezza {
    border-left-color: #b5803f;
    border-radius: 9px;
    color: #68491f;
    background: #fff6e8;
}

/* Login istituzionale */

.pagina-login {
    background: var(--prisma-canvas);
}

.login-layout {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 450px);
    place-items: stretch;
    width: min(calc(100% - 40px), 1180px);
    min-height: min(760px, calc(100vh - 44px));
    margin: 22px auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid #d6d1c6;
    border-radius: 22px;
    background: #faf8f3;
    box-shadow: 0 28px 80px rgba(40, 48, 60, .16);
}

.login-presentazione {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
    overflow: hidden;
    padding: 42px 46px;
    color: #fff;
    background: var(--prisma-navy);
}

.login-presentazione::after {
    content: "";
    position: absolute;
    right: -150px;
    bottom: -185px;
    width: 500px;
    height: 500px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 50%;
    box-shadow: 0 0 0 60px rgba(255, 255, 255, .025), 0 0 0 120px rgba(255, 255, 255, .015);
}

.login-presentazione-brand,
.login-presentazione-testo,
.login-presentazione-nota {
    position: relative;
    z-index: 1;
}

.login-presentazione-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.login-presentazione-brand img {
    width: 48px;
    height: 48px;
    padding: 5px;
    border-radius: 50%;
    background: #fff;
    object-fit: contain;
}

.login-presentazione-brand strong,
.login-presentazione-brand span {
    display: block;
}

.login-presentazione-brand strong {
    font-size: 15px;
    letter-spacing: .14em;
}

.login-presentazione-brand span {
    margin-top: 2px;
    color: #b7c3d3;
    font-size: 9px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.login-presentazione-testo {
    max-width: 610px;
}

.login-presentazione-testo .etichetta {
    color: #d2b68f;
}

.login-presentazione-testo h1 {
    max-width: 620px;
    margin: 0;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 5vw, 64px);
    font-weight: 400;
    line-height: 1.03;
    letter-spacing: -.035em;
}

.login-presentazione-testo p:last-child {
    max-width: 500px;
    margin: 18px 0 0;
    color: #bdc8d7;
    font-size: 14px;
    line-height: 1.7;
}

.login-presentazione-nota {
    margin: 0;
    color: #95a8bf;
    font-size: 10px;
}

.login-card {
    align-self: center;
    width: 100%;
    padding: 38px 42px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.login-card .login-brand {
    justify-content: flex-start;
    margin-bottom: 28px;
}

.login-card .login-stemma {
    width: 58px;
    height: 58px;
    margin: 0;
    filter: none;
}

.login-brand-copy strong {
    color: var(--prisma-navy);
    font-size: 14px;
}

.login-brand-copy span {
    color: #7b8290;
    font-size: 9px;
}

.login-intestazione {
    margin-bottom: 23px;
    text-align: left;
}

.login-intestazione h1 {
    margin: 3px 0 7px;
    font-size: 29px;
}

.login-intestazione p:last-child {
    color: #7f8690;
    font-size: 12px;
}

.login-form {
    gap: 13px;
}

.login-form input {
    min-height: 49px;
}

.campo-password button {
    border-radius: 8px;
    color: #526177;
    background: #f0ede7;
}

.login-submit {
    min-height: 49px;
    margin-top: 6px;
    font-size: 15px;
}

.login-footer {
    color: #8a8f96;
    border-top-color: #dfdbd2;
}

.login-ripristino {
    border-color: #d9d5cb;
    border-radius: 11px;
    background: #f6f3ed;
}

/* Numerico fine turno */

body.pagina-numerico {
    color: var(--prisma-ink);
    background: var(--prisma-canvas);
}

.numerico-wrap {
    width: min(94%, 1100px);
    margin: 0 auto;
    padding: 20px 0 120px;
}

.numerico-topbar {
    min-height: 45px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.numerico-salvataggio {
    color: #527463;
    font-size: 12px;
    font-weight: 750;
    transition: color .15s ease;
}

.numerico-salvataggio.salvataggio-in-corso {
    color: #7b6a45;
}

.numerico-hero {
    display: flex;
    align-items: center;
    gap: 17px;
    padding: 21px;
    border: 1px solid var(--prisma-line);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.numerico-hero-icon {
    width: 68px;
    height: 68px;
    flex: 0 0 auto;
    padding: 8px;
    border-radius: 13px;
    background: var(--prisma-blue-soft);
}

.numerico-hero-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.numerico-hero-copy {
    min-width: 0;
    flex: 1;
}

.numerico-hero-copy .etichetta,
.numerico-sezione-titolo .etichetta,
.procedura-header .etichetta {
    margin-bottom: 4px;
    font-size: 10px;
}

.numerico-hero-copy h1 {
    margin: 0;
    color: var(--prisma-ink);
    font-size: clamp(30px, 4vw, 43px);
    line-height: 1.05;
}

.numerico-hero-copy > p:last-child {
    margin: 7px 0 0;
    color: var(--prisma-muted);
    font-size: 14px;
}

.numerico-volante {
    min-width: 90px;
    padding: 10px 13px;
    border: 1px solid #9eb2cc;
    border-radius: 12px;
    color: var(--prisma-navy);
    background: var(--prisma-blue-soft);
    cursor: pointer;
}

.numerico-volante small,
.numerico-volante strong {
    display: block;
}

.numerico-volante small {
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.numerico-volante strong {
    margin-top: 2px;
    font-size: 25px;
}

.numerico-volante.da-impostare {
    border-style: dashed;
    color: #7b522e;
    background: #fff7e8;
}

.numerico-principali,
.numerico-frequenti,
.numerico-dettagli {
    margin-top: 17px;
}

.numerico-sezione-titolo {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin: 0 2px 10px;
}

.numerico-sezione-titolo.compatto {
    margin-bottom: 8px;
}

.numerico-sezione-titolo h2 {
    margin: 0;
    color: #2a3e57;
    font-size: 21px;
}

.numerico-sezione-titolo > span {
    color: #6f7c8d;
    font-size: 11px;
    font-weight: 700;
}

.numerico-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.numerico-card-rapida {
    min-width: 0;
    padding: 13px;
    border: 1px solid var(--prisma-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(38, 48, 61, .035);
}

.numerico-card-rapida label {
    min-height: 27px;
    display: block;
    color: #747d88;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1.25;
    text-transform: uppercase;
}

.numerico-contatore {
    display: grid;
    grid-template-columns: 39px minmax(0, 1fr) 43px;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
}

.numerico-contatore button,
.numerico-riga-controlli button,
.procedura-counter button {
    min-width: 38px;
    height: 40px;
    border: 0;
    border-radius: 9px;
    color: #273f5d;
    background: #edf1f6;
    cursor: pointer;
    font-size: 17px;
    font-weight: 900;
    touch-action: manipulation;
}

.numerico-contatore button.principale,
.numerico-riga-controlli button.principale,
.procedura-counter button.principale {
    color: #fff;
    background: var(--prisma-blue);
}

.numerico-contatore output {
    min-width: 0;
    color: var(--prisma-ink);
    text-align: center;
    font-size: 23px;
    font-weight: 900;
}

.numerico-frequenti-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.numerico-riga {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px 13px;
    border-bottom: 1px solid #edf1f5;
    background: #fff;
}

.numerico-riga:last-child {
    border-bottom: 0;
}

.numerico-riga.compatta {
    border: 1px solid var(--prisma-line);
    border-radius: 12px;
    box-shadow: 0 7px 20px rgba(38, 48, 61, .03);
}

.numerico-riga.attiva {
    background: #f7faff;
}

.numerico-riga.livello-1 {
    padding-left: 35px;
    background: #fbfcfe;
}

.numerico-riga.livello-2 {
    padding-left: 58px;
    background: #f8fafc;
}

.numerico-label {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 9px;
}

.numerico-label span {
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: var(--prisma-blue);
    background: var(--prisma-blue-soft);
    font-size: 11px;
    font-weight: 900;
}

.numerico-label strong {
    overflow: hidden;
    color: #42526a;
    font-size: 13px;
    line-height: 1.3;
    text-overflow: ellipsis;
}

.numerico-riga-controlli {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

.numerico-valore {
    width: 58px;
    height: 40px;
    padding: 4px;
    border: 2px solid #d6dee8;
    border-radius: 9px;
    color: var(--prisma-ink);
    background: #fff;
    text-align: center;
    font-size: 18px;
    font-weight: 900;
}

.numerico-riga.attiva .numerico-valore {
    border-color: #7fa9e7;
    color: #174a99;
}

.numerico-filtro {
    min-height: 38px;
    padding: 7px 11px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    color: #53647a;
    background: #fff;
    cursor: pointer;
    font-size: 11px;
    font-weight: 800;
}

.numerico-filtro[aria-pressed="true"] {
    border-color: #9eb8dd;
    color: #174a99;
    background: var(--prisma-blue-soft);
}

.numerico-ricerca-wrap {
    position: relative;
    margin-bottom: 10px;
}

.numerico-ricerca-wrap span {
    position: absolute;
    top: 50%;
    left: 15px;
    z-index: 1;
    color: #748397;
    font-size: 20px;
    transform: translateY(-50%);
    pointer-events: none;
}

.numerico-ricerca-wrap input {
    width: 100%;
    height: 47px;
    padding: 0 15px 0 47px;
    border: 2px solid #d7dee9;
    border-radius: 11px;
    color: #243850;
    background: #fff;
    outline: none;
    font-size: 14px;
    font-weight: 650;
}

.numerico-ricerca-wrap input:focus {
    border-color: var(--prisma-blue);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, .09);
}

.numerico-gruppo {
    margin: 8px 0;
    overflow: hidden;
    border: 1px solid var(--prisma-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(38, 48, 61, .03);
}

.numerico-gruppo summary {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    color: #2a3e57;
    cursor: pointer;
    list-style: none;
    font-size: 16px;
    font-weight: 850;
}

.numerico-gruppo summary::-webkit-details-marker {
    display: none;
}

.numerico-gruppo summary small {
    color: #4263eb;
    font-size: 10px;
    font-weight: 800;
}

.numerico-righe {
    border-top: 1px solid #edf1f5;
}

.numerico-vuoto {
    padding: 25px;
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    color: #64748b;
    background: #fff;
    text-align: center;
    font-weight: 750;
}

.numerico-actions {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 30;
    padding: 10px max(12px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
    border-top: 1px solid var(--prisma-line);
    background: rgba(250, 248, 243, .96);
    backdrop-filter: blur(14px);
}

.numerico-actions-inner {
    max-width: 1100px;
    display: grid;
    grid-template-columns: minmax(150px, .8fr) minmax(220px, 1.6fr);
    gap: 9px;
    margin: auto;
}

.numerico-action,
.numerico-modal-actions button,
.procedura-actions button,
.procedura-finali button {
    min-height: 47px;
    padding: 10px 14px;
    border-radius: 10px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 850;
}

.numerico-action.secondaria,
.numerico-modal-actions .secondaria,
.procedura-actions .secondaria,
.procedura-finali .secondaria {
    border: 1px solid #ccd6e3;
    color: #244264;
    background: #f4f7fb;
}

.numerico-action.primaria,
.numerico-modal-actions .primaria,
.procedura-actions .primaria {
    border: 1px solid var(--prisma-blue);
    color: #fff;
    background: var(--prisma-blue);
}

.numerico-overlay[hidden] {
    display: none !important;
}

.numerico-overlay {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(27, 40, 58, .52);
    backdrop-filter: blur(7px);
}

.numerico-modal {
    width: min(720px, 100%);
    max-height: min(90vh, 850px);
    overflow: auto;
    padding: 22px;
    border: 1px solid #d5dce5;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 28px 70px rgba(0, 0, 0, .24);
}

.numerico-modal.piccola {
    width: min(460px, 100%);
}

.numerico-modal.piccola h2 {
    margin: 0 0 7px;
    color: #243850;
    font-size: 24px;
}

.numerico-modal.piccola p {
    margin: 0 0 15px;
    color: #64748b;
}

.numerico-modal.piccola input {
    width: 100%;
    padding: 14px 15px;
    border: 2px solid #cfd9e9;
    border-radius: 11px;
    color: #243850;
    background: #fff;
    outline: none;
    font-size: 22px;
    font-weight: 900;
}

.numerico-modal-actions,
.procedura-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    margin-top: 15px;
}

.procedura-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.procedura-header h2 {
    margin: 0;
    color: #243850;
    font-size: 26px;
}

.procedura-chiudi {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    color: #53647a;
    background: #eef2f7;
    cursor: pointer;
    font-size: 24px;
}

.procedura-progress {
    display: flex;
    gap: 7px;
    margin: 15px 0 18px;
}

.procedura-progress i {
    height: 5px;
    flex: 1;
    border-radius: 5px;
    background: #d7dee8;
}

.procedura-progress i.attivo {
    background: var(--prisma-blue);
}

.procedura-step-title span {
    color: #4263eb;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.procedura-step-title h3 {
    margin: 4px 0 5px;
    color: #2a3e57;
    font-size: 20px;
}

.procedura-step-title p {
    margin: 0 0 14px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.45;
}

.procedura-domande {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.procedura-domanda {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid #e0e5ec;
    border-radius: 11px;
    background: #fafbfd;
}

.procedura-domanda > div:first-child {
    min-width: 0;
    flex: 1;
}

.procedura-domanda span {
    display: block;
    margin-bottom: 3px;
    color: #4263eb;
    font-size: 9px;
    font-weight: 850;
    text-transform: uppercase;
}

.procedura-domanda strong {
    display: block;
    color: #42526a;
    font-size: 12px;
    line-height: 1.3;
}

.procedura-counter {
    display: flex;
    align-items: center;
    gap: 5px;
}

.procedura-counter input {
    width: 46px;
    height: 40px;
    padding: 3px;
    border: 2px solid #d6dee8;
    border-radius: 9px;
    color: #172033;
    background: #fff;
    text-align: center;
    font-size: 17px;
    font-weight: 900;
}

.procedura-avvisi {
    display: grid;
    gap: 8px;
}

.procedura-avvisi > div {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px;
    border: 1px solid #ecc9c6;
    border-radius: 10px;
    color: #7e3431;
    background: #fff5f4;
    font-size: 12px;
    line-height: 1.4;
}

.procedura-avvisi b {
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #c94c45;
}

.procedura-ok {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    border: 1px solid #b9dbc9;
    border-radius: 12px;
    color: #2f6849;
    background: #f1faf5;
}

.procedura-ok > b {
    width: 40px;
    height: 40px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #3b9968;
    font-size: 20px;
}

.procedura-ok strong,
.procedura-ok span {
    display: block;
}

.procedura-ok span {
    margin-top: 3px;
    font-size: 12px;
}

.procedura-anteprima {
    width: 100%;
    min-height: 270px;
    resize: vertical;
    padding: 15px;
    border: 1px solid #d5dde7;
    border-radius: 11px;
    color: #253a52;
    background: #f8fafc;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 14px;
    line-height: 1.6;
}

.procedura-finali {
    display: flex;
    justify-content: space-between;
    gap: 9px;
    margin-top: 10px;
}

.procedura-finali .pericolo {
    border: 1px solid #dfb4b0;
    color: #9f3c38;
    background: #fff4f3;
}

.numerico-toast {
    position: fixed;
    bottom: 91px;
    left: 50%;
    z-index: 150;
    max-width: 90vw;
    padding: 11px 16px;
    border-radius: 10px;
    color: #fff;
    background: #243850;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 14px);
    transition: .18s ease;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
}

.numerico-toast.mostra {
    opacity: 1;
    transform: translate(-50%, 0);
}

.pagina-numerico .wrap {
    max-width: 1160px;
    padding: 20px 20px 125px;
}

.pagina-numerico .topbar {
    margin-bottom: 12px;
}

.pagina-numerico .hero {
    padding: 22px;
    border: 1px solid var(--prisma-line);
    border-radius: 15px;
    color: var(--prisma-ink);
    background: #fff;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.pagina-numerico .hero-icon {
    width: 68px;
    height: 68px;
    padding: 9px;
    border-radius: 13px;
    background: var(--prisma-blue-soft);
}

.pagina-numerico .hero h1 {
    font-size: clamp(30px, 4vw, 44px);
}

.pagina-numerico .hero p {
    color: var(--prisma-muted);
    font-size: 14px;
}

.pagina-numerico .volante-badge {
    border: 1px solid #9eb2cc;
    color: var(--prisma-navy);
    background: var(--prisma-blue-soft);
    box-shadow: none;
}

.pagina-numerico .sum-card,
.pagina-numerico .group,
.pagina-numerico .solo-compilati,
.pagina-numerico .ricerca-voce {
    border-color: var(--prisma-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(38, 48, 61, .035);
}

.pagina-numerico .sum-label {
    color: #747d88;
    font-size: 10px;
}

.pagina-numerico .sum-btn,
.pagina-numerico .btn {
    border-radius: 9px;
}

.pagina-numerico .sum-btn.quick-plus,
.pagina-numerico .plus.main {
    background: var(--prisma-blue);
}

.pagina-numerico .sum-value,
.pagina-numerico .value {
    border-color: #d5d1c8;
    border-radius: 9px;
    color: var(--prisma-ink);
}

.pagina-numerico .group summary {
    color: #2a3e57;
    font-size: 18px;
}

.pagina-numerico .num {
    border-radius: 8px;
    color: var(--prisma-blue);
    background: var(--prisma-blue-soft);
}

.pagina-numerico .actions {
    border-top-color: var(--prisma-line);
    background: rgba(250, 248, 243, .96);
}

.pagina-numerico .action,
.pagina-numerico .modal,
.pagina-numerico .modal-confirm,
.pagina-numerico .modal-cancel {
    border-radius: 10px;
}

/* Straordinari */

body.pagina-straordinari-form {
    color: var(--prisma-ink);
    background: var(--prisma-canvas);
}

.pagina-straordinari-form .stra-wrap {
    max-width: 1100px;
    padding: 20px 20px 52px;
}

.pagina-straordinari-form .stra-hero {
    padding: 22px;
    border: 1px solid var(--prisma-line);
    border-radius: 15px;
    color: var(--prisma-ink);
    background: #fff;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.pagina-straordinari-form .stra-hero img {
    width: 70px;
    height: 70px;
    padding: 9px;
    border-radius: 13px;
    background: var(--prisma-blue-soft);
}

.pagina-straordinari-form .stra-hero h1 {
    font-size: clamp(30px, 4vw, 44px);
}

.pagina-straordinari-form .stra-hero p {
    color: var(--prisma-muted);
    font-size: 14px;
}

.pagina-straordinari-form .stra-card,
.pagina-straordinari-form .stra-actions {
    padding: 20px;
    border-color: var(--prisma-line);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .04);
}

.pagina-straordinari-form .stra-card h2 {
    color: #2a3e57;
    font-size: 19px;
}

.pagina-straordinari-form .stra-field input,
.pagina-straordinari-form .stra-field textarea {
    border-color: #d4d0c7;
    border-radius: 10px;
    color: #243850;
    background: #fff;
    font-size: 16px;
}

.pagina-straordinari-form .segmenti {
    gap: 9px;
}

.pagina-straordinari-form .seg,
.pagina-straordinari-form .rapido,
.pagina-straordinari-form .operatori-rapidi .rapido {
    border-color: #d6d2c9;
    border-radius: 10px;
    color: #3b4d64;
    background: #faf9f6;
}

.pagina-straordinari-form .operatori-rapidi .rapido.attivo,
.pagina-straordinari-form .rapido.attivo {
    border-color: var(--prisma-blue);
    color: #fff;
    background: var(--prisma-blue);
}

.pagina-straordinari-form .orari-box {
    border-color: #d8d4ca;
    border-radius: 11px;
    background: #f6f4ef;
}

.pagina-straordinari-form .btn-primary,
.pagina-straordinari-form .btn-save,
.pagina-straordinari-form .btn-end,
.pagina-straordinari-form .btn-secondary {
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    box-shadow: none;
}

.pagina-straordinari-form .btn-save {
    background: var(--prisma-green);
}

.pagina-straordinari-form .btn-end {
    background: var(--prisma-navy);
}

/* Responsive */

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

    .login-layout {
        grid-template-columns: minmax(0, 1fr) minmax(330px, 410px);
    }

    .login-presentazione {
        padding: 36px 32px;
    }
}

@media (max-width: 720px) {
    .login-layout {
        grid-template-columns: 1fr;
        margin: 14px auto;
    }

    .login-presentazione {
        min-height: 330px;
        padding: 28px 24px;
    }

    .login-presentazione-testo {
        margin: 38px 0;
    }

    .login-presentazione-testo h1 {
        font-size: clamp(36px, 10vw, 50px);
    }

    .login-card {
        padding: 30px 24px;
    }
}

@media (max-width: 620px) {
    .pagina-home {
        padding-top: 14px;
    }

    .home-contenitore,
    .contenitore,
    body.pagina-verbale .contenitore {
        width: calc(100% - 24px);
    }

    .barra-utente-globale {
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
        padding: 10px;
    }

    .barra-utente-globale::before {
        width: 100%;
        margin: 0 0 5px;
    }

    .utente-identita {
        margin-left: 0;
        margin-right: auto;
    }

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

    .home-intestazione {
        margin-top: 6px;
    }

    .intestazione-altri-verbali {
        align-items: flex-start;
        flex-direction: row;
        text-align: left;
    }

    .testo-intestazione-altri .etichetta,
    .testo-intestazione-altri h1,
    .testo-intestazione-altri .home-sottotitolo {
        text-align: left;
    }

    .barra-superiore::before {
        display: none;
    }

    .scheda,
    .pagina-verbale form[data-verbale-modello] .scheda {
        padding: 18px 15px;
        border-radius: 13px;
    }

    .archivio-hero,
    .profilo-hero {
        align-items: flex-start;
    }

    .pagina-numerico .wrap,
    .pagina-straordinari-form .stra-wrap {
        padding-right: 10px;
        padding-left: 10px;
    }

    .pagina-numerico .hero,
    .pagina-straordinari-form .stra-hero {
        align-items: flex-start;
        padding: 18px;
    }

    .pagina-numerico .hero-icon,
    .pagina-straordinari-form .stra-hero img {
        width: 58px;
        height: 58px;
    }

    .pagina-numerico .hero-text {
        padding-right: 68px;
    }
}

@media (max-width: 760px) {
    .numerico-wrap {
        width: calc(100% - 18px);
        padding-top: 10px;
    }

    .numerico-hero {
        align-items: flex-start;
        padding: 17px;
    }

    .numerico-hero-icon {
        width: 56px;
        height: 56px;
    }

    .numerico-hero-copy > p:last-child {
        display: none;
    }

    .numerico-volante {
        min-width: 70px;
        padding: 8px;
    }

    .numerico-card-grid,
    .numerico-frequenti-grid,
    .procedura-domande {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .numerico-riga {
        grid-template-columns: minmax(0, 1fr);
        gap: 9px;
    }

    .numerico-riga-controlli {
        justify-content: flex-start;
        padding-left: 37px;
    }

    .numerico-riga.livello-1 {
        padding-left: 24px;
    }

    .numerico-riga.livello-2 {
        padding-left: 39px;
    }

    .numerico-actions-inner {
        grid-template-columns: .8fr 1.4fr;
    }
}

@media (max-width: 520px) {
    .numerico-topbar {
        align-items: center;
    }

    .numerico-salvataggio {
        max-width: 145px;
        text-align: right;
    }

    .numerico-hero-copy h1 {
        font-size: 25px;
    }

    .numerico-card-grid,
    .numerico-frequenti-grid,
    .procedura-domande {
        grid-template-columns: 1fr;
    }

    .numerico-sezione-titolo {
        align-items: flex-start;
    }

    .numerico-sezione-titolo > span {
        display: none;
    }

    .numerico-riga.compatta {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .numerico-riga.compatta .numerico-riga-controlli {
        padding-left: 0;
    }

    .numerico-riga-controlli button[data-delta="2"],
    .numerico-riga-controlli button[data-delta="3"] {
        display: none;
    }

    .numerico-overlay {
        align-items: flex-end;
        padding: 8px;
    }

    .numerico-modal {
        max-height: 92vh;
        padding: 18px 15px calc(18px + env(safe-area-inset-bottom));
        border-radius: 16px 16px 11px 11px;
    }

    .procedura-finali {
        flex-direction: column;
    }
}

/* Rifiniture finali: ricerca Home e pulsanti Modifica cartella. */
.ricerca-verbali-campo .ricerca-verbali-icona{
    left:16px;
    z-index:2;
}
.ricerca-verbali-campo input[type="search"]{
    box-sizing:border-box;
    padding-left:50px!important;
    padding-right:50px!important;
    text-indent:0!important;
}
#formModificaCartella .azioni-modal-intervento{
    display:flex;
    align-items:stretch;
    justify-content:flex-end;
    gap:9px;
}
#formModificaCartella .azioni-modal-intervento button{
    min-width:0;
    white-space:nowrap;
}
#annullaModificaCartella{
    flex:0 0 auto;
    min-width:92px!important;
}
#formModificaCartella .azioni-modal-intervento .btn-primario{
    flex:0 1 170px;
    padding-inline:10px;
}
@media(max-width:430px){
    #formModificaCartella .azioni-modal-intervento{
        grid-template-columns:none;
    }
    #formModificaCartella .azioni-modal-intervento .btn-primario{
        flex-basis:145px;
        font-size:14px;
    }
}

/* Perquisizione art. 4: opzione veicolo e periodo delle operazioni. */
.opzione-veicolo-art4 {
    margin-top: 18px;
}

.opzione-veicolo-art4[hidden] {
    display: none !important;
}

.opzione-veicolo-art4 > label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    min-height: 82px;
    margin: 0;
    padding: 14px 16px;
    border: 1px solid #b9cceb;
    border-radius: 18px;
    background: linear-gradient(135deg, #f7faff, #edf4ff);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.opzione-veicolo-art4 > label:has(input:checked) {
    border-color: #2563eb;
    background: linear-gradient(135deg, #eaf2ff, #dceaff);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .11);
}

.opzione-veicolo-art4 input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.opzione-veicolo-icona {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: #ffffff;
    font-size: 26px;
    box-shadow: 0 5px 15px rgba(30, 64, 175, .10);
}

.opzione-veicolo-testo {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.opzione-veicolo-testo strong {
    font-size: 17px;
    line-height: 1.25;
}

.opzione-veicolo-testo small {
    color: #64748b;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.35;
}

.opzione-veicolo-stato {
    width: 28px;
    height: 28px;
    border: 2px solid #9eb3d2;
    border-radius: 999px;
    background: #ffffff;
}

.opzione-veicolo-art4 input:checked ~ .opzione-veicolo-stato {
    border-color: #2563eb;
    background: #2563eb;
    box-shadow: inset 0 0 0 6px #ffffff;
}

.periodo-operazioni {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 4px;
}

.periodo-operazioni-gruppo {
    min-width: 0;
    padding: 16px;
    border: 1px solid #d8e2ef;
    border-radius: 18px;
    background: #f8fafc;
}

.periodo-operazioni-gruppo h3 {
    margin: 0 0 14px;
    font-size: 17px;
}

.periodo-operazioni-gruppo .campo {
    margin-bottom: 0;
}

@media (max-width: 700px) {
    .periodo-operazioni {
        grid-template-columns: 1fr;
    }

    .opzione-veicolo-art4 > label {
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 10px;
        padding: 13px;
    }

    .opzione-veicolo-icona {
        width: 42px;
        height: 42px;
        font-size: 23px;
    }
}

/* Login P.R.I.S.M.A. */
.pagina-login {
    background:
        radial-gradient(circle at 50% 0%, rgba(18, 91, 255, .20), transparent 42%),
        linear-gradient(180deg, #eaf1fb 0%, #e3eaf3 100%);
}

.pagina-login .login-card {
    overflow: hidden;
    padding-top: 0;
}

.login-brand {
    display: grid;
    justify-items: center;
    gap: 14px;
    margin: 0 -30px 28px;
    padding: 28px 30px 24px;
    border-bottom: 1px solid rgba(68, 151, 255, .35);
    background:
        radial-gradient(circle at 50% 30%, rgba(20, 100, 255, .22), transparent 42%),
        linear-gradient(145deg, #010716 0%, #06142f 58%, #020816 100%);
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .05);
}

.login-brand .login-stemma {
    width: 184px;
    height: 184px;
    margin: 0;
    border-radius: 26px;
    filter: drop-shadow(0 18px 28px rgba(0, 0, 0, .35));
}

.login-brand-copy {
    display: grid;
    gap: 7px;
    max-width: 390px;
    color: #fff;
    text-align: center;
}

.login-brand-copy strong {
    font-size: 25px;
    letter-spacing: .18em;
}

.login-brand-copy span {
    color: #b9cff7;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
}

.pagina-login .login-intestazione .etichetta {
    color: #2563eb;
}

.pagina-login .login-intestazione h1 {
    font-size: clamp(28px, 7vw, 36px);
}

@media (max-width: 600px) {
    .login-brand {
        margin-right: -22px;
        margin-left: -22px;
        padding: 23px 22px 21px;
    }

    .login-brand .login-stemma {
        width: 154px;
        height: 154px;
        border-radius: 22px;
    }

    .login-brand-copy strong {
        font-size: 21px;
    }

    .login-brand-copy span {
        font-size: 11px;
    }
}

@media (max-width: 520px) {
    .pagina-home {
        padding-top: 18px;
    }

    .home-intestazione {
        margin-bottom: 20px;
    }

    .home-sottotitolo {
        font-size: 16px;
    }

    .griglia-verbali {
        grid-template-columns: 1fr 1fr;
        gap: 11px;
    }

    .card-verbale {
        min-height: 245px;
        border-radius: 20px;
    }

    .card-immagine {
        min-height: 145px;
        padding: 10px;
    }

    .card-immagine img {
        height: 130px;
    }

    .card-immagine-placeholder span {
        width: 90px;
        height: 90px;
        border-width: 2px;
        border-radius: 24px;
        font-size: 48px;
    }

    .card-testo {
        padding: 13px;
    }

    .card-categoria {
        font-size: 9px;
        letter-spacing: 0.7px;
    }

    .card-testo h2 {
        font-size: 16px;
    }

    .card-testo span {
        font-size: 12px;
    }

    #modalArchivio.modal-archivio {
        align-items: flex-end;
        padding: 0;
    }

    #modalArchivio .modal-archivio-contenuto {
        max-height: 92vh;
        padding: 20px;
        border-radius: 24px 24px 0 0;
    }

    #modalArchivio .riga-soggetto {
        align-items: flex-start;
    }

    #modalArchivio .azioni-riga-soggetto {
        flex-direction: column;
    }
}


/* SOMMARIE INFORMAZIONI */

.nota-campo {
    margin: -6px 0 18px;
    padding: 11px 13px;
    border-radius: 12px;
    background: #eff6ff;
    color: #1e40af;
    font-size: 13px;
    line-height: 1.45;
}

.scelta-neutra {
    border-style: dashed;
    background: #ffffff;
    color: #64748b;
}

.textarea-dichiarazioni {
    min-height: 360px;
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;
}

.info-impaginazione {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    background: #eff6ff;
}

.info-impaginazione strong {
    flex: 0 0 auto;
    color: #1d4ed8;
    font-size: 13px;
}

.info-impaginazione span {
    color: #475569;
    font-size: 13px;
    line-height: 1.45;
}

@media (max-width: 560px) {
    .info-impaginazione {
        flex-direction: column;
    }
}


/* Elezione di domicilio */
.griglia-tre{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.griglia-quattro{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.span-due{grid-column:span 2}
.scelte-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.scelte-card label,.interruttore-riga{display:flex;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--bordo,#d9e2ec);border-radius:14px;background:#f8fafc;font-weight:700;cursor:pointer}
.scelte-card input,.interruttore-riga input{width:auto;min-height:auto;accent-color:#2563eb}
.blocco-condizionale{margin-top:16px;padding:16px;border:1px solid #dbe5f0;border-radius:16px;background:#f8fafc}
.blocco-condizionale h3{margin-top:0}
.btn-link-esterno{display:flex;align-items:center;justify-content:center;min-height:50px;padding:12px 16px;border-radius:14px;background:#172033;color:#fff;text-decoration:none;font-weight:800;text-align:center}
.btn-link-esterno:hover{background:#263550}
.facoltativo{font-size:.72em;color:#64748b;font-weight:600}
.azioni-finali{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.azioni-finali .messaggio-generazione{grid-column:1/-1}
textarea{width:100%;padding:12px 14px;border:1px solid #cfd8e3;border-radius:12px;font:inherit;resize:vertical}
@media(max-width:760px){.griglia-tre,.griglia-quattro{grid-template-columns:1fr}.span-due{grid-column:auto}.azioni-finali{grid-template-columns:1fr}}


.btn-nuovo-verbale{
    min-height:50px;
    padding:12px 18px;
    border:1px solid #cbd5e1;
    border-radius:14px;
    background:#f8fafc;
    color:#334155;
    font-weight:800;
    cursor:pointer;
}
.btn-nuovo-verbale:hover{
    background:#eef2f7;
}


/* Archivio interventi */
.archivio-hero{display:flex;align-items:center;gap:22px}
.archivio-hero img{width:112px;height:112px;object-fit:contain;filter:drop-shadow(0 10px 16px rgba(15,23,42,.12))}
.archivio-testata-sezione,.dettaglio-intervento-header{display:flex;align-items:center;justify-content:space-between;gap:18px}
.archivio-testata-sezione h2,.dettaglio-intervento-header h2{margin:3px 0}
.azioni-archivio-form{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
.ricerca-interventi{max-width:300px}
.lista-interventi{display:grid;gap:12px;margin-top:18px}
.card-intervento{border:1px solid #dbe4ef;border-radius:17px;background:#f8fafc;overflow:hidden}
.card-intervento.attivo{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.10)}
.card-intervento-apri{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;width:100%;padding:16px;border:0;background:transparent;text-align:left;cursor:pointer}
.cartella-icona{font-size:34px}
.card-intervento-contenuto{display:grid;gap:3px}
.card-intervento-contenuto strong{font-size:17px;color:#172033}
.card-intervento-contenuto small{color:#64748b}
.card-intervento-contenuto em{font-size:11px;color:#2563eb;font-style:normal;font-weight:850;letter-spacing:.5px}
.azioni-cartella{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}
.btn-pericolo{background:#fee2e2!important;color:#b91c1c!important}
.lista-verbali-intervento{display:grid;gap:10px}
.riga-verbale-archivio{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;border:1px solid #e0e7ef;border-radius:15px;background:#f8fafc}
.riga-verbale-info{display:flex;align-items:center;gap:12px;min-width:0}
.riga-verbale-info>div{display:grid;gap:3px;min-width:0}
.riga-verbale-info span,.riga-verbale-info small{color:#64748b;overflow:hidden;text-overflow:ellipsis}
.pdf-icona{display:grid;place-items:center;min-width:45px;height:45px;border-radius:11px;background:#dc2626;color:#fff!important;font-size:11px;font-weight:900}
.pdf-icona.bozza-icona{min-width:54px;background:#a27842;color:#fff!important;font-size:9px;letter-spacing:.5px}
.riga-verbale-archivio.verbale-in-bozza{border-color:#ddcfb9;background:#fffaf1}
.riga-verbale-azioni{display:flex;gap:7px;flex-wrap:wrap}
.banner-intervento-attivo{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:16px 0;padding:14px 16px;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc}
.banner-intervento-attivo.attivo{border-style:solid;border-color:#93c5fd;background:#eff6ff}
.banner-intervento-attivo div{display:grid;gap:2px}
.banner-intervento-attivo p{margin:0;color:#64748b;font-size:10px;font-weight:900;letter-spacing:1px}
.banner-intervento-attivo strong{font-size:15px}
.banner-intervento-attivo span{color:#64748b;font-size:12px}
.banner-intervento-attivo a{padding:9px 12px;border-radius:10px;background:#172033;color:#fff;text-decoration:none;font-size:13px;font-weight:800}
.azioni-modal-intervento{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}
.avviso-modifica-archivio{display:grid;gap:3px;margin-bottom:16px;padding:13px 15px;border:1px solid #f59e0b;border-radius:14px;background:#fffbeb;color:#92400e}
.modal-intervento-generazione{display:flex!important}
@media(max-width:760px){
    .archivio-hero{align-items:flex-start}.archivio-hero img{width:78px;height:78px}
    .archivio-testata-sezione,.dettaglio-intervento-header,.riga-verbale-archivio{align-items:stretch;flex-direction:column}
    .ricerca-interventi{max-width:none}
    .riga-verbale-azioni button{flex:1}
    .banner-intervento-attivo{align-items:stretch;flex-direction:column}
}


/* Correzioni archivio interventi v1.3 */
body.modal-aperta{
    overflow:hidden;
}

.modal-intervento-generazione{
    position:fixed;
    inset:0;
    z-index:10000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(15,23,42,.55);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.modal-intervento-generazione .modal-archivio-contenuto{
    width:min(620px,100%);
    max-height:calc(100vh - 48px);
    overflow:auto;
    padding:24px;
    border:1px solid rgba(255,255,255,.7);
    border-radius:22px;
    background:#fff;
    box-shadow:0 28px 80px rgba(15,23,42,.34);
    animation:aperturaModalIntervento .18s ease-out;
}

.modal-intervento-generazione .modal-archivio-header{
    margin-bottom:18px;
}

.modal-intervento-generazione .modal-archivio-header h2{
    margin:5px 0 7px;
    font-size:25px;
}

.modal-intervento-generazione .modal-archivio-header p:last-child{
    margin:0;
    color:#64748b;
}

.modal-intervento-generazione .azioni-modal-intervento button{
    min-width:145px;
}

.scelta-destinazione-pdf{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin:4px 0 18px;
}

.scelta-destinazione-pdf button{
    min-height:54px;
    padding:11px 14px;
    border:1px solid #cbd5e1;
    border-radius:14px;
    background:#f8fafc;
    color:#172033;
    font-weight:850;
    cursor:pointer;
}

.scelta-destinazione-pdf button.attivo{
    border-color:#2563eb;
    background:#2563eb;
    color:#fff;
    box-shadow:0 8px 20px rgba(37,99,235,.20);
}

.pannello-destinazione-pdf[hidden]{display:none!important}
.istruzione-cartelle-esistenti{margin:0 0 12px;color:#64748b}
.lista-cartelle-esistenti{display:grid;gap:9px;max-height:330px;overflow:auto;padding:2px}
.cartella-esistente-rapida{display:grid;gap:4px;width:100%;padding:14px 16px;border:1px solid #dbe4ef;border-radius:14px;background:#f8fafc;color:#172033;text-align:left;cursor:pointer}
.cartella-esistente-rapida:hover,.cartella-esistente-rapida:focus-visible{border-color:#2563eb;background:#eff6ff;outline:none}
.cartella-esistente-rapida strong{font-size:15px}
.cartella-esistente-rapida span{color:#64748b;font-size:12px}
.nessuna-cartella-esistente{margin:0;padding:16px;border-radius:14px;background:#f8fafc;color:#64748b;text-align:center}

@keyframes aperturaModalIntervento{
    from{opacity:0;transform:translateY(12px) scale(.98)}
    to{opacity:1;transform:translateY(0) scale(1)}
}

.banner-intervento-attivo.senza-intervento{
    border-style:dashed;
    border-color:#cbd5e1;
    background:#f8fafc;
}

.banner-intervento-attivo.senza-intervento p,
.banner-intervento-attivo.senza-intervento span{
    color:#64748b;
}

.btn-disattiva-intervento{
    border-color:#f59e0b!important;
    background:#fffbeb!important;
    color:#92400e!important;
}

@media(max-width:600px){
    .modal-intervento-generazione{
        align-items:flex-end;
        padding:12px;
    }

    .modal-intervento-generazione .modal-archivio-contenuto{
        width:100%;
        max-height:88vh;
        padding:20px;
        border-radius:22px 22px 16px 16px;
    }

    .modal-intervento-generazione .azioni-modal-intervento{
        display:grid;
        grid-template-columns:1fr 1fr;
    }

    .modal-intervento-generazione .azioni-modal-intervento button{
        min-width:0;
    }

    .scelta-destinazione-pdf{
        grid-template-columns:1fr;
    }
}


/* Verbale generico - scelta rapida verbalizzanti */
.pagina-verbale-generico .campo-larghezza-intera{grid-column:1/-1}
.pagina-verbale-generico .facoltativo{font-size:.72em;color:#64748b;font-weight:750}
.verbalizzanti-generico{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.25fr) minmax(90px,.7fr);gap:9px;margin-top:8px}
.verbalizzanti-generico button{min-height:54px;padding:10px 12px;border:1px solid #93c5fd;border-radius:14px;background:#eff6ff;color:#172033;font:inherit;font-weight:850;line-height:1.2;cursor:pointer}
.verbalizzanti-generico button.selezionato{border-color:#2563eb;background:#2563eb;color:#fff;box-shadow:0 8px 20px rgba(37,99,235,.18)}
#operatoriPersonalizzati{margin-top:14px}
@media(max-width:680px){
    .verbalizzanti-generico{grid-template-columns:1fr 1fr}
    .verbalizzanti-generico button:last-child{grid-column:1/-1}
    .pagina-verbale-generico .campo-larghezza-intera{grid-column:auto}
}

/* Accesso e profilo operatore */
.pagina-login{
    min-height:100vh;
    margin:0;
    background:
        radial-gradient(circle at top, rgba(37,99,235,.12), transparent 38%),
        linear-gradient(180deg,#eef3f9 0%,#e7edf5 100%);
}

.login-layout{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:28px;
}

.login-card{
    width:min(470px,100%);
    padding:30px;
    border:1px solid rgba(255,255,255,.78);
    border-radius:28px;
    background:rgba(255,255,255,.94);
    box-shadow:0 28px 80px rgba(15,23,42,.17);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
}

.login-stemma{
    display:block;
    width:145px;
    height:145px;
    margin:0 auto 18px;
    object-fit:contain;
    filter:drop-shadow(0 12px 18px rgba(15,23,42,.16));
}

.login-intestazione{
    margin-bottom:24px;
    text-align:center;
}

.login-intestazione h1{
    margin:4px 0 8px;
    font-size:31px;
}

.login-intestazione p:last-child{
    margin:0;
    color:#64748b;
}

.login-form{
    display:grid;
    gap:15px;
}

.campo-password{
    position:relative;
}

.campo-password input{
    padding-right:54px;
}

.campo-password button{
    position:absolute;
    top:50%;
    right:7px;
    width:42px;
    min-height:40px;
    transform:translateY(-50%);
    border:0;
    border-radius:10px;
    background:transparent;
    cursor:pointer;
}

.login-submit{
    min-height:53px;
    margin-top:5px;
    font-size:17px;
}

.messaggio-login{
    min-height:22px;
    margin:0;
    color:#b91c1c;
    text-align:center;
    font-weight:700;
}

.login-footer{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:22px;
    padding-top:17px;
    border-top:1px solid #e2e8f0;
    color:#64748b;
    font-size:11px;
}

.barra-utente-globale{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin:13px 0 16px;
    padding:11px 14px;
    border:1px solid #dbe4ef;
    border-radius:15px;
    background:rgba(255,255,255,.88);
}

.utente-identita{
    display:flex;
    align-items:center;
    gap:10px;
}

.utente-avatar{
    display:grid;
    place-items:center;
    width:40px;
    height:40px;
    border-radius:12px;
    background:#eff6ff;
}

.utente-identita div{
    display:grid;
    gap:1px;
}

.utente-identita small{
    color:#64748b;
    font-size:9px;
    font-weight:900;
    letter-spacing:1px;
}

.utente-identita strong{
    font-size:13px;
}

.utente-azioni{
    display:flex;
    gap:7px;
}

.utente-azioni a,
.utente-azioni button{
    padding:8px 11px;
    border:1px solid #dbe4ef;
    border-radius:10px;
    background:#f8fafc;
    color:#172033;
    text-decoration:none;
    font:inherit;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
}

.profilo-hero{
    display:flex;
    align-items:center;
    gap:22px;
}

.profilo-hero img{
    width:105px;
    height:105px;
    object-fit:contain;
    filter:drop-shadow(0 10px 16px rgba(15,23,42,.13));
}

@media(max-width:600px){
    .login-layout{padding:14px}
    .login-card{padding:22px;border-radius:22px}
    .login-stemma{width:115px;height:115px}
    .login-footer{flex-direction:column;text-align:center}
    .barra-utente-globale{align-items:stretch;flex-direction:column}
    .utente-azioni a,.utente-azioni button{flex:1;text-align:center}
    .profilo-hero{align-items:flex-start}
    .profilo-hero img{width:78px;height:78px}
}


/* Correzioni login numerico v1.5 */
.login-form .campo,
.login-form .campo-password{
    width:100%;
}

.login-form input{
    width:100%;
    min-height:56px;
}

.campo-password{
    display:block;
}

.campo-password input{
    width:100%;
    padding-right:58px;
}

.campo-password button{
    top:50%;
    right:8px;
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    min-height:42px;
    padding:0;
    transform:translateY(-50%);
    border-radius:11px;
    background:#f1f5f9;
}

.campo-password button:hover{
    background:#e2e8f0;
}


/* PWA tablet offline v1.6 */
html{
    min-height:100%;
    background:#eaf0f7;
}

body{
    min-height:100%;
    overscroll-behavior-y:none;
    -webkit-tap-highlight-color:transparent;
}

button,
a,
input,
select,
textarea{
    touch-action:manipulation;
}

.pwa-installa{
    margin-left:auto;
    padding:8px 12px;
    border:1px solid #93c5fd;
    border-radius:10px;
    background:#eff6ff;
    color:#1d4ed8;
    font-size:12px;
    font-weight:850;
    cursor:pointer;
}

.pwa-aggiornamento{
    position:fixed;
    left:50%;
    bottom:18px;
    z-index:20000;
    display:flex;
    align-items:center;
    gap:14px;
    width:min(520px,calc(100% - 28px));
    padding:13px 15px;
    transform:translateX(-50%);
    border:1px solid #93c5fd;
    border-radius:15px;
    background:#eff6ff;
    color:#172033;
    box-shadow:0 18px 45px rgba(15,23,42,.22);
}

.pwa-aggiornamento span{
    flex:1;
    font-size:13px;
    font-weight:750;
}

.pwa-aggiornamento button{
    min-height:38px;
    padding:8px 12px;
    border:0;
    border-radius:10px;
    background:#2563eb;
    color:#fff;
    font-weight:850;
}

.pagina-offline{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:24px;
    background:
        radial-gradient(circle at top,rgba(37,99,235,.13),transparent 38%),
        #eaf0f7;
}

.offline-card{
    width:min(470px,100%);
    padding:30px;
    border-radius:26px;
    background:#fff;
    text-align:center;
    box-shadow:0 26px 70px rgba(15,23,42,.16);
}

.offline-card img{
    width:112px;
    height:112px;
    object-fit:contain;
}

.offline-card h1{
    margin:6px 0 10px;
}

.offline-card>p:not(.etichetta){
    color:#64748b;
    line-height:1.5;
}

.offline-card .btn-primario{
    display:block;
    margin-top:20px;
    padding:14px;
    border-radius:13px;
    color:#fff;
    text-decoration:none;
}

@media (display-mode:standalone){
    .barra-superiore{
        padding-top:max(8px,env(safe-area-inset-top));
    }

    body{
        padding-bottom:env(safe-area-inset-bottom);
    }
}

@media(min-width:700px) and (max-width:1200px){
    .contenitore{
        width:min(94%,980px);
    }

    input,
    select,
    textarea,
    button{
        font-size:17px;
    }

    input,
    select{
        min-height:52px;
    }
}


/* Pulsante secondario per cancellare i campi dei verbali */
.contenitore-azzera-campi {
    display: flex;
    justify-content: center;
    margin: 4px 0 12px;
}

.azzera-campi-riga-intera {
    grid-column: 1 / -1;
}

.btn-azzera-campi {
    width: auto;
    min-height: 36px;
    padding: 7px 15px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #f8fafc;
    color: #475569;
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
}

.btn-azzera-campi:active {
    transform: scale(0.98);
}



/* VERBALE DI ACCOMPAGNAMENTO */

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

.scelta-radio {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 52px;
    margin: 10px 0;
    padding: 12px 14px;
    border: 1px solid #d8e2ef;
    border-radius: 15px;
    background: #f8fafc;
    cursor: pointer;
}

.scelta-radio input {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    accent-color: #2563eb;
}

.scelta-radio span {
    font-weight: 700;
    color: #1e293b;
}

@media (max-width: 680px) {
    .scelta-inline {
        grid-template-columns: 1fr;
    }
}


/* CORREZIONE PAGINA ALTRI VERBALI */

.intestazione-altri-verbali {
    width: min(100%, 760px);
    margin: 0 auto 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    text-align: left;
}

.icona-pagina-altri {
    width: 96px !important;
    height: 96px !important;
    min-width: 96px;
    max-width: 96px;
    display: block;
    margin: 0;
    border-radius: 22px;
    object-fit: contain;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14);
}

.testo-intestazione-altri {
    min-width: 0;
}

.testo-intestazione-altri .etichetta,
.testo-intestazione-altri h1,
.testo-intestazione-altri .home-sottotitolo {
    text-align: left;
}

.testo-intestazione-altri h1 {
    margin: 5px 0 7px;
}

.griglia-altri-verbali {
    margin-top: 10px;
}

@media (max-width: 620px) {
    .intestazione-altri-verbali {
        flex-direction: column;
        gap: 14px;
        text-align: center;
    }

    .testo-intestazione-altri .etichetta,
    .testo-intestazione-altri h1,
    .testo-intestazione-altri .home-sottotitolo {
        text-align: center;
    }

    .icona-pagina-altri {
        width: 82px !important;
        height: 82px !important;
        min-width: 82px;
        max-width: 82px;
        border-radius: 19px;
    }
}

/* Creazione rapida dei verbali per soggetto */
.soggetto-contenitore{max-width:1060px!important}
.soggetto-hero{display:flex;align-items:center;gap:22px}
.soggetto-hero img{width:104px;height:104px;object-fit:contain;filter:drop-shadow(0 10px 16px rgba(24,53,95,.12))}
.soggetto-hero h1{margin-bottom:8px}
.soggetto-passaggio{position:relative}
.soggetto-titolo-passaggio{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.soggetto-titolo-passaggio>span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 auto;border-radius:50%;background:var(--prisma-navy);color:#fff;font-weight:900}
.soggetto-titolo-passaggio h2{margin:2px 0 0}
.soggetto-titolo-passaggio .etichetta-sezione{margin:0}
.soggetto-campi{margin-top:18px}
.campo-cognome-suggerimenti{position:relative;z-index:25}
.suggerimenti-cognome{position:absolute;left:0;right:0;top:calc(100% - 12px);z-index:80;max-height:330px;overflow:auto;padding:6px;border:1px solid #b9c6d4;border-radius:12px;background:#fff;box-shadow:0 18px 45px rgba(20,38,60,.20)}
.suggerimenti-cognome[hidden]{display:none!important}
.suggerimenti-cognome button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:0;padding:11px 12px;border:0;border-radius:8px;background:#fff;color:#273d57;text-align:left;cursor:pointer}
.suggerimenti-cognome button+button{border-top:1px solid #edf0f3;border-radius:0}
.suggerimenti-cognome button:hover,.suggerimenti-cognome button.attivo{background:#edf4fb;color:#173b62}
.suggerimenti-cognome strong{font-size:14px;line-height:1.25}
.suggerimenti-cognome small{color:#748091;font-size:11px;line-height:1.35}
.soggetto-barra-archivio{margin-bottom:15px}
.soggetto-selezionato{display:grid;gap:2px;margin:0 0 15px;padding:13px 15px;border:1px solid #afc0d5;border-radius:12px;background:#f4f7fb}
.soggetto-selezionato>span{color:#6b7788;font-size:9px;font-weight:900;letter-spacing:1px}
.soggetto-selezionato strong{color:#243850}
.soggetto-selezionato small{color:#6b7788}
.soggetto-sesso{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.soggetto-sesso label{position:relative;margin:0}
.soggetto-sesso input{position:absolute;opacity:0;pointer-events:none}
.soggetto-sesso span{display:grid;place-items:center;min-height:50px;border:1px solid #d4d0c7;border-radius:10px;background:#fff;color:#344961;font-weight:850;cursor:pointer}
.soggetto-sesso input:checked+span{border-color:var(--prisma-blue);background:var(--prisma-blue);color:#fff}
input[data-nascita-visuale="1"]{font-variant-numeric:tabular-nums;letter-spacing:.35px}
input[data-nascita-visuale="1"]:invalid:not(:placeholder-shown){border-color:#b95a61!important;background:#fff7f7!important}

/* Finestra centrata per la modifica della cartella intervento. */
#modalModificaCartella.modal-archivio{
    position:fixed;
    inset:0;
    z-index:10020;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(15,23,42,.60);
    backdrop-filter:blur(9px);
    -webkit-backdrop-filter:blur(9px);
}
#modalModificaCartella.modal-archivio.nascosto{display:none!important}
#modalModificaCartella .modal-archivio-contenuto{
    width:min(650px,100%);
    max-height:calc(100vh - 48px);
    overflow:auto;
    margin:0;
    padding:24px;
    border:1px solid rgba(255,255,255,.72);
    border-radius:20px;
    background:#fff;
    box-shadow:0 30px 90px rgba(15,23,42,.42);
    animation:aperturaModalIntervento .18s ease-out;
}
#modalModificaCartella .modal-archivio-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:20px;
}
#modalModificaCartella .modal-archivio-header h2{margin:4px 0 6px}
#modalModificaCartella .modal-archivio-header p:last-child{margin:0;color:#64748b}
#modalModificaCartella .btn-chiudi-modal{
    display:grid;
    place-items:center;
    width:42px;
    min-width:42px;
    height:42px;
    padding:0;
    border:0;
    border-radius:50%;
    background:#eef2f7;
    color:#1e293b;
    cursor:pointer;
}
#modalModificaCartella .campo input{width:100%}
@media(max-width:600px){
    #modalModificaCartella.modal-archivio{padding:14px}
    #modalModificaCartella .modal-archivio-contenuto{max-height:calc(100vh - 28px);padding:20px 16px;border-radius:18px}
    #modalModificaCartella .griglia-due{grid-template-columns:1fr}
    #modalModificaCartella .azioni-modal-intervento{display:grid;grid-template-columns:1fr 1fr}
}
.soggetto-elenco-modelli{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.soggetto-modello{overflow:hidden;border:1px solid #d9d5cc;border-radius:14px;background:#fff;transition:border-color .2s,box-shadow .2s}
.soggetto-modello.selezionato{border-color:#8299b8;box-shadow:0 0 0 3px rgba(33,79,141,.08)}
.soggetto-modello-testata{display:grid;grid-template-columns:auto 46px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:86px;padding:13px;cursor:pointer}
.soggetto-modello-testata>input,.soggetto-varianti input{width:20px;height:20px;accent-color:var(--prisma-blue)}
.soggetto-modello-icona{display:grid;place-items:center;width:46px;height:46px;border-radius:11px;background:var(--prisma-blue-soft)}
.soggetto-modello-icona img{width:34px;height:34px;object-fit:contain}
.soggetto-modello-testo{display:grid;gap:4px}
.soggetto-modello-testo strong{color:#263b55;font-size:15px}
.soggetto-modello-testo small{color:#7a828c;font-size:11px;line-height:1.35}
.soggetto-modello-indicatore{color:#7c8794;font-size:18px;font-weight:800}
.soggetto-varianti{display:grid;gap:7px;padding:0 13px 14px 91px;border-top:1px solid #ebe7de;background:#fbfaf7}
.soggetto-varianti[hidden]{display:none}
.soggetto-varianti label{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #ece8df;color:#344961;font-size:13px;font-weight:750;cursor:pointer}
.soggetto-varianti label:last-child{border-bottom:0}
.soggetto-destinazione{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:18px}
.soggetto-destinazione>button,.soggetto-azioni-nuovo button{min-height:50px}
.soggetto-destinazione-disattiva{display:none}
.soggetto-nuovo-intervento{margin-top:18px;padding:18px;border:1px solid #d9d5cc;border-radius:12px;background:#fbfaf7}
.soggetto-nuovo-intervento[hidden]{display:none}
.soggetto-azioni-nuovo{display:flex;justify-content:flex-end;margin-top:12px}
.soggetto-riepilogo{display:flex;align-items:center;justify-content:space-between;gap:20px;border-color:#b9c7d9!important;background:#f6f8fb!important}
.soggetto-riepilogo>div{display:grid;gap:4px}
.soggetto-riepilogo strong{color:#243850;font-size:18px}
.soggetto-riepilogo span{color:#6c7785;font-size:12px}
.soggetto-riepilogo button{min-width:260px}
.soggetto-errore{margin:13px 0 0;padding:11px 13px;border:1px solid #e3b2b2;border-radius:10px;background:#fff3f3;color:#9f2f38;font-size:13px;font-weight:750}
.soggetto-esito{display:flex;align-items:center;gap:12px;margin:16px 0;padding:16px;border-radius:13px}
.soggetto-esito[hidden]{display:none}
.soggetto-esito-successo{border:1px solid #a8cfbb;background:#eff8f2;color:#255d42}
.soggetto-esito strong{font-size:15px}
.soggetto-esito span{flex:1;font-size:13px}
.soggetto-esito a{padding:10px 13px;border-radius:9px;background:#255d42;color:#fff;text-decoration:none;font-size:13px;font-weight:800}
@media(max-width:760px){
    .soggetto-hero{align-items:flex-start}.soggetto-hero img{width:74px;height:74px}
    .soggetto-elenco-modelli{grid-template-columns:1fr}
    .soggetto-destinazione{grid-template-columns:1fr}
    .soggetto-riepilogo,.soggetto-esito{align-items:stretch;flex-direction:column}
    .soggetto-riepilogo button{width:100%;min-width:0}
    .soggetto-varianti{padding-left:28px}
}


/* PAGINA STRAORDINARI - GRAFICA A TESSERE */

.pagina-straordinari {
    padding-bottom: 46px;
}

.hero-straordinari {
    width: min(100%, 860px);
    margin: 0 auto 24px;
    display: grid;
    grid-template-columns: 116px 1fr;
    align-items: center;
    gap: 24px;
    padding: 22px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 28px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.97), rgba(239,246,255,.94));
    box-shadow: 0 20px 48px rgba(15, 23, 42, 0.10);
}

.hero-straordinari-icona {
    width: 116px;
    height: 140px;
    display: block;
    border-radius: 26px;
    object-fit: contain;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.15);
}

.hero-straordinari-testo h1 {
    margin: 4px 0 8px;
    font-size: clamp(34px, 5vw, 52px);
    line-height: 1;
}

.hero-straordinari-testo > p:last-child {
    max-width: 610px;
    margin: 0;
    color: #64748b;
    font-size: 17px;
    line-height: 1.48;
}

.riepilogo-straordinari {
    width: min(100%, 860px);
    margin: 0 auto 22px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.riepilogo-straordinari > div {
    min-height: 82px;
    display: grid;
    align-content: center;
    gap: 4px;
    padding: 15px 18px;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.riepilogo-label {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.riepilogo-straordinari strong {
    color: #172033;
    font-size: 22px;
}

.riepilogo-straordinari .stato-attesa {
    color: #b45309;
    font-size: 16px;
}

.griglia-turni-straordinari {
    width: min(100%, 860px);
    margin: 0 auto 24px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.tessera-turno {
    min-height: 270px;
    display: flex;
    flex-direction: column;
    padding: 22px;
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: 24px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.09);
    overflow: hidden;
    position: relative;
}

.tessera-turno::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: linear-gradient(90deg, #2563eb, #38bdf8);
}

.tessera-pomeriggio::before {
    background: linear-gradient(90deg, #f59e0b, #facc15);
}

.tessera-sera::before {
    background: linear-gradient(90deg, #f97316, #ec4899);
}

.tessera-notte::before {
    background: linear-gradient(90deg, #4338ca, #7c3aed);
}

.tessera-turno-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.turno-icona-grande {
    font-size: 42px;
    line-height: 1;
}

.badge-turno {
    padding: 7px 10px;
    border-radius: 999px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
}

.tessera-pomeriggio .badge-turno {
    background: #fffbeb;
    color: #b45309;
}

.tessera-sera .badge-turno {
    background: #fff1f2;
    color: #be123c;
}

.tessera-notte .badge-turno {
    background: #f5f3ff;
    color: #6d28d9;
}

.tessera-turno h2 {
    margin: 0 0 7px;
    color: #172033;
    font-size: 24px;
}

.tessera-turno > p {
    margin: 0 0 18px;
    color: #64748b;
    line-height: 1.45;
}

.stato-turno {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    margin-bottom: 14px;
    color: #64748b;
    font-size: 14px;
    font-weight: 750;
}

.pallino-stato {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #cbd5e1;
}

.tessera-turno button,
.pacchetto-straordinari button {
    width: 100%;
    min-height: 44px;
    border: 1px solid #d8e2ef;
    border-radius: 13px;
    background: #f8fafc;
    color: #94a3b8;
    font-weight: 850;
    cursor: not-allowed;
}

.pacchetto-straordinari {
    width: min(100%, 860px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 210px;
    align-items: center;
    gap: 22px;
    padding: 22px;
    border-radius: 24px;
    background:
        linear-gradient(135deg, #172554, #1d4ed8);
    color: #fff;
    box-shadow: 0 20px 42px rgba(30, 64, 175, 0.24);
}

.pacchetto-straordinari-testo {
    display: flex;
    align-items: center;
    gap: 18px;
}

.pacchetto-icona {
    font-size: 42px;
}

.pacchetto-straordinari .etichetta {
    color: #bfdbfe;
}

.pacchetto-straordinari h2 {
    margin: 3px 0 6px;
    font-size: 24px;
}

.pacchetto-straordinari p {
    margin: 0;
    color: #dbeafe;
    line-height: 1.4;
}

.pacchetto-straordinari button {
    border-color: rgba(255,255,255,.18);
    background: rgba(255,255,255,.12);
    color: rgba(255,255,255,.58);
}

.nota-straordinari {
    width: min(100%, 860px);
    margin: 14px auto 0;
    color: #64748b;
    font-size: 13px;
    text-align: center;
}

@media (max-width: 720px) {
    .hero-straordinari {
        grid-template-columns: 82px 1fr;
        gap: 16px;
        padding: 18px;
        border-radius: 22px;
    }

    .hero-straordinari-icona {
        width: 82px;
        height: 82px;
        border-radius: 20px;
    }

    .hero-straordinari-testo h1 {
        font-size: 34px;
    }

    .hero-straordinari-testo > p:last-child {
        font-size: 15px;
    }

    .riepilogo-straordinari {
        grid-template-columns: 1fr;
    }

    .griglia-turni-straordinari {
        grid-template-columns: 1fr;
    }

    .pacchetto-straordinari {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 460px) {
    .hero-straordinari {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .hero-straordinari-icona {
        margin: 0 auto;
    }

    .pacchetto-straordinari-testo {
        align-items: flex-start;
    }
}


/* BACKUP E RIPRISTINO ONEDRIVE */

.scheda-backup {
    overflow: hidden;
}

.backup-intestazione {
    display: grid;
    grid-template-columns: 70px 1fr;
    align-items: center;
    gap: 18px;
    margin-bottom: 20px;
}

.backup-icona {
    width: 70px;
    height: 70px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    background:
        linear-gradient(145deg, #dbeafe, #eff6ff);
    font-size: 34px;
    box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.12);
}

.backup-intestazione h2 {
    margin: 3px 0 5px;
}

.backup-intestazione p:last-child {
    margin: 0;
    color: #64748b;
    line-height: 1.45;
}

.backup-riepilogo {
    min-height: 70px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 18px;
    border: 1px solid #dbe4f0;
    border-radius: 17px;
    background: #f8fafc;
}

.backup-riepilogo span {
    color: #64748b;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.backup-riepilogo strong {
    color: #172033;
    text-align: right;
}

.griglia-azioni-backup {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.btn-backup {
    min-height: 92px;
    display: grid;
    grid-template-columns: 42px 1fr;
    align-items: center;
    gap: 12px;
    padding: 16px;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
    text-align: left;
    cursor: pointer;
    transition:
        transform 160ms ease,
        box-shadow 160ms ease;
}

.btn-backup:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.10);
}

.btn-backup:active {
    transform: scale(.985);
}

.btn-backup > span:first-child {
    font-size: 30px;
}

.btn-backup > span:last-child {
    display: grid;
    gap: 4px;
}

.btn-backup strong {
    font-size: 17px;
}

.btn-backup small {
    color: inherit;
    opacity: .76;
    font-size: 12px;
}

.btn-backup-crea {
    background:
        linear-gradient(145deg, #1d4ed8, #2563eb);
    color: #fff;
}

.btn-backup-ripristina {
    background: #f8fafc;
    color: #1e293b;
}

.btn-backup:disabled {
    opacity: .55;
    cursor: wait;
    transform: none;
}

.input-backup-nascosto {
    position: fixed !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
}

.avviso-backup-sicurezza {
    margin-top: 16px;
    display: grid;
    gap: 4px;
    padding: 14px 16px;
    border-left: 4px solid #f59e0b;
    border-radius: 13px;
    background: #fffbeb;
    color: #78350f;
}

.avviso-backup-sicurezza span {
    font-size: 13px;
    line-height: 1.4;
}

.messaggio-backup {
    min-height: 22px;
    margin: 15px 0 0;
    color: #475569;
    font-weight: 700;
    line-height: 1.45;
}

.messaggio-backup-successo {
    color: #047857;
}

.messaggio-backup-errore {
    color: #b91c1c;
}

.avviso-esportazione-sicurezza {
    display: flex;
    gap: 8px 14px;
    align-items: flex-start;
    flex-wrap: wrap;
    margin: 14px 0 18px;
    padding: 13px 15px;
    border: 1px solid rgba(38, 100, 166, .22);
    border-left: 4px solid #2664a6;
    border-radius: 12px;
    background: #f2f7fc;
    color: #28445f;
    font-size: .9rem;
    line-height: 1.45;
}

.avviso-esportazione-sicurezza strong {
    color: #173a60;
    white-space: nowrap;
}

.avviso-esportazione-sicurezza span {
    flex: 1 1 440px;
}

@media (max-width: 680px) {
    .griglia-azioni-backup {
        grid-template-columns: 1fr;
    }

    .backup-riepilogo {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .backup-riepilogo strong {
        text-align: left;
    }
}

@media (max-width: 460px) {
    .backup-intestazione {
        grid-template-columns: 56px 1fr;
        gap: 13px;
    }

    .backup-icona {
        width: 56px;
        height: 56px;
        border-radius: 16px;
        font-size: 28px;
    }
}

/* === Modulo Perquisizione v2.2.0 === */
.scelte-perquisizione{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:12px}.scelte-perquisizione label{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid #d7e0ee;border-radius:18px;background:#f8faff;cursor:pointer}.scelte-perquisizione input{margin-top:4px;flex:0 0 auto}.scelte-perquisizione span{display:flex;flex-direction:column;gap:4px}.scelte-perquisizione small{color:#627089;line-height:1.35}.campo-check{margin-top:18px}.scelta-segmentata{display:grid;grid-template-columns:1fr 1fr;gap:10px}.scelta-segmentata label{position:relative}.scelta-segmentata input{position:absolute;opacity:0}.scelta-segmentata span{display:block;text-align:center;padding:13px;border:1px solid #cbd7e7;border-radius:14px;background:#fff;font-weight:800}.scelta-segmentata input:checked+span{background:#1f5fe5;color:#fff;border-color:#1f5fe5}.frasi-rapide{margin-top:16px}.frasi-rapide p{font-weight:800;margin:0 0 8px}.frasi-rapide div{display:flex;gap:8px;flex-wrap:wrap}.frasi-rapide button{border:1px solid #cbd7e7;background:#f7f9fc;border-radius:999px;padding:9px 12px;font-weight:700;color:#1a2942}html,body{max-width:100%;overflow-x:hidden}.contenitore,.scheda,form,.campo,.griglia-due{min-width:0}input,select,textarea,button{max-width:100%;box-sizing:border-box}textarea{resize:vertical}
@media(max-width:700px){.scelte-perquisizione{grid-template-columns:1fr}.contenitore{width:100%;padding-left:14px;padding-right:14px}.scheda{padding:20px 16px}.barra-superiore{gap:8px;align-items:flex-start}.badge-pagina{white-space:normal;text-align:right}.griglia-due{grid-template-columns:1fr!important}.campo input,.campo select,.campo textarea{width:100%;min-width:0}}

/* Mantiene radio e testo dentro i riquadri su smartphone. */
.scelta-inline,
.scelta-inline > label,
.scelte-perquisizione,
.scelte-perquisizione > label {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.scelta-radio > span,
.scelte-perquisizione > label > span {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
    white-space: normal;
}

@media (max-width: 700px) {
    .scelta-radio,
    .scelte-perquisizione > label {
        display: grid;
        grid-template-columns: 24px minmax(0, 1fr);
        align-items: start;
        column-gap: 12px;
        height: auto;
        min-height: 58px;
    }

    .scelta-radio > input,
    .scelte-perquisizione > label > input {
        grid-column: 1;
        width: 18px;
        min-width: 18px;
        max-width: 18px;
        margin: 2px 0 0;
    }

    .scelta-radio > span,
    .scelte-perquisizione > label > span {
        grid-column: 2;
        display: block;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        font-size: 16px;
        line-height: 1.35;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .scelte-perquisizione > label > span strong,
    .scelte-perquisizione > label > span small {
        display: block;
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
}

html,
body {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}
.azioni-pdf-affiancate {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
}

.azioni-pdf-affiancate > button {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    min-width: 0;
    min-height: 62px !important;
    margin: 0;
    padding: 12px 16px;
    border: none !important;
    border-radius: 16px !important;
    font-size: 19px !important;
    font-weight: 800 !important;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    box-shadow: none !important;
}

.azioni-pdf-affiancate .btn-salva-pdf {
    background: #16a34a !important;
    border-color: #16a34a !important;
    color: #ffffff !important;
}

.azioni-pdf-affiancate .btn-salva-pdf:active {
    background: #15803d !important;
    transform: scale(0.99);
}

.azioni-pdf-affiancate .btn-nuova-istanza {
    background: #e8eef8 !important;
    border: 1px solid #cbd5e1 !important;
    color: #172033 !important;
}

.azioni-pdf-affiancate > button:disabled {
    opacity: 0.65;
    cursor: wait;
}

@media (max-width: 520px) {
    .azioni-pdf-affiancate {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .azioni-pdf-affiancate > button {
        min-height: 58px;
        padding: 11px 8px;
        font-size: 16px;
    }
}
.pagina-verbale form[data-verbale-modello] .griglia-due {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.pagina-verbale form[data-verbale-modello] .campo {
    width: 100%;
    min-width: 0;
}

.pagina-verbale form[data-verbale-modello] input:not([type]),
.pagina-verbale form[data-verbale-modello] input[type="text"],
.pagina-verbale form[data-verbale-modello] input[type="tel"],
.pagina-verbale form[data-verbale-modello] input[type="date"],
.pagina-verbale form[data-verbale-modello] input[type="time"],
.pagina-verbale form[data-verbale-modello] select,
.pagina-verbale form[data-verbale-modello] textarea {
    display: block;
    width: 100% !important;
    min-width: 0;
    min-height: 58px;
    padding: 15px 16px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    background: #ffffff;
    color: #172033;
    font-size: 18px;
}

.pagina-verbale form[data-verbale-modello] textarea {
    min-height: 180px;
    line-height: 1.45;
}

.pagina-verbale form[data-verbale-modello] .scheda {
    padding: 26px;
    border-radius: 24px;
}

@media (max-width: 700px) {
    .pagina-verbale form[data-verbale-modello] .griglia-due {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .pagina-verbale form[data-verbale-modello] .scheda {
        padding: 20px 16px;
        border-radius: 20px;
    }
}

/* Precedenza finale per le regole tablet rispetto agli stili dei singoli moduli. */
@media (min-width: 701px) and (max-width: 1366px) {
    body .contenitore,
    body .foto-page,
    body.pagina-verbale .contenitore {
        width: min(calc(100% - 36px), 1020px);
        max-width: 1020px;
    }

    body .griglia-due,
    body.pagina-verbale form[data-verbale-modello] .griglia-due {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body input:not([type="checkbox"]):not([type="radio"]),
    body select,
    body textarea {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-inline-size: 0 !important;
        box-sizing: border-box;
    }

    body input[type="date"],
    body input[type="time"] {
        -webkit-appearance: none;
        appearance: none;
    }

    body .griglia-due > *,
    body .griglia-data-ora > *,
    body .azioni-pdf-affiancate > * {
        min-width: 0;
        max-width: 100%;
    }
}

@media (min-width: 701px) and (max-width: 900px) {
    body .contenitore,
    body .foto-page,
    body.pagina-verbale .contenitore {
        width: calc(100% - 28px);
    }
}

/* PRISMA istituzionale: precedenza finale sullo storico degli stili. */

body {
    color: var(--prisma-ink);
    background: var(--prisma-canvas);
}

.pagina-home {
    padding: 22px 0 48px;
}

.home-contenitore {
    width: min(calc(100% - 40px), 1160px);
}

.home-intestazione {
    margin: 12px 0 28px;
    text-align: left;
}

.home-intestazione h1,
.intestazione h1,
.login-intestazione h1 {
    color: var(--prisma-navy);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
}

.ricerca-verbali {
    padding: 17px 18px;
    border: 1px solid var(--prisma-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.ricerca-verbali-campo input {
    min-height: 48px;
    border-color: #d6d2c9;
    border-radius: 10px;
    color: #243850;
    background: #fbfaf7;
    font-size: 15px;
}

.griglia-verbali {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.card-verbale {
    min-height: 104px;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: center;
    padding: 14px 38px 14px 14px;
    border: 1px solid #dedad1;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(38, 48, 61, .04);
}

.card-immagine {
    min-height: 0;
    width: 44px;
    height: 44px;
    padding: 7px;
    border-radius: 11px;
    background: var(--prisma-blue-soft);
}

.card-immagine img {
    width: 30px;
    height: 30px;
}

.card-testo {
    padding: 0;
}

.card-testo h2 {
    margin: 0;
    color: #263b55;
    font-size: 15px;
}

.card-testo span {
    margin-top: 4px;
    color: #838991;
    font-size: 11px;
}

.contenitore,
body.pagina-verbale .contenitore {
    width: min(calc(100% - 40px), 1020px);
    max-width: 1020px;
    margin: 20px auto 64px;
}

.barra-superiore,
.barra-utente-globale {
    border: 1px solid var(--prisma-line);
    border-radius: 14px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.scheda,
.pagina-verbale form[data-verbale-modello] .scheda {
    margin-bottom: 15px;
    padding: 22px;
    border: 1px solid var(--prisma-line);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.pagina-verbale input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="file"]),
.pagina-verbale select,
.pagina-verbale textarea {
    min-height: 50px;
    padding: 11px 13px;
    border: 1px solid #d4d0c7;
    border-radius: 10px;
    color: #243850;
    background: #fff;
    font-size: 16px;
}

.pagina-verbale textarea {
    min-height: 145px;
}

.pagina-verbale .scelta,
.pagina-verbale .scelte-card label,
.pagina-verbale .interruttore-riga,
.pagina-verbale .scelte-perquisizione label {
    border-color: #dad6cd;
    border-radius: 10px;
    color: #33465e;
    background: #faf9f6;
}

.pagina-verbale #generaPdf,
.pagina-verbale .btn-primario {
    min-height: 52px;
    border-radius: 10px;
    background: var(--prisma-blue);
    font-size: 16px;
}

.pagina-login {
    background: var(--prisma-canvas);
}

.pagina-login .login-layout {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 450px);
    place-items: stretch;
    width: min(calc(100% - 40px), 1180px);
    min-height: min(760px, calc(100vh - 44px));
    margin: 22px auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid #d6d1c6;
    border-radius: 22px;
    background: #faf8f3;
    box-shadow: 0 28px 80px rgba(40, 48, 60, .16);
}

.pagina-login .login-card {
    align-self: center;
    width: 100%;
    padding: 38px 42px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.pagina-login .login-stemma {
    width: 58px;
    height: 58px;
    margin: 0;
}

.pagina-login .login-intestazione {
    text-align: left;
}

.pagina-login .login-form input {
    min-height: 49px;
    border-color: #d4d0c7;
    border-radius: 10px;
    background: #fff;
}

body.pagina-numerico,
body.pagina-straordinari-form {
    color: var(--prisma-ink);
    background: var(--prisma-canvas);
}

/* Fine turno V23: rifinitura definitiva e rimozione dell'affollamento V22. */
body.pagina-numerico {
    background: #f4f1e9;
}

.pagina-numerico .numerico-wrap {
    width: min(calc(100% - 40px), 1040px);
    padding: 18px 0 112px;
}

.pagina-numerico .numerico-topbar {
    margin-bottom: 10px;
}

.pagina-numerico .numerico-hero {
    min-height: 116px;
    padding: 20px 22px;
    border-color: #d9d5cb;
    border-radius: 15px;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.pagina-numerico .numerico-hero-copy h1 {
    color: var(--prisma-navy);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
    letter-spacing: -.025em;
}

.pagina-numerico .numerico-volante {
    min-width: 86px;
    border-color: #c4ced9;
    color: #294767;
    background: #f5f8fc;
}

.pagina-numerico .numerico-volante strong {
    font-size: 23px;
}

.pagina-numerico .numerico-principali,
.pagina-numerico .numerico-dettagli {
    margin-top: 20px;
}

.pagina-numerico .numerico-sezione-titolo {
    align-items: center;
    margin-bottom: 9px;
}

.pagina-numerico .numerico-sezione-titolo h2 {
    color: #2a3e57;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    font-weight: 400;
}

.pagina-numerico .numerico-card-grid {
    gap: 9px;
}

.pagina-numerico .numerico-card-rapida {
    min-height: 102px;
    padding: 13px 14px;
    border-color: #dcd8cf;
    border-radius: 13px;
    box-shadow: 0 7px 20px rgba(38, 48, 61, .035);
}

.pagina-numerico .numerico-card-label {
    min-height: 30px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.pagina-numerico .numerico-card-label > span {
    width: 25px;
    height: 25px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 7px;
    color: #214f8d;
    background: #e9eff6;
    font-size: 10px;
    font-weight: 900;
}

.pagina-numerico .numerico-card-label label {
    min-height: 0;
    color: #526174;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
}

.pagina-numerico .numerico-contatore {
    grid-template-columns: 38px minmax(32px, 1fr) 38px;
    margin-top: 8px;
}

.pagina-numerico .numerico-contatore button {
    min-width: 38px;
    height: 38px;
    border: 1px solid #d9dee5;
    color: #445873;
    background: #f5f6f7;
}

.pagina-numerico .numerico-contatore button.principale {
    border-color: #214f8d;
    color: #fff;
    background: #214f8d;
}

.pagina-numerico .numerico-contatore output {
    font-size: 22px;
}

.pagina-numerico .numerico-dettagli {
    padding: 17px;
    border: 1px solid #d9d5cb;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .04);
}

.pagina-numerico .numerico-ricerca-wrap {
    margin-bottom: 9px;
}

.pagina-numerico .numerico-ricerca-wrap input {
    height: 45px;
    border: 1px solid #d4d0c7;
    background: #fbfaf7;
}

.pagina-numerico .numerico-gruppo {
    margin: 7px 0;
    border-color: #dedad1;
    border-radius: 11px;
    box-shadow: none;
}

.pagina-numerico .numerico-gruppo summary {
    min-height: 52px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 24px;
    padding: 12px 14px;
}

.pagina-numerico .numerico-gruppo summary span {
    color: #334861;
    font-size: 15px;
}

.pagina-numerico .numerico-gruppo summary small {
    padding: 5px 8px;
    border-radius: 8px;
    color: #607087;
    background: #f2f4f6;
    font-size: 9px;
}

.pagina-numerico .numerico-gruppo summary::after {
    content: "+";
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    margin-left: 2px;
    border-radius: 7px;
    color: #607087;
    background: #f1f3f5;
    font-size: 17px;
    font-weight: 500;
}

.pagina-numerico .numerico-gruppo[open] summary::after {
    content: "−";
}

.pagina-numerico .numerico-riga {
    min-height: 58px;
    padding: 9px 12px;
}

.pagina-numerico .numerico-riga.livello-1 {
    padding-left: 30px;
}

.pagina-numerico .numerico-riga.livello-2 {
    padding-left: 47px;
}

.pagina-numerico .numerico-label strong {
    font-size: 12px;
    font-weight: 700;
}

.pagina-numerico .numerico-label span {
    width: 27px;
    height: 27px;
    font-size: 10px;
}

.pagina-numerico .numerico-riga-controlli {
    gap: 5px;
}

.pagina-numerico .numerico-riga-controlli button {
    min-width: 37px;
    height: 37px;
    border: 1px solid #d9dee5;
    background: #f5f6f7;
}

.pagina-numerico .numerico-riga-controlli button.principale {
    border-color: #214f8d;
    background: #214f8d;
}

.pagina-numerico .numerico-valore {
    width: 54px;
    height: 37px;
    border: 1px solid #d4d0c7;
    border-radius: 8px;
    font-size: 16px;
}

.pagina-numerico .numerico-riga.attiva {
    background: #f4f7fb;
}

.pagina-numerico .numerico-riga.attiva .numerico-valore {
    border-color: #7999c2;
}

.pagina-numerico .numerico-actions {
    padding-top: 9px;
    border-top-color: #d9d5cb;
    background: rgba(244, 241, 233, .96);
}

.pagina-numerico .numerico-actions-inner {
    max-width: 1040px;
    grid-template-columns: minmax(170px, .7fr) minmax(220px, 1.3fr);
}

.pagina-numerico .numerico-action {
    min-height: 48px;
    box-shadow: none;
}

.pagina-numerico .numerico-action.primaria {
    background: var(--prisma-navy);
    border-color: var(--prisma-navy);
}

.pagina-numerico .numerico-modal {
    width: min(680px, 100%);
    padding: 22px;
    border-color: #d9d5cb;
    border-radius: 15px;
}

.pagina-numerico .numerico-modal.piccola {
    width: min(440px, 100%);
}

.pagina-numerico .procedura-header h2,
.pagina-numerico .procedura-step-title h3 {
    color: var(--prisma-navy);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
}

.pagina-numerico .procedura-domande {
    grid-template-columns: 1fr;
    gap: 6px;
}

.pagina-numerico .procedura-domanda {
    min-height: 62px;
    padding: 9px 11px;
    border-color: #e0ddd6;
    background: #fbfaf7;
}

.pagina-numerico .procedura-domanda strong {
    font-size: 12px;
}

.pagina-numerico .procedura-counter button,
.pagina-numerico .procedura-counter input {
    height: 37px;
}

.pagina-numerico .procedura-counter button {
    min-width: 37px;
}

.pagina-numerico .procedura-nessun-dettaglio {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    border: 1px solid #c7dcca;
    border-radius: 11px;
    color: #376348;
    background: #f4faf5;
}

.pagina-numerico .procedura-nessun-dettaglio > b {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #3f855e;
}

.pagina-numerico .procedura-nessun-dettaglio strong,
.pagina-numerico .procedura-nessun-dettaglio span {
    display: block;
}

.pagina-numerico .procedura-nessun-dettaglio span {
    margin-top: 3px;
    font-size: 12px;
}

.pagina-numerico .procedura-anteprima {
    min-height: 235px;
}

@media (max-width: 760px) {
    .pagina-numerico .numerico-wrap {
        width: calc(100% - 20px);
    }

    .pagina-numerico .numerico-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pagina-numerico .numerico-riga {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .pagina-numerico .numerico-riga-controlli {
        padding-left: 0;
    }

    .pagina-numerico .numerico-dettagli .numerico-riga.livello-1,
    .pagina-numerico .numerico-dettagli .numerico-riga.livello-2 {
        padding-left: 12px;
    }
}

@media (max-width: 520px) {
    .pagina-numerico .numerico-hero {
        min-height: 100px;
        gap: 11px;
        padding: 15px;
    }

    .pagina-numerico .numerico-hero-icon {
        width: 48px;
        height: 48px;
    }

    .pagina-numerico .numerico-volante {
        min-width: 62px;
    }

    .pagina-numerico .numerico-dettagli {
        padding: 12px;
    }

    .pagina-numerico .numerico-card-grid {
        grid-template-columns: 1fr;
    }

    .pagina-numerico .numerico-card-rapida {
        min-height: 0;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 150px;
        align-items: center;
        gap: 9px;
    }

    .pagina-numerico .numerico-contatore {
        margin-top: 0;
    }

    .pagina-numerico .numerico-riga {
        grid-template-columns: minmax(0, 1fr);
    }

    .pagina-numerico .numerico-riga-controlli {
        padding-left: 35px;
    }

    .pagina-numerico .numerico-riga.livello-1 {
        padding-left: 21px;
    }

    .pagina-numerico .numerico-riga.livello-2 {
        padding-left: 34px;
    }
}

.pagina-numerico .hero,
.pagina-straordinari-form .stra-hero {
    border: 1px solid var(--prisma-line);
    border-radius: 15px;
    color: var(--prisma-ink);
    background: #fff;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .045);
}

.pagina-numerico .sum-card,
.pagina-numerico .group,
.pagina-straordinari-form .stra-card,
.pagina-straordinari-form .stra-actions {
    border-color: var(--prisma-line);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(36, 48, 64, .04);
}

.pagina-straordinari-form .stra-field input,
.pagina-straordinari-form .stra-field textarea {
    border-color: #d4d0c7;
    border-radius: 10px;
    color: #243850;
    background: #fff;
}

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

@media (max-width: 720px) {
    .pagina-login .login-layout {
        grid-template-columns: 1fr;
        margin: 14px auto;
    }
}

@media (max-width: 620px) {
    .home-contenitore,
    .contenitore,
    body.pagina-verbale .contenitore {
        width: calc(100% - 24px);
    }

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

    .scheda,
    .pagina-verbale form[data-verbale-modello] .scheda {
        padding: 18px 15px;
    }
}

/* Override conclusivo: deve restare dopo tutte le regole storiche. */
.ricerca-verbali-campo .ricerca-verbali-icona{
    left:16px;
    z-index:2;
}
.ricerca-verbali-campo input[type="search"]{
    box-sizing:border-box;
    padding-left:50px!important;
    padding-right:50px!important;
    text-indent:0!important;
}
#formModificaCartella .azioni-modal-intervento{
    display:flex;
    align-items:stretch;
    justify-content:flex-end;
    gap:9px;
}
#formModificaCartella .azioni-modal-intervento button{
    min-width:0;
    white-space:nowrap;
}
#annullaModificaCartella{
    flex:0 0 auto;
    min-width:92px!important;
}
#formModificaCartella .azioni-modal-intervento .btn-primario{
    flex:0 1 170px;
    padding-inline:10px;
}
@media(max-width:430px){
    #formModificaCartella .azioni-modal-intervento{
        grid-template-columns:none;
    }
    #formModificaCartella .azioni-modal-intervento .btn-primario{
        flex-basis:145px;
        font-size:14px;
    }
}
#region prisma-auth-20260813
html.auth-verifica body:not(.pagina-login) {
    visibility: hidden;
}

/* La gestione credenziali resta invisibile fino alla conferma del ruolo admin. */
html.admin-verifica body {
    visibility: hidden !important;
}

[data-solo-amministratore][hidden] {
    display: none !important;
}

.pagina-accesso-prisma {
    min-height: 100vh;
    margin: 0;
    background: #f4f1e9;
    color: #17304f;
}

.accesso-prisma-layout {
    width: 100%;
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(340px, .9fr) minmax(520px, 1.1fr);
}

.accesso-prisma-presentazione {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 54px clamp(38px, 5vw, 78px);
    color: #fff;
    background: linear-gradient(150deg, #18355f, #244e82 72%, #2f659f);
}

.accesso-prisma-presentazione::after {
    content: "";
    position: absolute;
    width: 500px;
    height: 500px;
    right: -270px;
    bottom: -250px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow: 0 0 0 75px rgba(255,255,255,.035), 0 0 0 150px rgba(255,255,255,.022);
}

.accesso-prisma-brand,
.accesso-prisma-testo,
.accesso-prisma-sicurezza {
    position: relative;
    z-index: 1;
}

.accesso-prisma-brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.accesso-prisma-brand img {
    width: 50px;
    height: 50px;
    object-fit: contain;
}

.accesso-prisma-brand strong,
.accesso-prisma-brand span {
    display: block;
}

.accesso-prisma-brand strong {
    font-size: 20px;
    letter-spacing: .12em;
}

.accesso-prisma-brand span {
    margin-top: 3px;
    color: #cddbed;
    font-size: 12px;
}

.accesso-prisma-testo {
    margin: auto 0;
    max-width: 590px;
}

.accesso-prisma-testo .etichetta {
    color: #b8cde5;
    letter-spacing: .15em;
}

.accesso-prisma-testo h1 {
    margin: 12px 0 22px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(42px, 5vw, 64px);
    font-weight: 500;
    line-height: 1.04;
}

.accesso-prisma-testo > p:last-child {
    margin: 0;
    color: #dbe7f4;
    font-size: 17px;
    line-height: 1.65;
}

.accesso-prisma-sicurezza {
    display: flex;
    gap: 13px;
    align-items: flex-start;
    max-width: 530px;
    padding: 16px 18px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 14px;
    background: rgba(11,34,62,.25);
}

.accesso-prisma-sicurezza p {
    margin: 0;
    color: #e7eef7;
    font-size: 13px;
    line-height: 1.5;
}

.accesso-prisma-pannello {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 42px clamp(24px, 5vw, 74px);
    background: #faf9f6;
}

.accesso-prisma-card {
    width: 100%;
    max-width: 650px;
    padding: clamp(28px, 4vw, 42px);
    border: 1px solid #d9d5cb;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 16px 45px rgba(23,47,80,.08);
}

.accesso-prisma-logo-mobile {
    display: none;
}

.accesso-vista {
    display: none;
}

.accesso-vista.attiva {
    display: block;
    animation: accesso-apparizione .2s ease-out;
}

@keyframes accesso-apparizione {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

.accesso-sovratitolo {
    margin: 0 0 11px;
    color: #2e65a3;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .15em;
}

.accesso-vista h2,
.accesso-modale h2 {
    margin: 0;
    color: #17304f;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(32px, 4vw, 42px);
    font-weight: 500;
    line-height: 1.08;
}

.accesso-intro {
    margin: 10px 0 26px;
    color: #65758a;
    line-height: 1.55;
}

.accesso-scelte {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.accesso-scelta {
    min-height: 148px;
    padding: 19px;
    border: 1px solid #cfd7e2;
    border-radius: 16px;
    color: #17304f;
    background: #fff;
    text-align: left;
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.accesso-scelta:hover,
.accesso-scelta:focus-visible {
    transform: translateY(-2px);
    border-color: #2e65a3;
    box-shadow: 0 10px 23px rgba(23,47,80,.1);
}

.accesso-scelta-principale {
    grid-column: 1 / -1;
    min-height: 136px;
    color: #fff;
    border-color: #18355f;
    background: #18355f;
}

.accesso-scelta-icona {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    margin-bottom: 15px;
    border-radius: 12px;
    color: #214f8d;
    background: #e9eff6;
    font-size: 21px;
    font-weight: 800;
}

.accesso-scelta-principale .accesso-scelta-icona {
    color: #fff;
    background: rgba(255,255,255,.13);
}

.accesso-scelta strong,
.accesso-scelta small {
    display: block;
}

.accesso-scelta strong {
    font-size: 17px;
}

.accesso-scelta small {
    margin-top: 6px;
    color: #6b7d92;
    font-size: 13px;
    line-height: 1.4;
}

.accesso-scelta-principale small {
    color: #d5e3f2;
}

.accesso-indietro {
    margin: -7px 0 23px;
    padding: 0;
    border: 0;
    color: #365c8a;
    background: transparent;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.accesso-form {
    display: grid;
    gap: 17px;
}

.accesso-form-griglia {
    grid-template-columns: 1fr 1fr;
}

.accesso-campo-intero {
    grid-column: 1 / -1;
}

.accesso-form .campo {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.accesso-form .campo label,
.admin-modale-contenuto .campo label {
    color: #334b68;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.accesso-form .campo small {
    color: #718197;
    font-size: 12px;
    line-height: 1.4;
}

.accesso-form input,
.accesso-form select,
.admin-modale-contenuto input {
    width: 100%;
    min-height: 48px;
    padding: 0 13px;
    border: 1px solid #cbd4df;
    border-radius: 11px;
    outline: none;
    color: #17304f;
    background: #fbfcfd;
}

.accesso-form input:focus,
.accesso-form select:focus,
.admin-modale-contenuto input:focus {
    border-color: #2e65a3;
    box-shadow: 0 0 0 3px rgba(46,101,163,.13);
}

.accesso-password {
    position: relative;
}

.accesso-password input {
    padding-right: 86px;
}

.accesso-password button {
    position: absolute;
    top: 5px;
    right: 5px;
    min-height: 38px;
    padding: 0 11px;
    border: 0;
    color: #214f8d;
    background: transparent;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}

.accesso-password-dimenticata {
    justify-self: end;
    margin-top: -7px;
    padding: 3px 0;
    border: 0;
    color: #214f8d;
    background: transparent;
    font-size: 13px;
    font-weight: 850;
    cursor: pointer;
}

.accesso-password-dimenticata:hover,
.accesso-password-dimenticata:focus-visible {
    text-decoration: underline;
}

.accesso-submit {
    width: 100%;
    min-height: 50px;
    margin-top: 4px;
}

.accesso-form.in-attesa {
    opacity: .7;
}

.accesso-messaggio {
    min-height: 0;
    margin: 0;
    color: #287252;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.45;
}

.accesso-messaggio:not(:empty) {
    padding: 11px 13px;
    border: 1px solid #abd1ba;
    border-radius: 10px;
    background: #edf8f1;
}

.accesso-messaggio-errore:not(:empty) {
    color: #a93f49;
    border-color: #e3b4ba;
    background: #fff0f1;
}

.accesso-otp {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 9px;
    margin: 3px 0 7px;
}

.accesso-otp input {
    height: 64px;
    padding: 0;
    text-align: center;
    font-size: 26px;
    font-weight: 900;
}

.accesso-esito-icona {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 18px;
    color: #287252;
    background: #e5f3eb;
    font-size: 25px;
    font-weight: 900;
}

.accesso-prisma-footer {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-top: 28px;
    padding-top: 18px;
    border-top: 1px solid #e6e2db;
    color: #718197;
    font-size: 11px;
    font-weight: 750;
    text-transform: uppercase;
}

.accesso-modale {
    position: fixed;
    z-index: 9999;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow-y: auto;
    padding: 22px;
    background: rgba(16,32,52,.64);
    backdrop-filter: blur(5px);
}

.accesso-modale.nascosto {
    display: none !important;
}

.accesso-modale-contenuto {
    width: min(520px, 100%);
    margin: auto;
    padding: 32px;
    border-radius: 20px;
    color: #17304f;
    background: #fff;
    box-shadow: 0 25px 80px rgba(0,0,0,.25);
}

.accesso-modale-contenuto > p:not(.accesso-sovratitolo):not(.accesso-messaggio) {
    margin: 15px 0 25px;
    color: #65758a;
    line-height: 1.55;
}

.accesso-modale-contenuto > .btn-primario {
    width: 100%;
}

.pagina-amministrazione {
    min-height: 100vh;
    margin: 0;
    color: #17304f;
    background: #f4f1e9;
}

.admin-prisma {
    width: min(1480px, calc(100% - 40px));
    margin: 0 auto;
    padding: 54px 0 70px;
}

.admin-prisma-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.admin-prisma-header h1 {
    margin: 5px 0 7px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 5vw, 54px);
    font-weight: 500;
}

.admin-prisma-header > div > p:last-child {
    margin: 0;
    color: #65758a;
}

.admin-statistiche {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 18px;
}

.admin-statistiche article {
    padding: 19px;
    border: 1px solid #d9d5cb;
    border-radius: 15px;
    background: #fff;
}

.admin-statistiche span,
.admin-statistiche strong {
    display: block;
}

.admin-statistica-reset {
    border-color: #e8c98d !important;
    background: #fffaf1 !important;
}

.admin-statistica-reset strong {
    color: #8a5919;
}

.admin-statistiche span {
    color: #718197;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.admin-statistiche strong {
    margin-top: 6px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 32px;
    font-weight: 500;
}

/* Amministrazione V2.2.4: monitoraggio spazio backup R2. */
.admin-spazio-r2 {
    margin-bottom: 18px;
    padding: 22px;
    border: 1px solid #d9d5cb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(23,48,79,.05);
}

.admin-spazio-r2-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.admin-spazio-r2-header h2 {
    margin: 4px 0 5px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(28px, 3vw, 38px);
    font-weight: 500;
}

.admin-spazio-r2-header p:last-child {
    margin: 0;
    color: #69798d;
}

.admin-spazio-r2-riepilogo {
    display: grid;
    grid-template-columns: minmax(310px, .88fr) minmax(420px, 1.35fr);
    gap: 16px;
}

.admin-spazio-r2-totale,
.admin-spazio-r2-account {
    min-width: 0;
    border: 1px solid #dfe5ec;
    border-radius: 15px;
    background: #f8fafc;
}

.admin-spazio-r2-totale {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    padding: 20px;
}

.admin-spazio-r2-valore span,
.admin-spazio-r2-account-titolo span {
    color: #748398;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.admin-spazio-r2-valore strong {
    display: block;
    margin-top: 7px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(25px, 3vw, 35px);
    font-weight: 500;
}

.admin-spazio-r2-valore small {
    display: block;
    margin-top: 7px;
    color: #65758a;
}

.admin-spazio-r2-percentuale {
    width: 92px;
    height: 92px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 8px solid #e6edf5;
    border-radius: 50%;
    color: #18355f;
    background: #fff;
}

.admin-spazio-r2-percentuale strong {
    font-size: 19px;
}

.admin-spazio-r2-percentuale span {
    color: #7b8999;
    font-size: 10px;
    font-weight: 750;
    text-transform: uppercase;
}

.admin-spazio-r2-barra {
    grid-column: 1 / -1;
    overflow: hidden;
    height: 12px;
    border-radius: 999px;
    background: #e2e9f1;
}

.admin-spazio-r2-barra span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: #2d72b8;
    transition: width .35s ease;
}

.admin-spazio-r2-barra span[data-level="warning"] { background: #d58a16; }
.admin-spazio-r2-barra span[data-level="critical"] { background: #c63f3f; }

.admin-spazio-r2-soglie {
    grid-column: 1 / -1;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.admin-spazio-r2-soglie span {
    padding: 6px 9px;
    border: 1px solid #d8e0e9;
    border-radius: 999px;
    color: #738297;
    background: #fff;
    font-size: 11px;
    font-weight: 800;
}

.admin-spazio-r2-soglie span.attivo:first-child {
    border-color: #e3bd74;
    color: #875515;
    background: #fff6e5;
}

.admin-spazio-r2-soglie span.attivo:last-child {
    border-color: #e4a2a2;
    color: #9b2525;
    background: #fff0f0;
}

.admin-spazio-r2-stato {
    grid-column: 1 / -1;
    margin: 0;
    padding: 10px 12px;
    border-radius: 10px;
    color: #53677e;
    background: #eef3f8;
    font-size: 13px;
    font-weight: 700;
}

.admin-spazio-r2-stato-ok { color: #23643e; background: #eaf7ef; }
.admin-spazio-r2-stato-avviso { color: #875515; background: #fff4dc; }
.admin-spazio-r2-stato-critico { color: #9b2525; background: #ffeaea; }

.admin-spazio-r2-account {
    overflow: hidden;
    background: #fff;
}

.admin-spazio-r2-account-titolo {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    padding: 17px 18px 14px;
    border-bottom: 1px solid #e5eaf0;
}

.admin-spazio-r2-account-titolo h3 {
    margin: 3px 0 0;
    font-size: 20px;
}

.admin-spazio-r2-account-titolo small {
    color: #788699;
    text-align: right;
}

.admin-spazio-r2-lista {
    max-height: 390px;
    overflow: auto;
}

.admin-spazio-r2-riga {
    display: grid;
    grid-template-columns: 30px minmax(150px, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    padding: 13px 18px;
    border-bottom: 1px solid #edf0f4;
}

.admin-spazio-r2-riga:last-child { border-bottom: 0; }

.admin-spazio-r2-posizione {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #5f7186;
    background: #edf2f7;
    font-size: 12px;
    font-weight: 850;
}

.admin-spazio-r2-identita { min-width: 0; }
.admin-spazio-r2-identita strong,
.admin-spazio-r2-identita small { display: block; }
.admin-spazio-r2-identita strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-spazio-r2-identita small { margin-top: 2px; color: #728196; font-size: 11px; }

.admin-spazio-r2-ruolo {
    padding: 5px 8px;
    border-radius: 999px;
    color: #52677f;
    background: #eaf0f6;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
}

.admin-spazio-r2-ruolo-admin {
    color: #785214;
    background: #fff0ce;
}

.admin-spazio-r2-peso { text-align: right; }
.admin-spazio-r2-peso strong,
.admin-spazio-r2-peso small { display: block; white-space: nowrap; }
.admin-spazio-r2-peso strong { font-size: 15px; }
.admin-spazio-r2-peso small { margin-top: 2px; color: #7b899a; font-size: 10px; }

.admin-elenco-card {
    overflow: hidden;
    border: 1px solid #d9d5cb;
    border-radius: 18px;
    background: #fff;
}

.admin-toolbar {
    display: flex;
    gap: 11px;
    padding: 17px;
    border-bottom: 1px solid #e4e1da;
}

.admin-toolbar select,
.admin-ricerca input {
    height: 48px;
    border: 1px solid #cbd4df;
    border-radius: 11px;
    outline: 0;
    color: #17304f;
    background: #fbfcfd;
}

.admin-toolbar select {
    width: 205px;
    padding: 0 12px;
}

.admin-aggiorna {
    display: inline-flex;
    min-width: 126px;
    height: 48px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
}

.admin-aggiorna.in-aggiornamento span {
    animation: admin-rotazione .75s linear infinite;
}

@keyframes admin-rotazione { to { transform: rotate(360deg); } }

.admin-ricerca {
    position: relative;
    flex: 1;
}

.admin-ricerca span {
    position: absolute;
    top: 12px;
    left: 14px;
    color: #65758a;
    font-size: 20px;
}

.admin-ricerca input {
    width: 100%;
    padding: 0 14px 0 43px;
}

.admin-account {
    display: grid;
    grid-template-columns: minmax(230px, 1.1fr) minmax(230px, 1fr) 128px minmax(310px, auto);
    gap: 18px;
    align-items: center;
    padding: 17px 19px;
    border-bottom: 1px solid #ebe8e2;
}

.admin-account:last-child {
    border-bottom: 0;
}

.admin-account-reset {
    box-shadow: inset 4px 0 #d18a24;
    background: #fffdf8;
}

.admin-reset-richiesto {
    display: inline-flex;
    margin-top: 7px;
    padding: 5px 8px;
    border-radius: 999px;
    color: #8a5919;
    background: #fff0d5;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.admin-persona {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.admin-avatar {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 12px;
    color: #214f8d;
    background: #e9eff6;
    font-weight: 900;
}

.admin-persona strong,
.admin-persona small,
.admin-contatti strong,
.admin-contatti small {
    display: block;
}

.admin-persona small,
.admin-contatti small {
    overflow: hidden;
    margin-top: 4px;
    color: #718197;
    font-size: 12px;
    text-overflow: ellipsis;
}

.admin-contatti {
    min-width: 0;
    font-size: 13px;
}

.admin-stato {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: max-content;
    padding: 8px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
}

.admin-stato::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
}

.admin-stato-attivo { color: #287252; background: #e5f3eb; }
.admin-stato-pendente,
.admin-stato-otp { color: #8a5919; background: #fff3df; }
.admin-stato-disattivato { color: #a93f49; background: #f8e7e9; }

.admin-azioni {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
}

.btn-admin {
    min-height: 37px;
    padding: 0 11px;
    border: 1px solid #cbd4df;
    border-radius: 9px;
    color: #17304f;
    background: #fff;
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
    cursor: pointer;
}

.btn-admin-approva { color: #fff; border-color: #287252; background: #287252; }
.btn-admin-disattiva { color: #8a5919; border-color: #e8c98d; background: #fff3df; }
.btn-admin-elimina { color: #fff; border-color: #a93f49; background: #a93f49; }

.admin-vuoto {
    margin: 0;
    padding: 38px 20px;
    color: #718197;
    text-align: center;
}

.admin-messaggio {
    margin: 15px;
}

.admin-modale-contenuto {
    position: relative;
}

.admin-modale-contenuto h2 {
    padding-right: 42px;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.admin-modale-chiudi {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 39px;
    height: 39px;
    border: 0;
    border-radius: 50%;
    color: #17304f;
    background: #eef2f6;
    font-size: 24px;
    cursor: pointer;
}

.admin-modale-contenuto .campo {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
}

.admin-codice-risultato {
    margin: 16px 0;
    padding: 18px 20px;
    border: 1px solid #ced8e4;
    border-radius: 13px;
    color: #18355f;
    background: #e9eff6;
    font-size: clamp(24px, 6vw, 34px);
    font-weight: 900;
    letter-spacing: .15em;
    text-align: center;
    user-select: all;
}

.admin-modale-password .admin-codice-risultato {
    overflow-wrap: anywhere;
    word-break: break-all;
    font-size: clamp(19px, 4.5vw, 30px);
    line-height: 1.35;
    letter-spacing: .06em;
}

.admin-genera-qr {
    display: flex;
    width: 100%;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 9px;
}

.admin-genera-qr.nascosto,
.admin-qr-box.nascosto {
    display: none;
}

.admin-qr-box {
    display: grid;
    justify-items: center;
    gap: 13px;
    margin: 16px 0;
    padding: 18px;
    border: 1px solid #ced8e4;
    border-radius: 15px;
    background: #f6f8fb;
}

.admin-qr-immagine {
    display: grid;
    width: 276px;
    height: 276px;
    place-items: center;
    padding: 12px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(24,53,95,.10);
}

.admin-qr-immagine canvas,
.admin-qr-immagine img {
    display: block;
    width: 252px !important;
    height: 252px !important;
}

.admin-qr-box p,
.admin-qr-box p span {
    display: block;
    margin: 0;
    text-align: center;
}

.admin-qr-box p span {
    max-width: 410px;
    margin-top: 4px;
    color: #65758a;
    font-size: 12px;
    line-height: 1.45;
}

.admin-modale-azioni {
    display: grid;
    grid-template-columns: minmax(110px, .45fr) minmax(200px, 1fr);
    gap: 10px;
    margin-top: 20px;
}

.admin-modale-azioni button {
    min-height: 48px;
    min-width: 0;
    padding: 10px 14px;
    line-height: 1.2;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.admin-conferma-pericolo {
    border-color: #a93f49 !important;
    background: #a93f49 !important;
}

@media (max-width: 1050px) {
    .accesso-prisma-layout { grid-template-columns: minmax(300px, .75fr) minmax(480px, 1.25fr); }
    .accesso-prisma-presentazione { padding: 42px 34px; }
    .accesso-prisma-testo h1 { font-size: 45px; }
    .admin-account { grid-template-columns: 1fr 1fr; }
    .admin-azioni { grid-column: 1 / -1; justify-content: flex-start; }
}

@media (max-width: 780px) {
    .accesso-prisma-layout { display: block; min-height: 100vh; }
    .accesso-prisma-presentazione { display: none; }
    .accesso-prisma-pannello { min-height: 100vh; padding: 18px; }
    .accesso-prisma-card { padding: 26px 22px; border-radius: 20px; }
    .accesso-prisma-logo-mobile { display: flex; align-items: center; gap: 10px; margin-bottom: 30px; }
    .accesso-prisma-logo-mobile img { width: 44px; height: 44px; object-fit: contain; }
    .accesso-prisma-logo-mobile strong { letter-spacing: .1em; }
    .admin-prisma { width: min(100% - 26px, 1480px); padding-top: 30px; }
    .admin-prisma-header { align-items: flex-start; flex-direction: column; }
    .admin-toolbar { flex-direction: column; }
    .admin-toolbar select,
    .admin-aggiorna { width: 100%; }
}

@media (max-width: 560px) {
    .accesso-scelte,
    .accesso-form-griglia,
    .admin-statistiche { grid-template-columns: 1fr; }
    .accesso-scelta-principale,
    .accesso-campo-intero { grid-column: auto; }
    .accesso-scelta { min-height: 132px; }
    .accesso-otp { gap: 5px; }
    .accesso-otp input { height: 56px; font-size: 22px; }
    .accesso-prisma-footer { flex-direction: column; }
    .admin-account { grid-template-columns: 1fr; }
    .admin-azioni { grid-column: auto; justify-content: flex-start; }
    .admin-modale-contenuto { padding: 28px 20px 22px; }
    .admin-modale-azioni { grid-template-columns: 1fr; }
    .admin-modale-azioni button { width: 100%; }
}

@media (max-width: 980px) {
    .admin-spazio-r2-riepilogo { grid-template-columns: 1fr; }
}

@media (max-width: 780px) {
    .admin-spazio-r2 { padding: 16px; }
    .admin-spazio-r2-header { align-items: stretch; flex-direction: column; }
    .admin-spazio-r2-header .admin-aggiorna { width: 100%; }
    .admin-spazio-r2-riga { grid-template-columns: 30px minmax(0, 1fr) auto; }
    .admin-spazio-r2-ruolo { grid-column: 2; width: max-content; }
    .admin-spazio-r2-peso { grid-column: 3; grid-row: 1 / span 2; }
}

@media (max-width: 560px) {
    .admin-spazio-r2-totale { grid-template-columns: 1fr; }
    .admin-spazio-r2-percentuale { width: 78px; height: 78px; border-width: 7px; }
    .admin-spazio-r2-riga { grid-template-columns: 28px minmax(0, 1fr); }
    .admin-spazio-r2-peso { grid-column: 2; grid-row: auto; margin-top: 3px; text-align: left; }
    .admin-spazio-r2-ruolo { grid-column: 2; }
    .admin-spazio-r2-account-titolo { align-items: flex-start; flex-direction: column; }
    .admin-spazio-r2-account-titolo small { text-align: left; }
}

#endregion

/* Accessi V25: collegamento amministrazione integrato nella Home. */
.card-immagine-amministrazione {
    color: #214f8d;
    background: linear-gradient(145deg, #edf3fa, #dce8f5);
}

.card-immagine-amministrazione svg {
    width: 58%;
    height: 58%;
    filter: drop-shadow(0 8px 12px rgba(24,53,95,.13));
}

.card-amministrazione .card-categoria {
    color: #214f8d;
}

/* Accessi V26: campi coerenti e leggibili su Safari/iPad. */
.pagina-accesso-prisma .accesso-form {
    align-items: start;
}

.pagina-accesso-prisma .accesso-form .campo {
    width: 100%;
    min-width: 0;
    margin: 0;
}

.pagina-accesso-prisma .accesso-form input,
.pagina-accesso-prisma .accesso-form select {
    display: block;
    width: 100%;
    height: 52px;
    min-width: 0;
    min-height: 52px;
    margin: 0;
    padding: 0 15px;
    border: 1px solid #c8d2df;
    border-radius: 12px;
    color: #17304f;
    background-color: #fff;
    box-shadow: inset 0 1px 2px rgba(24,53,95,.025);
    font-size: 16px;
    line-height: normal;
    appearance: none;
    -webkit-appearance: none;
}

.pagina-accesso-prisma .accesso-form select {
    padding-right: 42px;
    background-image:
        linear-gradient(45deg, transparent 50%, #52677f 50%),
        linear-gradient(135deg, #52677f 50%, transparent 50%);
    background-position:
        calc(100% - 20px) 22px,
        calc(100% - 14px) 22px;
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
}

.pagina-accesso-prisma .accesso-form input:focus,
.pagina-accesso-prisma .accesso-form select:focus {
    border-color: #2e65a3;
    box-shadow: 0 0 0 4px rgba(46,101,163,.12);
}

.pagina-accesso-prisma .accesso-form input::placeholder {
    color: #8796a8;
    opacity: 1;
}

.pagina-accesso-prisma .accesso-password {
    width: 100%;
}

.accesso-separatore {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 12px;
    color: #8796a8;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.accesso-separatore::before,
.accesso-separatore::after {
    content: "";
    height: 1px;
    flex: 1;
    background: #dfe5ec;
}

.accesso-qr-apri {
    display: flex;
    width: 100%;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 9px;
}

.accesso-qr-contenuto {
    position: relative;
    width: min(100%, 580px);
}

.accesso-qr-contenuto h2 {
    padding-right: 42px;
}

.accesso-qr-video-box {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 4 / 3;
    margin: 17px 0 12px;
    border-radius: 16px;
    background: #0b1727;
}

.accesso-qr-video-box video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.accesso-qr-mirino {
    position: absolute;
    inset: 14% 22%;
    border: 3px solid rgba(255,255,255,.95);
    border-radius: 18px;
    box-shadow: 0 0 0 999px rgba(7,19,34,.38), 0 0 28px rgba(77,156,236,.45);
}

.accesso-qr-file {
    display: flex;
    width: 100%;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.accesso-qr-nota {
    margin: 12px 0 0 !important;
    color: #718197;
    font-size: 12px;
    text-align: center;
}

.accesso-messaggio-successo:not(:empty) {
    color: #246846;
    border-color: #abd6bd;
    background: #e8f5ed;
}

.pagina-accesso-prisma .accesso-password input {
    padding-right: 94px;
}

.pagina-accesso-prisma .accesso-otp input {
    height: 64px;
    min-height: 64px;
    padding: 0;
    text-align: center;
    font-size: 26px;
}

@media (max-width: 560px) {
    .pagina-accesso-prisma .accesso-form-griglia {
        grid-template-columns: 1fr;
    }

    .pagina-accesso-prisma .accesso-otp input {
        height: 56px;
        min-height: 56px;
        font-size: 22px;
    }
}

/* =========================================================
   PRISMA V33 — PROFILO, SICUREZZA E BACKUP
   ========================================================= */
.pagina-profilo-sicurezza {
    background:
        radial-gradient(circle at 15% 0%, rgba(31, 95, 229, .10), transparent 32%),
        linear-gradient(180deg, #f4f7fb 0%, #edf2f8 100%);
}

.pagina-profilo-sicurezza .contenitore {
    width: min(calc(100% - 34px), 1080px);
}

.profilo-hero-sicurezza {
    display: flex;
    align-items: center;
    gap: 20px;
    padding-top: 24px;
}

.profilo-hero-sicurezza h1 {
    margin-bottom: 4px;
}

.profilo-layout-sicurezza {
    display: grid;
    gap: 20px;
}

.pagina-profilo-sicurezza .scheda {
    position: relative;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid #dce4ef;
    border-radius: 22px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 20px 54px rgba(26, 53, 93, .09);
}

.profilo-sezione-intestazione {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 25px 27px 22px;
    border-bottom: 1px solid #e7edf5;
    background:
        linear-gradient(120deg, rgba(31, 95, 229, .06), transparent 58%),
        #fff;
}

.profilo-sezione-intestazione h2 {
    margin: 2px 0 5px;
    color: #19345c;
    font-size: 23px;
    line-height: 1.2;
}

.profilo-sezione-intestazione p:last-child {
    max-width: 770px;
    margin: 0;
    color: #65738a;
    font-size: 14px;
    line-height: 1.55;
}

.profilo-sezione-icona {
    display: grid;
    flex: 0 0 54px;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 17px;
    color: #fff;
    box-shadow: 0 10px 22px rgba(31, 95, 229, .20);
}

.profilo-sezione-icona svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.profilo-icona-lucchetto {
    background: linear-gradient(145deg, #204f9d, #1f5fe5);
}

.profilo-icona-backup {
    background: linear-gradient(145deg, #087e65, #15a37f);
    box-shadow: 0 10px 22px rgba(21, 163, 127, .20);
}

.profilo-account-riepilogo {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 23px 27px 0;
    padding: 14px 16px;
    border: 1px solid #dce6f4;
    border-radius: 15px;
    background: #f7faff;
}

.profilo-account-avatar {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid #d7e3f4;
    border-radius: 13px;
    background: #fff;
    font-size: 20px;
}

.profilo-account-riepilogo > span:nth-child(2) {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.profilo-account-riepilogo small {
    color: #738198;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
}

.profilo-account-riepilogo strong {
    overflow: hidden;
    color: #203d66;
    font-size: 15px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profilo-account-stato {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-left: auto;
    padding: 7px 10px;
    border: 1px solid #cce8dc;
    border-radius: 999px;
    color: #137052;
    background: #eefaf5;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.profilo-account-stato i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #18a875;
    box-shadow: 0 0 0 4px rgba(24, 168, 117, .12);
}

.profilo-password-campi {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
    padding: 22px 27px 0;
}

.profilo-campo-password {
    margin: 0;
}

.profilo-campo-password.profilo-campo-conferma {
    grid-column: 2;
}

.pagina-profilo-sicurezza input[type="password"] {
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    border: 1px solid #cfd9e7;
    border-radius: 12px;
    color: #20354f;
    background: #fff;
    font-size: 16px;
    -webkit-text-security: disc;
    box-shadow: inset 0 1px 2px rgba(23, 48, 82, .025);
}

.pagina-profilo-sicurezza input[type="password"]:focus {
    border-color: #4d7cc4;
    outline: 4px solid rgba(31, 95, 229, .10);
}

.profilo-regole-password {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 14px 27px 2px;
}

.profilo-regole-password span {
    position: relative;
    padding: 7px 10px 7px 27px;
    border: 1px solid #e0e7f0;
    border-radius: 999px;
    color: #596a82;
    background: #fafbfd;
    font-size: 11px;
    font-weight: 700;
}

.profilo-regole-password span::before {
    position: absolute;
    left: 10px;
    content: "✓";
    color: #13835e;
    font-weight: 900;
}

.profilo-azione-password {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 20px 27px 0;
    padding: 17px;
    border: 1px solid #dfe8f3;
    border-radius: 15px;
    background: #f8fafc;
}

.profilo-nota-protezione {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.profilo-nota-protezione strong {
    color: #2c435f;
    font-size: 13px;
}

.profilo-nota-protezione span {
    color: #728096;
    font-size: 12px;
    line-height: 1.4;
}

.profilo-btn-password {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-width: 196px;
    padding-inline: 20px;
    border: 0;
}

.profilo-btn-password:disabled {
    cursor: wait;
    opacity: .65;
}

.profilo-messaggio-operazione {
    min-height: 0;
    margin: 14px 27px 24px;
    padding: 0;
    border: 0;
    color: #4f6078;
    background: transparent;
    font-size: 13px;
    font-weight: 700;
}

.profilo-messaggio-operazione:empty {
    display: none;
}

.profilo-messaggio-successo,
.pagina-profilo-sicurezza .messaggio-backup-successo {
    padding: 12px 14px;
    border: 1px solid #c9e9db;
    border-radius: 11px;
    color: #116847;
    background: #effaf5;
}

.profilo-messaggio-errore,
.pagina-profilo-sicurezza .messaggio-backup-errore {
    padding: 12px 14px;
    border: 1px solid #f0c8c8;
    border-radius: 11px;
    color: #9a2d2d;
    background: #fff4f4;
}

.profilo-backup-riepilogo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 23px 27px 0;
    padding: 13px 16px;
    border: 1px solid #dce7e3;
    border-radius: 14px;
    background: #f4faf8;
}

.profilo-backup-riepilogo span {
    color: #58736b;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
}

.profilo-backup-riepilogo strong {
    color: #11694f;
    font-size: 13px;
    text-align: right;
}

.profilo-backup-operazioni {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    padding: 20px 27px 0;
}

.profilo-backup-pannello {
    display: flex;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    padding: 19px;
    border: 1px solid #dfe6ef;
    border-radius: 17px;
    background: #fbfcfe;
}

.profilo-backup-creazione {
    border-top: 4px solid #1f5fe5;
}

.profilo-backup-ripristino {
    border-top: 4px solid #168567;
}

.profilo-backup-pannello-titolo {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}

.profilo-backup-pannello-titolo > span {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid #dae5f2;
    border-radius: 13px;
    background: #fff;
    font-size: 20px;
}

.profilo-backup-pannello h3 {
    margin: 0 0 3px;
    color: #263f61;
    font-size: 16px;
}

.profilo-backup-pannello p {
    margin: 0;
    color: #6b798d;
    font-size: 12px;
    line-height: 1.48;
}

.profilo-backup-pannello code {
    padding: 2px 5px;
    border-radius: 5px;
    color: #174f96;
    background: #eaf2ff;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 11px;
}

.profilo-backup-password-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.profilo-backup-password-grid .campo {
    margin: 0;
}

.profilo-backup-nota {
    margin: 10px 0 14px !important;
    padding-left: 19px;
    position: relative;
}

.profilo-backup-nota::before {
    position: absolute;
    left: 2px;
    content: "ⓘ";
    color: #2b65aa;
    font-weight: 800;
}

.profilo-ripristino-elenco {
    display: grid;
    gap: 10px;
    margin: 2px 0 19px;
    padding: 0;
    list-style: none;
}

.profilo-ripristino-elenco li {
    position: relative;
    padding-left: 23px;
    color: #5e6e83;
    font-size: 12px;
    line-height: 1.45;
}

.profilo-ripristino-elenco li::before {
    position: absolute;
    left: 0;
    top: 1px;
    content: "✓";
    color: #168567;
    font-weight: 900;
}

.pagina-profilo-sicurezza .profilo-btn-backup {
    display: flex;
    width: 100%;
    min-height: 62px;
    align-items: center;
    gap: 12px;
    margin-top: auto;
    padding: 11px 14px;
    border-radius: 13px;
    box-shadow: none;
    text-align: left;
}

.pagina-profilo-sicurezza .profilo-btn-backup > span:first-child {
    display: grid;
    flex: 0 0 35px;
    width: 35px;
    height: 35px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 10px;
    font-size: 22px;
    font-weight: 300;
}

.pagina-profilo-sicurezza .profilo-btn-backup > span:last-child {
    display: grid;
    gap: 1px;
}

.pagina-profilo-sicurezza .profilo-btn-backup strong {
    font-size: 14px;
}

.pagina-profilo-sicurezza .profilo-btn-backup small {
    color: inherit;
    font-size: 10px;
    font-weight: 600;
    opacity: .78;
}

.pagina-profilo-sicurezza .btn-backup-crea {
    border-color: #1f5fe5;
    color: #fff;
    background: linear-gradient(135deg, #214f9e, #1f5fe5);
}

.pagina-profilo-sicurezza .btn-backup-ripristina {
    border-color: #c9ddd7;
    color: #116c53;
    background: #edf8f4;
}

.pagina-profilo-sicurezza .btn-backup-ripristina > span:first-child {
    border-color: #c1ddd4;
    background: #fff;
}

.profilo-avviso-backup {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 20px 27px 0;
    padding: 14px 16px;
    border: 1px solid #edd9b7;
    border-left: 4px solid #c58c35;
    border-radius: 13px;
    color: #6e5127;
    background: #fff9ef;
}

.profilo-avviso-scudo {
    flex: 0 0 auto;
    font-size: 20px;
}

.profilo-avviso-backup > span:last-child {
    display: grid;
    gap: 3px;
}

.profilo-avviso-backup strong {
    color: #65491f;
    font-size: 13px;
}

.profilo-avviso-backup small {
    color: #806a49;
    font-size: 12px;
    line-height: 1.48;
}

/* Finestra protetta per la password del ripristino */
.modale-password-backup[hidden] {
    display: none !important;
}

.modale-password-backup {
    position: fixed;
    z-index: 10050;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(10, 25, 48, .68);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

body.modale-backup-aperta {
    overflow: hidden;
}

.modale-password-backup-pannello {
    position: relative;
    width: min(100%, 455px);
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, .78);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(4, 18, 42, .30);
    animation: modalePasswordIngresso .18s ease-out;
}

@keyframes modalePasswordIngresso {
    from { opacity: 0; transform: translateY(10px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.modale-password-backup-chiudi {
    position: absolute;
    top: 14px;
    right: 14px;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid #e0e6ef;
    border-radius: 11px;
    color: #5b6b81;
    background: #f8fafc;
    font-size: 24px;
    line-height: 1;
}

.modale-password-backup-icona {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    margin-bottom: 14px;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(145deg, #204f9d, #1f5fe5);
    box-shadow: 0 12px 25px rgba(31, 95, 229, .22);
    font-size: 26px;
}

.modale-password-backup-pannello h2 {
    margin: 3px 0 7px;
    color: #1e385e;
    font-size: 25px;
}

.modale-password-backup-pannello > p:not(.card-categoria):not(.modale-password-backup-nota) {
    margin: 0 0 19px;
    color: #68768b;
    font-size: 13px;
    line-height: 1.55;
}

.modale-password-backup-form .campo {
    margin-bottom: 7px;
}

.modale-password-backup-form input[type="password"] {
    width: 100%;
    min-height: 54px;
    padding: 12px 14px;
    border: 1px solid #cfd9e7;
    border-radius: 12px;
    color: #20354f;
    background: #fff;
    font-size: 17px;
    -webkit-text-security: disc;
}

.modale-password-backup-form input[type="password"]:focus {
    border-color: #4d7cc4;
    outline: 4px solid rgba(31, 95, 229, .11);
}

.modale-password-backup-errore {
    min-height: 18px;
    margin: 5px 0 9px;
    color: #b33333;
    font-size: 12px;
    font-weight: 700;
}

.modale-password-backup-azioni {
    display: grid;
    grid-template-columns: 1fr 1.35fr;
    gap: 10px;
}

.modale-password-backup-azioni button {
    min-height: 50px;
    border-radius: 11px;
    font-size: 14px;
    font-weight: 800;
}

.modale-password-backup-nota {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 16px 0 0;
    padding: 11px 12px;
    border: 1px solid #dfe8f3;
    border-radius: 11px;
    color: #66758a;
    background: #f7f9fc;
    font-size: 11px;
    line-height: 1.4;
}

.modale-password-backup-nota span {
    color: #233f67;
    font-size: 9px;
    letter-spacing: .08em;
}

@media (max-width: 760px) {
    .pagina-profilo-sicurezza .contenitore {
        width: min(calc(100% - 20px), 1080px);
        margin-top: 10px;
    }

    .profilo-hero-sicurezza {
        align-items: flex-start;
        gap: 14px;
        padding: 18px 3px 21px;
    }

    .profilo-hero-sicurezza img {
        width: 64px;
        height: 64px;
    }

    .profilo-sezione-intestazione {
        padding: 20px;
    }

    .profilo-account-riepilogo,
    .profilo-azione-password,
    .profilo-backup-riepilogo,
    .profilo-avviso-backup {
        margin-right: 20px;
        margin-left: 20px;
    }

    .profilo-password-campi,
    .profilo-backup-operazioni {
        grid-template-columns: 1fr;
        padding-right: 20px;
        padding-left: 20px;
    }

    .profilo-campo-password.profilo-campo-conferma {
        grid-column: auto;
    }

    .profilo-regole-password {
        padding-right: 20px;
        padding-left: 20px;
    }

    .profilo-azione-password {
        align-items: stretch;
        flex-direction: column;
    }

    .profilo-btn-password {
        width: 100%;
    }

    .profilo-account-stato {
        display: none;
    }

    .profilo-messaggio-operazione {
        margin-right: 20px;
        margin-left: 20px;
    }
}

@media (max-width: 480px) {
    .profilo-sezione-intestazione {
        gap: 12px;
        padding: 18px 16px;
    }

    .profilo-sezione-icona {
        flex-basis: 46px;
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }

    .profilo-sezione-intestazione h2 {
        font-size: 20px;
    }

    .profilo-account-riepilogo,
    .profilo-azione-password,
    .profilo-backup-riepilogo,
    .profilo-avviso-backup,
    .profilo-messaggio-operazione {
        margin-right: 16px;
        margin-left: 16px;
    }

    .profilo-password-campi,
    .profilo-regole-password,
    .profilo-backup-operazioni {
        padding-right: 16px;
        padding-left: 16px;
    }

    .profilo-backup-riepilogo {
        align-items: flex-start;
        flex-direction: column;
    }

    .profilo-backup-riepilogo strong {
        text-align: left;
    }

    .modale-password-backup {
        align-items: end;
        padding: 10px;
    }

    .modale-password-backup-pannello {
        width: 100%;
        padding: 24px 19px 19px;
        border-radius: 22px 22px 15px 15px;
    }
}


/* =========================================================
   PRISMA V34 — CORREZIONE IMPAGINAZIONE PROFILO E SICUREZZA
   ========================================================= */
.pagina-profilo-sicurezza .profilo-layout-sicurezza,
.pagina-profilo-sicurezza .profilo-layout-sicurezza > section,
.pagina-profilo-sicurezza .profilo-sezione-intestazione > div:last-child {
    min-width: 0;
}

/* Nella pagina profilo il marchio è già presente nella barra superiore. */
.pagina-profilo-sicurezza .barra-utente-globale::before {
    display: none;
}

.pagina-profilo-sicurezza .barra-utente-globale .utente-identita {
    margin-left: 0;
    margin-right: auto;
    min-width: 0;
}

.pagina-profilo-sicurezza .barra-utente-globale .utente-identita strong {
    display: block;
    max-width: min(48vw, 430px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pagina-profilo-sicurezza .utente-azioni a[href="profilo.html"] {
    border-color: #cbdcf7;
    color: #174f96;
    background: #edf4ff;
    pointer-events: none;
}

/* Tre campi allineati sulla stessa riga negli schermi ampi. */
.profilo-password-campi {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
}

.profilo-campo-password.profilo-campo-conferma {
    grid-column: auto;
}

.profilo-campo-password label {
    display: block;
    min-height: 19px;
    margin-bottom: 7px;
}

/* Gli indicatori diventano verdi soltanto quando il requisito è rispettato. */
.profilo-regole-password span::before {
    content: "•";
    color: #8d99aa;
}

.profilo-regole-password span.profilo-regola-valida {
    border-color: #cce8dc;
    color: #126d50;
    background: #eefaf5;
}

.profilo-regole-password span.profilo-regola-valida::before {
    content: "✓";
    color: #13835e;
}

/* Corregge il pulsante che prima occupava tutta la larghezza e schiacciava la nota. */
.profilo-azione-password {
    justify-content: space-between;
}

.profilo-nota-protezione {
    flex: 1 1 auto;
    max-width: 620px;
}

.pagina-profilo-sicurezza .profilo-btn-password {
    width: auto;
    max-width: 270px;
    min-height: 52px;
    flex: 0 0 auto;
}

.profilo-backup-operazioni {
    align-items: stretch;
}

.profilo-backup-pannello {
    height: 100%;
}

@media (min-width: 761px) and (max-width: 940px) {
    .profilo-password-campi {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .profilo-password-campi .profilo-campo-password:first-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .profilo-password-campi {
        grid-template-columns: 1fr;
    }

    .profilo-password-campi .profilo-campo-password:first-child {
        grid-column: auto;
    }

    .pagina-profilo-sicurezza .profilo-btn-password {
        width: 100%;
        max-width: none;
    }
}

@media (max-width: 620px) {
    .pagina-profilo-sicurezza .barra-utente-globale {
        align-items: stretch;
        flex-direction: column;
    }

    .pagina-profilo-sicurezza .barra-utente-globale .utente-identita strong {
        max-width: calc(100vw - 105px);
    }

    .pagina-profilo-sicurezza .utente-azioni {
        width: 100%;
    }

    .pagina-profilo-sicurezza .utente-azioni a,
    .pagina-profilo-sicurezza .utente-azioni button {
        flex: 1 1 0;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .modale-password-backup-azioni {
        grid-template-columns: 1fr;
    }
}

/* Mantiene verticali i due campi del backup anche nelle regole tablet globali. */
body.pagina-profilo-sicurezza .profilo-backup-password-grid {
    grid-template-columns: 1fr;
}

/* =========================================================
   PRISMA V35 — DESKTOP RESPONSIVE E SCORRIMENTO CON MOUSE
   Regole isolate: non modificano dati, archivio o generazione PDF.
   ========================================================= */

/* Mantiene lo scorrimento verticale nativo del browser e impedisce
   che una larghezza eccessiva crei uno scorrimento laterale involontario. */
html {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
}

body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

/* Le finestre continuano a bloccare correttamente la pagina sotto. */
body.modal-aperta,
body.modale-backup-aperta {
    overflow: hidden !important;
}

/* Migliora lo scorrimento delle finestre lunghe senza propagare il movimento
   alla pagina sottostante quando si raggiunge il loro limite. */
.modal-contenuto,
.modal-archivio-contenuto,
.modal-intervento-generazione .modal-archivio-contenuto,
.accesso-modale-contenuto,
.admin-modale-contenuto,
.modale-password-backup-pannello,
.lista-soggetti,
.lista-cartelle-esistenti {
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

/* Desktop con mouse o trackpad: barra di scorrimento stabile e contenuti
   leggermente più larghi, senza alterare tablet e smartphone. */
@media (hover: hover) and (pointer: fine) {
    html {
        scrollbar-gutter: stable;
    }

    /* Su computer la pagina usa esplicitamente lo scorrimento nativo del
       browser. Non viene aggiunto alcun intercettore JavaScript alla rotellina. */
    body:not(.modal-aperta):not(.modale-backup-aperta) {
        height: auto !important;
        overflow-y: auto !important;
        overscroll-behavior-y: auto;
    }
}

@media (min-width: 1367px) {
    .home-contenitore {
        width: min(calc(100% - 72px), 1320px);
    }

    .griglia-verbali {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 14px;
    }

    .contenitore,
    body.pagina-verbale .contenitore {
        width: min(calc(100% - 80px), 1180px);
        max-width: 1180px;
    }

    .scheda,
    .pagina-verbale form[data-verbale-modello] .scheda {
        padding: 25px 27px;
    }

    .griglia-due,
    .pagina-verbale form[data-verbale-modello] .griglia-due {
        gap: 15px 20px;
    }

    .archivio-interventi-contenitore,
    .soggetto-contenitore {
        max-width: 1180px !important;
    }

    .pagina-numerico .numerico-wrap,
    .pagina-straordinari-form .stra-wrap {
        width: min(calc(100% - 72px), 1280px);
        max-width: 1280px;
    }

    .accesso-prisma-layout {
        grid-template-columns: minmax(390px, .9fr) minmax(620px, 1.1fr);
    }
}

/* Schermi desktop molto ampi: evita che righe e campi diventino troppo
   estesi e difficili da leggere, mantenendo il contenuto centrato. */
@media (min-width: 1800px) {
    .home-contenitore {
        max-width: 1400px;
    }

    .contenitore,
    body.pagina-verbale .contenitore {
        max-width: 1240px;
    }
}


/* === FOGLIO USCITA AUTOMEZZI V36 === */
.pagina-foglio-uscita-automezzi .obbligatorio {
    color: #c62828;
}

.pagina-foglio-uscita-automezzi input[type="number"] {
    width: 100%;
    min-height: 54px;
    padding: 14px 15px;
    border: 1px solid #cbd5e1;
    border-radius: 13px;
    background: #ffffff;
    color: #172033;
    font-size: 18px;
}

.pagina-foglio-uscita-automezzi input[type="number"]:focus {
    border-color: #4263eb;
    outline: 3px solid rgba(66, 99, 235, 0.15);
}

.pagina-foglio-uscita-automezzi .campo-larghezza-intera {
    grid-column: 1 / -1;
}

.pagina-foglio-uscita-automezzi .scelta-segmentata-quattro {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.pagina-foglio-uscita-automezzi .scelta-segmentata-tre {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pagina-foglio-uscita-automezzi .pannello-condizionale,
.pagina-foglio-uscita-automezzi .pannello-rifornimento {
    margin-top: 14px;
    padding: 16px;
    border: 1px solid #d7e0ee;
    border-radius: 16px;
    background: #f8faff;
}

.pagina-foglio-uscita-automezzi .pannello-condizionale[hidden],
.pagina-foglio-uscita-automezzi .pannello-rifornimento[hidden] {
    display: none !important;
}

.pagina-foglio-uscita-automezzi .campo-calcolato input {
    background: #edf3fb;
    color: #18355f;
    font-weight: 800;
}

.pagina-foglio-uscita-automezzi .input-con-suffisso {
    position: relative;
}

.pagina-foglio-uscita-automezzi .input-con-suffisso input {
    padding-right: 56px;
}

.pagina-foglio-uscita-automezzi .input-con-suffisso span {
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%);
    color: #60718a;
    font-weight: 800;
    pointer-events: none;
}

.pagina-foglio-uscita-automezzi .gruppo-condizionale {
    padding-top: 4px;
}

.pagina-foglio-uscita-automezzi .scheda-firme-informativa p {
    margin: 0;
    color: #56657b;
    line-height: 1.55;
}

@media (max-width: 720px) {
    .pagina-foglio-uscita-automezzi .scelta-segmentata-quattro,
    .pagina-foglio-uscita-automezzi .scelta-segmentata-tre {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 440px) {
    .pagina-foglio-uscita-automezzi .scelta-segmentata-quattro,
    .pagina-foglio-uscita-automezzi .scelta-segmentata-tre {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   PRISMA V37 — ALLINEAMENTO PAGINA SOGGETTO
   Correzione esclusivamente grafica: uniforma la larghezza dei
   campi nelle due colonne e mantiene il contenuto centrato.
   ========================================================= */
.pagina-soggetto .soggetto-campi {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
}

.pagina-soggetto .soggetto-campi > .campo {
    min-width: 0;
}

.pagina-soggetto .soggetto-campi > .campo > input,
.pagina-soggetto .soggetto-campi > .campo > select,
.pagina-soggetto .soggetto-campi > .campo > textarea,
.pagina-soggetto .soggetto-campi > .campo > .soggetto-sesso {
    width: 100%;
    min-width: 0;
}

@media (max-width: 700px) {
    .pagina-soggetto .soggetto-campi {
        grid-template-columns: 1fr;
    }
}

/* Salvataggio di emergenza dei verbali */
.bozza-emergenza-stato {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    padding: 9px 12px;
    border: 1px solid #d9e3ef;
    border-radius: 11px;
    color: #52647a;
    background: #f7f9fc;
    font-size: 12px;
    font-weight: 700;
}

.bozza-emergenza-icona {
    color: #2f7f68;
    font-size: 10px;
}

.bozza-emergenza-salvataggio .bozza-emergenza-icona,
.bozza-emergenza-attesa .bozza-emergenza-icona {
    color: #b47a16;
}

.bozza-emergenza-salvata,
.bozza-emergenza-recuperata {
    border-color: #c9e2d9;
    color: #176b54;
    background: #eff9f5;
}

.bozza-emergenza-errore {
    border-color: #efc7c7;
    color: #a13232;
    background: #fff3f3;
}

.bozza-emergenza-offline {
    border-color: #ead4a8;
    color: #7a591d;
    background: #fff9ec;
}

.bozza-emergenza-pulita {
    color: #637286;
    background: #f8fafc;
}

.modal-bozza-emergenza {
    position: fixed;
    z-index: 10060;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(10, 25, 48, .68);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.modal-bozza-emergenza-pannello {
    width: min(100%, 480px);
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, .78);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(4, 18, 42, .30);
    animation: modalePasswordIngresso .18s ease-out;
}

.modal-bozza-emergenza-icona {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    margin-bottom: 14px;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(145deg, #176b54, #249071);
    font-size: 31px;
}

.modal-bozza-emergenza-pannello h2 {
    margin: 3px 0 8px;
    color: #1e385e;
    font-size: 25px;
}

.modal-bozza-emergenza-pannello > p:not(.card-categoria) {
    margin: 0 0 20px;
    color: #68768b;
    font-size: 13px;
    line-height: 1.55;
}

.modal-bozza-emergenza-azioni {
    display: grid;
    grid-template-columns: 1fr 1.35fr;
    gap: 10px;
}

.modal-bozza-emergenza-azioni button {
    min-height: 50px;
    border-radius: 11px;
    font-size: 14px;
    font-weight: 800;
}

.pagina-profilo-sicurezza .btn-backup-secondario {
    margin-top: 9px;
    border-color: #d8e0ea;
    color: #40566f;
    background: #f7f9fc;
}

.pagina-profilo-sicurezza .btn-backup-secondario > span:first-child {
    border-color: #d8e0ea;
    background: #fff;
}

@media (max-width: 560px) {
    .modal-bozza-emergenza-pannello {
        padding: 22px;
        border-radius: 18px;
    }

    .modal-bozza-emergenza-azioni {
        grid-template-columns: 1fr;
    }
}


/* === ARCHIVIO INTERVENTI V2.2.1: apertura rapida in pannello === */
body.dettaglio-intervento-aperto {
    overflow: hidden;
}

.card-intervento {
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.card-intervento:hover {
    border-color: #b8c7da;
    transform: translateY(-1px);
}

.card-intervento.selezionata {
    border-color: #1f5fe5;
    box-shadow: 0 0 0 3px rgba(31, 95, 229, .12);
    background: #f4f8ff;
}

.card-intervento.selezionata .freccia-cartella {
    transform: rotate(90deg);
}

.freccia-cartella {
    font-size: 25px;
    color: #64748b;
    transition: transform .18s ease;
}

.pannello-dettaglio-intervento {
    position: fixed;
    inset: 0;
    z-index: 9500;
    display: flex;
    justify-content: flex-end;
    padding: 0;
    background: rgba(15, 23, 42, .48);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.pannello-dettaglio-intervento.nascosto {
    display: none !important;
}

.pannello-dettaglio-contenuto {
    width: min(780px, 92vw);
    height: 100vh;
    height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    margin: 0;
    overflow: auto;
    overscroll-behavior: contain;
    border: 0;
    border-left: 1px solid #dbe4ef;
    border-radius: 24px 0 0 24px;
    box-shadow: -18px 0 50px rgba(15, 23, 42, .24);
    animation: archivioPannelloEntra .2s ease-out;
}

@keyframes archivioPannelloEntra {
    from { transform: translateX(28px); opacity: .65; }
    to { transform: translateX(0); opacity: 1; }
}

.pannello-dettaglio-contenuto .dettaglio-intervento-header {
    position: sticky;
    top: -1px;
    z-index: 3;
    margin: -22px -22px 18px;
    padding: 20px 22px 16px;
    border-bottom: 1px solid #e2e8f0;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

#chiudiDettaglio {
    flex: 0 0 auto;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 50%;
    background: #eef2f7;
    color: #334155;
    font-size: 18px;
}

.caricamento-cartella,
.errore-apertura-cartella {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 150px;
    padding: 24px;
    border: 1px dashed #cbd5e1;
    border-radius: 16px;
    background: #f8fafc;
    color: #475569;
    font-weight: 750;
    text-align: center;
}

.errore-apertura-cartella {
    border-color: #fecaca;
    background: #fff7f7;
    color: #b91c1c;
}

.caricamento-cartella-spinner {
    width: 24px;
    height: 24px;
    border: 3px solid #cbd5e1;
    border-top-color: #1f5fe5;
    border-radius: 50%;
    animation: archivioSpinner .75s linear infinite;
}

@keyframes archivioSpinner {
    to { transform: rotate(360deg); }
}

@media (max-width: 760px) {
    .pannello-dettaglio-intervento {
        align-items: flex-end;
        background: rgba(15, 23, 42, .58);
    }

    .pannello-dettaglio-contenuto {
        width: 100%;
        height: 94vh;
        height: min(94dvh, 100%);
        max-height: 94vh;
        max-height: 94dvh;
        border-left: 0;
        border-top: 1px solid #dbe4ef;
        border-radius: 22px 22px 0 0;
        animation-name: archivioPannelloMobileEntra;
    }

    @keyframes archivioPannelloMobileEntra {
        from { transform: translateY(34px); opacity: .65; }
        to { transform: translateY(0); opacity: 1; }
    }

    .pannello-dettaglio-contenuto .dettaglio-intervento-header {
        margin: -20px -16px 16px;
        padding: 18px 16px 14px;
        flex-direction: row;
        align-items: flex-start;
    }
}


/* Paginazione leggera: vengono creati solo 20 elementi alla volta. */
.paginazione-interventi {
    display: grid;
    grid-template-columns: minmax(120px, auto) 1fr minmax(120px, auto);
    align-items: center;
    gap: 14px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
}

.paginazione-interventi > span {
    color: #64748b;
    font-size: 13px;
    font-weight: 750;
    text-align: center;
}

.paginazione-interventi button {
    min-height: 44px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #fff;
    color: #1e3a5f;
    font-weight: 800;
}

.paginazione-interventi button:not(:disabled):hover {
    border-color: #1f5fe5;
    background: #f4f8ff;
}

.paginazione-interventi button:disabled {
    cursor: default;
    opacity: .42;
}

@media (max-width: 560px) {
    .paginazione-interventi {
        grid-template-columns: 1fr 1fr;
    }

    .paginazione-interventi > span {
        grid-column: 1 / -1;
        grid-row: 1;
    }
}

/* === PRISMA V2.2.2: margine sicuro pulsanti cartella === */
.pannello-dettaglio-contenuto > .azioni-cartella {
    position: relative;
    z-index: 2;
    margin-top: 0;
    padding-top: 8px;
}

@media (max-width: 760px) {
    .pannello-dettaglio-contenuto > .azioni-cartella {
        padding-top: 10px;
    }
}

/* === RIFORNIMENTO V2.2.3 — CAMPI PRINCIPALI PIU LEGGIBILI === */
.pagina-foglio-uscita-automezzi :is(
    #conducente,
    #kmUscita,
    #kmRientro,
    #numeroMatricola,
    #euroSpesi,
    #litriCarburante,
    #litriRifornimento
) {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: 0.015em;
}

@media (max-width: 520px) {
    .pagina-foglio-uscita-automezzi :is(
        #conducente,
        #kmUscita,
        #kmRientro,
        #numeroMatricola,
        #euroSpesi,
        #litriCarburante,
        #litriRifornimento
    ) {
        font-size: 20px;
    }
}

/* =========================================================
   PRISMA — AMBIENTE DI TEST
   La fascia deve restare visibile in ogni schermata per evitare
   che dati reali vengano inseriti accidentalmente nell'ambiente test.
   ========================================================= */
html.prisma-test-environment {
    --prisma-test-banner-height: 44px;
}

html.prisma-test-environment body {
    padding-top: var(--prisma-test-banner-height) !important;
}

.prisma-test-banner {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 2147483647;
    min-height: var(--prisma-test-banner-height, 44px);
    padding: 8px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    box-sizing: border-box;
    background: #8b1d1d;
    color: #fff;
    border-bottom: 3px solid #f6c445;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.24);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    letter-spacing: 0.02em;
    text-align: center;
}

.prisma-test-banner strong {
    font-size: 0.92rem;
    letter-spacing: 0.08em;
}

.prisma-test-banner span {
    font-size: 0.88rem;
    font-weight: 650;
}

.prisma-test-banner small {
    opacity: 0.82;
    font-size: 0.72rem;
}

@media (max-width: 640px) {
    html.prisma-test-environment {
        --prisma-test-banner-height: 54px;
    }

    .prisma-test-banner {
        gap: 4px 9px;
        flex-wrap: wrap;
        align-content: center;
        padding: 6px 10px;
        line-height: 1.1;
    }

    .prisma-test-banner strong,
    .prisma-test-banner span {
        font-size: 0.77rem;
    }

    .prisma-test-banner small {
        width: 100%;
        font-size: 0.65rem;
    }
}
