/* Sistema ticket - General System
   Palette: inchiostro blu-notte, fondo grigio freddo, accento petrolio.
   L'unico elemento "forte" è il semaforo SLA: bordo colorato a sinistra di ogni ticket. */

:root {
    --inchiostro: #26364a;
    --inchiostro-forte: #0b3150;
    --muto: #667587;
    --fondo: #f7f9fb;
    --carta: #ffffff;
    --linea: #dfe5eb;
    --linea-leggera: #edf1f5;
    --accento: #0877b9;
    --accento-scuro: #0a5252;
    --accento-chiaro: #e8f4fb;
    --verde: #1f8a4c;
    --giallo: #c98a00;
    --rosso: #c8372d;
    --grigio: #8a95a3;
    --interna: #fff6dd;
    --interna-bordo: #e5c35c;
    --raggio: 10px;
    --ombra: 0 6px 20px rgba(11, 49, 80, .07);
    --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color-scheme: light;
}


*, *::before, *::after { box-sizing: border-box; }

button, a, input, select, textarea, .ticket-riga, .riquadro, .messaggio { transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease, transform .16s ease; }
h1 { font-weight: 750; letter-spacing: -.025em; }
h2 { font-weight: 700; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.55;
    color: var(--inchiostro);
    background: var(--fondo);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    padding-bottom: env(safe-area-inset-bottom, 0px);
}

a { color: var(--accento); text-underline-offset: 2px; }
a:hover { color: var(--accento-scuro); }

h1 { font-size: 1.6rem; line-height: 1.25; margin: 0 0 .75rem; color: var(--inchiostro-forte); letter-spacing: -.01em; }
h2 { font-size: 1.15rem; margin: 0 0 .5rem; }

img { max-width: 100%; height: auto; }

:focus-visible { outline: 3px solid var(--accento); outline-offset: 2px; border-radius: 2px; }

[hidden] { display: none !important; }

