* {
    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;
    }
}

@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}
.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;
}

@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;
    }
}


/* 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;
    }
}


/* 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;
}

@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}}