.nascosto {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.salta { position: absolute; left: -999px; top: 0; background: var(--carta); padding: .5rem 1rem; z-index: 10; }
.salta:focus { left: 1rem; }

/* ---------- Testata ---------- */

.testata {
    background: #fff;
    color: var(--inchiostro-forte);
    padding-top: env(safe-area-inset-top, 0px);
    border-bottom: 1px solid var(--linea);
    box-shadow: 0 2px 12px rgba(11,49,80,.05);
}

.testata-interno {
    max-width: 1180px; margin: 0 auto; padding: .65rem 1rem;
    display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem;
}

.marchio { display: flex; align-items: center; gap: .7rem; color: var(--inchiostro-forte); text-decoration: none; font-weight: 750; letter-spacing: .01em; margin-right: auto; }
.marchio:hover { color: var(--accento); }
.marchio-segno {
    width: 34px; height: 34px; border-radius: 8px; flex: none;
    background: linear-gradient(135deg, #0b3150 0%, #0877b9 100%);
    position: relative;
    box-shadow: 0 5px 12px rgba(8,119,185,.22);
}
.marchio-segno::after {
    content: "GS"; position: absolute; inset: 0; display: grid; place-items: center;
    color: #fff; font-size: .68rem; font-weight: 800; letter-spacing: -.02em;
}

.menu { display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .65rem; }
.menu a { color: var(--muto); text-decoration: none; padding: .4rem .1rem; border-bottom: 2px solid transparent; white-space: nowrap; }
.menu a:hover, .menu a[aria-current="page"] { color: var(--inchiostro-forte); border-bottom-color: var(--accento); }
.menu .pulsante { color: #fff; border-bottom: 0; }
.menu .pulsante-testo { color: var(--muto); }
.menu .pulsante-testo:hover { color: var(--inchiostro-forte); }

.badge-nuovi {
    display: inline-flex; align-items: center; gap: .25rem;
    background: var(--rosso); color: #fff !important; border-radius: 999px;
    padding: .12rem .55rem !important; font-size: .82rem; line-height: 1.2; font-weight: 600; border: 0 !important;
    white-space: nowrap; flex: 0 0 auto;
}
.badge-numero { font-variant-numeric: tabular-nums; }


@media (max-width: 760px) {
    .testata-interno { gap: .25rem .6rem; padding: .5rem .65rem; }
    .menu { flex: 1 1 100%; width: 100%; justify-content: flex-start; gap: .05rem .55rem; }
    .menu a { font-size: .78rem; padding: .28rem 0; white-space: nowrap; }
    .menu .badge-nuovi { font-size: .74rem; padding: .12rem .42rem !important; }
    .menu .form-inline { margin-left: auto; flex: 0 0 auto; }
    .menu .pulsante-testo { font-size: .78rem; white-space: nowrap; }
}

/* ---------- Pagina ---------- */

.pagina { flex: 1; width: 100%; max-width: 1240px; margin: 0 auto; padding: 2rem 1.25rem 3.5rem; }

.piede {
    max-width: 1240px; width: 100%; margin: 0 auto; padding: 1rem;
    display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; color: var(--muto); font-size: .85rem;
    border-top: 1px solid var(--linea);
}

.colonna-stretta { max-width: 680px; }
.colonna-accesso { max-width: 440px; margin: 1rem auto 0; }
.introduzione { color: var(--muto); margin: 0 0 1.5rem; max-width: 62ch; }
.nota-sotto { margin: 1rem 0 0; font-size: .95rem; }
.testo-muto { color: var(--muto); font-size: .9rem; }
.facoltativo { color: var(--muto); font-weight: 400; font-size: .9em; }
.aiuto { color: var(--muto); font-size: .87rem; margin: .3rem 0 0; }
.briciole { margin: 0 0 .5rem; font-size: .9rem; color: var(--muto); }

.intestazione-pagina {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem;
    margin-bottom: 1rem;
}
.intestazione-pagina h1 { margin: 0; }

.titolo-sezione { font-size: 1rem; margin: 0 0 .6rem; color: var(--inchiostro-forte); }

/* ---------- Pulsanti ---------- */

.pulsante {
    display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
    background: var(--accento); color: #fff; border: 1px solid var(--accento);
    border-radius: 8px; padding: .62rem 1.1rem; font: inherit; font-weight: 650;
    text-decoration: none; cursor: pointer; line-height: 1.2; min-height: 42px;
}
.pulsante:hover { background: var(--accento-scuro); border-color: var(--accento-scuro); color: #fff; transform: translateY(-1px); box-shadow: 0 5px 14px rgba(8,119,185,.18); }
.pulsante-secondario { background: transparent; color: var(--accento); }
.pulsante-secondario:hover { background: var(--accento-chiaro); color: var(--accento-scuro); }
.pulsante-piccolo { padding: .3rem .75rem; min-height: 34px; font-size: .92rem; }
.pulsante-grande { width: 100%; min-height: 48px; font-size: 1.02rem; }

.pulsante-testo {
    background: none; border: 0; padding: .25rem 0; font: inherit; color: var(--accento);
    cursor: pointer; text-decoration: underline; text-underline-offset: 2px;
}
.pulsante-testo.pericolo { color: var(--rosso); }

.form-inline { display: inline-flex; align-items: center; gap: .4rem; margin: 0; }

/* ---------- Moduli ---------- */

.modulo { display: grid; gap: 1rem; }
.campo { display: grid; gap: .3rem; min-width: 0; }
.campo label, .campo legend { font-weight: 600; font-size: .95rem; }

input[type="text"], input[type="email"], input[type="password"], input[type="search"],
input[type="number"], input[type="date"], select, textarea {
    width: 100%; font: inherit; color: var(--inchiostro); background: var(--carta);
    border: 1px solid var(--linea); border-radius: var(--raggio); padding: .55rem .7rem; min-height: 42px;
}
textarea { resize: vertical; min-height: 110px; }
input:focus, select:focus, textarea:focus { border-color: var(--accento); outline: 2px solid var(--accento-chiaro); outline-offset: 0; }
input[type="file"] { font: inherit; font-size: .92rem; max-width: 100%; }

.campo-spunta { display: flex; gap: .6rem; align-items: flex-start; }
.campo-spunta input { width: 20px; height: 20px; margin-top: .15rem; flex: none; accent-color: var(--accento); }
.campo-spunta label { font-weight: 400; }

.riga-campi { display: grid; gap: 1rem; }
@media (min-width: 640px) {
    .riga-campi { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
    .riga-tipologia { grid-template-columns: 2fr 1fr 1.3fr 1fr; }
}

.campo-trappola { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.scelta-tipo { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.scelta-tipo label { display: inline-flex; gap: .4rem; align-items: center; font-weight: 500; cursor: pointer; }
.scelta-tipo input { accent-color: var(--accento); width: 18px; height: 18px; }

/* ---------- Avvisi ---------- */

.avviso {
    border-radius: var(--raggio); padding: .75rem 1rem; margin: 0 0 1rem;
    border: 1px solid var(--linea); border-left-width: 4px; background: var(--carta);
}
.avviso-successo { border-left-color: var(--verde); }
.avviso-errore { border-left-color: var(--rosso); }
.avviso-avviso { border-left-color: var(--giallo); }
.avviso-info { border-left-color: var(--accento); }
.avviso-azione { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }

.barra-notifiche {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem;
    background: var(--accento-chiaro); border-radius: var(--raggio); padding: .6rem 1rem; margin-bottom: 1rem;
}

/* ---------- Schede ---------- */

.schede {
    display: flex; gap: .25rem; overflow-x: auto; border-bottom: 1px solid var(--linea);
    margin: 0 0 1rem; scrollbar-width: none;
}
.schede a {
    white-space: nowrap; padding: .55rem .9rem; color: var(--muto); text-decoration: none;
    border-bottom: 3px solid transparent; margin-bottom: -1px; font-weight: 500;
}
.schede a:hover { color: var(--inchiostro); }
.schede a[aria-current="page"] { color: var(--inchiostro-forte); border-bottom-color: var(--accento); font-weight: 650; }
.conta {
    display: inline-block; min-width: 1.6em; text-align: center; font-size: .8rem; font-weight: 600;
    background: var(--linea-leggera); border-radius: 999px; padding: 0 .45rem; margin-left: .2rem;
    font-variant-numeric: tabular-nums;
}

/* ---------- Liste di ticket ---------- */

.lista-ticket { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }

.ticket-riga {
    background: var(--carta); border: 1px solid var(--linea); border-left: 6px solid var(--grigio);
    border-radius: var(--raggio); box-shadow: var(--ombra);
}
.ticket-riga:hover { border-color: var(--accento); }
.semaforo-bordo-rosso { border-left-color: var(--rosso); }
.semaforo-bordo-giallo { border-left-color: var(--giallo); }
.semaforo-bordo-verde { border-left-color: var(--verde); }
.semaforo-bordo-grigio { border-left-color: var(--grigio); }
.semaforo-bordo-chiuso { border-left-color: var(--linea); }
.ticket-riga.stato-risolto_chiuso { border-left-color: var(--linea); }
.ticket-riga.stato-in_attesa_cliente { border-left-color: var(--giallo); }
.ticket-riga.stato-in_lavorazione, .ticket-riga.stato-aperto_in_coda { border-left-color: var(--accento); }

.ticket-link {
    display: grid; gap: .15rem .9rem; padding: .75rem 1rem; color: inherit; text-decoration: none;
    grid-template-columns: 1fr;
}
@media (min-width: 760px) {
    .ticket-link { grid-template-columns: 9.5rem 1fr auto; align-items: center; }
    .ticket-codice { grid-row: span 2; }
    .ticket-stato, .ticket-link > .etichetta-stato { grid-column: 3; grid-row: 1 / span 2; justify-self: end; }
    .ticket-estratto { grid-column: 2; }
}
.ticket-codice { font-weight: 650; font-variant-numeric: tabular-nums; color: var(--muto); font-size: .92rem; }
.ticket-titolo { font-weight: 600; color: var(--inchiostro-forte); overflow-wrap: anywhere; }
.ticket-meta { color: var(--muto); font-size: .88rem; }
.ticket-estratto { color: var(--muto); font-size: .88rem; }
.ticket-estratto mark { background: #ffe58a; color: #1c2733; padding: 0 .1em; border-radius: 2px; }
.ticket-stato { display: flex; flex-wrap: wrap; gap: .35rem .5rem; align-items: center; margin-top: .3rem; }
@media (min-width: 760px) { .ticket-stato { margin-top: 0; flex-direction: column; align-items: flex-end; } }

/* ---------- Semaforo ed etichette ---------- */

.semaforo { display: inline-flex; align-items: center; gap: .4rem; font-size: .87rem; font-weight: 600; white-space: nowrap; }
.semaforo-punto { width: .7rem; height: .7rem; border-radius: 50%; background: var(--grigio); flex: none; }
.semaforo-rosso { color: var(--rosso); } .semaforo-rosso .semaforo-punto { background: var(--rosso); }
.semaforo-giallo { color: var(--giallo); } .semaforo-giallo .semaforo-punto { background: var(--giallo); }
.semaforo-verde { color: var(--verde); } .semaforo-verde .semaforo-punto { background: var(--verde); }
.semaforo-grigio, .semaforo-chiuso { color: var(--muto); }
.semaforo-chiuso .semaforo-punto { background: transparent; border: 2px solid var(--grigio); }

.etichetta-stato, .etichetta-priorita, .etichetta-utente {
    display: inline-block; font-size: .8rem; font-weight: 600; border-radius: 4px; padding: .1rem .5rem;
    background: var(--linea-leggera); color: var(--inchiostro); white-space: nowrap;
}
.etichetta-aperto_in_coda { background: var(--accento-chiaro); color: var(--accento-scuro); }
.etichetta-in_lavorazione { background: var(--accento); color: #fff; }
.etichetta-in_attesa_cliente { background: #fbeccb; color: #6b4a00; }
.etichetta-risolto_chiuso { background: var(--linea-leggera); color: var(--muto); }
.priorita-alta { background: #fbeccb; color: #6b4a00; }
.priorita-critica { background: var(--rosso); color: #fff; }
.utente-sospeso { background: #f7dcd9; color: #7d1d16; }
.utente-da_verificare { background: #fbeccb; color: #6b4a00; }

/* ---------- Dettaglio ticket ---------- */

.ticket-testa { margin-bottom: 1.25rem; }
.ticket-codice-categoria { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; margin: 0 0 .35rem; }
.ticket-testa .ticket-codice, .ticket-categoria { margin: 0; font-size: 1rem; font-weight: 650; font-variant-numeric: tabular-nums; color: var(--muto); }
.ticket-testa h1 { overflow-wrap: anywhere; }
.ticket-dati { display: flex; flex-wrap: wrap; gap: .4rem .9rem; align-items: center; color: var(--muto); font-size: .92rem; }
.ticket-persone { display: flex; flex-wrap: wrap; gap: .5rem 2rem; margin: .9rem 0 0; font-size: .93rem; }
.ticket-persone dt { color: var(--muto); font-size: .82rem; }
.ticket-persone dd { margin: 0; overflow-wrap: anywhere; }

.pipeline {
    list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: .3rem;
    padding: 0; margin: 0 0 1.5rem; counter-reset: passo;
}
.passo { position: relative; font-size: .82rem; color: var(--muto); padding-top: .9rem; }
.passo::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px; border-radius: 3px;
    background: var(--linea);
}
.passo-fatto::before { background: var(--accento); opacity: .55; }
.passo-corrente { color: var(--inchiostro-forte); font-weight: 650; }
.passo-corrente::before { background: var(--accento); }
.passo-corrente.passo:nth-child(3)::before { background: var(--giallo); }
.passo-opzionale::before { background: repeating-linear-gradient(90deg, var(--linea) 0 6px, transparent 6px 10px); }
@media (min-width: 640px) { .passo { font-size: .9rem; } }

.ticket-corpo { display: grid; gap: 1.5rem; }
@media (min-width: 980px) {
    .ticket-corpo.con-pannello { grid-template-columns: minmax(0, 1fr) 330px; align-items: start; }
}

.conversazione { display: grid; gap: .9rem; min-width: 0; }

.messaggio {
    background: var(--carta); border: 1px solid var(--linea); border-radius: var(--raggio);
    padding: .9rem 1.1rem; box-shadow: var(--ombra);
}
.messaggio.da-staff { border-left: 4px solid var(--accento); }
.messaggio-interna_tecnica { background: var(--interna); border-color: var(--interna-bordo); border-left: 4px solid var(--interna-bordo); }
.messaggio-soluzione { border: 2px solid var(--verde); }
.messaggio-sistema { background: transparent; border-style: dashed; box-shadow: none; font-size: .92rem; }
.messaggio-descrizione { border-top: 4px solid var(--inchiostro-forte); }

.messaggio-testa { display: flex; flex-wrap: wrap; gap: .25rem .75rem; align-items: baseline; margin-bottom: .45rem; font-size: .92rem; }
.messaggio-testa time { color: var(--muto); margin-left: auto; font-size: .85rem; font-variant-numeric: tabular-nums; }
.messaggio-tipo { font-size: .78rem; color: var(--muto); border: 1px solid var(--linea); border-radius: 4px; padding: 0 .4rem; }
.tipo-interna { color: #6b4a00; border-color: var(--interna-bordo); }
.tipo-soluzione { color: var(--verde); border-color: var(--verde); font-weight: 600; }
.messaggio-testo { overflow-wrap: anywhere; }

.allegati { list-style: none; padding: 0; margin: .75rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.allegato-immagine img {
    width: 120px; height: 90px; object-fit: cover; border-radius: 4px; border: 1px solid var(--linea); display: block;
}
.allegato-file {
    display: inline-flex; align-items: center; gap: .5rem; padding: .4rem .7rem; border: 1px solid var(--linea);
    border-radius: 4px; text-decoration: none; font-size: .9rem; max-width: 100%;
}
.allegato-tipo { font-size: .7rem; font-weight: 700; background: var(--inchiostro-forte); color: var(--carta); border-radius: 3px; padding: .05rem .35rem; }
.allegato-peso { color: var(--muto); font-size: .82rem; }

.risposta { background: var(--carta); border: 1px solid var(--linea); border-radius: var(--raggio); padding: 1rem 1.1rem; }

.pannello-azioni { display: grid; gap: .75rem; }
@media (min-width: 980px) { .pannello-azioni { position: sticky; top: 1rem; } }
.azione, details.azione {
    background: var(--carta); border: 1px solid var(--linea); border-radius: var(--raggio); padding: .8rem .9rem; margin: 0;
}
form.azione { border: 0; padding: 0; background: none; }
details.azione summary, .riquadro > summary, .riquadro details > summary, .filtri > summary {
    cursor: pointer; font-weight: 600; list-style-position: inside;
}
details.azione[open] summary { margin-bottom: .6rem; }
details.azione form { display: grid; gap: .5rem; }
.azione-riga { display: flex !important; flex-wrap: wrap; align-items: center; gap: .5rem; background: var(--carta) !important; border: 1px solid var(--linea) !important; padding: .6rem .9rem !important; border-radius: var(--raggio); }
.azione-riga label { font-weight: 600; font-size: .92rem; }
.azione-riga select { width: auto; flex: 1; }

.storico { background: var(--carta); border: 1px solid var(--linea); border-radius: var(--raggio); padding: .8rem .9rem; }
.storico ol { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; font-size: .88rem; }
.storico li { display: grid; border-left: 2px solid var(--linea); padding-left: .6rem; }
.storico-meta { color: var(--muto); font-size: .8rem; }

/* ---------- Ricerca, tabelle, admin ---------- */

.ricerca-rapida { display: flex; gap: .5rem; flex: 1; max-width: 460px; }
.riga-ricerca { display: flex; gap: .5rem; }
.modulo-ricerca { margin-bottom: 1.25rem; }
.griglia-filtri { display: grid; gap: .75rem; margin-top: .75rem; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.filtri { background: var(--carta); border: 1px solid var(--linea); border-radius: var(--raggio); padding: .6rem .9rem; }

.paginazione { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; }

.riquadro { background: var(--carta); border: 1px solid var(--linea); border-radius: var(--raggio); padding: .8rem 1rem; margin-bottom: 1rem; }
.riquadro[open] > summary, .riquadro details[open] > summary { margin-bottom: .8rem; }
.riquadro.disattivata { opacity: .7; }
.lista-tipologie { list-style: none; padding: 0; margin: 0; }
.lista-tipologie summary { display: flex; flex-wrap: wrap; gap: .3rem .9rem; align-items: baseline; }
.azioni-modulo { display: flex; gap: 1rem; align-items: center; }
.lista-tipologie .form-inline { margin-top: .6rem; }

.filtri-riga { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.filtri-riga input, .filtri-riga select { width: auto; flex: 1 1 180px; }

.tabella-contenitore { overflow-x: auto; background: var(--carta); border: 1px solid var(--linea); border-radius: var(--raggio); }
.tabella { width: 100%; border-collapse: collapse; font-size: .93rem; }
.tabella th { text-align: left; font-size: .82rem; color: var(--muto); font-weight: 600; padding: .6rem .8rem; border-bottom: 1px solid var(--linea); white-space: nowrap; }
.tabella td { padding: .65rem .8rem; border-bottom: 1px solid var(--linea-leggera); vertical-align: top; }
.tabella tr:last-child td { border-bottom: 0; }
.tabella select { width: auto; min-height: 34px; padding: .25rem .5rem; }
.azioni-cella { display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; }

/* ---------- Stati vuoti ed esiti ---------- */

.vuoto { text-align: center; max-width: 520px; margin: 2.5rem auto; }
.vuoto-lista { background: var(--carta); border: 1px dashed var(--linea); border-radius: var(--raggio); padding: 2rem 1rem; margin: 0; max-width: none; color: var(--muto); }
.vuoto-codice { font-size: 3.2rem; font-weight: 750; color: var(--linea); margin: 0; font-variant-numeric: tabular-nums; }
.esito-icona { display: block; width: 14px; height: 42px; margin: 0 auto 1rem; border-radius: 3px; background: var(--accento); }
.esito-errore { background: var(--rosso); }
.esito-info { background: linear-gradient(var(--rosso) 0 33%, var(--giallo) 33% 66%, var(--verde) 66% 100%); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

@media print {
    .testata, .piede, .pannello-azioni, .risposta, .barra-notifiche { display: none !important; }
    body { background: #fff; color: #000; }
}

.azione-modifica { display:inline-block; vertical-align:middle; margin-right:.35rem; }
.azione-modifica summary { cursor:pointer; list-style:none; }
.azione-modifica summary::-webkit-details-marker { display:none; }
.modulo-compatto { display:grid; gap:.45rem; min-width:230px; margin-top:.5rem; padding:.75rem; background:#f6f8fa; border:1px solid #dfe5ea; border-radius:10px; }
.modulo-compatto input { width:100%; box-sizing:border-box; }
.azioni-cella { white-space:normal; min-width:230px; }


/* ---------- Identità General System ---------- */
.testata {
    background: #fff;
    border-bottom: 1px solid #e4e7eb;
    box-shadow: 0 2px 12px rgba(14, 39, 68, .08);
}
.testata-interno { max-width: 1240px; min-height: 82px; }
.marchio { gap: .7rem; color: #1f2329; text-decoration: none; }
.marchio:hover { color: #1f2329; }
.marchio-segno { width: 7px; height: 46px; border-radius: 2px; background: #f15a3a; transform: skewX(-18deg); box-shadow: 11px 0 0 #123d73; }
.marchio > span:last-child { font-size: 1.48rem; font-weight: 800; letter-spacing: -.04em; }
.menu { gap: .25rem .9rem; }
.menu > a:not(.pulsante), .menu .pulsante-testo { color: #12366b; text-transform: uppercase; font-size: .88rem; font-weight: 650; text-decoration: none; }
.menu > a.menu-accesso, .menu > a.menu-registrati { padding: .52rem .9rem; border-radius: 8px; border: 1px solid #12366b; }
.menu > a.menu-accesso { background: #12366b; color: #fff; }
.menu > a.menu-accesso:hover { background: #0e2b55; color: #fff; border-bottom-color: #12366b; }
.menu > a.menu-registrati { background: #fff; color: #12366b; }
.menu > a.menu-registrati:hover { color: #f15a3a; border-color: #f15a3a; border-bottom-color: #f15a3a; }
.menu > a:not(.pulsante):hover, .menu .pulsante-testo:hover { color: #f15a3a; }
.pulsante { background: #f15a3a; border-color: #f15a3a; border-radius: 3px; }
.pulsante:hover { background: #d94a2f; border-color: #d94a2f; }
.pulsante-secondario { color: #123d73; border-color: #123d73; background: transparent; }
.pulsante-secondario:hover { background: #123d73; border-color: #123d73; color: #fff; }

.accesso-generalsystem { width: min(100%, 620px); margin: 2.5rem auto 3rem; }
.accesso-intestazione { display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem; }
.accesso-segno { width:8px; height:58px; background:#f15a3a; transform:skewX(-18deg); box-shadow:12px 0 0 #123d73; margin-left:7px; }
.accesso-intestazione strong { display:block; color:#20242a; font-size:2rem; line-height:1; letter-spacing:-.04em; }
.accesso-intestazione span:not(.accesso-segno) { display:block; color:#123d73; font-size:.86rem; font-weight:650; margin-top:.35rem; }
.accesso-card { background:#fff; border-top:5px solid #123d73; box-shadow:0 12px 35px rgba(18,61,115,.12); padding:2.1rem 2.2rem 1.8rem; }
.accesso-eyebrow { margin:0 0 .35rem; color:#f15a3a; font-size:.78rem; font-weight:800; letter-spacing:.12em; }
.accesso-card h1 { font-size:2rem; margin-bottom:.45rem; color:#123d73; }
.accesso-introduzione { margin:0 0 1.5rem; color:#667587; }
.accesso-card .pulsante-grande { background:#f15a3a; border-color:#f15a3a; min-height:52px; text-transform:uppercase; letter-spacing:.03em; }
.accesso-card .pulsante-grande:hover { background:#d94a2f; border-color:#d94a2f; }
.accesso-contatto { margin-top:1rem; padding:1rem 1.2rem; background:#123d73; color:#fff; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.accesso-contatto a { color:#fff; font-weight:750; text-decoration:none; }
.accesso-contatto a:hover { color:#f9b09f; }
@media (max-width:760px) {
    .testata-interno { min-height:72px; }
    .marchio > span:last-child { font-size:1.2rem; }
    .menu { width:100%; justify-content:flex-start; overflow:auto; padding-bottom:.25rem; }
    .accesso-generalsystem { margin-top:1.5rem; }
    .accesso-card { padding:1.5rem; }
    .accesso-contatto { flex-direction:column; align-items:flex-start; }
}

/* Gestione utenti Superadmin, layout definitivo */
.tabella-utenti { table-layout: auto; }
.tabella-utenti th, .tabella-utenti td { padding: .42rem .55rem; vertical-align: middle; }
.tabella-utenti td:nth-child(2) { white-space: nowrap; }
.azioni-cella { display: flex !important; flex-direction: row !important; align-items: center; justify-content: flex-start; gap: .18rem; white-space: nowrap !important; min-width: 0 !important; }
.azioni-cella .form-inline { display: inline-flex !important; margin: 0 !important; }
.icona-azione { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; border: 1px solid var(--linea); border-radius: 6px; background: #fff; color: #123d73; text-decoration: none; font-size: 1rem; line-height: 1; cursor: pointer; }
.icona-azione:hover { background: #f1f5f9; color: #f15a3a; border-color: #cbd5e1; }
.icona-pericolo { color: #b42318; }
.utente-in-modifica td { background: #f7fafc; }
.riga-modifica-utente td { padding: .7rem .8rem !important; background: #f7fafc; border-bottom: 1px solid var(--linea); }
.modifica-riga-form { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(190px, 1.2fr) minmax(180px, 1fr) minmax(180px, 1fr) auto; gap: .65rem; align-items: end; width: 100%; box-sizing: border-box; }
.modifica-campo { min-width: 0; }
.modifica-campo label { display: block; margin-bottom: .25rem; font-size: .78rem; font-weight: 650; color: var(--muto); }
.modifica-campo input { width: 100%; box-sizing: border-box; min-height: 38px; }
.modifica-azioni { display: flex; gap: .4rem; align-items: center; }
.check-riga { display: flex; gap: .5rem; align-items: center; margin: .75rem 0; font-size: .9rem; }
.ticket-non-confermato { border-left-color: #f15a3a !important; background: #fff7f4; }
@media (max-width: 900px) { .modifica-riga-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } .modifica-azioni { grid-column: 1 / -1; } }
@media (max-width: 600px) { .modifica-riga-form { grid-template-columns: 1fr; } .modifica-azioni { grid-column: auto; } .tabella-utenti { min-width: 760px; } }

/* Azioni utenti: tutte le icone devono restare sempre sulla stessa riga */
.tabella-utenti th:last-child,
.tabella-utenti td.azioni-cella {
    white-space: nowrap !important;
    width: 1%;
    min-width: 150px !important;
}
.tabella-utenti td.azioni-cella {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: .22rem !important;
    overflow: visible !important;
}
.tabella-utenti td.azioni-cella .form-inline,
.tabella-utenti td.azioni-cella .icona-azione,
.tabella-utenti td.azioni-cella > a {
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}
.tabella-utenti .icona-azione {
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: 30px !important;
}


/* Azioni utenti, layout tabellare stabile. Le icone restano sempre sulla stessa riga. */
.tabella-utenti td.azioni-cella {
    display: table-cell !important;
    width: 1%;
    min-width: 150px !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
}
.tabella-utenti .azioni-toolbar {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    width: max-content !important;
    min-width: max-content !important;
    white-space: nowrap !important;
}
.tabella-utenti .azioni-toolbar > .form-inline,
.tabella-utenti .azioni-toolbar > a.icona-azione {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    width: auto !important;
    margin: 0 !important;
    white-space: nowrap !important;
}
.tabella-utenti .azioni-toolbar .icona-azione {
    flex: 0 0 30px !important;
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
}
@media (max-width: 900px) {
    .tabella-utenti { min-width: 900px; }
}
.logo-azienda{max-height:90px;max-width:300px;width:auto;height:auto;object-fit:contain;display:block}
.campo-esteso{grid-column:1/-1}.anteprima-logo{margin:0 0 20px;padding:16px;background:#f6f8fa;border-radius:8px}.anteprima-logo img{max-width:300px;max-height:90px;object-fit:contain;display:block}.riga-azioni{display:flex;gap:10px;align-items:center}

/* Form richiesta pubblica */
.richiesta-pubblica{max-width:860px}.richiesta-pubblica .riga-campi{grid-template-columns:repeat(2,minmax(0,1fr))}.richiesta-pubblica .campo-esteso{grid-column:1/-1}.registrazione-box{margin-top:1rem;padding:1rem;background:#f7fafc;border:1px solid #d9e1ea;border-radius:8px}.campi-registrazione{margin-top:1rem}.captcha-numerico{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:1rem 1.1rem;background:#f3f6f9;border-left:4px solid #123d73}.captcha-numerico div{display:grid;gap:.2rem}.captcha-numerico strong{color:#123d73}.captcha-numerico input{width:110px;text-align:center;font-size:1.15rem;font-weight:700}.testo-muto{color:var(--muto);font-size:.85rem}@media(max-width:760px){.richiesta-pubblica .riga-campi{grid-template-columns:1fr}.richiesta-pubblica .campo-esteso{grid-column:auto}.captcha-numerico{align-items:stretch;flex-direction:column}.captcha-numerico input{width:100%}}

/* ---------- Richiesta pubblica, look premium ---------- */
.richiesta-pubblica { max-width: 920px; margin: 0 auto; }
.richiesta-pubblica > h1 { font-size: clamp(1.8rem, 4vw, 2.45rem); margin-bottom: .45rem; }
.richiesta-pubblica .introduzione { max-width: 760px; font-size: 1rem; margin-bottom: 1.5rem; }
.richiesta-pubblica .modulo { gap: 1.15rem; }
.richiesta-pubblica .riga-campi { gap: 1rem; }
.richiesta-pubblica .campo { background: #fff; border: 1px solid var(--linea); border-radius: 12px; padding: .85rem .9rem; box-shadow: 0 5px 18px rgba(11,49,80,.045); }
.richiesta-pubblica .campo:focus-within { border-color: var(--accento); box-shadow: 0 0 0 3px var(--accento-chiaro), 0 7px 22px rgba(11,49,80,.06); }
.richiesta-pubblica .campo input, .richiesta-pubblica .campo select, .richiesta-pubblica .campo textarea { border: 0; padding: .15rem 0 0; min-height: 38px; background: transparent; outline: none; box-shadow: none; }
.richiesta-pubblica .campo textarea { min-height: 145px; }
.richiesta-pubblica .campo-spunta { background: transparent; border: 0; box-shadow: none; padding: .2rem 0; }
.richiesta-pubblica .registrazione-box { border: 1px solid #d9e8f2; background: linear-gradient(135deg,#f5fbff,#fff); border-radius: 16px; padding: 1.15rem; }
.richiesta-pubblica .registrazione-box .campo { background: #fff; }
.richiesta-pubblica .captcha-numerico { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.1rem; border:1px solid #d9e8f2; border-radius:14px; background:#f7fbfd; }
.richiesta-pubblica .captcha-numerico span { display:block; color:var(--muto); margin-top:.2rem; }
.richiesta-pubblica .captcha-numerico input { width:120px; text-align:center; font-size:1.15rem; font-weight:700; }
.richiesta-pubblica .pulsante-grande { border-radius:11px; min-height:52px; font-size:1.05rem; }

/* ---------- Anagrafiche Superadmin ---------- */
.pagina-intro-admin { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:1rem; }
.eyebrow { display:inline-block; font-size:.72rem; font-weight:800; letter-spacing:.12em; color:var(--accento); margin-bottom:.25rem; }
.riquadro-elegante { border-radius:15px; box-shadow:0 7px 24px rgba(11,49,80,.06); border-color:#dbe7ee; }
.riquadro-elegante summary { padding:.95rem 1rem; font-weight:700; cursor:pointer; }
.summary-icon { color:var(--accento); font-size:1.15rem; }
.modulo-admin { padding-top:1rem; }
.tabella-utenti { min-width:900px; }
.tabella-utenti th, .tabella-utenti td { padding:.62rem .7rem; }
.tabella-utenti th:last-child, .tabella-utenti td:last-child { min-width:170px; width:170px; }
.azioni-cella { white-space:nowrap !important; }
.azioni-toolbar { display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center; justify-content:flex-start; gap:.25rem; white-space:nowrap; min-width:max-content; }
.azioni-toolbar .form-inline { display:flex !important; flex:0 0 auto; margin:0; white-space:nowrap; }
.icona-azione { display:inline-flex !important; flex:0 0 34px; width:34px; height:34px; min-width:34px; align-items:center; justify-content:center; border:1px solid var(--linea); border-radius:8px; background:#fff; color:var(--inchiostro-forte); text-decoration:none; padding:0; line-height:1; cursor:pointer; font-size:1rem; }
.icona-azione:hover { border-color:var(--accento); color:var(--accento); background:var(--accento-chiaro); }
.icona-azione.icona-pericolo:hover { border-color:var(--rosso); color:var(--rosso); background:#fff4f4; }
.riga-modifica-utente td { padding:.8rem; background:#f5fafd; border-top:0; }
.modifica-riga-form { display:grid; gap:.9rem; }
.modifica-griglia { display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:.8rem; align-items:end; }
.modifica-campo { display:grid; gap:.28rem; min-width:0; }
.modifica-campo label { font-size:.78rem; font-weight:700; color:var(--muto); }
.modifica-campo input { min-height:40px; }
.modifica-check { align-self:center; margin-bottom:.2rem; }
.modifica-footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-top:1px solid var(--linea); padding-top:.8rem; }
@media (max-width: 1000px) { .modifica-griglia { grid-template-columns:repeat(2,minmax(180px,1fr)); } }
@media (max-width: 680px) { .modifica-griglia { grid-template-columns:1fr; } .modifica-footer { align-items:stretch; flex-direction:column; } .captcha-numerico { align-items:stretch; flex-direction:column; } .captcha-numerico input { width:100%; } .tabella-utenti { min-width:820px; } }

/* Layout edit anagrafica, versione compatta e orizzontale */
.riga-modifica-utente td { width:100%; box-sizing:border-box; }
.modifica-riga-form { width:100%; box-sizing:border-box; }
.modifica-griglia { grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px 14px; }
.modifica-campo input { width:100%; box-sizing:border-box; }
.modifica-campo:nth-child(1) { grid-column:span 1; }
.modifica-campo:nth-child(2) { grid-column:span 1; }
.modifica-campo:nth-child(3) { grid-column:span 1; }
.modifica-campo:nth-child(4) { grid-column:span 1; }
.modifica-campo:nth-child(5) { grid-column:span 1; }
.modifica-campo:nth-child(6) { grid-column:span 1; }
.modifica-campo:nth-child(7) { grid-column:span 1; }
.modifica-check { grid-column:span 1; display:flex; align-items:center; gap:.45rem; white-space:nowrap; }
@media (min-width:1001px) {
  .modifica-griglia { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .modifica-footer { margin-top:.1rem; }
}
@media (max-width:1000px) and (min-width:681px) {
  .modifica-griglia { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  .modifica-griglia { grid-template-columns:1fr; }
  .modifica-check { grid-column:auto; }
}

/* Richiesta ticket, layout compatto */
.richiesta-pubblica { max-width: 860px; }
.richiesta-pubblica > h1 { font-size: 1.65rem; margin-bottom: .2rem; }
.richiesta-pubblica .introduzione { margin-bottom: .9rem; font-size: .92rem; }
.richiesta-pubblica .modulo { gap: .7rem; }
.richiesta-pubblica .riga-campi { gap: .65rem; }
.richiesta-pubblica .campo { padding: .55rem .7rem; border-radius: 9px; box-shadow: none; }
.richiesta-pubblica .campo label { font-size: .82rem; line-height: 1.2; }
.richiesta-pubblica .campo input,
.richiesta-pubblica .campo select { min-height: 34px; padding: .05rem 0 0; font-size: .92rem; }
.richiesta-pubblica .campo textarea { min-height: 92px; padding: .15rem 0 0; font-size: .92rem; }
.richiesta-pubblica .testo-muto,
.richiesta-pubblica .aiuto { font-size: .78rem; }
.richiesta-pubblica .campo-esteso { grid-column: 1 / -1; }
.richiesta-pubblica .campo-tipo-problema { grid-column: span 2; }
.richiesta-pubblica .campo-email { grid-column: span 2; }
.richiesta-pubblica .registrazione-box { margin-top: .25rem; padding: .75rem .9rem; border-radius: 10px; }
.richiesta-pubblica .registrazione-box > .testo-muto { margin: .3rem 0 .5rem; }
.richiesta-pubblica .campi-registrazione { margin-top: .45rem; }
.richiesta-pubblica .captcha-numerico { margin: .15rem 0; padding: .65rem .8rem; border-radius: 9px; }
.richiesta-pubblica .captcha-numerico input { width: 90px; min-height: 36px; font-size: 1rem; }
.richiesta-pubblica .pulsante-grande { min-height: 44px; font-size: .95rem; }
@media (min-width: 760px) {
    .richiesta-pubblica .riga-campi { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .richiesta-pubblica .campo-azienda { grid-column: span 1; }
    .richiesta-pubblica .campo-email,
    .richiesta-pubblica .campo-tipo-problema { grid-column: span 2; }
    .richiesta-pubblica .campo-descrizione,
    .richiesta-pubblica .campo-allegati { grid-column: 1 / -1; }
}
@media (max-width: 759px) {
    .richiesta-pubblica .riga-campi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .richiesta-pubblica .campo-esteso { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .richiesta-pubblica .riga-campi { grid-template-columns: 1fr; }
    .richiesta-pubblica .campo-esteso { grid-column: auto; }
}

/* Ultima ottimizzazione form pubblico */
.richiesta-pubblica .campo-descrizione textarea { height: 82px; min-height: 82px; }
.richiesta-pubblica .campo-allegati { padding-top: .45rem; padding-bottom: .45rem; }
.richiesta-pubblica .campo-email .testo-muto { margin-top: .15rem; display: block; }
@media (max-width: 560px) {
    .richiesta-pubblica .campo-email,
    .richiesta-pubblica .campo-tipo-problema { grid-column: auto; }
}

/* Compattazione finale richiesta ticket */
.richiesta-pubblica { max-width: 780px; }
.richiesta-pubblica .modulo { gap: .45rem; }
.richiesta-pubblica .riga-campi { gap: .4rem; }
.richiesta-pubblica .campo { padding: .35rem .55rem; border-radius: 7px; }
.richiesta-pubblica .campo label { font-size: .76rem; line-height: 1.05; }
.richiesta-pubblica .campo input,
.richiesta-pubblica .campo select { min-height: 28px; height: 28px; padding: 0; font-size: .88rem; line-height: 28px; }
.richiesta-pubblica .campo textarea { height: 62px; min-height: 62px; padding: .25rem 0 0; font-size: .88rem; line-height: 1.25; }
.richiesta-pubblica .campo-descrizione { grid-column: 1 / -1 !important; }
.richiesta-pubblica .campo-allegati { grid-column: 1 / -1 !important; margin-top: -.05rem; }
.richiesta-pubblica .campo-allegati input[type="file"] { height: auto; min-height: 26px; line-height: 1.2; }
.richiesta-pubblica .campo-email,
.richiesta-pubblica .campo-tipo-problema { grid-column: span 2; }
.richiesta-pubblica .registrazione-box { margin-top: .15rem; padding: .55rem .7rem; }
.richiesta-pubblica .captcha-numerico { margin: .1rem 0; padding: .5rem .7rem; }
.richiesta-pubblica .campo-spunta { padding: .25rem 0; }
.richiesta-pubblica .pulsante-grande { min-height: 38px; padding: .45rem .8rem; }
@media (max-width: 759px) {
  .richiesta-pubblica { max-width: 100%; }
  .richiesta-pubblica .campo-email,
  .richiesta-pubblica .campo-tipo-problema { grid-column: span 2; }
}
@media (max-width: 560px) {
  .richiesta-pubblica .campo-email,
  .richiesta-pubblica .campo-tipo-problema { grid-column: auto; }
}

/* Layout finale richiesta assistenza, compatto */
.richiesta-pubblica.colonna-stretta {
    max-width: 980px !important;
    width: 100%;
    box-sizing: border-box;
}
.richiesta-pubblica .riga-campi {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;
}
.richiesta-pubblica .campo {
    min-width: 0 !important;
    padding: 7px 10px !important;
    gap: 2px !important;
    border-radius: 7px !important;
}
.richiesta-pubblica .campo label {
    font-size: .76rem !important;
    line-height: 1.1 !important;
    margin: 0 !important;
}
.richiesta-pubblica .campo input,
.richiesta-pubblica .campo select {
    width: 100% !important;
    height: 34px !important;
    min-height: 34px !important;
    box-sizing: border-box !important;
    padding: 0 2px !important;
    font-size: .88rem !important;
    line-height: 34px !important;
}
.richiesta-pubblica .campo-email,
.richiesta-pubblica .campo-tipo-problema {
    grid-column: span 2 !important;
}
.richiesta-pubblica .campo-descrizione {
    grid-column: 1 / -1 !important;
}
.richiesta-pubblica .campo-descrizione textarea {
    width: 100% !important;
    height: 82px !important;
    min-height: 82px !important;
    box-sizing: border-box !important;
    padding: 4px 2px !important;
    font-size: .88rem !important;
    line-height: 1.25 !important;
}
.richiesta-pubblica .campo-allegati {
    grid-column: 1 / -1 !important;
}
.richiesta-pubblica .campo-allegati input[type="file"] {
    height: 30px !important;
    min-height: 30px !important;
    padding: 2px 0 !important;
    font-size: .82rem !important;
}
.richiesta-pubblica .campo-allegati .aiuto,
.richiesta-pubblica .campo-email .testo-muto {
    margin: 1px 0 0 !important;
    font-size: .7rem !important;
    line-height: 1.1 !important;
}
.richiesta-pubblica .modulo {
    gap: 8px !important;
}
.richiesta-pubblica .registrazione-box {
    margin-top: 0 !important;
    padding: 8px 10px !important;
}
.richiesta-pubblica .captcha-numerico {
    margin: 0 !important;
    padding: 8px 10px !important;
}
.richiesta-pubblica .pulsante-grande {
    min-height: 38px !important;
    padding: 7px 12px !important;
}
@media (max-width: 900px) {
    .richiesta-pubblica .riga-campi {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .richiesta-pubblica .campo-email,
    .richiesta-pubblica .campo-tipo-problema,
    .richiesta-pubblica .campo-descrizione,
    .richiesta-pubblica .campo-allegati {
        grid-column: 1 / -1 !important;
    }
}
@media (max-width: 560px) {
    .richiesta-pubblica .riga-campi {
        grid-template-columns: 1fr !important;
    }
    .richiesta-pubblica .campo-email,
    .richiesta-pubblica .campo-tipo-problema,
    .richiesta-pubblica .campo-descrizione,
    .richiesta-pubblica .campo-allegati {
        grid-column: auto !important;
    }
}

/* Correzione finale: campi richiesta ticket realmente compatti */
.richiesta-pubblica.colonna-stretta {
    max-width: 980px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.richiesta-pubblica .riga-campi {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 7px !important;
    align-items: start !important;
}
.richiesta-pubblica .riga-campi > .campo:not(.campo-descrizione):not(.campo-allegati) {
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    box-sizing: border-box !important;
    padding: 5px 9px !important;
    overflow: hidden !important;
}
.richiesta-pubblica .campo label {
    display: block !important;
    height: 16px !important;
    line-height: 16px !important;
    font-size: .75rem !important;
    margin: 0 !important;
}
.richiesta-pubblica .campo input,
.richiesta-pubblica .campo select {
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    line-height: 28px !important;
    padding: 0 2px !important;
    margin: 0 !important;
}
.richiesta-pubblica .campo-email .testo-muto {
    display: none !important;
}
.richiesta-pubblica .campo-email,
.richiesta-pubblica .campo-tipo-problema {
    grid-column: span 2 !important;
}
.richiesta-pubblica .campo-descrizione {
    grid-column: 1 / -1 !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 6px 9px !important;
}
.richiesta-pubblica .campo-descrizione textarea {
    width: 100% !important;
    height: 76px !important;
    min-height: 76px !important;
    max-height: 76px !important;
    box-sizing: border-box !important;
    padding: 3px 2px !important;
    line-height: 1.2 !important;
}
.richiesta-pubblica .campo-allegati {
    grid-column: 1 / -1 !important;
    height: 52px !important;
    min-height: 52px !important;
    padding: 5px 9px !important;
    box-sizing: border-box !important;
}
.richiesta-pubblica .campo-allegati input[type="file"] {
    height: 25px !important;
    min-height: 25px !important;
    padding: 0 !important;
    margin: 0 !important;
}
.richiesta-pubblica .campo-allegati .aiuto {
    display: none !important;
}
.richiesta-pubblica .modulo {
    gap: 7px !important;
}
.richiesta-pubblica .registrazione-box,
.richiesta-pubblica .captcha-numerico,
.richiesta-pubblica .campo-spunta,
.richiesta-pubblica .pulsante-grande {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
@media (max-width: 900px) {
    .richiesta-pubblica .riga-campi {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .richiesta-pubblica .campo-email,
    .richiesta-pubblica .campo-tipo-problema {
        grid-column: span 1 !important;
    }
}
@media (max-width: 560px) {
    .richiesta-pubblica .riga-campi {
        grid-template-columns: 1fr !important;
    }
    .richiesta-pubblica .campo-email,
    .richiesta-pubblica .campo-tipo-problema,
    .richiesta-pubblica .campo-descrizione,
    .richiesta-pubblica .campo-allegati {
        grid-column: 1 / -1 !important;
    }
}


/* Rifinitura finale richiesta ticket */
.richiesta-pubblica .campo-descrizione textarea {
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
}
.richiesta-pubblica .registrazione-box .testo-muto { display:none !important; }
.richiesta-pubblica .campi-registrazione .campo input::placeholder {
    color: #7a8798 !important;
    opacity: 1 !important;
    font-size: 11px !important;
}
.richiesta-pubblica .campi-registrazione .campo {
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
}
.richiesta-pubblica > form > .campo-spunta {
    display:flex !important;
    align-items:center !important;
    gap:7px !important;
    min-height:24px !important;
    height:24px !important;
    padding:0 !important;
    margin:0 !important;
    line-height:20px !important;
}
.richiesta-pubblica > form > .campo-spunta input[type="checkbox"] {
    flex:0 0 auto !important;
    width:16px !important;
    height:16px !important;
    margin:0 !important;
}
.richiesta-pubblica > form > .campo-spunta label {
    display:inline !important;
    height:auto !important;
    line-height:20px !important;
    margin:0 !important;
    font-size:12px !important;
}


/* Layout finale CAPTCHA + Privacy affiancati */
.richiesta-pubblica .captcha-privacy-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    align-items: stretch !important;
    margin: 0 !important;
}
.richiesta-pubblica .captcha-privacy-row .captcha-numerico,
.richiesta-pubblica .captcha-privacy-row .privacy-box {
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 5px 8px !important;
    border: 1px solid #d9e1ea !important;
    border-radius: 7px !important;
    background: #f7fafc !important;
}
.richiesta-pubblica .captcha-privacy-row .captcha-numerico {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
}
.richiesta-pubblica .captcha-privacy-row .captcha-numerico > div {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-width: 0 !important;
}
.richiesta-pubblica .captcha-privacy-row .captcha-numerico strong,
.richiesta-pubblica .captcha-privacy-row .captcha-numerico span {
    margin: 0 !important;
    white-space: nowrap !important;
}
.richiesta-pubblica .captcha-privacy-row .captcha-numerico input {
    width: 58px !important;
    height: 26px !important;
    min-height: 26px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    flex: 0 0 58px !important;
}
.richiesta-pubblica .captcha-privacy-row .privacy-box {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 7px !important;
}
.richiesta-pubblica .captcha-privacy-row .privacy-box input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
    flex: 0 0 16px !important;
}
.richiesta-pubblica .captcha-privacy-row .privacy-box label {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    line-height: 18px !important;
    font-size: 12px !important;
}
@media (max-width: 700px) {
    .richiesta-pubblica .captcha-privacy-row {
        grid-template-columns: 1fr !important;
    }
}

/* FIX 2026-09-30: CAPTCHA e Privacy devono essere due box affiancati. */
.richiesta-pubblica .captcha-privacy-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 !important;
    align-items: stretch !important;
}
.richiesta-pubblica .captcha-privacy-row > .captcha-numerico,
.richiesta-pubblica .captcha-privacy-row > .privacy-box {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
@media (max-width: 700px) {
    .richiesta-pubblica .captcha-privacy-row {
        grid-template-columns: 1fr !important;
    }
}

/* Gestione utenti: email usata per l'accesso, non modificabile */
.modifica-campo input[readonly] { background:#eef3f7; color:#5f7187; cursor:not-allowed; }
.pulsante-pericolo { background:#fff0ed; color:#c43d2d; border:1px solid #f3b4aa; }
.pulsante-pericolo:hover { background:#ffe5e0; }


/* Scheda modifica cliente, layout simile alla registrazione */
.admin-modifica-cliente{max-width:980px!important;width:100%!important;margin:0 auto!important}
.admin-modifica-cliente .riga-campi{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;align-items:start!important}
.admin-modifica-cliente .campo{min-width:0!important}
.admin-modifica-cliente .campo-email{grid-column:span 2!important}
.admin-modifica-cliente .campo input{width:100%!important;box-sizing:border-box!important}
.admin-modifica-cliente .campo-spunta-box{display:flex!important;align-items:center!important;min-height:42px!important;padding:8px 10px!important;border:1px solid #d9e1ea!important;border-radius:8px!important;background:#f7fafc!important;box-sizing:border-box!important}
.admin-modifica-cliente .campo-spunta{display:flex!important;align-items:center!important;gap:7px!important;margin:0!important}
.admin-modifica-cliente .modifica-footer{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:12px!important}
@media(max-width:900px){.admin-modifica-cliente .riga-campi{grid-template-columns:repeat(2,minmax(0,1fr))!important}.admin-modifica-cliente .campo-email{grid-column:1/-1!important}}
@media(max-width:600px){.admin-modifica-cliente .riga-campi{grid-template-columns:1fr!important}.admin-modifica-cliente .campo-email{grid-column:auto!important}.admin-modifica-cliente .modifica-footer{flex-direction:column!important;align-items:stretch!important}}

/* Gestione ruoli */
.griglia-ruoli{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.ruolo-card{padding:20px}
.ruolo-card-testa{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.ruolo-card h2{margin:3px 0 8px}
.ruolo-card h3{font-size:14px;margin:18px 0 8px;color:#12324a}
.badge-ruolo{white-space:nowrap;border-radius:999px;background:#eef3f7;color:#12324a;padding:6px 10px;font-size:12px;font-weight:700}
.lista-permessi{list-style:none;padding:0;margin:0;display:grid;gap:7px}
.lista-permessi li{display:flex;gap:8px;align-items:center;font-size:14px}
.lista-permessi li span{color:#198754;font-weight:800}
.ruolo-fisso{margin-top:16px;font-size:12px}
@media(max-width:760px){.griglia-ruoli{grid-template-columns:1fr}}

.ruolo-nuovo{padding:20px;margin-top:16px}
.ruolo-nuovo h2{margin:0 0 14px}
.campo-largo{grid-column:span 2}
.permessi-editor,.permessi-dettaglio{border-top:1px solid #e7edf2;margin-top:14px;padding-top:12px}
.permessi-editor summary,.permessi-dettaglio summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:700;color:#12324a;padding:8px 0}
.permessi-editor summary::-webkit-details-marker,.permessi-dettaglio summary::-webkit-details-marker{display:none}
.permessi-editor summary:after,.permessi-dettaglio summary:after{content:'+';font-size:20px;line-height:1;color:#f45b32}
.permessi-editor[open] summary:after,.permessi-dettaglio[open] summary:after{content:'−'}
.permessi-editor summary small{font-weight:500;color:#74808a;margin-left:auto}
.permessi-griglia{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.permesso-check{display:flex;align-items:center;gap:9px;border:1px solid #e2e8ed;border-radius:8px;padding:10px 12px;background:#fff;cursor:pointer;font-size:14px}
.permesso-check input{accent-color:#12324a}
.permessi-dettaglio summary span{font-size:12px;background:#eef3f6;border-radius:20px;padding:3px 8px;font-weight:700}
.ruolo-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:15px;padding-top:12px;border-top:1px solid #edf1f4}
.testo-pericolo{color:#c0392b!important}
@media(max-width:760px){.campo-largo{grid-column:auto}.permessi-griglia{grid-template-columns:1fr}}


/* Link installazione PWA: solo smartphone e sulla stessa riga di Password dimenticata. */
.nota-sotto { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .4rem; }
.link-installa-mobile { color: var(--primario, #12324a); text-decoration: underline; font-size: inherit; }
.link-installa-mobile[hidden] { display: none !important; }
.separatore-link-installa { display: none; }
@media (max-width: 767px) {
    .separatore-link-installa { display: inline; }
}


/* Scelte cliente sotto il pulsante di accesso */
.accesso-opzioni { display:grid; grid-template-columns:1fr; gap:.55rem; margin-top:1rem; }
.accesso-opzione { display:flex; align-items:center; justify-content:center; min-height:42px; padding:.65rem 1rem; border:1px solid #cbd5e1; border-radius:4px; color:#123d73; background:#fff; font-weight:650; text-align:center; text-decoration:none; }
.accesso-opzione:hover { background:#f1f5f9; border-color:#123d73; text-decoration:none; }
.accesso-opzione-principale { color:#fff; background:#123d73; border-color:#123d73; }
.accesso-opzione-principale:hover { color:#fff; background:#0d2f5b; }


/* ---------- Dashboard riepilogativa ---------- */
.dashboard-kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 1.4rem}
.dashboard-card{display:flex;flex-direction:column;gap:5px;min-width:0;padding:15px 17px;background:var(--carta);border:1px solid var(--linea);border-radius:12px;box-shadow:var(--ombra);text-decoration:none;color:var(--inchiostro);transition:border-color .15s,transform .15s}
.dashboard-card:hover{border-color:var(--accento);transform:translateY(-2px);color:var(--inchiostro-forte)}
.dashboard-card-titolo{font-size:.88rem;color:var(--muto);font-weight:600}
.dashboard-card strong{font-size:2rem;line-height:1.15;font-weight:750;font-variant-numeric:tabular-nums;color:var(--inchiostro-forte)}
.dashboard-card-descrizione{font-size:.78rem;color:var(--muto)}
.dashboard-card-scaduti{border-left:4px solid var(--rosso)}
.dashboard-card-urgenti{border-left:4px solid var(--giallo)}
.dashboard-card-coda{border-left:4px solid var(--accento)}
.dashboard-lista-intestazione{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 .4rem}
.dashboard-lista-intestazione .titolo-sezione{margin:0}
@media(max-width:760px){.dashboard-kpi{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dashboard-card{padding:12px}.dashboard-card strong{font-size:1.7rem}.dashboard-card-titolo{font-size:.82rem}.dashboard-card-descrizione{font-size:.73rem}.dashboard-lista-intestazione{align-items:flex-start;flex-direction:column;gap:2px}}
@media(max-width:380px){.dashboard-kpi{grid-template-columns:1fr 1fr}.dashboard-card{padding:10px}}
