:root {
    --blu-primario: #2e86de;
    --blu-scuro: #1b4f9c;
    --grigio-testo: #2f3640;
    --grigio-chiaro: #f4f6f8;
    --bordo: #dcdfe3;
    --verde-successo: #1e8e5a;
    --rosso-errore: #c0392b;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: var(--grigio-chiaro);
    color: var(--grigio-testo);
}

a { color: var(--blu-primario); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---------- Barra superiore ---------- */
.barra-superiore {
    background: white;
    border-bottom: 1px solid var(--bordo);
}
.barra-superiore-contenuto {
    max-width: 1100px;
    margin: 0 auto;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    gap: 24px;
}
.logo-app { font-size: 18px; font-weight: 700; color: var(--blu-scuro); }
.menu-principale { display: flex; gap: 18px; flex: 1; }
.menu-principale a { font-weight: 600; color: var(--grigio-testo); }
.menu-principale a:hover { color: var(--blu-primario); }
.utente-corrente { font-size: 14px; color: #666; }

/* ---------- Contenuto ---------- */
.contenuto-pagina {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px 20px 60px;
}
h1 { font-size: 22px; color: var(--blu-scuro); margin: 0 0 16px; }

/* ---------- Messaggi flash ---------- */
.messaggio-flash {
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 16px;
    font-size: 14px;
}
.messaggio-successo { background: #e6f5ec; color: var(--verde-successo); border: 1px solid #b7e3c9; }
.messaggio-errore   { background: #fdecea; color: var(--rosso-errore); border: 1px solid #f3c1bb; }

/* ---------- Pagina di login ---------- */
.pagina-login {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
}
.scheda-login {
    background: white;
    padding: 32px 36px;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    width: 100%;
    max-width: 380px;
}
.scheda-login h1 { text-align: center; font-size: 20px; }
.scheda-login .sottotitolo { text-align: center; color: #777; margin-top: -8px; margin-bottom: 20px; font-size: 14px; }
.scheda-login label { display: block; font-size: 13px; font-weight: 600; margin: 12px 0 4px; }
.scheda-login input {
    width: 100%; padding: 10px 12px; border: 1px solid var(--bordo);
    border-radius: 8px; font-size: 15px;
}
.scheda-login button {
    width: 100%; margin-top: 20px; padding: 11px; border: none;
    border-radius: 8px; background: var(--blu-primario); color: white;
    font-size: 15px; font-weight: 700; cursor: pointer;
}
.scheda-login button:hover { background: var(--blu-scuro); }

/* ---------- Riquadri riepilogo dashboard ---------- */
.riquadri-riepilogo { display: flex; gap: 16px; flex-wrap: wrap; }
.riquadro-riepilogo {
    background: white; border: 1px solid var(--bordo); border-radius: 12px;
    padding: 20px 24px; min-width: 180px; display: flex; flex-direction: column; gap: 6px;
}
.riquadro-riepilogo:hover { border-color: var(--blu-primario); text-decoration: none; }
.riquadro-numero { font-size: 28px; font-weight: 700; color: var(--blu-scuro); }
.riquadro-etichetta { font-size: 13px; color: #666; }
.riquadro-azione { justify-content: center; align-items: center; text-align: center; }

/* ---------- Pulsanti ---------- */
.pulsante {
    display: inline-block; padding: 9px 16px; border-radius: 8px;
    font-weight: 600; font-size: 14px; cursor: pointer; border: none;
}
.pulsante-primario { background: var(--blu-primario); color: white; }
.pulsante-primario:hover { background: var(--blu-scuro); text-decoration: none; }
.pulsante-secondario { background: white; color: var(--grigio-testo); border: 1px solid var(--bordo); }
.pulsante-secondario:hover { background: #eee; text-decoration: none; }

/* ---------- Elenco pazienti ---------- */
.intestazione-lista { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.modulo-ricerca { display: flex; gap: 8px; margin-bottom: 18px; }
.modulo-ricerca input {
    flex: 1; max-width: 360px; padding: 9px 12px; border: 1px solid var(--bordo); border-radius: 8px; font-size: 14px;
}
.modulo-ricerca button {
    padding: 9px 16px; border: none; border-radius: 8px; background: var(--blu-primario); color: white; font-weight: 600; cursor: pointer;
}
.testo-vuoto { color: #777; font-style: italic; }
.nota-elenco { color: #888; font-size: 13px; margin-top: 10px; }

.tabella-dati { width: 100%; border-collapse: collapse; background: white; border-radius: 10px; overflow: hidden; }
.tabella-dati th, .tabella-dati td { padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--bordo); font-size: 14px; }
.tabella-dati th { background: #eef3fb; color: var(--blu-scuro); font-size: 12px; text-transform: uppercase; letter-spacing: 0.03em; }
.tabella-dati tr:last-child td { border-bottom: none; }
.colonna-azioni { white-space: nowrap; }
.colonna-azioni a { margin-right: 12px; }

/* ---------- Form paziente ---------- */
.modulo-dati { background: white; border-radius: 12px; padding: 24px; border: 1px solid var(--bordo); }
.riga-form { display: flex; gap: 16px; margin-bottom: 14px; flex-wrap: wrap; }
.campo-form { flex: 1; min-width: 160px; }
.campo-form-piccolo { flex: 0 0 90px; min-width: 90px; }
.campo-form-grande { flex: 2; min-width: 260px; }
.campo-form label { display: block; font-size: 12px; font-weight: 700; color: #555; margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.02em; }
.campo-form input, .campo-form select, .campo-form textarea {
    width: 100%; padding: 9px 11px; border: 1px solid var(--bordo); border-radius: 7px; font-size: 14px; font-family: inherit;
}
.azioni-form { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; border-top: 1px solid var(--bordo); padding-top: 18px; }

/* ---------- Scheda dettaglio ---------- */
.scheda-dettaglio { background: white; border-radius: 12px; border: 1px solid var(--bordo); padding: 8px 24px; }
.riga-dettaglio { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--grigio-chiaro); gap: 16px; }
.riga-dettaglio:last-child { border-bottom: none; }
.riga-dettaglio span { color: #777; font-size: 13px; }
.riga-dettaglio strong { font-weight: 600; text-align: right; }
.riga-dettaglio-nota { flex-direction: column; align-items: flex-start; }
.riga-dettaglio-nota p { margin: 6px 0 0; text-align: left; }

/* ---------- Diario Visite ---------- */
.sezione-visite { margin: 28px 0 20px; }
.sezione-visite h2 { font-size: 18px; color: var(--blu-scuro); margin: 0; }
.sezione-visite .conteggio { color: #888; font-weight: 400; font-size: 15px; }
.contenitore-tabella { overflow-x: auto; border-radius: 10px; }
.tabella-visite { table-layout: fixed; min-width: 760px; }
.tabella-visite td { vertical-align: top; overflow-wrap: anywhere; }
.tabella-visite th:first-child { width: 110px; }
.tabella-visite th:last-child { width: 130px; }
.tabella-visite .colonna-data { white-space: nowrap; font-weight: 600; }
.campo-form-data { flex: 0 0 200px; }
.campo-form textarea { resize: vertical; }

@media (max-width: 700px) {
    .barra-superiore-contenuto { flex-wrap: wrap; gap: 10px 18px; }
    .intestazione-lista { flex-wrap: wrap; gap: 10px; }
    .campo-form-data { flex: 1 1 100%; }
    .azioni-form { flex-wrap: wrap; }
}
.azioni-form .ultimo-a-destra { order: 99; }

/* ---------- Impostazioni ---------- */
.titolo-sezione-form { font-size: 15px; color: var(--blu-scuro); margin: 22px 0 10px; padding-top: 14px; border-top: 1px solid var(--bordo); }
.modulo-dati .titolo-sezione-form:first-of-type { margin-top: 0; padding-top: 0; border-top: none; }
.anteprima-immagine {
    height: 110px; border: 1px dashed var(--bordo); border-radius: 8px; background: #f7fbff;
    display: flex; align-items: center; justify-content: center; margin-bottom: 8px; padding: 6px;
}
.anteprima-immagine img { max-height: 100%; max-width: 100%; }
.casella-rimuovi { display: flex !important; align-items: center; gap: 6px; margin-top: 8px; text-transform: none !important; font-weight: 400 !important; font-size: 13px !important; }
.casella-rimuovi input { width: auto !important; }

/* ---------- Anamnesi: riquadri nella scheda paziente ---------- */
.sezione-visite > h2 { margin-bottom: 12px; }
.riquadri-anamnesi { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.riquadro-anamnesi {
    background: white; border: 1px solid var(--bordo); border-radius: 12px; padding: 16px;
    display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px;
}
.riquadro-anamnesi.anamnesi-inserita { border-color: #b7e3c9; }
.icona-anamnesi { font-size: 30px; }
.titolo-anamnesi { font-weight: 700; color: var(--blu-scuro); font-size: 14px; }
.stato-anamnesi { font-size: 13px; font-weight: 600; }
.stato-si { color: var(--verde-successo); }
.stato-no { color: #999; }
.azioni-anamnesi { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: auto; }

/* ---------- Anamnesi: modulo ---------- */
.modulo-anamnesi .sezione-anamnesi { margin-bottom: 8px; }
.modulo-anamnesi .sezione-anamnesi:first-of-type .titolo-sezione-form { margin-top: 0; padding-top: 0; border-top: none; }
.griglia-campi { display: grid; gap: 12px 18px; align-items: start; }
.griglia-campi.colonne-1 { grid-template-columns: minmax(0, 1fr); }
.griglia-campi.colonne-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.griglia-campi.colonne-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.griglia-campi.colonne-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.griglia-campi .campo-intero, .griglia-campi .titolo-gruppo { grid-column: 1 / -1; }
.griglia-campi .campo-largo { grid-column: span 2; }
.griglia-campi.colonne-1 .campo-largo { grid-column: auto; }
.campo-anamnesi { min-width: 0; }
.titolo-gruppo { font-size: 13px; color: var(--blu-primario); margin: 8px 0 -4px; text-transform: uppercase; letter-spacing: .03em; }
.voce-check { background: #f7fbff; border: 1px solid #e3ebf5; border-radius: 8px; padding: 8px 10px; min-width: 0; }
.voce-check-extra { display: flex; flex-direction: column; gap: 8px; }
.colonne-1 > .voce-check-extra { flex-direction: row; align-items: flex-start; gap: 14px; }
.colonne-1 > .voce-check-extra .casella { flex: 0 0 34%; padding-top: 22px; }
.colonne-1 > .voce-check-extra .extra-campi { flex: 1; }
.casella { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; font-weight: 600; cursor: pointer; line-height: 1.3; }
.casella input { width: 18px; height: 18px; margin: 0; flex: 0 0 18px; accent-color: var(--blu-primario); }
.voce-check:has(input[type=checkbox]:checked) { background: #e8f2ff; border-color: #9cc3ef; }
.extra-campi { display: flex; gap: 10px; flex-wrap: wrap; }
.extra-campi .campo-form { flex: 1 1 160px; margin: 0; }
.extra-campi .campo-form label { font-size: 11px; }
.con-unita { display: flex; align-items: center; gap: 6px; }
.con-unita input { flex: 1; }
.unita { color: #666; font-size: 13px; white-space: nowrap; }
.campo-calcolato { background: #f1f3f5 !important; }
.indicazione { display: block; margin-top: 4px; font-size: 12px; color: var(--blu-scuro); font-weight: 600; min-height: 1em; }
.griglia-anamnesi { border-collapse: collapse; width: 100%; min-width: 760px; background: white; }
.griglia-anamnesi th, .griglia-anamnesi td { border: 1px solid var(--bordo); padding: 4px; font-size: 12px; }
.griglia-anamnesi thead th { background: #eef3fb; color: var(--blu-scuro); }
.griglia-anamnesi tbody th { background: #eef3fb; width: 60px; }
.griglia-anamnesi input { width: 100%; border: 1px solid transparent; padding: 6px; font-size: 13px; border-radius: 4px; }
.griglia-anamnesi input:focus { border-color: var(--blu-primario); outline: none; }
.azioni-fisse { position: sticky; bottom: 0; background: white; padding-bottom: 12px; z-index: 5; }

/* ---------- Editor mappa del dolore ---------- */
.editor-mappa { margin-bottom: 14px; }
.barra-mappa { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 8px; }
.barra-mappa button, .barra-mappa select {
    padding: 6px 10px; border: 1px solid var(--bordo); background: white; border-radius: 6px; cursor: pointer; font-size: 13px;
}
.barra-mappa .colore { width: 32px; height: 32px; padding: 0; border: 2px solid #fff; box-shadow: 0 0 0 1px #999; }
.barra-mappa .attivo { box-shadow: 0 0 0 3px var(--blu-scuro); }
.barra-mappa button[data-azione="gomma"].attivo { background: #fff3cd; }
.separatore-barra { width: 1px; height: 24px; background: var(--bordo); margin: 0 4px; }
.area-mappa { overflow: auto; border: 1px solid var(--bordo); border-radius: 8px; background: #fff; max-height: 80vh; }
.tela-mappa { position: relative; width: 100%; }
.tela-mappa canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.mappa-disegno { touch-action: none; cursor: crosshair; }

@media (max-width: 800px) {
    .riquadri-anamnesi { grid-template-columns: 1fr; }
    .griglia-campi.colonne-3, .griglia-campi.colonne-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .griglia-campi.colonne-2, .griglia-campi.colonne-3, .griglia-campi.colonne-4 { grid-template-columns: minmax(0, 1fr); }
    .griglia-campi .campo-largo { grid-column: auto; }
    .colonne-1 > .voce-check-extra { flex-direction: column; }
    .colonne-1 > .voce-check-extra .casella { padding-top: 0; }
}

/* ---------- Consensi e privacy ---------- */
.avviso-privacy { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 10px 14px; border-radius: 10px; margin-bottom: 12px; font-weight: 600; font-size: 14px; }
.privacy-ok { background: #e6f5ec; color: var(--verde-successo); border: 1px solid #b7e3c9; }
.privacy-no { background: #fff4e0; color: #9a5b00; border: 1px solid #f3d3a0; }
.pulsanti-consensi { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }
.etichetta-pulsanti { font-size: 13px; color: #666; font-weight: 600; }
.riga-revocata td { color: #999; text-decoration: line-through; }
.riga-revocata td:nth-child(4), .riga-revocata td:last-child { text-decoration: none; }
.riquadro-attenzione { border-color: #f3d3a0; background: #fffaf0; }
.riquadro-attenzione .riquadro-numero { color: #9a5b00; }
.passi-consenso { display: flex; gap: 8px; list-style: none; padding: 0; margin: 0 0 16px; counter-reset: passo; flex-wrap: wrap; }
.passi-consenso li { counter-increment: passo; padding: 6px 14px; border-radius: 20px; background: #eceff3; color: #666; font-size: 13px; font-weight: 600; }
.passi-consenso li::before { content: counter(passo) ". "; }
.passi-consenso li.attivo { background: var(--blu-primario); color: white; }
.passi-consenso li.fatto { background: #d7e9fb; color: var(--blu-scuro); }
.domande-consenso { display: flex; flex-direction: column; gap: 8px; }
.domande-consenso .campo-form { margin: 4px 0; }
.voce-consenso { background: #f7fbff; border: 1px solid #e3ebf5; border-radius: 8px; padding: 9px 12px; font-weight: 500 !important; }
.voce-consenso:has(input:checked) { background: #e8f2ff; border-color: #9cc3ef; }
.scelta-consenso { border: 1px solid #e3ebf5; border-radius: 8px; padding: 8px 12px 10px; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.scelta-consenso legend { font-size: 12px; font-weight: 700; color: #555; text-transform: uppercase; padding: 0 4px; }
.disattivato { opacity: .45; }
.documento-consenso {
    background: white; border: 1px solid var(--bordo); border-radius: 12px; padding: 28px 32px; max-width: 900px; margin: 0 auto 18px;
    font-family: "DejaVu Sans", "Segoe UI", Arial, sans-serif; font-size: 14.5px; line-height: 1.5;
}
.documento-consenso p { margin: 0 0 6px; }
.titolo-documento { font-size: 17px; text-align: center; color: #111; margin: 0 0 14px; }
.sottotitolo-documento { font-size: 14px; text-align: center; margin: 14px 0 6px; color: #111; }
.voce-rientrata { padding-left: 22px; }
.spazio-riga { height: 6px; }
.riga-firma-paziente { display: flex; align-items: center; gap: 18px; margin: 6px 0; }
.firma-paziente-img { height: 70px; width: auto; max-width: 260px; }
.firma-medico-consenso { display: flex; align-items: center; gap: 18px; margin: 12px 0; }
.firma-medico-consenso img { height: 60px; width: auto; max-width: 200px; }
.riquadro-firma { background: white; border: 2px solid var(--blu-primario); border-radius: 12px; padding: 18px 20px; max-width: 900px; margin: 0 auto; }
.riquadro-firma h2 { font-size: 16px; margin: 0 0 4px; color: var(--blu-scuro); }
.riquadro-firma.firma-mancante { border-color: var(--rosso-errore); }
.area-firma { border: 1px dashed #9aa7b5; border-radius: 8px; background: #fff; position: relative; }
.area-firma::after { content: "✕"; position: absolute; left: 14px; bottom: 26px; color: #b9c2cc; font-size: 18px; pointer-events: none; }
.area-firma::before { content: ""; position: absolute; left: 36px; right: 20px; bottom: 30px; border-bottom: 1px solid #c9d1da; pointer-events: none; }
.area-firma canvas { display: block; width: 100%; height: auto; aspect-ratio: 900 / 260; touch-action: none; cursor: crosshair; position: relative; z-index: 1; }
.schede-impostazioni { display: flex; gap: 4px; border-bottom: 2px solid var(--bordo); margin-bottom: 18px; flex-wrap: wrap; }
.schede-impostazioni a { padding: 9px 16px; font-weight: 600; color: #666; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.schede-impostazioni a.attiva { color: var(--blu-scuro); border-bottom-color: var(--blu-primario); }
.schede-impostazioni a:hover { text-decoration: none; color: var(--blu-primario); }
.testo-modello { font-family: Consolas, "DejaVu Sans Mono", monospace; font-size: 13px !important; line-height: 1.45; }
.aiuto-modello { background: #f7fbff; border: 1px solid #e3ebf5; border-radius: 8px; padding: 10px 14px; font-size: 13px; }
.aiuto-modello summary { cursor: pointer; font-weight: 600; color: var(--blu-scuro); }
.elenco-segnaposto code { display: inline-block; background: #eef3fb; padding: 1px 6px; border-radius: 4px; margin: 2px; }
@media (max-width: 600px) { .documento-consenso { padding: 18px 16px; font-size: 14px; } }

/* ---------- Fatture ---------- */
.messaggio-avviso { background: #fff8e6; color: #7a5200; border: 1px solid #f0d49a; }
.messaggio-avviso ul { margin: 6px 0; padding-left: 20px; }
.azioni-intestazione { display: flex; gap: 8px; flex-wrap: wrap; }
.riquadri-totali { margin-bottom: 18px; }
.riquadri-totali .riquadro-riepilogo { flex: 1 1 200px; }
.riquadro-evidenza { border-color: var(--blu-primario); background: #f3f8ff; }
.riquadro-dettaglio { font-size: 12px; color: #777; }
.filtri-fatture select { padding: 9px 10px; border: 1px solid var(--bordo); border-radius: 8px; font-size: 14px; background: white; }
.colonna-importo { text-align: right !important; white-space: nowrap; }
.etichetta-esterno, .etichetta-opposizione { display: inline-block; font-size: 11px; padding: 1px 7px; border-radius: 10px; margin-left: 4px; vertical-align: 1px; }
.etichetta-esterno { background: #eceff3; color: #555; }
.etichetta-opposizione { background: #fdecea; color: var(--rosso-errore); }
.etichetta-non-riscossa { display: inline-block; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 10px; background: #fff4e5; color: #b45309; }
.testata-fattura { background: #f7fbff; border: 1px solid #e3ebf5; border-radius: 10px; padding: 12px 14px; }
.scelta-sezionale { border: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; align-content: flex-start; }
.scelta-sezionale legend { font-size: 12px; font-weight: 700; color: #555; text-transform: uppercase; padding: 0; margin-bottom: 6px; }
.maiuscolo { text-transform: uppercase; }
.tabella-prestazioni { width: 100%; border-collapse: collapse; }
.tabella-prestazioni th, .tabella-prestazioni td { padding: 6px 4px; border-bottom: 1px solid var(--grigio-chiaro); text-align: left; font-size: 14px; }
.tabella-prestazioni thead th { font-size: 12px; color: #555; text-transform: uppercase; }
.tabella-prestazioni input { width: 100%; padding: 9px 11px; border: 1px solid var(--bordo); border-radius: 7px; font-size: 14px; font-family: inherit; }
.tabella-prestazioni .colonna-importo { width: 160px; }
.tabella-prestazioni input.importo { text-align: right; }
.tabella-prestazioni tfoot th { text-align: right; font-weight: 600; color: #555; }
.tabella-prestazioni tfoot th small { font-weight: 400; color: #888; }
.tabella-prestazioni output { display: block; padding: 9px 12px; font-weight: 600; }
.tabella-prestazioni .riga-totale output { font-size: 18px; color: var(--blu-scuro); }
.opposizione-ts span { color: var(--rosso-errore); }
.scelta-cliente { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; align-items: start; }
.risultato-paziente { display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; border: 1px solid var(--bordo); border-radius: 8px; margin-top: 8px; color: var(--grigio-testo); }
.risultato-paziente:hover { border-color: var(--blu-primario); background: #f3f8ff; text-decoration: none; }
.risultato-paziente span { color: #777; font-size: 13px; }
.periodo-ts .campo-pulsante { flex: 0 0 auto; display: flex; align-items: flex-end; }
.scorciatoie-mesi { display: flex; flex-wrap: wrap; gap: 6px; }
.scorciatoie-mesi a { padding: 5px 12px; border: 1px solid var(--bordo); border-radius: 16px; font-size: 13px; color: var(--grigio-testo); background: white; }
.scorciatoie-mesi a.attivo { background: var(--blu-primario); color: white; border-color: var(--blu-primario); }
.azioni-ts { margin: 0 0 18px; }
.azioni-ts button[disabled] { opacity: .5; cursor: not-allowed; }
.colonna-azioni a + a { margin-left: 12px; }
@media (max-width: 800px) { .scelta-cliente { grid-template-columns: 1fr; } }

/* ---------- Email ---------- */
.documento-da-inviare { background: white; border: 1px solid var(--bordo); border-radius: 10px; padding: 12px 16px; }
.casella-piccola { font-weight: 400 !important; font-size: 13px !important; text-transform: none !important; margin: 4px 0 10px; }
.casella-piccola input { width: auto !important; }
.blocco-codice { background: #fff; border: 1px solid var(--bordo); border-radius: 6px; padding: 8px 10px; font-size: 12px; white-space: pre-wrap; word-break: break-all; }
.scelta-mesi { border: 1px solid #e3ebf5; border-radius: 8px; padding: 8px 12px 10px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px 12px; margin: 14px 0 6px; }
.scelta-mesi legend { font-size: 12px; font-weight: 700; color: #555; text-transform: uppercase; padding: 0 4px; }
.invio-ts { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-left: 12px; font-size: 14px; color: #555; }
.invio-ts input { padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 8px; min-width: 240px; }
.modulo-prova-email { margin-top: 16px; }
@media (max-width: 700px) { .scelta-mesi { grid-template-columns: repeat(3, minmax(0, 1fr)); } .invio-ts { margin: 10px 0 0; } }

/* ---- Utenti e password ---- */
.modulo-stretto { max-width: 520px; }
.modulo-stretto .campo-form { margin-bottom: 12px; }
.griglia-riquadri-utenti { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin: 20px 0; align-items: start; }
.griglia-riquadri-utenti .modulo-dati { margin: 0; }
.griglia-riquadri-utenti .campo-form { margin-bottom: 10px; }
.campo-conferma-mia { border-top: 1px dashed var(--bordo); padding-top: 10px; }
.pulsante-pericolo { background: var(--rosso-errore); color: white; }
.pulsante-pericolo:hover { background: #a93226; }
.modulo-in-linea { display: inline; margin: 0; }
.pulsante-link { background: none; border: none; padding: 0; color: var(--blu-primario); cursor: pointer; font: inherit; }
.pulsante-link:hover { text-decoration: underline; }
.etichetta-io { color: #7f8c8d; font-weight: normal; font-size: 0.9em; }
.link-account { color: inherit; }
.pulsanti-intestazione { display: flex; gap: 8px; flex-wrap: wrap; }
.campo-casella-form { display: flex; align-items: flex-end; padding-bottom: 10px; }
.campo-casella-form .casella { text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--grigio-testo); margin: 0; }
.intestazione-lista .titolo-sezione-form { border-top: none; padding-top: 0; margin: 0; }

/* ---- Importazione dal desktop ---- */
.riquadro-svuota { border-color: #f0d49a; background: #fffdf6; }
.elenco-conteggi { margin: 8px 0 14px; padding-left: 20px; line-height: 1.7; }
.elenco-avvisi { max-height: 420px; overflow-y: auto; margin-bottom: 10px; }
.elenco-avvisi td:first-child { white-space: nowrap; font-weight: 600; }
.passi-importazione { margin: 0 0 14px; padding-left: 20px; line-height: 1.6; }
.passi-importazione code { background: var(--grigio-chiaro); padding: 1px 5px; border-radius: 4px; }

/* ---- Elenco pazienti: colonne di stato ---- */
.tabella-pazienti .colonna-stato { text-align: center; white-space: nowrap; }
.stato-mancante { color: var(--rosso-errore); font-weight: 700; }
.stato-spento { color: #999; }
.modulo-ricerca select { padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 8px; font-size: 14px; background: white; }

/* ---- Prescrizioni ---- */
.maiuscolo { text-transform: uppercase; }
.gruppi-prescrizione { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin-bottom: 10px; }
.gruppo-prescrizione { border: 1px solid var(--bordo); border-radius: 10px; padding: 10px 14px 12px; margin: 0; }
.gruppo-prescrizione legend { font-weight: 700; color: var(--blu-scuro); padding: 0 6px; }
.gruppo-prescrizione .casella { font-weight: 400; margin: 6px 0; }
.gruppo-intestazioni { grid-column: 1 / -1; background: #f7fbff; }

/* ---- Scheda paziente: sezione Stampe ---- */
.griglia-stampe { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.riquadro-stampa { background: white; border: 1px solid var(--bordo); border-radius: 12px; padding: 14px 16px; }
.riquadro-stampa h3 { margin: 0 0 10px; font-size: 15px; color: var(--blu-scuro); }
.riquadro-stampa ul { list-style: none; margin: 0; padding: 0; }
.riquadro-stampa li { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid #eef0f2; font-size: 14px; }
.riquadro-stampa li:first-child { border-top: none; }
.riquadro-stampa li .azioni-voce { display: flex; gap: 10px; white-space: nowrap; }
.riquadro-stampa .voce-assente { color: #999; }
.riquadro-stampa .pulsante { margin-top: 10px; }
.riquadro-stampa select { max-width: 100%; padding: 6px; border: 1px solid var(--bordo); border-radius: 6px; }
.riga-stampa-visita { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; padding-top: 8px; border-top: 1px solid #eef0f2; }
.riga-stampa-visita .pulsante { margin-top: 0; }
.etichetta-piccola { font-size: 14px; }
.fras-rosso { color: var(--rosso-errore); font-weight: 600; }
.tabella-fras5 small { color: inherit; opacity: .8; }
.modulo-fras5 { max-width: 700px; }
.modulo-fras5 .griglia-campi { margin-bottom: 12px; }

/* ---- Telefono: menu su più righe, riquadri della home a tutta larghezza ---- */
@media (max-width: 700px) {
    .menu-principale { flex-wrap: wrap; gap: 8px 16px; flex: 1 1 100%; }
    .menu-principale a { white-space: nowrap; }
    .riquadri-riepilogo .riquadro-riepilogo { flex: 1 1 100%; }
}

/* ======================================================================
   Menu laterale sempre presente + barra sottile in alto (vers. 1.15)
   ====================================================================== */
/* Dalla 1.15 come WordPress: barra sottile in alto (titolo, utente, Esci) e colonna a sinistra */
:root { --altezza-barra-alta: 40px; }
.con-menu-laterale { display: grid; grid-template-columns: 220px minmax(0, 1fr); grid-template-rows: var(--altezza-barra-alta) 1fr; min-height: 100vh; }
/* "L capovolta": colonna di sinistra e barra in alto hanno lo stesso sfondo e nessuna linea fra loro; il logo sta nell'angolo
   in alto a sinistra e la barra parte alla sua destra (senza logo la barra parte dall'angolo). Il contenuto è il riquadro
   con l'angolo arrotondato dentro la L. */
.barra-alta {
    grid-column: 1 / -1; grid-row: 1; position: sticky; top: 0; z-index: 20; height: var(--altezza-barra-alta); box-sizing: border-box;
    display: flex; align-items: center; gap: 12px; padding: 0 14px; background: var(--sfondo-menu);
}
.con-logo-menu .barra-alta { grid-column: 2; padding-left: 4px; }
.logo-barra { display: none; }
.barra-alta .logo-app { font-size: 15px; font-weight: 700; line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.barra-alta .logo-app:hover { text-decoration: none; }
.barra-alta .utente-corrente { margin-left: auto; display: flex; align-items: center; gap: 12px; font-size: 13.5px; min-width: 0; }
.barra-alta .nome-utente { display: flex; align-items: baseline; gap: 6px; cursor: pointer; user-select: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; border-radius: 6px; padding: 3px 6px; }
.barra-alta .nome-utente:hover { background: var(--grigio-chiaro); }
.barra-alta .profilo-utente { display: inline; font-size: 12px; }
.pulsante-esci { white-space: nowrap; font-weight: 600; padding: 3px 10px; border: 1px solid var(--bordo); border-radius: 6px; }
.pulsante-esci:hover { text-decoration: none; background: var(--grigio-chiaro); }
.menu-laterale {
    grid-column: 1; grid-row: 2; background: white;
    position: sticky; top: var(--altezza-barra-alta); height: calc(100vh - var(--altezza-barra-alta)); overflow-y: auto;
}
.con-logo-menu .menu-laterale { grid-row: 1 / span 2; top: 0; height: 100vh; z-index: 21; }
.con-logo-menu .testata-menu { padding-top: 8px; }
.testata-menu { display: flex; flex-direction: column; min-height: 100%; padding: 14px 12px; box-sizing: border-box; }
.contenuto-menu { display: flex; flex-direction: column; flex: 1; }
.menu-laterale .menu-principale { display: flex; flex-direction: column; gap: 2px; flex: 0 0 auto; }
.menu-laterale .menu-principale a {
    display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 8px;
    font-weight: 600; font-size: 15px; color: var(--grigio-testo); white-space: normal;
}
.menu-laterale .menu-principale a:hover { background: var(--grigio-chiaro); color: var(--blu-primario); text-decoration: none; }
.menu-laterale .menu-principale a.attiva { background: #e8f1fc; color: var(--blu-scuro); box-shadow: inset 3px 0 0 var(--blu-primario); }
.icona-menu { width: 22px; text-align: center; font-size: 17px; flex: 0 0 22px; }
.nome-utente { color: var(--grigio-testo); font-weight: 600; }
.interruttore-menu, .pulsante-menu, .solo-telefono { display: none; }
.menu-laterale .menu-principale a.solo-telefono { display: none; }
.con-menu-laterale .area-contenuto { grid-column: 2; grid-row: 2; min-width: 0; background: var(--sfondo-pagine); border-top: 1px solid var(--bordo); border-left: 1px solid var(--bordo); border-top-left-radius: 14px; }
body.pagina-home .area-contenuto { background: var(--sfondo-home); }
.con-menu-laterale .contenuto-pagina { min-width: 0; width: 100%; max-width: 1100px; box-sizing: border-box; margin: 0 auto; padding: 24px 32px 60px; }

@media (max-width: 800px) {
    .con-menu-laterale { display: block; }
    .barra-alta { padding: 0 10px; gap: 8px; }
    .pulsante-menu { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 30px; flex: 0 0 34px; border: 1px solid var(--bordo); border-radius: 6px; font-size: 18px; cursor: pointer; }
    .barra-alta .profilo-utente { display: none; }
    .barra-alta .utente-corrente { gap: 6px; }
    .menu-laterale { display: none; position: fixed; top: var(--altezza-barra-alta); left: 0; right: 0; bottom: 0; z-index: 19; height: auto; border-right: none; }
    .interruttore-menu:checked ~ .menu-laterale { display: block; }
    .menu-laterale .menu-principale a.solo-telefono { display: flex; }
    .con-menu-laterale .contenuto-pagina { padding: 18px 16px 50px; }
    .con-menu-laterale .area-contenuto { border: 0; border-radius: 0; }
    .con-logo-menu .barra-alta { padding-left: 10px; }
    .con-logo-menu .menu-laterale { top: var(--altezza-barra-alta); height: auto; }
    .barra-alta { border-bottom: 1px solid var(--bordo); }
    .menu-scuro.barra-alta { border-bottom-color: rgba(255,255,255,.25); }
    .logo-barra { display: block; flex: 0 0 auto; }
    .logo-barra img { display: block; height: 28px; width: auto; }
}

/* ---------- Home: logo dello studio al centro ---------- */
.home-studio { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 10px 0 30px; }
.saluto-home { align-self: stretch; text-align: left; }
.logo-studio-home { max-width: min(420px, 90%); max-height: 260px; object-fit: contain; margin: 20px auto 10px; }
.nome-studio-home { font-size: 26px; font-weight: 700; color: var(--blu-scuro); margin: 30px 0 4px; }
.sottotitolo-studio-home { color: #555; margin: 0 0 4px; font-size: 15px; }
.home-studio .riquadri-riepilogo { justify-content: center; margin-top: 28px; }
.home-studio .riquadro-riepilogo { flex: 0 1 180px; }
@media (max-width: 800px) { .home-studio .riquadro-riepilogo { flex: 1 1 calc(50% - 8px); min-width: 0; padding: 16px 12px; } }
.home-studio .riquadri-riepilogo { width: 100%; }

/* ---- Avviso di uscita per inattività ---- */
.avviso-inattivita {
    position: fixed; right: 20px; bottom: 20px; z-index: 1000; max-width: 360px;
    background: white; border: 2px solid #f0d49a; border-radius: 12px; padding: 16px 18px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.18); font-size: 14px;
}
.avviso-inattivita p { margin: 0 0 12px; line-height: 1.45; }
.avviso-inattivita .conto { font-weight: 700; color: var(--rosso-errore); }
.avviso-home { align-self: stretch; text-align: left; }
@media (max-width: 600px) { .avviso-inattivita { left: 12px; right: 12px; bottom: 12px; max-width: none; } }

/* ---- Cartella paziente ---- */
.griglia-caricamento { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 16px; margin-bottom: 14px; align-items: start; }
.modulo-caricamento .campo-form { margin-bottom: 10px; }
.zona-trascinamento {
    display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; cursor: pointer;
    border: 2px dashed #9dbbe0; border-radius: 12px; background: #f5f9fe; padding: 22px 14px; margin-bottom: 10px;
    text-transform: none !important; letter-spacing: 0 !important; font-size: 15px !important; font-weight: 400 !important; color: var(--grigio-testo) !important;
}
.zona-trascinamento.sopra { background: #e3effc; border-color: var(--blu-primario); }
.zona-trascinamento input[type=file] { margin-top: 8px; max-width: 100%; font-size: 13px; }
.zona-icona { font-size: 30px; }
.zona-trascinamento small { color: #666; font-size: 12px; }
.finto-link { color: var(--blu-primario); text-decoration: underline; cursor: pointer; }
.scelta-cartella { margin: 0 0 10px; font-size: 14px; }
.scelta-cartella small { color: #777; }
.nascosto { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.file-scelti ul { list-style: none; margin: 0 0 10px; padding: 0; max-height: 220px; overflow-y: auto; font-size: 13px; }
.file-scelti li { padding: 4px 0; border-bottom: 1px solid #eef0f2; overflow-wrap: anywhere; }
.filtri-categoria { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.filtri-categoria a { padding: 5px 12px; border-radius: 16px; border: 1px solid var(--bordo); background: white; font-size: 13px; color: var(--grigio-testo); }
.filtri-categoria a.attiva { background: var(--blu-primario); border-color: var(--blu-primario); color: white; }
.nota-documento { color: #666; }
.griglia-documento { display: grid; grid-template-columns: minmax(300px, 1fr) minmax(300px, 1.3fr); gap: 16px; align-items: start; }
.anteprima-documento { background: white; border: 1px solid var(--bordo); border-radius: 12px; padding: 10px; min-height: 200px; }
.anteprima-documento img { max-width: 100%; display: block; margin: 0 auto; }
.anteprima-documento iframe { width: 100%; height: 75vh; border: none; }
@media (max-width: 900px) { .griglia-documento { grid-template-columns: 1fr; } }

/* ---- Voci delle prestazioni ---- */
.sezione-voci { margin-top: 20px; }
.riga-nuova-voce { align-items: flex-end; margin-bottom: 14px; }
.modulo-importo-voce { display: flex; gap: 6px; align-items: center; margin: 0; }
.modulo-importo-voce input { width: 90px; padding: 5px 8px; border: 1px solid var(--bordo); border-radius: 6px; text-align: right; }
.tabella-voci .voce-nascosta td { color: #999; }

/* Diario visite: azioni una sotto l'altra, così "🧾 Fattura" resta visibile */
.tabella-visite .colonna-azioni a { display: block; margin: 0 0 4px; }
.tabella-visite .colonna-azioni a + a { margin-left: 0; }
.fattura-visita { color: #2f855a; font-weight: 600; }

/* ---- Registro attività ---- */
.filtri-registro .campo-doppio { grid-column: span 2; }
.filtro-paziente { margin: 0 0 10px; }
.tabella-registro td { vertical-align: top; font-size: 0.93em; }
.tabella-registro small { color: #718096; }
.tabella-registro .azione-eliminazione td:nth-child(3) { color: #c53030; }
.tabella-registro .azione-sicurezza td:nth-child(3) { color: #b7791f; }
.paginazione { display: flex; gap: 16px; justify-content: center; align-items: center; margin: 14px 0; }
.modulo-conservazione { margin-top: 24px; }
@media (max-width: 700px) { .filtri-registro .campo-doppio { grid-column: auto; } }
.campo-pulsante { align-self: end; flex: 0 0 auto; }
.griglia-campi .campo-pulsante { padding-top: 22px; }
.modulo-conservazione .campo-form { flex: 0 0 280px; }

/* ---- Profili utente ---- */
.profilo-utente { display: block; font-weight: normal; color: #718096; font-size: 0.85em; }
.riquadro-in-arrivo { margin: 24px auto 0; max-width: 520px; padding: 18px 22px; border: 1px dashed var(--bordo); border-radius: 12px; background: #f7fafc; color: #4a5568; text-align: center; line-height: 1.5; }
.etichetta-ruolo { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 0.85em; background: #edf2f7; }
.etichetta-ruolo.ruolo-amministratore { background: #ebf4ff; color: #2b6cb0; }
.etichetta-ruolo.ruolo-segreteria { background: #fefcbf; color: #975a16; }
.modulo-ruolo { display: flex; gap: 6px; align-items: center; margin: 0; }

/* ---- Abilitazioni ---- */
.griglia-abilitazioni { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin: 14px 0 18px; }
.gruppo-abilitazioni { border: 1px solid var(--bordo); border-radius: 10px; padding: 10px 14px 6px; margin: 0; }
.gruppo-abilitazioni legend { font-weight: 700; color: #2c5282; padding: 0 6px; }
.voce-abilitazione { display: flex; gap: 10px; align-items: flex-start; margin: 8px 0 12px; cursor: pointer; }
.voce-abilitazione input { margin-top: 4px; }
.voce-abilitazione small { color: #718096; }
.scelte-rapide { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.scelte-rapide[hidden] { display: none; }
.pulsante-piccolo { padding: 4px 10px; font-size: 0.88em; }
.riassunto-abilitazioni { color: #718096; }
.etichetta-ruolo.ruolo-utente { background: #f0fff4; color: #276749; }

/* ---- Prima configurazione (installa.php) ---- */
.scheda-installazione { max-width: 620px; }
.titolo-controlli { font-size: 1.05em; color: #2c5282; margin: 18px 0 8px; }
.elenco-controlli { list-style: none; padding: 0; margin: 0 0 8px; }
.elenco-controlli li { display: flex; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--bordo); font-size: 0.93em; text-align: left; }
.elenco-controlli small { color: #4a5568; }
.simbolo-controllo { width: 1.2em; flex: 0 0 auto; font-weight: bold; }
.controllo-ok .simbolo-controllo { color: #2f855a; }
.controllo-avviso .simbolo-controllo { color: #b7791f; }
.controllo-errore .simbolo-controllo { color: #c53030; }

/* Versione del programma */
.versione-programma { padding: 10px 12px 0; font-size: 12px; color: #999; }
.versione-login { text-align: center; font-size: 12px; color: #999; margin: 16px 0 0; }
.versione-grande { font-size: 22px; font-weight: 700; color: var(--blu-scuro); margin: 4px 0; }
.storico-versioni .voce-versione { background: #fff; border: 1px solid var(--bordo); border-radius: 10px; padding: 12px 18px; margin-bottom: 12px; }
.storico-versioni h3 { font-size: 16px; margin: 4px 0 6px; }
.storico-versioni h3 small { font-weight: 400; color: #777; }
.storico-versioni ul { margin: 0; padding-left: 20px; }


/* Importazione continua dal desktop */
.scelte-importazione { border: 1px solid var(--bordo); border-radius: 10px; padding: 10px 14px 12px; margin: 14px 0; display: flex; flex-direction: column; gap: 8px; }
.scelte-importazione legend { font-weight: 700; font-size: 14px; padding: 0 6px; }
.voce-disattivata { opacity: .55; cursor: default; }
.tabella-riepilogo-importazione .numero { text-align: center; white-space: nowrap; }
.tabella-riepilogo-importazione .zero { color: #bbb; }
.tabella-riepilogo-importazione small { color: #777; font-weight: 400; }
details.riquadro-svuota summary { cursor: pointer; font-weight: 700; color: var(--grigio-testo); }
details.riquadro-svuota[open] summary { margin-bottom: 10px; }

/* Login: logo, occhio della password, versione */
.logo-login { display: block; margin: 0 auto 14px; width: 300px; max-width: 92%; height: auto; }
.campo-con-occhio { position: relative; }
.scheda-login .campo-con-occhio input { padding-right: 46px; }
.scheda-login .pulsante-occhio {
    position: absolute; top: 50%; right: 6px; transform: translateY(-50%);
    width: 36px; height: 34px; margin: 0; padding: 0; border: none; border-radius: 6px;
    background: transparent; color: #777; display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.scheda-login .pulsante-occhio:hover, .scheda-login .pulsante-occhio:focus-visible { background: var(--grigio-chiaro); color: var(--blu-primario); }
.scheda-login .pulsante-occhio[hidden] { display: none; }
.pulsante-occhio svg { fill: currentColor; }
.pulsante-occhio .occhio-chiuso { display: none; }
.pulsante-occhio[aria-pressed="true"] .occhio-aperto { display: none; }
.pulsante-occhio[aria-pressed="true"] .occhio-chiuso { display: inline; }
.versione-login { width: 100%; text-align: center; }

/* ---------- Telefono: tabelle come schede (una riga = una scheda) ---------- */
@media (max-width: 700px) {
    .contenitore-tabella:has(.tabella-responsive) { overflow-x: visible; }
    table.tabella-responsive { min-width: 0 !important; table-layout: auto; background: transparent; border-radius: 0; overflow: visible; }
    .tabella-responsive thead { display: none; }
    .tabella-responsive, .tabella-responsive tbody, .tabella-responsive tr, .tabella-responsive td { display: block; width: 100% !important; }
    .tabella-responsive tr { background: white; border: 1px solid var(--bordo); border-radius: 10px; margin-bottom: 10px; padding: 6px 0; }
    .tabella-responsive tr:last-child td { border-bottom: none; }
    .tabella-responsive td { display: flex; gap: 10px; align-items: baseline; border-bottom: none; padding: 5px 14px; text-align: left !important;
        overflow-wrap: anywhere; white-space: normal !important; }
    .tabella-responsive td::before { content: attr(data-label); flex: 0 0 36%; max-width: 36%; font-size: 11px; font-weight: 700; color: #6b7280;
        text-transform: uppercase; letter-spacing: .02em; }
    .tabella-responsive td[data-label=""]::before, .tabella-responsive td.cella-intera::before { display: none; }
    .tabella-responsive td:empty { display: none; }
    /* Pulsanti delle azioni: in fondo alla scheda, grandi da toccare */
    .tabella-responsive td.colonna-azioni { flex-wrap: wrap; gap: 8px; padding-top: 8px; margin-top: 4px; border-top: 1px solid var(--bordo); }
    .tabella-responsive td.colonna-azioni::before { display: none; }
    .tabella-responsive td.colonna-azioni a, .tabella-responsive td.colonna-azioni .pulsante-link {
        display: inline-block !important; margin: 0 !important; padding: 7px 12px; border: 1px solid var(--bordo); border-radius: 8px; background: #f7fafc; font-weight: 600; }
    .tabella-responsive td.colonna-azioni form { display: inline-block; margin: 0; }
    /* Ricerche e filtri: vanno a capo */
    .modulo-ricerca { flex-wrap: wrap; }
    .modulo-ricerca input { flex: 1 1 100%; max-width: none; }
    .modulo-ricerca select { flex: 1 1 auto; min-width: 0; }
}
.solo-telefono { display: none; }
@media (max-width: 700px) {
    .solo-telefono { display: inline; }
    .contenitore-tabella:has(.griglia-anamnesi) { overflow-x: visible; }
    .griglia-anamnesi { min-width: 0; background: transparent; }
    .griglia-anamnesi thead { display: none; }
    .griglia-anamnesi, .griglia-anamnesi tbody, .griglia-anamnesi tr, .griglia-anamnesi th, .griglia-anamnesi td { display: block; width: 100% !important; }
    .griglia-anamnesi tr { background: white; border: 1px solid var(--bordo); border-radius: 10px; margin-bottom: 10px; overflow: hidden; }
    .griglia-anamnesi tbody th { border: none; padding: 8px 12px; font-size: 13px; }
    .griglia-anamnesi td { border: none; display: flex; align-items: center; gap: 8px; padding: 4px 12px; }
    .griglia-anamnesi td::before { content: attr(data-label); flex: 0 0 40%; font-size: 11px; font-weight: 700; color: #6b7280; text-transform: uppercase; }
    .griglia-anamnesi input { border-color: var(--bordo); }
}
@media (max-width: 700px) {
    /* Prestazioni della fattura: descrizione a tutta larghezza, importo accanto più stretto */
    .tabella-prestazioni .colonna-importo { width: 96px; }
    .tabella-prestazioni td { padding: 5px 2px; }
    .tabella-prestazioni tbody tr { vertical-align: top; }
    /* Schede delle Impostazioni: una riga che scorre di lato */
    .schede-impostazioni { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
    .schede-impostazioni a { white-space: nowrap; padding: 9px 12px; }
}
/* Logo dello studio in cima al menu */
/* Logo dello studio in cima alla colonna (versione scontornata: si fonde con il colore di sfondo, vers. 1.15) */
.logo-studio-menu { display: block; text-align: center; padding: 0 6px 12px; }
.logo-studio-menu img { display: block; width: 100%; max-width: 150px; height: auto; margin: 0 auto; }
@media (max-width: 380px) { .barra-alta .logo-app { font-size: 13.5px; } }
/* Controllo del codice fiscale */
.esito-cf { display: block; margin-top: 4px; font-size: 12px; color: #6b7280; min-height: 1em; }
.esito-cf-ok { color: #2f855a; font-weight: 600; }
.esito-cf-errato { color: var(--rosso-errore); font-weight: 600; }
.campo-form-sesso { flex: 0 0 170px; min-width: 150px; }

/* ---------- Personalizzazione (Impostazioni → Personalizza) ---------- */
:root { --sfondo-menu: #ffffff; --sfondo-home: #f4f6f8; --sfondo-pagine: #f4f6f8; }
body, body.pagina-login { background: var(--sfondo-pagine); }
body.pagina-home { background: var(--sfondo-home); }
.menu-laterale { background: var(--sfondo-menu); }
.barra-alta { background: var(--sfondo-menu); }
.menu-scuro, .menu-scuro .nome-utente, .menu-scuro .menu-principale a, .menu-scuro .utente-corrente,
.menu-scuro .utente-corrente a, .menu-scuro .logo-app, .menu-scuro .versione-programma, .menu-scuro .pulsante-menu { color: #fff; }
.menu-scuro .nome-utente:hover, .menu-scuro .pulsante-esci:hover { background: rgba(255,255,255,.14); }
.menu-scuro .pulsante-esci { border-color: rgba(255,255,255,.5); }
.menu-scuro .profilo-utente { color: rgba(255,255,255,.75); }
.menu-scuro .menu-principale a:hover { background: rgba(255,255,255,.14); color: #fff; }
.menu-scuro .menu-principale a.attiva { background: rgba(255,255,255,.22); color: #fff; box-shadow: inset 3px 0 0 #fff; }
.menu-scuro .pulsante-menu { border-color: rgba(255,255,255,.5); }
.solo-lettori { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Guida on line: in fondo al menu, subito sopra la riga dell'utente */
.link-guida { margin-top: auto; display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 8px; font-weight: 600; font-size: 14px; }
.link-guida:hover { background: var(--grigio-chiaro); text-decoration: none; }
.menu-scuro .link-guida { color: #fff; }
.menu-scuro .link-guida:hover { background: rgba(255,255,255,.14); }
@media (max-width: 800px) { .link-guida { margin-top: 8px; } }
.logo-studio-home + .dati-medico-home .nome-studio-home { margin-top: 6px; }
/* Impostazioni → Personalizza */
.griglia-personalizza { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 18px; }
.scelta-colore { border: 1px solid var(--bordo); border-radius: 10px; padding: 10px 14px 12px; margin: 12px 0; }
.scelta-colore legend { font-weight: 700; font-size: 14px; padding: 0 6px; }
.tavolozza { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
.campione { display: flex; flex-direction: column; align-items: center; gap: 3px; cursor: pointer; width: 64px; }
.campione input[type=radio] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.campione span { display: block; width: 40px; height: 40px; border-radius: 50%; border: 2px solid #cfd6de; box-shadow: inset 0 0 0 2px #fff; }
.campione input[type=radio]:checked + span, .campione input[type=radio]:checked ~ .scegli-colore { border-color: var(--blu-primario); box-shadow: 0 0 0 3px rgba(46,134,222,.35), inset 0 0 0 2px #fff; }
.campione input[type=radio]:focus-visible + span { outline: 2px solid var(--blu-scuro); outline-offset: 2px; }
.campione small { font-size: 10px; color: #6b7280; text-align: center; line-height: 1.2; }
.campione .scegli-colore { width: 40px; height: 40px; padding: 0; border: 2px solid #cfd6de; border-radius: 50%; background: none; cursor: pointer; overflow: hidden; }
.campione .scegli-colore::-webkit-color-swatch-wrapper { padding: 0; }
.campione .scegli-colore::-webkit-color-swatch { border: none; border-radius: 50%; }
/* ---------- Guida on line ---------- */
.cerca-guida { width: 100%; max-width: 520px; padding: 10px 12px; border: 1px solid var(--bordo); border-radius: 8px; font-size: 15px; margin: 6px 0 16px; }
.guida-contenitore { display: grid; grid-template-columns: 260px 1fr; gap: 20px; align-items: start; }
.guida-indice { position: sticky; top: 16px; background: white; border: 1px solid var(--bordo); border-radius: 10px; padding: 12px 14px; font-size: 14px; }
.guida-indice ol { margin: 8px 0 0; padding-left: 18px; }
.guida-indice li { margin: 4px 0; }
.guida-sezione { background: white; border: 1px solid var(--bordo); border-radius: 10px; padding: 14px 20px; margin-bottom: 14px; scroll-margin-top: 16px; }
.guida-sezione h2 { font-size: 18px; color: var(--blu-scuro); margin: 4px 0 10px; }
.guida-sezione li { margin: 5px 0; line-height: 1.45; }
.guida-passi li::marker { font-weight: 700; color: var(--blu-primario); }
.guida-nota { background: #f7fbff; border-left: 3px solid var(--blu-primario); padding: 8px 12px; border-radius: 4px; font-size: 14px; }
.guida-evidenziata { border-color: var(--blu-primario); box-shadow: 0 0 0 3px rgba(46,134,222,.25); }
.guida-torna-su { font-size: 13px; }
@media (max-width: 800px) {
    .guida-contenitore { grid-template-columns: 1fr; }
    .guida-indice { position: static; }
}
@media print {
    .con-menu-laterale { display: block; }
    .area-contenuto { border: 0 !important; background: none !important; }
    .menu-laterale, .barra-alta, .cerca-guida, .guida-indice, .guida-torna-su, .intestazione-lista button { display: none !important; }
    .guida-contenitore { display: block; }
    .guida-sezione { break-inside: avoid; border: none; padding: 0; }
}
/* Personalizza Aspetto: icona del programma */
.scelta-icone { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 12px; }
.scelta-icona { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 92px; cursor: pointer; text-align: center; }
.scelta-icona input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.anteprima-icona { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border: 2px solid #cfd6de; border-radius: 12px; background: #fff; font-size: 24px; }
.anteprima-icona img { width: 40px; height: 40px; object-fit: contain; }
.scelta-icona input:checked + .anteprima-icona { border-color: var(--blu-primario); box-shadow: 0 0 0 3px rgba(46,134,222,.35); }
.scelta-icona input:focus-visible + .anteprima-icona { outline: 2px solid var(--blu-scuro); outline-offset: 2px; }
.scelta-icona small { font-size: 11px; color: #555; line-height: 1.2; }
.campo-file-icona { max-width: 420px; }
/* Editor dei box degli esami (Modelli documenti) */
.editor-esami { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 14px; margin: 12px 0; align-items: start; }
.box-editor { border: 1px solid var(--bordo); border-radius: 10px; padding: 10px 12px 12px; background: #fff; min-width: 0; }
.box-editor legend { font-weight: 700; font-size: 14px; padding: 0 6px; }
.box-intestazioni { grid-column: 1 / -1; background: #f7fbff; }
.testa-box-editor { display: flex; gap: 6px; align-items: flex-end; flex-wrap: wrap; }
.testa-box-editor label { flex: 1 1 180px; font-size: 12px; font-weight: 700; color: #555; }
.titolo-box-editor { width: 100%; margin-top: 3px; padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 7px; font-weight: 700; font-size: 15px; }
.righe-editor { margin: 8px 0; padding-left: 22px; display: flex; flex-direction: column; gap: 5px; }
.righe-editor li { display: flex; gap: 4px; align-items: center; }
.righe-editor input { flex: 1; min-width: 0; padding: 6px 8px; border: 1px solid var(--bordo); border-radius: 6px; font-size: 14px; }
.pulsante-piccolo-editor { border: 1px solid var(--bordo); background: #f7fafc; border-radius: 6px; padding: 5px 8px; cursor: pointer; font-size: 13px; }
.pulsante-piccolo-editor:hover { background: #eef3fb; }
.pulsante-piccolo-editor.pulsante-cancella { color: var(--rosso-errore); }
.pulsante-piccolo-editor.pulsante-aggiungi, .pulsante-nuovo-box { font-weight: 600; color: var(--blu-scuro); }
.pulsante-nuovo-box { grid-column: 1 / -1; justify-self: start; padding: 9px 14px; }
.conta-voci { color: #777; }
.modulo-nuovo-modello { margin-top: 20px; }

/* Personalizza Aspetto → Nome del programma (1.6) */
.nome-programma-personalizza { background: #fff; border: 1px solid #dfe3e8; border-radius: 8px; padding: 12px 16px; margin-bottom: 18px; }
.nome-programma-personalizza .campo-form input { max-width: 420px; font-size: 1.05rem; }
.nome-programma-personalizza .scelte-titolo { display: flex; flex-wrap: wrap; gap: 6px 24px; margin: 8px 0; }
.anteprima-nome { margin: 6px 0 0; color: #445; }
.anteprima-nome strong { font-size: 1.1rem; color: #1b4f9c; }

/* Guida on line in una scheda a sé (1.6): niente barra laterale, immagini delle videate */
body.guida-a-se { background: var(--sfondo-pagine, #f4f6f8); margin: 0; }
.contenuto-guida { max-width: 1180px; margin: 0 auto; padding: 18px 20px 40px; }
.intestazione-guida { flex-wrap: wrap; gap: 10px; }
.intestazione-guida h1 { margin: 0; }
.comandi-guida { display: flex; gap: 8px; flex-wrap: wrap; }
.guida-a-se .guida-indice { max-height: calc(100vh - 32px); overflow-y: auto; }
.guida-immagine { margin: 12px 0 16px; }
.guida-immagine img { display: block; max-width: 100%; height: auto; border: 1px solid var(--bordo); border-radius: 8px;
                      box-shadow: 0 2px 8px rgba(0,0,0,.08); cursor: zoom-in; }
.guida-immagine figcaption { font-size: 13px; color: #555; margin-top: 6px; line-height: 1.4; }
.guida-sezione.guida-nascosta { display: none; }
@media (max-width: 600px) { .contenuto-guida { padding: 12px 16px 30px; } }
@media print {
    .comandi-guida { display: none !important; }
    .contenuto-guida { max-width: none; padding: 0; }
    .guida-immagine { break-inside: avoid; }
    .guida-immagine img { max-height: 11cm; width: auto; box-shadow: none; }
}

/* ---------- Commercialista (1.7): grafico mensile a colonne affiancate ---------- */
:root { --serie-studio: #2a78d6; --serie-esterni: #eb6834; }
.riquadro-grafico { background: #fff; border: 1px solid var(--bordo); border-radius: 10px; padding: 12px 16px 10px; margin: 0 0 18px; }
.testa-grafico { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 18px; }
.testa-grafico h2 { margin: 4px 0; }
.legenda-grafico { display: flex; gap: 16px; font-size: 13px; color: #52514e; }
.legenda-grafico > span { display: inline-flex; align-items: center; gap: 6px; }
.campione-serie { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.campione-serie.serie-studio { background: var(--serie-studio); }
.campione-serie.serie-esterni { background: var(--serie-esterni); }
.contenitore-grafico { position: relative; }
.grafico-mensile { display: block; width: 100%; height: auto; max-height: 360px; font-family: inherit; }
.grafico-mensile .griglia-grafico { stroke: #e8e8e4; stroke-width: 1; }
.grafico-mensile .base-grafico { stroke: #b9b8b2; }
.grafico-mensile .asse-grafico { font-size: 12px; fill: #6b6a65; }
.grafico-mensile .serie-studio path { fill: var(--serie-studio); }
.grafico-mensile .serie-esterni path { fill: var(--serie-esterni); }
.grafico-mensile .zona-grafico { fill: transparent; }
.grafico-mensile .colonna-grafico { cursor: pointer; outline: none; }
.grafico-mensile .colonna-grafico.in-evidenza .zona-grafico, .grafico-mensile .colonna-grafico:focus-visible .zona-grafico { fill: rgba(0,0,0,.05); }
.suggerimento-grafico { position: absolute; top: 4px; background: #1f2328; color: #fff; font-size: 13px; padding: 6px 10px; border-radius: 6px;
                        pointer-events: none; white-space: nowrap; box-shadow: 0 2px 8px rgba(0,0,0,.2); }
.tabella-grafico summary { cursor: pointer; font-size: 14px; color: var(--blu-primario); margin: 6px 0; }
.tabella-mesi .riga-scelta td { background: #f2f7fd; }
.modulo-scarica { display: inline; }
.etichetta-ruolo.ruolo-contabilita { background: #fff7e6; color: #8a5a00; }
@media (max-width: 600px) {
    .grafico-mensile .asse-grafico { font-size: 16px; }
    .suggerimento-grafico { white-space: normal; max-width: 90%; }
}
@media print {
    .modulo-scarica, .filtri-fatture, .tabella-grafico summary { display: none !important; }
}
/* Controllo terapie (1.7) */
.avviso-terapie { background: #fff8e6; border: 1px solid #f0d9a0; border-radius: 8px; padding: 10px 14px; }
.comandi-terapie { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.conta-terapie { font-weight: 600; color: var(--rosso-errore); }
.tabella-terapie .colonna-terapia { white-space: nowrap; }
.tabella-terapie tr.riga-sospesa td { background: #fdf1f1; }
.tabella-terapie tr.riga-sospesa .casella-terapia span { text-decoration: line-through; color: #8a8a8a; }
.testa-grafico .titolo-sezione-form { border-top: none; padding-top: 0; margin: 4px 0; }

/* Elenchi a pagine (1.9) */
.barra-pagine { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 14px 0; }
.barra-pagine .disattivo { opacity: .45; pointer-events: none; }
.numeri-pagine { display: flex; gap: 4px; flex-wrap: wrap; }
.numeri-pagine a, .numeri-pagine .pagina-attuale, .salto-pagine { min-width: 32px; padding: 5px 8px; text-align: center; border-radius: 6px; }
.numeri-pagine a { border: 1px solid var(--bordo); background: #fff; }
.numeri-pagine .pagina-attuale { background: var(--blu-primario); color: #fff; font-weight: 700; }
.riepilogo-pagine { font-size: 13px; color: #6b7280; }
.conta-elenco { margin: 4px 0 8px; }
.avviso-doppioni ul { margin: 6px 0 6px 18px; padding: 0; }
/* Diritti del paziente (1.9) */
.sezione-diritti { border-top: 3px solid #e8d3d3; }
.azioni-diritti { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.modulo-esporta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.modulo-esporta input { min-width: 240px; padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 6px; }
/* Note di credito (1.9) */
.etichetta-nota-credito { display: inline-block; font-size: 11px; font-weight: 700; padding: 1px 6px; border-radius: 4px; background: #fdecea; color: #b42318; }
.riquadro-storno { background: #fff8f0; border: 1px solid #f3d5b5; border-radius: 8px; padding: 10px 14px; margin-bottom: 14px; }
.riquadro-storno p { margin: 4px 0; }
.riquadro-numerazione { background: #f6f9fd; border: 1px solid var(--bordo); border-radius: 8px; padding: 10px 14px; }
.tabella-prestazioni .riga-totale td { font-weight: 600; }
/* Verifica in due passaggi (1.9) */
.scheda-due-passaggi { max-width: 460px; }
.scheda-due-passaggi h1 { font-size: 1.3rem; }
.qr-due-passaggi { text-align: center; margin: 10px 0; }
.qr-due-passaggi img { image-rendering: pixelated; border: 1px solid var(--bordo); border-radius: 8px; background: #fff; max-width: 100%; height: auto; }
.segreto-totp { font-size: 15px; letter-spacing: 1px; word-break: break-all; }
.codici-recupero { columns: 2; font-size: 17px; }
.codici-recupero code { letter-spacing: 1px; }
.passi-due-passaggi { padding-left: 20px; }
.link-esci { text-align: center; margin-top: 10px; }
.stato-due-passaggi { background: #f6f9fd; border: 1px solid var(--bordo); border-radius: 8px; padding: 10px 14px; }

/* ---------- Agenda (1.9) ---------- */
:root { --agenda-ora: 56px; }
.barra-agenda { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 6px 0 12px; }
.navigazione-agenda { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.salta-data input { padding: 7px 8px; border: 1px solid var(--bordo); border-radius: 6px; }
.titolo-periodo { flex: 1; margin: 0; font-size: 18px; color: var(--blu-scuro); min-width: 200px; }
.scelta-vista { display: inline-flex; border: 1px solid var(--bordo); border-radius: 8px; overflow: hidden; background: #fff; }
.scelta-vista a { padding: 7px 12px; font-weight: 600; font-size: 14px; }
.scelta-vista a.attiva { background: var(--blu-primario); color: #fff; }
.griglia-agenda { display: grid; grid-template-columns: 54px repeat(var(--colonne, 7), minmax(0, 1fr)); background: #fff; border: 1px solid var(--bordo); border-radius: 10px; overflow: hidden; }
.griglia-agenda.colonne-1 { --colonne: 1; } .griglia-agenda.colonne-5 { --colonne: 5; } .griglia-agenda.colonne-6 { --colonne: 6; } .griglia-agenda.colonne-7 { --colonne: 7; }
.griglia-agenda .testa-giorno { display: block; height: 38px; line-height: 38px; text-align: center; font-size: 13px; border-bottom: 1px solid var(--bordo); color: #445; }
.colonna-giorno.oggi .testa-giorno { background: #eaf2fb; color: var(--blu-scuro); }
.colonna-giorno { border-left: 1px solid var(--bordo); }
.colonna-giorno.giorno-chiuso .corpo-giorno { background: repeating-linear-gradient(135deg, #fafafa 0 6px, #f2f2f2 6px 12px); }
.corpo-ore, .corpo-giorno { position: relative; height: calc(var(--ore-visibili, 12) * var(--agenda-ora)); }
.corpo-giorno { display: flex; flex-direction: column; }
.ora-etichetta { height: var(--agenda-ora); font-size: 11px; color: #777; text-align: right; padding-right: 6px; transform: translateY(-6px); }
.ora-etichetta:first-child { transform: none; }
.spazio-libero { flex: 1; border-top: 1px dotted #eee; display: block; }
.spazio-libero.inizio-ora { border-top: 1px solid #e3e6ea; }
.spazio-libero:hover { background: #f2f7fd; }
.evento-agenda { position: absolute; left: 0; width: calc(100% - 3px); margin-left: 1px; overflow: hidden; border-radius: 6px; padding: 2px 5px;
                 font-size: 12px; line-height: 1.25; color: #10243e; background: #dcebfb; border-left: 4px solid #2a78d6; box-shadow: 0 1px 2px rgba(0,0,0,.12); }
.evento-agenda:hover { z-index: 2; box-shadow: 0 2px 8px rgba(0,0,0,.25); text-decoration: none; }
.evento-agenda .ora-evento { font-weight: 700; margin-right: 4px; }
.evento-agenda .nome-evento { font-weight: 600; }
.evento-agenda .motivo-evento { display: block; color: #445; font-size: 11px; }
.stato-confermato { background: #d8f3e6 !important; border-left-color: #1a8f5c !important; }
.stato-eseguito { background: #eceff3 !important; border-left-color: #7b8794 !important; color: #444 !important; }
.stato-non_presentato { background: #fdecea !important; border-left-color: #c0392b !important; }
.stato-disdetto { background: #f7f7f7 !important; border-left-color: #bbb !important; color: #888 !important; text-decoration: line-through; }
.origine-miodottore::after { content: " · MioDottore"; font-size: 10px; color: #555; }
.origine-online::after { content: " · online"; font-size: 10px; color: #555; }
.elenco-agenda { display: none; }
.giorno-elenco { background: #fff; border: 1px solid var(--bordo); border-radius: 10px; padding: 8px 12px; margin-bottom: 10px; }
.giorno-elenco.oggi { border-color: var(--blu-primario); }
.giorno-elenco h3 { margin: 2px 0 6px; font-size: 15px; color: var(--blu-scuro); }
.riga-appuntamento { display: grid; grid-template-columns: auto 1fr; gap: 0 10px; padding: 8px 10px; margin: 5px 0; border-radius: 8px;
                     background: #dcebfb; border-left: 4px solid #2a78d6; color: #10243e; }
.riga-appuntamento .ora-evento { font-weight: 700; grid-row: span 2; }
.riga-appuntamento .motivo-evento, .riga-appuntamento .stato-evento { font-size: 12px; color: #445; }
.nuovo-elenco { font-size: 14px; }
.griglia-mese { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); background: #fff; border: 1px solid var(--bordo); border-radius: 10px; overflow: hidden; }
.intestazione-giorno-mese { text-align: center; font-size: 13px; font-weight: 700; padding: 6px 0; border-bottom: 1px solid var(--bordo); color: #445; }
.giorno-mese { min-height: 96px; border-top: 1px solid #eef0f3; border-left: 1px solid #eef0f3; padding: 3px 4px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.giorno-mese.fuori-mese { background: #fafbfc; color: #aaa; }
.giorno-mese.oggi { background: #f2f7fd; }
.numero-giorno { font-weight: 700; font-size: 13px; }
.evento-mese { font-size: 11px; border-radius: 4px; padding: 1px 4px; background: #dcebfb; border-left: 3px solid #2a78d6; color: #10243e; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.altri-mese { font-size: 11px; }
.legenda-stati { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; font-size: 12px; }
.campione-stato { padding: 2px 8px; border-radius: 4px; background: #dcebfb; border-left: 4px solid #2a78d6; }
.risultati-ricerca { border: 1px solid var(--bordo); border-radius: 8px; background: #fff; max-height: 260px; overflow-y: auto; margin-top: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.risultati-ricerca button { display: block; width: 100%; text-align: left; padding: 8px 10px; border: 0; border-bottom: 1px solid #f0f0f0; background: #fff; cursor: pointer; font-size: 14px; }
.risultati-ricerca button:hover, .risultati-ricerca button:focus { background: #eaf2fb; }
.nessun-risultato { margin: 8px 10px; color: #666; font-size: 14px; }
.paziente-scelto { background: #eefaf3; border: 1px solid #bfe5cf; border-radius: 6px; padding: 6px 10px; margin: 6px 0; }
.collegamenti-appuntamento { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.griglia-campi.colonne-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 800px) {
    .griglia-agenda:not(.colonne-1) { display: none; }
    .griglia-agenda:not(.colonne-1) ~ .elenco-agenda { display: block; }
    .griglia-campi.colonne-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .giorno-mese { min-height: 64px; }
    .evento-mese { font-size: 0; padding: 0; height: 6px; }
}
@media (max-width: 480px) { .griglia-campi.colonne-4 { grid-template-columns: minmax(0, 1fr); } }
.indirizzo-ical { width: 100%; margin: 6px 0; padding: 8px; font-family: monospace; font-size: 13px; } .scelta-giorni { display: flex; flex-wrap: wrap; gap: 4px 16px; border: 1px solid var(--bordo); border-radius: 8px; padding: 8px 12px; }
.oggi-in-agenda { max-width: 720px; margin: 18px auto 0; text-align: left; background: #fff; border: 1px solid var(--bordo); border-radius: 10px; padding: 10px 14px; }
.oggi-in-agenda h2 { font-size: 16px; margin: 2px 0 8px; color: var(--blu-scuro); }

/* ===== Versione 1.11 ===== */
/* Email: PDF protetto da password */
.protezione-pdf { border: 1px solid var(--bordo, #dcdfe3); border-radius: 10px; padding: 12px 14px; margin: 10px 0 14px; background: #f8fafc; }
.protezione-pdf .riga-form { margin-top: 8px; align-items: flex-end; }
.protezione-pdf .campo-pulsante { flex: 0 0 auto; }
.protezione-pdf input[type=text] { font-family: ui-monospace, Consolas, monospace; letter-spacing: .5px; }
.testo-avviso { color: #b9770e; font-weight: 600; }
/* Fatture non riscosse */
.pulsante-attenzione { background: #fff4e5; color: #9a5b00; border: 1px solid #f0c27a; }
.pulsante-attenzione:hover { background: #ffe9c7; }
.pulsanti-pagata { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.riquadro-non-riscosse .riquadro-dettaglio { display: block; font-size: 13px; color: #9a5b00; font-weight: 700; margin-top: 4px; }
/* Home: saluto con il pulsante "Ricette pazienti esterni" a destra (come nel desktop) */
.testata-home { align-self: stretch; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.testata-home .saluto-home { margin: 0; }
.pulsante-ricette-esterni { white-space: nowrap; }
/* Utenti e password: una scheda apribile per utente */
.elenco-utenti { display: flex; flex-direction: column; gap: 10px; margin: 10px 0 24px; }
.scheda-utente { background: #fff; border: 1px solid var(--bordo); border-radius: 12px; }
.scheda-utente[open] { box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.riga-utente { display: grid; grid-template-columns: 1.3fr 1.6fr 1fr 0.9fr auto; gap: 12px; align-items: center; padding: 12px 16px; cursor: pointer; list-style: none; }
.riga-utente::-webkit-details-marker { display: none; }
.riga-utente small { display: block; color: #718096; font-weight: 400; }
.riga-utente .riassunto-abilitazioni { margin-top: 3px; }
.utente-apri { color: var(--blu-primario, #2e86de); font-weight: 600; font-size: 13px; white-space: nowrap; }
.scheda-utente[open] .utente-apri { opacity: .6; }
.scheda-utente .modulo-utente { margin: 0; border: none; border-top: 1px solid var(--bordo); border-radius: 0 0 12px 12px; box-shadow: none; }
.blocco-abilitazioni .nota-admin { display: none; }
.blocco-abilitazioni.profilo-amministratore .nota-admin { display: block; }
.blocco-abilitazioni.profilo-amministratore .griglia-abilitazioni, .blocco-abilitazioni.profilo-amministratore .scelte-rapide { display: none; }
.voce-disattiva { opacity: .45; cursor: not-allowed; }
.azioni-utente { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.etichetta-campo { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; color: #4a5568; margin-bottom: 6px; }
.scheda-nuovo-utente { border-style: dashed; }
@media (max-width: 800px) {
    .riga-utente { grid-template-columns: 1fr auto; }
    .riga-utente .utente-profilo, .riga-utente .utente-accesso { grid-column: 1 / -1; }
}
/* Proposte dei comuni (campi città) */
.campo-con-proposte { position: relative; }
.proposte-comuni { position: absolute; z-index: 50; left: 0; right: 0; top: 100%; margin: 2px 0 0; padding: 4px 0; list-style: none; background: #fff;
    border: 1px solid var(--bordo); border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.12); max-height: 280px; overflow-y: auto; min-width: 240px; }
.proposte-comuni li { padding: 7px 12px; cursor: pointer; font-size: 14px; text-transform: none; }
.proposte-comuni li small { color: #718096; }
.proposte-comuni li.attiva, .proposte-comuni li:hover { background: #eaf2fb; }
.campo-eta input { background: #f1f5f9; font-weight: 700; }
/* Scheda paziente compatta (come la videata del desktop) */
.scheda-paziente-compatta { background: #fff; border: 1px solid var(--bordo); border-radius: 12px; padding: 12px 14px 14px; margin: 6px 0 22px; }
.testata-scheda-paziente { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.chip-scheda { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 999px; background: #eef3f9; color: #2f3640; font-size: 13px; }
.chip-scheda.chip-si { background: #e6f5ec; color: #1e7a4c; font-weight: 600; }
.chip-scheda.chip-no { background: #fdecea; color: #b03a2e; font-weight: 600; }
.chip-scheda.chip-eta { background: #eaf2fb; color: #1b4f9c; }
.griglia-scheda { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.campo-scheda { background: #e7f1fa; border-radius: 8px; padding: 6px 10px 7px; min-width: 0; }
.etichetta-scheda { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: #5a6b7d; font-weight: 600; }
.valore-scheda { display: block; font-size: 15px; font-weight: 700; color: #1f2a36; overflow-wrap: anywhere; line-height: 1.3; }
.valore-scheda .vuoto { color: #a0aec0; font-weight: 400; }
.campo-scheda.valore-cf .valore-scheda { font-family: ui-monospace, Consolas, monospace; letter-spacing: .5px; }
.campo-largo-scheda { grid-column: span 2; }
.campo-note-scheda { grid-column: 1 / -1; background: #fffbea; }
.campo-note-scheda .valore-scheda { font-weight: 500; }
@media (max-width: 900px) { .griglia-scheda { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .griglia-scheda { grid-template-columns: 1fr; } .campo-largo-scheda { grid-column: auto; } }
/* Archivio pazienti */
.colonna-casella { width: 34px; text-align: center; }
.azioni-archivio { flex-wrap: wrap; align-items: flex-start; gap: 10px; }
.conferma-cancella > summary { list-style: none; display: inline-block; }
.conferma-cancella > summary::-webkit-details-marker { display: none; }
.conferma-cancella[open] { flex-basis: 100%; }
.conferma-cancella .riga-form { margin-top: 10px; align-items: flex-end; }
.messaggio-info { background: #eaf2fb; color: #1b4f9c; border: 1px solid #c3d9f2; }
/* Ricerca veloce nella barra laterale */
.ricerca-veloce { position: relative; margin: 0 0 12px; }
.ricerca-veloce input[type=search] { width: 100%; padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 8px; font-size: 14px; background: #fff; color: #1f2a36; }
.risultati-veloci { position: absolute; z-index: 60; left: 0; top: 100%; margin: 4px 0 0; padding: 4px 0; list-style: none; background: #fff; color: #1f2a36;
    border: 1px solid var(--bordo); border-radius: 8px; box-shadow: 0 8px 22px rgba(0,0,0,.15); width: max(100%, 300px); max-height: 380px; overflow-y: auto; }
.risultati-veloci li { padding: 7px 12px; cursor: pointer; }
.risultati-veloci li small { display: block; color: #718096; font-size: 12px; }
.risultati-veloci li.attiva, .risultati-veloci li[role=option]:hover { background: #eaf2fb; }
.risultati-veloci .nessun-risultato { color: #718096; cursor: default; }
/* Statistiche dello studio */
.riquadri-statistiche { margin: 6px 0 18px; }
.riquadri-statistiche .riquadro-etichetta small { display: block; color: #718096; font-weight: 400; margin-top: 2px; }
.totale-grafico { font-size: 14px; color: #4a5568; }
.grafico-statistiche { max-height: 280px; }
.griglia-composizioni { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.griglia-composizioni .riquadro-grafico { margin: 0; }
.barre-orizzontali { display: flex; flex-direction: column; gap: 8px; margin: 8px 0 4px; }
.riga-barra { display: grid; grid-template-columns: 9.5em 1fr 6.5em; gap: 10px; align-items: center; font-size: 14px; }
.nome-barra { color: #2f3640; }
.traccia-barra { height: 14px; background: #f0f2f5; border-radius: 0 4px 4px 0; overflow: hidden; }
.barra { display: block; height: 100%; width: 0; background: var(--serie-studio); border-radius: 0 4px 4px 0; }
.valore-barra { text-align: right; font-weight: 700; color: #1f2a36; }
.valore-barra small { font-weight: 400; color: #718096; }
.variazione-su { color: #1e7a4c; font-weight: 700; }
.variazione-giu { color: #b03a2e; font-weight: 700; }
.riquadro-grafico h2 { font-size: 17px; margin: 4px 0 10px; }
.testa-grafico h2 { font-size: 17px; }
/* Guida: parole lunghe (nomi di file, indirizzi) non allargano la pagina sul telefono */
.guida-sezione { overflow-wrap: anywhere; min-width: 0; }
@media (max-width: 800px) { .guida-contenitore { grid-template-columns: minmax(0, 1fr); } }
/* Cancellazione paziente: campo di conferma ben visibile */
.campo-conferma-cognome input { border: 2px solid #c0392b; background: #fff; }
.campo-conferma-cognome label strong { color: #c0392b; text-transform: none; font-size: 15px; }
.campo-errore { border-color: #c0392b !important; box-shadow: 0 0 0 3px rgba(192,57,43,.2); }
/* Elenco pazienti: aggiornamento mentre si scrive */
#risultati-pazienti.in-aggiornamento { opacity: .55; transition: opacity .15s; }

/* ===== Versione 1.12: fattura con riscossa sì/no, regime fiscale, CF anagrafica ===== */
.scelta-riscossa { display: flex; flex-wrap: wrap; gap: 8px 22px; border: 1px solid var(--bordo); border-radius: 10px; padding: 10px 14px; margin: 0 0 12px; }
.scelta-riscossa legend { font-weight: 700; padding: 0 6px; color: #2c5282; }
.riga-regime th { font-weight: 400; }
.riga-regime label { font-weight: 700; margin-right: 8px; }
.riga-regime select { max-width: 280px; }
.campo-aliquota { display: inline-flex; align-items: center; gap: 6px; margin-left: 12px; white-space: nowrap; }
.campo-aliquota input { width: 70px; text-align: right; }
.riga-netto th, .riga-netto td { font-weight: 700; }
.scelta-cf-anagrafica { border: 2px solid #f0c27a; background: #fffaf0; border-radius: 10px; padding: 10px 14px; margin: 14px 0; }
.scelta-cf-anagrafica legend { font-weight: 700; color: #9a5b00; padding: 0 6px; }
.scelta-cf-anagrafica .casella { margin: 6px 0; }
.completa-cf { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; justify-content: space-between; }
.campo-aliquota[hidden], .campo-modalita[hidden], .nota-non-riscossa[hidden] { display: none !important; }
.tabella-prestazioni .riga-regime th { text-align: left; padding: 10px 8px; }
.riga-regime select { padding: 6px 8px; }

/* ===== Versione 1.13 ===== */
/* Scelta del paziente mentre si scrive (ricerca_veloce.js) */
.contenitore-ricerca-paziente { position: relative; display: block; flex: 1 1 auto; min-width: 0; }
.contenitore-ricerca-paziente > input { width: 100%; max-width: none; box-sizing: border-box; }
.modulo-ricerca .contenitore-ricerca-paziente .risultati-veloci { width: 100%; }
#risultati-ricerca.in-aggiornamento { opacity: .55; transition: opacity .15s; }
.modulo-ricerca .contenitore-ricerca-paziente { max-width: 480px; }
/* Tessera Sanitaria (tessera.js) */
.barra-tessera { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 12px; }
.nota-tessera { font-size: 13px; color: #718096; }
.esito-tessera { flex: 1 1 100%; margin: 4px 0 0; font-size: 14px; }
.esito-tessera.esito-ok { color: #276749; }
.esito-tessera.esito-errore { color: #c53030; }
.modulo-ricerca { flex-wrap: wrap; }
.modulo-ricerca .esito-tessera { margin: 0; }
.differenze-tessera ul { margin: 6px 0 8px 18px; }
.esito-tessera[hidden], [data-leggi-tessera][hidden], [data-tessera-cerca][hidden] { display: none !important; }
/* Pazienti doppi */
.coppia-doppi .motivo-doppi { margin: 0 0 10px; font-weight: 600; color: #975a16; }
.griglia-doppi { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px 24px; margin-bottom: 10px; }
.griglia-doppi > div { padding: 10px 12px; border: 1px solid var(--bordo); border-radius: 8px; background: #fafbfc; overflow-wrap: anywhere; }
.coppia-doppi .azioni-form { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.scelta-scheda-tenere { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 12px; border: 0; padding: 0; margin: 0 0 14px; }
.scelta-scheda-tenere legend { font-weight: 700; margin-bottom: 6px; }
.scheda-doppia { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 2px solid var(--bordo); border-radius: 8px; cursor: pointer; overflow-wrap: anywhere; }
.scheda-doppia:has(input:checked) { border-color: var(--blu-primario); background: #eef5fc; }
.tabella-unione th[scope=row] { text-align: left; white-space: nowrap; }
.tabella-unione .riga-diversa td { background: #fff8e6; }
.etichetta-diverso { display: inline-block; font-size: 11px; padding: 1px 7px; border-radius: 10px; background: #fbd38d; color: #744210; margin-left: 4px; }
.scelta-scheda-unica { border: 1px solid var(--bordo); border-radius: 8px; padding: 8px 12px; margin: 0 0 10px; }
.campo-password-conferma { max-width: 320px; margin-top: 12px; }
/* Pagamento tracciabile */
.indicazione.avviso-contanti { color: #9c4221; background: #fffaf0; border: 1px solid #fbd38d; border-radius: 6px; padding: 6px 8px; font-weight: 600; }
.dettagli-incassi { margin: 0 0 16px; }
.dettagli-incassi > summary { cursor: pointer; font-weight: 600; color: var(--blu-scuro); padding: 6px 0; }
.incassi-modalita .titolo-sezione-form { font-size: 16px; }
.tabella-incassi { max-width: 640px; }
.tabella-incassi tfoot th, .tabella-incassi tfoot td { border-top: 2px solid var(--bordo); }
.etichetta-non-tracciato { display: inline-block; font-size: 11px; padding: 1px 7px; border-radius: 10px; background: #feebc8; color: #9c4221; margin-left: 4px; }
.riga-da-incassare td { color: #975a16; }
/* Ricerca nelle visite */
.estratto-visita { font-size: 14px; line-height: 1.45; max-width: 640px; overflow-wrap: anywhere; }
.estratto-visita mark { background: #fefcbf; color: inherit; padding: 0 1px; border-radius: 2px; }
.etichetta-terapia { color: var(--verde-successo); margin-left: 4px; }

/* ===== Versione 1.14: editor dei modelli dei documenti ===== */
.documento-consenso .allinea-sinistra, .foglio-consenso .allinea-sinistra { text-align: left; }
.documento-consenso .allinea-centro { text-align: center; }
.documento-consenso .allinea-destra { text-align: right; }
.documento-consenso .allinea-giustificato { text-align: justify; }
.documento-consenso .riga-firma-paziente { flex-wrap: wrap; }
.tratto-firma { white-space: nowrap; }
.firma-medico-consenso.in-linea { display: inline-flex; margin: 0 6px; vertical-align: middle; }
.intestazione-editor { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.intestazione-editor .titolo-sezione-form { margin: 0; }
.barra-editor { position: sticky; top: 0; z-index: 20; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; padding: 6px 8px;
    background: #f4f7fb; border: 1px solid var(--bordo); border-bottom: 0; border-radius: 10px 10px 0 0; margin-top: 8px; }
.barra-editor .stile-paragrafo { padding: 6px 8px; border: 1px solid var(--bordo); border-radius: 6px; font-size: 13px; background: #fff; }
.pulsante-editor { min-width: 34px; padding: 6px 9px; border: 1px solid var(--bordo); background: #fff; border-radius: 6px; cursor: pointer; font-size: 14px; line-height: 1.2; }
.pulsante-editor:hover { background: #eef3fb; }
.pulsante-editor.attivo { background: var(--blu-primario); border-color: var(--blu-primario); color: #fff; }
.comando-bold { font-weight: 800; }
.comando-italic { font-style: italic; font-family: Georgia, serif; }
.comando-underline { text-decoration: underline; }
.separatore-editor { width: 1px; align-self: stretch; background: var(--bordo); margin: 0 4px; }
.menu-campi { position: relative; display: inline-block; }
.pulsante-menu-campi { font-weight: 600; color: var(--blu-scuro); }
.elenco-menu-campi { position: absolute; left: 0; top: calc(100% + 4px); z-index: 40; min-width: 290px; max-width: min(460px, 90vw); max-height: 360px;
    overflow-y: auto; background: #fff; border: 1px solid var(--bordo); border-radius: 8px; box-shadow: 0 10px 24px rgba(0,0,0,.16); padding: 4px 0; }
.voce-menu-campi { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; width: 100%; text-align: left; border: 0; background: none;
    padding: 7px 12px; cursor: pointer; font-size: 14px; color: #1f2a36; }
.voce-menu-campi:hover, .voce-menu-campi:focus { background: #eaf2fb; outline: none; }
.voce-menu-campi code { font-size: 11.5px; color: #6b7a8c; white-space: nowrap; }
.gruppo-menu-campi { padding: 8px 12px 3px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; color: #6b7a8c; border-top: 1px solid #eef1f5; }
.gruppo-menu-campi:first-child { border-top: 0; }
.editor-testo { max-width: none; margin: 0 0 14px; border-radius: 0 0 12px 12px; min-height: 420px; outline: none; cursor: text; }
.editor-testo:focus { box-shadow: 0 0 0 3px rgba(46,134,222,.25); }
.editor-testo h1 { font-size: 17px; text-align: center; color: #111; margin: 0 0 14px; }
.editor-testo h2 { font-size: 14px; text-align: center; margin: 14px 0 6px; color: #111; }
.editor-testo .rientro { padding-left: 22px; }
.editor-testo .sinistra { text-align: left; }
.editor-testo .centro { text-align: center; }
.editor-testo .destra { text-align: right; }
.editor-testo .giustificato { text-align: justify; }
.campo-inserito { display: inline-block; padding: 0 5px; margin: 0 1px; border-radius: 5px; font-size: .92em; line-height: 1.35;
    background: #e7f0fb; color: #1b4f9c; border: 1px solid #c6daf3; white-space: nowrap; cursor: default; user-select: all; }
.campo-inserito.campo-studio { background: #eaf6ef; color: #1e6b45; border-color: #c4e3cf; }
.campo-inserito.campo-specifico { background: #fff4e0; color: #8a5300; border-color: #f2d5a3; }
.campo-inserito.campo-sconosciuto { background: #fdecea; color: #c0392b; border-color: #f3c1bb; }
.finestra-dati-specifici { width: min(1100px, 96vw); max-height: 92vh; border: 0; border-radius: 14px; padding: 18px 20px; box-shadow: 0 20px 50px rgba(0,0,0,.3); }
.finestra-dati-specifici::backdrop { background: rgba(20, 30, 45, .45); }
.testa-finestra { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.testa-finestra h2 { margin: 0; font-size: 19px; color: var(--blu-scuro); }
.editor-dati-specifici { grid-template-columns: 1fr; }
.box-dati-specifici .casella { margin: 8px 0 4px; font-size: 13px; }
.etichetta-titolo-box { flex: 1 1 260px; }
.campi-specifici { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 6px; }
.riga-campo-specifico { border: 1px solid #e3e8ef; border-radius: 8px; padding: 6px 8px; background: #fbfcfe; }
.testa-campo-specifico { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.testa-campo-specifico select { padding: 6px; border: 1px solid var(--bordo); border-radius: 6px; font-size: 13px; max-width: 210px; }
.etichetta-campo-specifico { flex: 1 1 260px; min-width: 0; padding: 7px 9px; border: 1px solid var(--bordo); border-radius: 6px; font-size: 14px; }
.chiave-campo-specifico { font-size: 11.5px; color: #8a5300; background: #fff4e0; padding: 2px 6px; border-radius: 4px; }
.opzioni-campo { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 8px 4px 2px; font-size: 13px; }
.opzione-campo { display: flex; flex-direction: column; gap: 3px; font-size: 12px; font-weight: 600; color: #555; }
.opzione-campo.casella { flex-direction: row; align-items: center; font-weight: 400; color: inherit; font-size: 13px; }
.opzione-campo input[type=text], .opzione-campo input[type=number], .opzione-campo select, .opzione-campo textarea {
    padding: 6px 8px; border: 1px solid var(--bordo); border-radius: 6px; font-size: 13px; font-weight: 400; }
.opzione-larga { flex: 1 1 260px; }
.aggiungi-campo { display: flex; flex-wrap: wrap; gap: 6px; }
.scelta-dati-modello { border: 1px solid var(--bordo); border-radius: 8px; padding: 8px 12px; margin: 10px 0; display: grid; gap: 6px; }
.scelta-dati-modello legend { font-weight: 700; font-size: 13px; padding: 0 4px; }
.obbligatorio { color: var(--rosso-errore); }
@media (max-width: 600px) {
    .barra-editor { position: static; }
    .editor-testo { min-height: 300px; }
    .finestra-dati-specifici { padding: 12px; }
}
.menu-campi[hidden] { display: none; }

/* Righe delle prestazioni in fattura (vers. 1.15) */
.importo-e-togli { display: flex; align-items: center; gap: 6px; }
.importo-e-togli input { flex: 1 1 auto; min-width: 0; }
.togli-riga { flex: 0 0 auto; width: 28px; height: 28px; border: 1px solid var(--bordo); border-radius: 6px; background: #fff; color: var(--rosso-errore); cursor: pointer; font-size: 14px; line-height: 1; padding: 0; }
.togli-riga:hover, .togli-riga:focus-visible { background: #fdecea; }
.togli-riga[hidden], .aggiungi-riga-prestazione[hidden] { display: none; }
.aggiungi-prestazione-riga td { border-bottom: 0; padding-top: 6px; }

/* ---------- Agenda 1.15: orari, chiusure, prenotazioni online ---------- */
.sottoschede { display: flex; flex-wrap: wrap; gap: 6px; margin: -4px 0 14px; }
.sottoschede a { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--bordo); background: #fff; font-size: 14px; font-weight: 600; }
.sottoschede a.attiva { background: var(--blu-primario); border-color: var(--blu-primario); color: #fff; }
.sottoschede a:hover { text-decoration: none; }
.sottotitolo-sezione { font-size: 15px; margin: 18px 0 8px; color: var(--blu-scuro); }
.tabella-orari td, .tabella-orari th { vertical-align: middle; }
.fascia-oraria { white-space: nowrap; }
.fascia-oraria input[type=time] { padding: 5px 6px; border: 1px solid var(--bordo); border-radius: 6px; }
.casella-evidente { padding: 10px 12px; border: 1px solid var(--bordo); border-radius: 8px; background: #f7fbff; margin: 6px 0 12px; }
.aiuto-campo { display: block; margin-top: 4px; font-size: 12px; color: #6b7280; }
.elenco-chiusure { list-style: none; padding: 0; margin: 0; }
.elenco-chiusure li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; padding: 8px 10px; border: 1px solid var(--bordo); border-radius: 8px; margin-bottom: 6px; background: #fafafa; }
.tabella-motivi input[type=text] { width: 100%; min-width: 180px; padding: 6px 8px; border: 1px solid var(--bordo); border-radius: 6px; box-sizing: border-box; }
.colonna-ordine { white-space: nowrap; }
.riga-nuovo-motivo td { background: #f7fbff; }
.stato-da_confermare { background: #fff6d6 !important; border-left-color: #d69e2e !important; border-left-style: dashed !important; }
.chiusura-agenda { position: absolute; left: 0; right: 0; z-index: 1; overflow: hidden; padding: 4px 6px; font-size: 12px; font-weight: 600; color: #555;
                   background: repeating-linear-gradient(135deg, #e9ecef 0 8px, #dfe3e7 8px 16px); border-top: 2px solid #9aa5b1; }
.chiusura-mese { font-size: 11px; color: #555; background: #e9ecef; border-radius: 4px; padding: 1px 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chiusura-elenco { margin: 4px 0; padding: 6px 10px; background: #eef0f2; border-radius: 6px; font-size: 14px; }
.con-avviso { border-color: #d69e2e; }
.contatore { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 4px; border-radius: 999px; background: #d69e2e; color: #fff; font-size: 12px; line-height: 20px; text-align: center; }
.azioni-prenotazione { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.elenco-prenotazioni { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.scheda-prenotazione { background: #fff; border: 1px solid var(--bordo); border-left: 4px dashed #d69e2e; border-radius: 10px; padding: 12px 14px; }
.scheda-prenotazione.passata { opacity: .7; }
.scheda-prenotazione h2 { font-size: 16px; margin: 0 0 4px; color: var(--blu-scuro); }
.motivo-prenotazione { margin: 0 0 8px; font-weight: 600; }
.dati-prenotazione { display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; margin: 0; font-size: 14px; }
.dati-prenotazione dt { color: #6b7280; }
.dati-prenotazione dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.etichetta-nuovo { color: #8a5300; font-weight: 600; }

/* Pagina pubblica delle prenotazioni */
.pagina-prenota { background: #f4f6f8; margin: 0; }
.contenitore-prenota { max-width: 960px; margin: 0 auto; padding: 16px 16px 40px; }
.testata-prenota { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-bottom: 10px; }
.logo-prenota { width: 170px; height: auto; }
.testata-prenota h1 { margin: 0; font-size: 24px; color: var(--blu-scuro); }
.avviso-prenota { background: #fff8e6; border: 1px solid #f0d9a0; border-radius: 8px; padding: 10px 14px; }
.passo-prenota { background: #fff; border: 1px solid var(--bordo); border-radius: 12px; padding: 14px 16px; margin: 14px 0; }
.passo-prenota h2 { font-size: 18px; margin: 0 0 10px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.passo-prenota h2 small { font-weight: 400; font-size: 14px; color: #555; }
.numero-passo { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--blu-primario); color: #fff; font-size: 15px; }
.scelta-motivo { display: grid; gap: 8px; }
.voce-motivo { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--bordo); border-radius: 8px; cursor: pointer; }
.voce-motivo.scelto { border-color: var(--blu-primario); background: #eaf2fb; }
.voce-motivo small { color: #555; }
.navigazione-settimana { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.settimana-prenota { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 10px; }
.giorno-prenota { border: 1px solid var(--bordo); border-radius: 10px; padding: 8px; background: #fafbfc; }
.giorno-prenota.oggi { border-color: var(--blu-primario); }
.giorno-prenota h3 { margin: 0 0 8px; font-size: 14px; text-align: center; color: #334; font-weight: 600; }
.orari-prenota { display: grid; grid-template-columns: repeat(auto-fill, minmax(62px, 1fr)); gap: 6px; }
.orario-libero { display: block; text-align: center; padding: 8px 4px; border-radius: 6px; background: #2f9e5b; color: #fff; font-weight: 700; font-size: 14px; }
.orario-libero:hover, .orario-libero:focus-visible { background: #237a45; text-decoration: none; color: #fff; }
.nessun-orario { margin: 4px 0; text-align: center; color: #888; font-size: 13px; }
.riepilogo-prenota { background: #e8f6ee; border: 1px solid #bfe5cf; border-radius: 8px; padding: 8px 12px; }
.riepilogo-prenota a { margin-left: 8px; font-size: 14px; }
.campo-trappola { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.campo-con-errore input { border-color: var(--rosso-errore) !important; }
.errore-campo { display: block; margin-top: 4px; color: var(--rosso-errore); font-size: 13px; font-weight: 600; }
.esito-prenota { background: #fff; border: 1px solid #bfe5cf; border-radius: 12px; padding: 16px 18px; }
.esito-prenota h2 { color: #1a7f45; margin-top: 0; }
.torna-sito { text-align: center; }
@media (max-width: 600px) {
    .settimana-prenota { grid-template-columns: minmax(0, 1fr); }
    .navigazione-settimana strong { order: -1; flex: 1 1 100%; text-align: center; }
    .navigazione-settimana .pulsante { flex: 1 1 40%; text-align: center; }
    .testata-prenota h1 { font-size: 20px; }
    .logo-prenota { width: 130px; }
}
.evento-agenda { z-index: 2; }
.evento-agenda:hover { z-index: 3; }
.senza-js[hidden] { display: none; }
.elenco-chiusure-sezione .sottotitolo-sezione { margin-top: 0; }
.tabella-orari tr.giorno-chiuso-riga td.fascia-oraria { opacity: .45; }
/* Personalizza: ordine dei riquadri della Home (vers. 1.15) */
.elenco-ordine-home { list-style: none; padding: 0; margin: 0; }
.voce-ordine-home { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 2px; border-bottom: 1px dashed #e3e6ea; }
.voce-ordine-home:last-child { border-bottom: 0; }
.voce-ordine-home .casella { flex: 1 1 auto; min-width: 0; margin: 0; }
.sposta-ordine { display: flex; gap: 4px; flex: 0 0 auto; }
.sposta-ordine button[disabled] { opacity: .35; cursor: default; }
/* Prenotazioni online: modulo dei dati dentro il riquadro del passo 3 */
.modulo-prenota.modulo-dati { border: 0; padding: 0; background: transparent; box-shadow: none; }
.modulo-prenota label.casella { display: flex; align-items: flex-start; gap: 8px; text-transform: none; font-size: 14px; font-weight: 400; color: inherit; letter-spacing: 0; }
.griglia-campi input[type=date], .griglia-campi input[type=time] { min-width: 0; max-width: 100%; box-sizing: border-box; }
@media (max-width: 600px) { .fascia-oraria { white-space: normal; } .fascia-oraria input[type=time] { width: 7.4em; max-width: 42%; padding: 4px; } }
/* Prenotazioni online: codice di verifica dell'email (vers. 1.17) */
.campo-codice { font-size: 26px !important; letter-spacing: .35em; text-align: center; max-width: 220px; font-family: monospace; }
.azioni-codice { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 10px; }
.etichetta-verificata { color: #1a7f45; font-weight: 600; }
/* Righe che si aprono con un doppio clic (vers. 1.18) */
tr.riga-apribile { cursor: pointer; user-select: none; }
tr.riga-apribile:hover td { background: #eef5fd; }
tr.riga-apribile:focus-visible { outline: 2px solid var(--blu-primario); outline-offset: -2px; }
@media (hover: none) and (pointer: coarse) { .suggerimento-apri { display: none; } }
/* Prenotazioni online (vers. 1.18): motivo a tendina, poi solo il riepilogo */
.scelta-motivo select { width: 100%; padding: 10px 12px; font-size: 16px; border: 1px solid var(--bordo); border-radius: 8px; background: #fff; }
.motivo-scelto { background: #fff; border: 1px solid var(--bordo); border-radius: 10px; padding: 10px 14px; margin: 14px 0; }
.motivo-scelto a { margin-left: 8px; font-size: 14px; }
[data-maiuscolo-prenota] { text-transform: uppercase; }
/* Impostazioni → elenco delle prestazioni (vers. 1.18) */
.tabella-voci .campo-voce { width: 100%; min-width: 220px; padding: 6px 8px; border: 1px solid var(--bordo); border-radius: 6px; box-sizing: border-box; }
.tabella-voci .campo-importo-voce { width: 100px; padding: 6px 8px; border: 1px solid var(--bordo); border-radius: 6px; text-align: right; }
.tabella-voci select { padding: 6px; border: 1px solid var(--bordo); border-radius: 6px; }
/* Fattura: finestra "memorizzare le nuove descrizioni?" */
.finestra-voci-nuove { border: 0; border-radius: 12px; padding: 18px 20px; max-width: 560px; width: calc(100% - 32px); box-shadow: 0 10px 40px rgba(0,0,0,.3); }
.finestra-voci-nuove::backdrop { background: rgba(20,30,45,.45); }
.finestra-voci-nuove h2 { margin: 0 0 8px; font-size: 18px; color: var(--blu-scuro); }
.finestra-voci-nuove ul { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 6px; }
.finestra-voci-nuove .azioni-form { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
/* Festività (vers. 1.19): giorni in rosso con il nome della festa */
.colonna-giorno.festivo .testa-giorno { color: #c0392b; display: flex; flex-direction: column; justify-content: center; line-height: 1.15; padding: 0 3px; }
.colonna-giorno.festivo .testa-giorno strong { color: #c0392b; }
.testa-giorno .nome-festa { display: block; font-size: 10px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.giorno-mese.festivo .numero-giorno { color: #c0392b; }
.giorno-mese.festivo { background: #fff5f4; }
.giorno-mese .nome-festa { font-size: 10.5px; color: #c0392b; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.giorno-elenco h3.festivo { color: #c0392b; }
@media (max-width: 800px) { .giorno-mese .nome-festa { display: none; } }
/* Agenda (vers. 1.21): intestazione "Lun 7 dicembre", giorni non prenotabili a righe oblique rosse, colori degli stati più marcati */
.griglia-agenda .testa-giorno { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 3px; }
.testa-giorno .data-testa { display: block; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 1050px) { .griglia-agenda:not(.colonne-1) .mese-testa { display: none; } }
.colonna-giorno.giorno-chiuso .corpo-giorno { background: repeating-linear-gradient(135deg, #fff 0 7px, rgba(214, 40, 40, .30) 7px 9px); }
.chiusura-agenda { color: #8a1c1c; background: repeating-linear-gradient(135deg, #fff1f0 0 7px, rgba(214, 40, 40, .32) 7px 9px); border-top-color: #d62828; }
.giorno-mese.giorno-chiuso:not(.fuori-mese) { background: repeating-linear-gradient(135deg, #fff 0 7px, rgba(214, 40, 40, .16) 7px 9px); }
.chiusura-mese { color: #8a1c1c; background: #ffe1de; }
.evento-agenda, .riga-appuntamento, .evento-mese, .campione-stato { background: #b9d8fb; border-left-color: #0b5ed7; }
.stato-da_confermare { background: #ffe14d !important; border-left-color: #d98e00 !important; }
.stato-confermato { background: #9fe3bd !important; border-left-color: #0a7d43 !important; }
.stato-non_presentato { background: #ff9f96 !important; border-left-color: #e01e1e !important; }

/* ======================================================================
   Versione 1.22: Home "Oggi", scheda a schede, flusso appuntamento → visita
   → fattura, agenda più rapida, ricerca Ctrl+K, notifiche e rifiniture
   ====================================================================== */
/* --- etichette e pulsanti degli stati (fondo chiaro + colore dello stato) --- */
.etichetta-stato { display: inline-block; font-size: 12px; font-weight: 700; line-height: 1.5; padding: 0 8px; border-radius: 999px; border: 1px solid; background: #fff; white-space: nowrap; vertical-align: middle; }
.etichetta-stato.segno-da_confermare { color: #8a5a00; border-color: #e0a800; background: #fff8d6; }
.etichetta-stato.segno-prenotato { color: #0b4fa8; border-color: #8ab8f0; background: #eef5fe; }
.etichetta-stato.segno-confermato { color: #0a6b3a; border-color: #7fcfa3; background: #ecf9f1; }
.etichetta-stato.segno-eseguito { color: #4b5560; border-color: #b9c1ca; background: #f3f5f7; }
.etichetta-stato.segno-non_presentato { color: #b3161a; border-color: #f08a84; background: #fff0ef; }
.etichetta-stato.segno-disdetto { color: #888; border-color: #ccc; background: #fafafa; text-decoration: line-through; }
.pulsanti-appuntamento { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cambio-stato { display: inline-flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.pulsante-fatto { background: #ecf9f1; color: #0a6b3a; border: 1px solid #7fcfa3; }
.pulsante-avviso { background: #fff3c4; color: #7a5200; border: 1px solid #e0a800; }
.pulsante-stato-eseguito { background: #fff; color: #0a6b3a; border: 1px solid #7fcfa3; }
.pulsante-stato-eseguito:hover { background: #ecf9f1; }
.pulsante-stato-non_presentato { background: #fff; color: #b3161a; border: 1px solid #f08a84; }
.pulsante-stato-non_presentato:hover { background: #fff0ef; }
.pulsante-stato-confermato, .pulsante-stato-prenotato { background: #fff; color: #0b4fa8; border: 1px solid #8ab8f0; }
.pulsante:disabled { opacity: .6; cursor: wait; }
/* righe "leggere" (scheda del paziente): fondo bianco, solo la striscia colorata a sinistra */
.riga-appuntamento.riga-leggera { background: #fff !important; color: var(--grigio-testo) !important; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; border: 1px solid var(--bordo); border-left-width: 5px; }
.riga-leggera.stato-disdetto { text-decoration: none; opacity: .7; }
.riga-leggera .dati-riga-appuntamento { display: grid; grid-template-columns: auto 1fr; gap: 0 10px; flex: 1 1 260px; color: inherit; min-width: 0; }
.riga-leggera .dati-riga-appuntamento:hover { text-decoration: none; }
.riga-leggera .dati-riga-appuntamento .ora-evento { grid-row: span 2; }

/* --- notifiche in basso a destra --- */
.area-notifiche { position: fixed; right: 18px; bottom: 18px; z-index: 900; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; max-width: min(440px, calc(100vw - 36px)); pointer-events: none; }
.area-notifiche .notifica { pointer-events: auto; margin: 0; display: flex; align-items: center; gap: 10px; box-shadow: 0 6px 24px rgba(0,0,0,.16); border-radius: 10px; padding: 11px 12px 11px 14px; animation: notifica-entra .25s ease-out; }
.notifica.in-uscita { opacity: 0; transform: translateY(8px); transition: opacity .25s, transform .25s; }
.notifica .testo-notifica { flex: 1; }
.notifica .modulo-annulla { margin: 0; }
.pulsante-annulla { background: #fff; border: 1px solid currentColor; color: inherit; font-weight: 700; }
.chiudi-notifica { background: none; border: 0; font-size: 20px; line-height: 1; cursor: pointer; color: inherit; opacity: .6; padding: 0 2px; }
.chiudi-notifica:hover { opacity: 1; }
@keyframes notifica-entra { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .area-notifiche .notifica { animation: none; } }

/* --- Home "Oggi" --- */
.home-oggi { align-items: stretch; text-align: left; }
.home-oggi .testata-home { align-items: flex-start; }
.saluto-e-data .saluto-home { margin: 0; }
.data-oggi { margin: 2px 0 0; color: #5b6573; font-size: 15px; }
.saluto-e-data .data-oggi:first-letter { text-transform: uppercase; }
.studio-home-compatto { display: flex; align-items: center; gap: 12px; text-align: right; }
.studio-home-compatto .logo-studio-home { max-height: 64px; max-width: 170px; margin: 0; }
.studio-home-compatto .nome-studio-home { font-size: 15px; margin: 0; }
.studio-home-compatto .sottotitolo-studio-home { font-size: 13px; margin: 0; }
.azioni-home { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 14px; }
.pulsante-cerca-tutto kbd, .finestra-comandi kbd, .risultati-comandi kbd { font: 600 11px/1 ui-monospace, Consolas, monospace; border: 1px solid var(--bordo); border-bottom-width: 2px; border-radius: 4px; padding: 2px 5px; background: #f7f9fb; color: #444; }
.colonne-home { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 16px; align-items: start; }
.colonne-home.senza-oggi { grid-template-columns: 1fr; }
.pannello-home { background: #fff; border: 1px solid var(--bordo); border-radius: 12px; padding: 14px 16px; min-width: 0; }
.pannello-home h2 { font-size: 17px; margin: 0 0 10px; color: var(--blu-scuro); }
.pannello-home .conteggio { color: #7b8794; font-weight: 600; }
.intestazione-pannello { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.elenco-oggi { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.voce-oggi { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 4px 12px; padding: 10px 12px; border: 1px solid var(--bordo); border-left: 5px solid #8ab8f0; border-radius: 10px; background: #fff; }
.voce-oggi.segno-da_confermare { border-left-color: #e0a800; border-left-style: dashed; }
.voce-oggi.segno-prenotato { border-left-color: #0b5ed7; }
.voce-oggi.segno-confermato { border-left-color: #0a7d43; }
.voce-oggi.segno-eseguito { border-left-color: #9aa5b1; background: #fafbfc; }
.voce-oggi.segno-non_presentato { border-left-color: #e01e1e; background: #fffafa; }
.voce-oggi.segno-disdetto { border-left-color: #ccc; opacity: .7; }
.voce-oggi.passato:not(.segno-prenotato):not(.segno-confermato) { opacity: .8; }
.voce-oggi.prossimo { box-shadow: 0 0 0 2px #cfe2fb; background: #f7fbff; }
.ora-oggi { font-weight: 800; font-size: 17px; color: var(--blu-scuro); grid-row: span 2; line-height: 1.2; }
.ora-oggi small { display: block; font-size: 12px; font-weight: 600; color: #7b8794; }
.dati-oggi { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.nome-oggi { font-weight: 700; color: var(--grigio-testo); }
.motivo-oggi { flex: 1 1 100%; font-size: 13px; color: #5b6573; }
.etichetta-prossimo { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #fff; background: var(--blu-primario); padding: 1px 7px; border-radius: 999px; }
.azioni-oggi { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.domani-home { margin: 12px 0 0; font-size: 14px; color: #5b6573; }
.stato-vuoto { text-align: center; padding: 22px 12px; color: #5b6573; }
.stato-vuoto .icona-vuoto { font-size: 34px; display: block; }
.stato-vuoto p { margin: 6px 0 12px; }
.elenco-da-fare { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.voce-da-fare { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border-radius: 8px; background: #f7f9fb; font-size: 14px; line-height: 1.4; }
.voce-da-fare.importante { background: #fff8e1; }
.icona-da-fare { flex: 0 0 20px; text-align: center; }
.testo-da-fare { flex: 1; min-width: 0; }
.testo-da-fare a { font-weight: 600; white-space: nowrap; }
.chiudi-da-fare { background: none; border: 0; cursor: pointer; font-size: 18px; line-height: 1; color: #8a939c; padding: 0 2px; }
.chiudi-da-fare:hover { color: var(--grigio-testo); }
.tutto-fatto { margin: 4px 0; color: #5b6573; }
.home-studio .riquadri-compatti { justify-content: flex-start; margin-top: 18px; gap: 10px; }
.home-studio .riquadri-compatti .riquadro-riepilogo { flex: 1 1 150px; padding: 12px 12px; }
.riquadri-compatti .riquadro-numero { font-size: 24px; }
@media (max-width: 900px) {
    .colonne-home { grid-template-columns: 1fr; }
    .studio-home-compatto { display: none; }
}
@media (max-width: 800px) { .pulsante-cerca-tutto { display: none; } }
@media (max-width: 560px) {
    .voce-oggi { grid-template-columns: 48px minmax(0, 1fr); padding: 9px 10px; }
    .azioni-oggi { grid-column: 1 / -1; }
}

/* --- scheda del paziente a schede --- */
.barra-paziente { position: sticky; top: var(--altezza-barra-alta); z-index: 10; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px;
                  background: var(--sfondo-pagine, #f4f6f8); padding: 8px 0 10px; margin: -8px 0 0; border-bottom: 1px solid var(--bordo); }
.barra-paziente h1 { margin: 0; font-size: 22px; }
.dati-barra-paziente { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13.5px; color: #5b6573; margin-top: 2px; }
.dati-barra-paziente .valore-cf { font-family: ui-monospace, Consolas, monospace; }
.barra-paziente .pulsanti-intestazione { display: flex; flex-wrap: wrap; gap: 6px; }
.barra-paziente .pulsante { padding: 7px 12px; font-size: 14px; }
.schede-paziente { display: flex; gap: 2px; overflow-x: auto; margin: 12px 0 16px; border-bottom: 2px solid var(--bordo); scrollbar-width: thin; }
.schede-paziente a { flex: 0 0 auto; padding: 9px 11px; font-size: 14.5px; font-weight: 600; color: #4b5560; border-bottom: 3px solid transparent; margin-bottom: -2px; border-radius: 8px 8px 0 0; white-space: nowrap; }
.schede-paziente a:hover { background: #fff; text-decoration: none; color: var(--blu-primario); }
.schede-paziente a.attiva { color: var(--blu-scuro); border-bottom-color: var(--blu-primario); background: #fff; }
.schede-paziente .conteggio { font-size: 12px; background: #eef1f4; color: #4b5560; border-radius: 999px; padding: 1px 7px; margin-left: 2px; }
.schede-paziente .conteggio-ok { background: #e6f5ec; color: var(--verde-successo); }
.schede-paziente .conteggio-avviso { background: #fdecea; color: var(--rosso-errore); }
body:not(.schede-attive) .schede-paziente { display: none; }
.pannello-scheda > .sezione-visite:first-child, .pannello-scheda > .scheda-paziente-compatta:first-child { margin-top: 0; }
@media (max-width: 800px) {
    .barra-paziente { position: static; }
    .barra-paziente .pulsante { padding: 6px 10px; font-size: 13px; }
}

/* --- appuntamento → visita → fattura --- */
.percorso-lavoro { line-height: 1.5; }
.passi-lavoro { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 8px; padding: 0; }
.passi-lavoro li { font-size: 13px; font-weight: 700; padding: 3px 12px; border-radius: 999px; background: #fff; color: #7b8794; border: 1px solid var(--bordo); }
.passi-lavoro li.fatto { color: var(--verde-successo); border-color: #b7e3c9; }
.passi-lavoro li.fatto::before { content: "✓ "; }
.passi-lavoro li.saltato { text-decoration: line-through; opacity: .7; }
.passi-lavoro li.attuale { background: var(--blu-primario); border-color: var(--blu-primario); color: #fff; }
.collegamenti-appuntamento { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }

/* --- agenda più rapida --- */
.linea-adesso { position: absolute; left: 0; right: 0; height: 0; border-top: 2px solid #e01e1e; z-index: 3; pointer-events: none; }
.linea-adesso::before { content: ""; position: absolute; left: -5px; top: -6px; width: 10px; height: 10px; border-radius: 50%; background: #e01e1e; }
.griglia-agenda[data-trascina="1"] .evento-agenda { cursor: grab; touch-action: auto; }
.evento-agenda .maniglia-durata { position: absolute; left: 0; right: 0; bottom: 0; height: 7px; cursor: ns-resize; }
.evento-agenda:hover .maniglia-durata { background: linear-gradient(transparent, rgba(0,0,0,.12)); }
.evento-agenda.in-trascinamento { z-index: 5; opacity: .85; box-shadow: 0 6px 18px rgba(0,0,0,.3); cursor: grabbing; }
.evento-agenda.in-salvataggio { opacity: .5; }
body.trascinamento-agenda, body.trascinamento-agenda * { cursor: grabbing !important; user-select: none; }
.scheda-evento-aperta { position: absolute; z-index: 800; width: 300px; max-width: calc(100vw - 16px); background: #fff; border: 1px solid var(--bordo); border-radius: 12px; padding: 12px 14px; box-shadow: 0 10px 30px rgba(0,0,0,.2); font-size: 14px; text-align: left; }
.titolo-scheda-evento { margin: 0 0 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.dati-scheda-evento { margin: 0 0 10px; color: #4b5560; line-height: 1.5; }
.azioni-scheda-evento { display: flex; flex-wrap: wrap; gap: 6px; }
.nota-trascina { margin-top: 8px; }
@media (hover: none) { .nota-trascina { display: none; } }

/* --- ricerca Ctrl+K e tasti rapidi --- */
.finestra-comandi { position: fixed; inset: 0; z-index: 1000; background: rgba(20, 30, 45, .45); display: flex; justify-content: center; align-items: flex-start; padding: 10vh 16px 16px; }
.finestra-comandi[hidden] { display: none; }
.scatola-comandi { width: 640px; max-width: 100%; background: #fff; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.35); overflow: hidden; display: flex; flex-direction: column; max-height: 75vh; }
.campo-comandi { border: 0; border-bottom: 1px solid var(--bordo); padding: 16px 18px; font-size: 17px; outline: none; width: 100%; }
.risultati-comandi { list-style: none; margin: 0; padding: 6px; overflow-y: auto; }
.risultati-comandi li[role=option] { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 8px; cursor: pointer; }
.risultati-comandi li.attiva { background: #e8f1fc; }
.risultati-comandi .icona-comando { width: 24px; text-align: center; flex: 0 0 24px; }
.risultati-comandi .testo-comando { font-weight: 600; }
.risultati-comandi small { color: #7b8794; margin-left: auto; text-align: right; }
.risultati-comandi kbd { margin-left: auto; }
.risultati-comandi small + kbd { margin-left: 8px; }
.gruppo-comandi { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #7b8794; padding: 8px 12px 4px; }
.nessun-comando { padding: 14px 12px; color: #7b8794; }
.piede-comandi { margin: 0; padding: 8px 14px; font-size: 12px; color: #7b8794; border-top: 1px solid var(--bordo); background: #fafbfc; }
.aiuto-tasti { padding: 0; }
.aiuto-tasti h2 { margin: 0; padding: 16px 18px 6px; font-size: 18px; color: var(--blu-scuro); }
.aiuto-tasti table { margin: 4px 18px 14px; border-collapse: collapse; }
.aiuto-tasti td { padding: 5px 12px 5px 0; vertical-align: top; }
body.comandi-aperti { overflow: hidden; }

/* --- bozze e moduli --- */
.stato-bozza { margin: 0 auto 0 0; font-size: 12.5px; color: #6b7480; align-self: center; }
.avviso-bozza { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

/* --- dimensione del testo (Personalizza Aspetto) --- */
.scelta-dimensione-testo { border: 0; padding: 0; margin: 0 0 6px; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.campione-testo.campione-normale { font-size: 15px; } .campione-testo.campione-grande { font-size: 17px; } .campione-testo.campione-molto_grande { font-size: 19px; }

/* --- pagine vuote con l'azione giusta --- */
.vuoto-con-azione { text-align: center; padding: 26px 14px; background: #fff; border: 1px dashed #c9d1da; border-radius: 12px; color: #5b6573; }
.vuoto-con-azione .icona-vuoto { font-size: 32px; display: block; margin-bottom: 4px; }
.vuoto-con-azione p { margin: 4px 0 12px; }

/* --- barra in basso sul telefono --- */
.barra-telefono { display: none; }
@media (max-width: 800px) {
    .barra-telefono { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
                      background: var(--sfondo-menu, #fff); border-top: 1px solid var(--bordo); padding: 4px 4px calc(4px + env(safe-area-inset-bottom)); box-shadow: 0 -2px 10px rgba(0,0,0,.06); }
    .barra-telefono a, .barra-telefono button, .barra-telefono label { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 5px 2px; font-size: 11.5px; font-weight: 600;
                      color: var(--grigio-testo); background: none; border: 0; border-radius: 8px; cursor: pointer; font-family: inherit; text-decoration: none; }
    .barra-telefono span { font-size: 19px; line-height: 1.1; }
    .barra-telefono .attiva { color: var(--blu-primario); background: #e8f1fc; }
    .menu-scuro ~ .barra-telefono a, .menu-scuro ~ .barra-telefono button, .menu-scuro ~ .barra-telefono label { color: #fff; }
    .con-menu-laterale .contenuto-pagina { padding-bottom: 90px; }
    .area-notifiche { bottom: 76px; right: 12px; left: 12px; max-width: none; align-items: stretch; }
    .avviso-inattivita { bottom: 76px; }
}
@media print { .barra-telefono, .area-notifiche, .schede-paziente { display: none !important; } .pannello-scheda[hidden] { display: block !important; } }
.pannello-scheda section, .pannello-scheda [id] { scroll-margin-top: 150px; }
@media (max-width: 800px) { .pannello-scheda section, .pannello-scheda [id] { scroll-margin-top: 60px; } }

/* ======================================================================
   Versione 1.23: temi grafici "Blu dello studio" e "Chiaro e naturale"
   (body.tema-nuovo.tema-blu / .tema-chiaro), menu a gruppi, briciole,
   Impostazioni organizzate. Il tema "Classico" resta quello di prima.
   ====================================================================== */
@font-face { font-family: "Inter"; src: url(/assets/fonts/inter.woff2) format("woff2"); font-weight: 100 900; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; src: url(/assets/fonts/inter-ext.woff2) format("woff2"); font-weight: 100 900; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Plus Jakarta Sans"; src: url(/assets/fonts/jakarta.woff2) format("woff2"); font-weight: 200 800; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* --- menu a gruppi, numero accanto ad Agenda, briciole, avatar (tutti i temi) --- */
.gruppo-menu { display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: #8a94a3; margin: 12px 12px 2px; }
.gruppo-menu:first-child { margin-top: 4px; }
.menu-scuro .gruppo-menu { color: rgba(255,255,255,.55); }
.numero-menu { margin-left: auto; background: #ff6b57; color: #fff; font-size: 11px; font-weight: 800; line-height: 1; border-radius: 999px; padding: 4px 7px; }
.briciole { display: flex; align-items: center; gap: 6px; min-width: 0; font-size: 13.5px; white-space: nowrap; overflow: hidden; }
.briciole a, .briciole span { overflow: hidden; text-overflow: ellipsis; }
.briciole [aria-current] { font-weight: 700; }
.separatore-briciole { opacity: .5; }
.barra-alta .logo-app + .briciole::before { content: "|"; opacity: .25; margin-right: 6px; }
.avatar-utente { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 800; background: var(--blu-primario); color: #fff; letter-spacing: .02em; }
.menu-scuro .avatar-utente { background: rgba(255,255,255,.18); box-shadow: inset 0 0 0 1px rgba(255,255,255,.3); }
@media (max-width: 800px) { .briciole, .avatar-utente { display: none; } }

/* --- Impostazioni: menu a gruppi a sinistra (tutti i temi) --- */
body.pagina-impostazioni .contenuto-pagina { display: grid; grid-template-columns: 236px minmax(0, 1fr); column-gap: 26px; align-items: start; max-width: 1240px; }
body.pagina-impostazioni .contenuto-pagina > * { grid-column: 2; min-width: 0; }
body.pagina-impostazioni .contenuto-pagina > .menu-impostazioni { grid-column: 1; grid-row: 1 / span 80; position: sticky; top: calc(var(--altezza-barra-alta) + 16px); }
body.pagina-impostazioni .contenuto-pagina > h1 { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #8a94a3; margin: 4px 0 4px; }
.menu-impostazioni { display: flex; flex-direction: column; gap: 1px; background: #fff; border: 1px solid var(--bordo); border-radius: 16px; padding: 10px; margin: 0 0 18px; flex-wrap: nowrap; border-bottom-width: 1px; }
.menu-impostazioni .gruppo-impostazioni { font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #8a94a3; margin: 12px 10px 3px; }
.menu-impostazioni a { display: flex; align-items: center; gap: 9px; padding: 7px 10px; border-radius: 9px; font-weight: 600; font-size: 14px; color: var(--grigio-testo); border: 0; margin: 0; }
.menu-impostazioni a:hover { background: var(--grigio-chiaro); color: var(--blu-primario); text-decoration: none; }
.menu-impostazioni a.attiva { background: color-mix(in srgb, var(--blu-primario) 12%, #fff); color: var(--blu-scuro); border: 0; box-shadow: inset 3px 0 0 var(--blu-primario); }
.menu-impostazioni .icona-voce { width: 20px; text-align: center; flex: 0 0 20px; font-size: 15px; }
.menu-impostazioni .voce-indice-impostazioni { font-weight: 700; color: var(--blu-scuro); }
.titolo-voce-impostazioni { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; }
.icona-titolo-voce { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 14px; display: grid; place-items: center; font-size: 24px; background: color-mix(in srgb, var(--blu-primario) 13%, #fff); }
.nome-voce-impostazioni { margin: 0; font-size: 24px; font-weight: 800; color: var(--blu-scuro); letter-spacing: -.01em; }
.descrizione-voce-impostazioni { margin: 2px 0 0; color: #6b7480; font-size: 14px; }
@media (max-width: 900px) {
    body.pagina-impostazioni .contenuto-pagina { display: block; }
    .menu-impostazioni { flex-direction: row; overflow-x: auto; border-radius: 12px; padding: 6px; scrollbar-width: thin; }
    .menu-impostazioni .gruppo-impostazioni { display: none; }
    .menu-impostazioni a { white-space: nowrap; flex: 0 0 auto; }
    .titolo-voce-impostazioni { margin-bottom: 12px; }
    .nome-voce-impostazioni { font-size: 20px; }
}
/* pagina iniziale */
.testa-indice-impostazioni { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.testa-indice-impostazioni h1 { margin: 0; font-size: 26px; }
.testa-indice-impostazioni .nota-elenco { margin: 4px 0 0; font-size: 14px; }
.cerca-impostazioni input { width: min(360px, 100%); padding: 11px 14px; border: 1px solid var(--bordo); border-radius: 12px; font-size: 15px; font-family: inherit; background: #fff; box-shadow: 0 2px 10px rgba(20,30,60,.05); }
.cerca-impostazioni { flex: 0 1 360px; }
.griglia-impostazioni { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.gruppo-indice { background: #fff; border: 1px solid var(--bordo); border-radius: 18px; overflow: hidden; box-shadow: 0 2px 12px rgba(20,30,60,.05); }
.testa-gruppo { display: flex; align-items: center; gap: 12px; padding: 16px 18px 10px; }
.icona-gruppo { width: 44px; height: 44px; flex: 0 0 44px; border-radius: 13px; display: grid; place-items: center; font-size: 22px; background: #e6edff; }
.gruppo-agenda .icona-gruppo { background: #dff5f2; } .gruppo-fatture .icona-gruppo { background: #fff3c4; } .gruppo-utenti .icona-gruppo { background: #efe9ff; }
.gruppo-sicurezza .icona-gruppo { background: #ffe9e6; } .gruppo-strumenti .icona-gruppo { background: #e3f6ec; }
.testa-gruppo h2 { margin: 0; font-size: 17px; color: var(--blu-scuro); }
.testa-gruppo p { margin: 2px 0 0; font-size: 13px; color: #6b7480; }
.gruppo-indice ul { list-style: none; margin: 0; padding: 2px 8px 10px; }
.gruppo-indice li a { display: flex; align-items: center; gap: 11px; padding: 9px 10px; border-radius: 11px; color: var(--grigio-testo); }
.gruppo-indice li a:hover { background: color-mix(in srgb, var(--blu-primario) 8%, #fff); text-decoration: none; }
.gruppo-indice .icona-voce { width: 26px; text-align: center; font-size: 18px; flex: 0 0 26px; }
.gruppo-indice .testo-voce { flex: 1; min-width: 0; }
.gruppo-indice .testo-voce strong { display: block; font-size: 14.5px; }
.gruppo-indice .testo-voce small { display: block; font-size: 12.5px; color: #6b7480; margin-top: 1px; }
.freccia-voce { color: #9aa3ad; font-size: 20px; }
.stato-voce { font-size: 11px; font-weight: 800; border-radius: 999px; padding: 3px 9px; white-space: nowrap; }
.stato-voce-ok { background: #e3f6ec; color: #0a7d43; } .stato-voce-avviso { background: #fff3c4; color: #8a5a00; } .stato-voce-neutro { background: #eef1f4; color: #56606b; }
.nessuna-impostazione { padding: 14px 16px; background: #fff; border: 1px dashed var(--bordo); border-radius: 12px; color: #6b7480; }
/* scelta del tema in Personalizza */
.scelta-tema { border: 0; padding: 0; margin: 0 0 8px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.carta-tema { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 12px; border: 2px solid var(--bordo); border-radius: 14px; cursor: pointer; background: #fff; }
.carta-tema:has(input:checked) { border-color: var(--blu-primario); box-shadow: 0 0 0 4px color-mix(in srgb, var(--blu-primario) 15%, transparent); }
.carta-tema input { position: absolute; top: 12px; right: 12px; }
.carta-tema small { color: #6b7480; line-height: 1.35; }
.anteprima-tema { display: grid; grid-template-columns: 28% 1fr; grid-template-rows: 14px 1fr; height: 78px; border-radius: 9px; overflow: hidden; border: 1px solid var(--bordo); margin-bottom: 4px; }
.anteprima-tema i { grid-row: 1 / span 2; }
.anteprima-tema b { grid-column: 2; }
.anteprima-tema em { grid-column: 2; margin: 6px; border-radius: 6px; }
.anteprima-blu i, .anteprima-blu b { background: #1d2f78; } .anteprima-blu em { background: linear-gradient(120deg, #2a3fa8, #5b6ff0); }
.anteprima-chiaro i, .anteprima-chiaro b { background: #fff; } .anteprima-chiaro { background: #f4f7f6; } .anteprima-chiaro em { background: #fff; border-top: 4px solid #12a38c; box-shadow: 0 2px 6px rgba(0,0,0,.08); }
.anteprima-classico i, .anteprima-classico b { background: #fff; } .anteprima-classico { background: #f4f6f8; } .anteprima-classico em { background: #fff; border: 1px solid #dcdfe3; }
.nota-titolo { font-weight: 500; color: #8a94a3; font-size: 12.5px; }

/* --- riquadri della Home con icona (tutti i temi) --- */
.riquadro-icona { width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; font-size: 18px; margin-bottom: 4px; background: #e6edff; }
.ic-verde { background: #e3f6ec; } .ic-giallo { background: #fff3c4; } .ic-rosso { background: #ffe9e6; } .ic-viola { background: #efe9ff; } .ic-acqua { background: #dff5f2; }

/* ======================= TEMI NUOVI: parti comuni ======================= */
.tema-nuovo { --grigio-testo: #1b2436; --grigio-chiaro: #f1f4f9; --bordo: #e2e7ef; --raggio: 16px;
              --ombra-carta: 0 1px 2px rgba(16,24,40,.04), 0 6px 20px rgba(16,24,40,.06); }
body.tema-nuovo { font-family: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif; font-size: 15px; -webkit-font-smoothing: antialiased; }
.tema-nuovo h1, .tema-nuovo h2, .tema-nuovo h3, .tema-nuovo .riquadro-numero, .tema-nuovo .nome-voce-impostazioni, .tema-nuovo .ora-oggi { font-family: "Plus Jakarta Sans", "Inter", sans-serif; letter-spacing: -.01em; word-spacing: .1em; }
.tema-nuovo h1 { font-size: 25px; font-weight: 800; }
.tema-nuovo .con-menu-laterale, .tema-nuovo.con-menu-laterale { --altezza-barra-alta: 56px; }
/* colonna di sinistra */
.tema-nuovo .con-menu-laterale, body.tema-nuovo.con-menu-laterale { grid-template-columns: 248px minmax(0, 1fr); }
.tema-nuovo .testata-menu { padding: 16px 14px; gap: 2px; }
.tema-nuovo .logo-studio-menu { display: flex; justify-content: center; padding: 10px; border-radius: 14px; margin-bottom: 10px; }
.tema-nuovo .logo-studio-menu img { width: auto; max-width: 100%; height: 60px; }
.tema-nuovo .ricerca-veloce input[type=search] { padding: 10px 12px; border-radius: 11px; font-size: 14px; }
.tema-nuovo .menu-laterale .menu-principale { gap: 3px; margin-top: 6px; }
.tema-nuovo .menu-laterale .menu-principale a { gap: 12px; padding: 8px 10px; border-radius: 11px; font-size: 14.5px; }
.tema-nuovo .icona-menu { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 10px; display: grid; place-items: center; font-size: 16px; }
.tema-nuovo .link-guida { border-radius: 11px; }
/* barra in alto */
.tema-nuovo .barra-alta { gap: 14px; padding: 0 22px 0 14px; }
.tema-nuovo .barra-alta .logo-app { font-size: 14px; font-weight: 700; opacity: .85; }
.tema-nuovo .pulsante-esci { border-radius: 10px; padding: 6px 12px; }
/* area del contenuto */
.tema-nuovo.con-menu-laterale .area-contenuto { border-top-left-radius: 22px; }
.tema-nuovo.con-menu-laterale .contenuto-pagina { max-width: 1240px; padding: 28px 34px 64px; }
/* carte, moduli, tabelle */
.tema-nuovo .modulo-dati, .tema-nuovo .riquadro-stampa, .tema-nuovo .riquadro-anamnesi, .tema-nuovo .scheda-paziente-compatta, .tema-nuovo .pannello-home,
.tema-nuovo .riquadro-riepilogo, .tema-nuovo .giorno-elenco, .tema-nuovo .menu-impostazioni, .tema-nuovo .gruppo-indice, .tema-nuovo .riquadro-grafico {
    border-radius: var(--raggio); border-color: var(--bordo); box-shadow: var(--ombra-carta); }
.tema-nuovo .modulo-dati { padding: 26px 28px; }
.tema-nuovo .titolo-sezione-form { font-size: 16px; font-weight: 800; }
.tema-nuovo .contenitore-tabella { border-radius: var(--raggio); box-shadow: var(--ombra-carta); border: 1px solid var(--bordo); }
.tema-nuovo .tabella-dati { border-radius: 0; }
.tema-nuovo .tabella-dati th { background: #f7f9fc; color: #5b6573; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; padding: 11px 14px; }
.tema-nuovo .tabella-dati td { padding: 11px 14px; border-bottom-color: #eef1f5; }
.tema-nuovo .tabella-dati tbody tr:hover td { background: color-mix(in srgb, var(--blu-primario) 4%, #fff); }
.tema-nuovo .campo-form label { font-size: 11.5px; font-weight: 700; color: #5b6573; letter-spacing: .04em; }
.tema-nuovo .campo-form input, .tema-nuovo .campo-form select, .tema-nuovo .campo-form textarea, .tema-nuovo input[type=search], .tema-nuovo input[type=date] {
    border-radius: 10px; border-color: #d7dde6; padding: 10px 12px; font-size: 14.5px; background: #fff; transition: border-color .15s, box-shadow .15s; }
.tema-nuovo .campo-form input:focus, .tema-nuovo .campo-form select:focus, .tema-nuovo .campo-form textarea:focus, .tema-nuovo input[type=search]:focus {
    outline: none; border-color: var(--blu-primario); box-shadow: 0 0 0 4px color-mix(in srgb, var(--blu-primario) 16%, transparent); }
/* pulsanti */
.tema-nuovo .pulsante { border-radius: 11px; padding: 9px 16px; font-weight: 700; transition: transform .08s, box-shadow .15s, background .15s; }
.tema-nuovo .pulsante:active { transform: translateY(1px); }
.tema-nuovo .pulsante-primario { box-shadow: 0 6px 16px color-mix(in srgb, var(--blu-primario) 32%, transparent); }
.tema-nuovo .pulsante-secondario { border-color: #d7dde6; }
.tema-nuovo .pulsante-secondario:hover { background: #f4f7fb; border-color: #c4ccd8; }
.tema-nuovo .pulsante-piccolo { padding: 5px 11px; border-radius: 9px; font-size: 13px; }
/* messaggi */
.tema-nuovo .messaggio-flash { border-radius: 12px; padding: 13px 16px; }
/* schede (Impostazioni dell'agenda, scheda del paziente) */
.tema-nuovo .sottoschede a { border-radius: 10px; }
.tema-nuovo .schede-paziente a.attiva { box-shadow: var(--ombra-carta); }
/* riquadri della Home */
.tema-nuovo .riquadro-riepilogo { text-align: left; align-items: flex-start; padding: 16px; }
.tema-nuovo .riquadro-numero { font-size: 26px; font-weight: 800; color: var(--grigio-testo); }
.tema-nuovo .riquadro-etichetta { font-weight: 600; color: #6b7480; }
.tema-nuovo .riquadro-riepilogo:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(16,24,40,.10); transition: transform .15s, box-shadow .15s; }

/* --- Home: banda di benvenuto --- */
.hero-home { display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; align-self: stretch; text-align: left; }
.hero-home .saluto-home { margin: 0; }
.hero-home .azioni-home { margin: 14px 0 0; }
.numeri-hero { display: flex; gap: 10px; flex-wrap: wrap; }
.numero-hero { display: block; min-width: 112px; padding: 10px 14px; border-radius: 14px; background: #fff; border: 1px solid var(--bordo); color: inherit; }
.numero-hero:hover { text-decoration: none; }
.numero-hero b { display: block; font-size: 24px; font-weight: 800; line-height: 1.1; }
.numero-hero span { font-size: 12.5px; opacity: .8; }
.tema-nuovo .home-oggi .studio-home-compatto { display: none; }

/* ======================= Tema "Blu dello studio" ======================= */
.tema-blu { --blu-primario: #3b57d4; --blu-scuro: #22357f; --sfondo-menu: #182660; --sfondo-menu-2: #1d2f78; --sfondo-pagine: #f2f4fa; --sfondo-home: #f2f4fa; }
.tema-blu .menu-laterale, .tema-blu .barra-alta { background: var(--sfondo-menu); }
.tema-blu .menu-laterale { background: linear-gradient(180deg, var(--sfondo-menu) 0%, var(--sfondo-menu-2) 100%); }
.tema-blu .logo-studio-menu { background: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.menu-scuro .ricerca-veloce input[type=search] { background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.18); color: #fff; }
.menu-scuro .ricerca-veloce input[type=search]::placeholder { color: rgba(255,255,255,.65); }
.tema-blu .menu-laterale.menu-scuro .menu-principale a { color: #e4e9fb; }
.tema-blu .icona-menu { background: rgba(0,0,0,.05); }
.tema-nuovo .menu-scuro .icona-menu { background: rgba(255,255,255,.08); }
.tema-blu .menu-laterale.menu-scuro .menu-principale a:hover { background: rgba(255,255,255,.10); }
.tema-blu .menu-laterale.menu-scuro .menu-principale a.attiva { background: #fff; color: var(--blu-scuro); box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.tema-blu .menu-laterale.menu-scuro .menu-principale a.attiva .icona-menu { background: color-mix(in srgb, var(--blu-primario) 14%, #fff); }
.tema-blu .menu-laterale:not(.menu-scuro) .menu-principale a:hover { background: rgba(0,0,0,.05); }
.tema-blu .menu-laterale:not(.menu-scuro) .menu-principale a.attiva { background: rgba(255,255,255,.8); color: var(--blu-scuro); box-shadow: inset 3px 0 0 var(--blu-primario), 0 4px 12px rgba(0,0,0,.08); }
.menu-scuro .briciole a { color: rgba(255,255,255,.75); } .menu-scuro .briciole [aria-current] { color: #fff; }
/* banda di benvenuto a colori: vedi "Home a colori" in fondo (vers. 1.25: .home-colorata, anche nel Classico) */

/* ======================= Tema "Chiaro e naturale" ======================= */
.tema-chiaro { --blu-primario: #11977f; --blu-scuro: #0b5f53; --sfondo-menu: #ffffff; --sfondo-pagine: #f4f7f6; --sfondo-home: #f4f7f6; --grigio-chiaro: #eef5f3; --bordo: #e2eae7; }
.tema-chiaro .menu-laterale, .tema-chiaro .barra-alta { background: var(--sfondo-menu); }
.tema-chiaro .icona-menu { background: #f1f5f4; }
.tema-chiaro .menu-laterale .menu-principale a.attiva { background: #e3f5f0; color: #0b5f53; box-shadow: inset 3px 0 0 #11977f; }
.tema-chiaro .menu-laterale .menu-principale a.attiva .icona-menu { background: #c8ece2; }
.tema-chiaro .briciole a { color: #6b7a78; }
.tema-chiaro.con-menu-laterale .area-contenuto { border-color: #e2eae7; }
.tema-chiaro .hero-home .saluto-home { font-size: 31px; letter-spacing: -.025em; }
.tema-chiaro .hero-home .data-oggi { font-size: 15.5px; }
.tema-chiaro .pannello-oggi { border-top: 4px solid #3b57d4; }
.tema-chiaro .pannello-da-fare { border-top: 4px solid #f0a020; }
.tema-chiaro .riquadro-riepilogo { border-top: 4px solid var(--colore-riquadro, #11977f); }
.tema-chiaro .numero-hero { border-top: 4px solid var(--colore-riquadro, #11977f); box-shadow: var(--ombra-carta); }

/* login nei temi nuovi */
body.pagina-login.tema-blu { background: radial-gradient(circle at 15% 10%, rgba(255,255,255,.18), transparent 40%), linear-gradient(135deg, var(--sfondo-menu) 0%, var(--home-base, #3b57d4) 60%, var(--home-chiaro, #6a7cf2) 100%); }
body.pagina-login.tema-chiaro { background: linear-gradient(160deg, #eef8f5 0%, #f4f7f6 60%); }
.pagina-login.tema-nuovo .scheda-login { border-radius: 22px; box-shadow: 0 24px 60px rgba(10,20,50,.25); border: 0; padding: 30px 32px; }
.pagina-login.tema-nuovo .scheda-login input { border-radius: 11px; padding: 11px 13px; }
.pagina-login.tema-nuovo .scheda-login button[type=submit] { border-radius: 11px; padding: 12px; font-weight: 800; }
.colore-blu { --colore-riquadro: #3b57d4; } .colore-giallo { --colore-riquadro: #f0a020; } .colore-rosso { --colore-riquadro: #e0503c; }
.colore-acqua { --colore-riquadro: #11977f; } .colore-viola { --colore-riquadro: #7c5cf0; } .colore-verde { --colore-riquadro: #1e9e5a; }
.riquadro-riepilogo { display: flex; flex-direction: column; }

/* 1.23: ritocchi */
.hero-home { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
.hero-home .studio-home-compatto { grid-column: 1 / -1; }
.numeri-hero { justify-content: flex-end; }
@media (max-width: 1100px) { .hero-home { grid-template-columns: minmax(0, 1fr); } .numeri-hero { justify-content: flex-start; } }
.home-oggi .colonne-home { margin-top: 18px; }
.home-oggi .hero-home + .colonne-home { margin-top: 18px; }
body.pagina-impostazioni .sottoschede { display: none; }
.tema-nuovo .gruppo-indice .testo-voce strong, .tema-nuovo .testa-gruppo h2 { word-spacing: .1em; }
.tema-nuovo .icona-utente { display: none; }
.tema-classico .avatar-utente { display: none; }
@media (max-width: 700px) {
    .hero-home { padding: 18px 16px !important; border-radius: 18px !important; gap: 12px; }
    .hero-home .saluto-home { font-size: 22px !important; }
    .hero-home .azioni-home { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .hero-home .azioni-home .pulsante { padding: 8px 10px; font-size: 13px; text-align: center; white-space: normal; }
    .hero-home .azioni-home .pulsante-primario { grid-column: 1 / -1; }
    .numeri-hero { gap: 8px; }
    .numero-hero { min-width: 0; flex: 1; padding: 8px 10px; }
    .numero-hero b { font-size: 19px; }
}
@media (max-width: 700px) {
    .tema-nuovo .modulo-dati { padding: 16px 14px; }
    .tema-nuovo .campo-form input, .tema-nuovo .campo-form select, .tema-nuovo .campo-form textarea { padding: 9px 9px; }
    .tema-nuovo .tabella-orari input[type=time] { padding: 7px 5px; }
    .tema-nuovo.con-menu-laterale .contenuto-pagina { padding: 18px 14px 90px; }
}
.tema-blu .menu-laterale { background-color: var(--sfondo-menu); }
.testo-da-fare a { white-space: normal; }
body.tema-blu.con-menu-laterale { background: var(--sfondo-menu-2); }
body.tema-chiaro.con-menu-laterale { background: var(--sfondo-menu); }
.tema-nuovo.con-menu-laterale .area-contenuto { min-height: calc(100vh - var(--altezza-barra-alta)); }
@media (max-width: 800px) { body.tema-nuovo.con-menu-laterale { background: var(--sfondo-pagine); } }

/* ======================================================================
   Versione 1.24: ritocchi richiesti (Impostazioni senza menu a sinistra,
   colonna più compatta, riquadri della Home blu e in griglia da 6, banda
   di benvenuto con i pulsanti su una riga)
   ====================================================================== */
/* --- Impostazioni: testata della voce al posto del menu a sinistra --- */
body.pagina-impostazioni .contenuto-pagina { display: block; max-width: 1100px; }
body.pagina-impostazioni .contenuto-pagina > h1 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
.testata-voce-impostazioni { margin: 0 0 20px; }
.torna-impostazioni { display: inline-flex; align-items: center; gap: 4px; font-size: 13.5px; font-weight: 700; color: var(--blu-primario); padding: 4px 10px 4px 6px; border-radius: 8px; margin: 0 0 10px -6px; }
.torna-impostazioni:hover { background: color-mix(in srgb, var(--blu-primario) 9%, transparent); text-decoration: none; }
.testata-voce-impostazioni .titolo-voce-impostazioni { margin: 0 0 14px; }
.schede-impostazioni.voci-gruppo { display: flex; flex-wrap: wrap; gap: 6px; border: 0; margin: 0; padding: 0; background: none; box-shadow: none; flex-direction: row; }
.schede-impostazioni.voci-gruppo a { display: inline-flex; align-items: center; gap: 4px; padding: 6px 13px; border-radius: 999px; border: 1px solid var(--bordo); background: #fff; font-size: 14px; font-weight: 600; color: var(--grigio-testo); margin: 0; }
.schede-impostazioni.voci-gruppo a:hover { border-color: var(--blu-primario); color: var(--blu-primario); text-decoration: none; }
.schede-impostazioni.voci-gruppo a.attiva { background: var(--blu-primario); border-color: var(--blu-primario); color: #fff; box-shadow: none; }
@media (max-width: 700px) { .schede-impostazioni.voci-gruppo { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; } .schede-impostazioni.voci-gruppo a { flex: 0 0 auto; white-space: nowrap; } }

/* --- colonna di sinistra: voci più vicine, senza le scritte dei gruppi --- */
.separatore-menu { display: block; height: 1px; margin: 8px 12px; background: var(--bordo); }
.menu-scuro .separatore-menu { background: rgba(255,255,255,.14); }
.tema-nuovo .menu-laterale .menu-principale { gap: 1px; }
.tema-nuovo .menu-laterale .menu-principale a { padding: 5px 10px; }
.tema-nuovo .icona-menu { width: 28px; height: 28px; flex-basis: 28px; border-radius: 9px; font-size: 15px; }

/* --- riquadri della Home: griglia da 6, quelli della seconda riga grandi uguali --- */
.home-studio .riquadri-riepilogo.riquadri-compatti { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.home-studio .riquadri-compatti .riquadro-riepilogo { min-width: 0; flex: none; }
@media (max-width: 1150px) { .home-studio .riquadri-riepilogo.riquadri-compatti { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .home-studio .riquadri-riepilogo.riquadri-compatti { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* riquadri a colori come la banda: vedi "Home a colori" in fondo (vers. 1.25) */

/* --- banda di benvenuto: pulsanti su una riga, numeri più piccoli --- */
.hero-home { grid-template-columns: minmax(0, 1fr) auto; row-gap: 14px; }
.hero-home .saluto-e-data { grid-column: 1; }
.hero-home .numeri-hero { grid-column: 2; align-self: start; flex-wrap: nowrap; gap: 8px; }
.hero-home .azioni-home { grid-column: 1 / -1; display: flex; flex-wrap: nowrap; gap: 8px; margin: 0; }
.hero-home .azioni-home .pulsante { white-space: nowrap; }
.hero-home .data-oggi { font-size: 17px; margin-top: 4px; }
.numero-hero { min-width: 0; padding: 7px 12px; border-radius: 12px; display: flex; align-items: baseline; gap: 6px; }
.numero-hero b { display: inline; font-size: 19px; }
.numero-hero span { font-size: 12.5px; white-space: nowrap; }
@media (max-width: 1150px) { .hero-home .azioni-home { flex-wrap: wrap; } }
@media (max-width: 900px) { .hero-home { grid-template-columns: minmax(0, 1fr); } .hero-home .numeri-hero { grid-column: 1; flex-wrap: wrap; } }
@media (max-width: 700px) { .hero-home .azioni-home { display: grid; } }

/* ======================================================================
   Versione 1.25: colori e stile personalizzabili (Impostazioni →
   Personalizza Aspetto → Colori e stile). Le variabili --home-* e
   --sfondo-menu(-2) arrivano da stilePersonalizzazione() (body[class]).
   ====================================================================== */
/* --- Home a colori (.home-colorata, con qualunque tema) --- */
.home-colorata { --home-base: #3b57d4; --home-scuro: #23347f; --home-chiaro: #6379dd; --home-ombra: rgba(59,87,212,.3);
    --home-att: #d63a2f; --home-att-scuro: #962921; --home-att-chiaro: #de6159;
    --home-testo: #fff; --home-testo-tenue: rgba(255,255,255,.88); --home-velo: rgba(255,255,255,.14); --home-velo-forte: rgba(255,255,255,.24); --home-bordo: rgba(255,255,255,.22); }
.home-colorata .hero-home { padding: 24px 26px; border-radius: 22px; color: var(--home-testo); position: relative; overflow: hidden; border: 0;
    background: radial-gradient(circle at 88% -30%, rgba(255,255,255,.28), transparent 45%), linear-gradient(120deg, var(--home-scuro) 0%, var(--home-base) 55%, var(--home-chiaro) 100%);
    box-shadow: 0 16px 36px var(--home-ombra); }
.home-colorata .hero-home .saluto-home { color: var(--home-testo); font-size: 28px; }
.home-colorata .hero-home .data-oggi, .home-colorata .hero-home .studio-home-compatto, .home-colorata .hero-home .studio-home-compatto * { color: var(--home-testo-tenue); }
.home-colorata .hero-home .pulsante-secondario { background: var(--home-velo); border-color: var(--home-bordo); color: var(--home-testo); box-shadow: none; }
.home-colorata .hero-home .pulsante-secondario:hover { background: var(--home-velo-forte); }
.home-colorata .hero-home .pulsante-primario { background: #fff; color: var(--home-scuro); border-color: #fff; box-shadow: 0 8px 18px rgba(0,0,0,.18); }
.home-colorata .hero-home kbd { background: var(--home-velo-forte); border-color: var(--home-bordo); color: var(--home-testo); }
.home-colorata .numero-hero { background: var(--home-velo); border: 1px solid var(--home-bordo); color: var(--home-testo); box-shadow: none; }
.home-colorata .numero-hero:hover { background: var(--home-velo-forte); text-decoration: none; }
.home-colorata .riquadri-compatti .riquadro-riepilogo { border: 1px solid var(--home-bordo); color: var(--home-testo);
    background: radial-gradient(circle at 90% -10%, rgba(255,255,255,.22), transparent 50%), linear-gradient(135deg, var(--home-scuro) 0%, var(--home-base) 70%, var(--home-chiaro) 100%);
    box-shadow: 0 10px 24px var(--home-ombra); }
.home-colorata .riquadri-compatti .riquadro-numero { color: var(--home-testo); }
.home-colorata .riquadri-compatti .riquadro-etichetta, .home-colorata .riquadri-compatti .riquadro-dettaglio { color: var(--home-testo-tenue); }
.home-colorata .riquadri-compatti .riquadro-icona { background: var(--home-velo); }
.home-colorata .riquadri-compatti .riquadro-riepilogo:hover { box-shadow: 0 14px 30px var(--home-ombra); transform: translateY(-1px); }
/* riquadri che chiedono attenzione: colore a contrasto (rosso su banda blu, blu su banda rossa) */
.home-colorata .riquadri-compatti .riquadro-attenzione { border-color: rgba(255,255,255,.25); color: #fff;
    background: radial-gradient(circle at 90% -10%, rgba(255,255,255,.25), transparent 50%), linear-gradient(135deg, var(--home-att-scuro) 0%, var(--home-att) 70%, var(--home-att-chiaro) 100%);
    box-shadow: 0 10px 24px rgba(0,0,0,.2); }
.home-colorata .riquadri-compatti .riquadro-attenzione .riquadro-numero { color: #fff; }
.home-colorata .riquadri-compatti .riquadro-attenzione .riquadro-etichetta, .home-colorata .riquadri-compatti .riquadro-attenzione .riquadro-dettaglio { color: rgba(255,255,255,.92); }
.home-colorata .riquadri-compatti .riquadro-attenzione .riquadro-icona { background: rgba(255,255,255,.2); }
/* Classico con la Home a colori: stessa forma dei riquadri del tema nuovo */
.tema-classico.home-colorata .riquadri-compatti .riquadro-riepilogo { border-radius: 16px; text-align: left; align-items: flex-start; padding: 16px; }
.tema-classico.home-colorata .hero-home { margin-bottom: 4px; }

/* --- colonna di sinistra e barra in alto con il colore scelto --- */
.barra-personalizzata .menu-laterale, .barra-personalizzata .barra-alta { background-color: var(--sfondo-menu); }
.tema-classico.barra-personalizzata .menu-laterale { background: var(--sfondo-menu); }
.menu-laterale:not(.menu-scuro) .logo-studio-menu { box-shadow: 0 4px 14px rgba(0,0,0,.08); }

/* --- finestra di accesso: sfondo scelto --- */
body.pagina-login.login-sfondo-chiaro { background: var(--sfondo-pagine); }
body.pagina-login.login-sfondo-barra { background: radial-gradient(circle at 15% 10%, rgba(255,255,255,.16), transparent 40%), linear-gradient(135deg, var(--sfondo-menu) 0%, var(--sfondo-menu-2, var(--sfondo-menu)) 100%); }
body.pagina-login.login-sfondo-chiaro .scheda-login { box-shadow: 0 18px 44px rgba(10,20,50,.12); }

/* --- Personalizza Aspetto: Colori e stile --- */
.griglia-stile { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin: 6px 0 10px; }
.gruppo-stile { border: 1px solid var(--bordo); border-radius: 14px; padding: 12px 14px; background: #fff; }
.gruppo-stile h3 { margin: 0 0 6px; font-size: 15.5px; color: var(--blu-scuro); }
.gruppo-stile .scelta-colore { margin: 8px 0; }
.gruppo-stile .campione { width: 46px; }
.gruppo-stile .campione span, .gruppo-stile .campione .scegli-colore { width: 32px; height: 32px; }
.campione-tema span { background: conic-gradient(#182660 0 25%, #3b57d4 0 50%, #ffffff 0 75%, #11977f 0); }
.scelta-radio-stile { border: 0; padding: 0; margin: 10px 0 4px; display: flex; flex-direction: column; gap: 4px; }
.scelta-radio-stile legend { font-weight: 700; font-size: 14px; margin-bottom: 4px; padding: 0; }
.gruppo-stile .nota-campo { margin: 6px 0 0; font-size: 12.5px; color: #6b7480; line-height: 1.4; }

/* ======================================================================
   Versione 1.26: tema "Clinico essenziale" (body.tema-nuovo.tema-essenziale)
   e icone a linea (body.icone-linea, assets/js/icone.js). Sobrio: bianco e
   grigio chiaro, un solo blu, bordi sottili, nessuna sfumatura.
   ====================================================================== */
.ico { display: inline-flex; vertical-align: -.14em; line-height: 1; }
.ico svg { width: 1.05em; height: 1.05em; stroke-width: 1.9; }
.icone-linea .icona-menu .ico svg, .icone-linea .riquadro-icona .ico svg { width: 18px; height: 18px; }
.icone-linea .icona-gruppo .ico svg { width: 20px; height: 20px; }
.icone-linea .icona-titolo-voce .ico svg { width: 22px; height: 22px; }

.tema-essenziale { --blu-primario: #1f4fd1; --blu-scuro: #14275e; --sfondo-menu: #ffffff; --sfondo-menu-2: #ffffff; --sfondo-pagine: #f6f7f9; --sfondo-home: #f6f7f9;
    --bordo: #e4e7ec; --grigio-chiaro: #f2f4f7; --grigio-testo: #101828; --raggio: 10px; --ombra-carta: 0 1px 2px rgba(16,24,40,.05); }
.tema-essenziale h1, .tema-essenziale h2, .tema-essenziale h3, .tema-essenziale .riquadro-numero, .tema-essenziale .nome-voce-impostazioni, .tema-essenziale .ora-oggi {
    font-family: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif; letter-spacing: -.015em; word-spacing: 0; }
.tema-essenziale h1 { font-weight: 650; color: #101828; }
.tema-essenziale .gruppo-indice .testo-voce strong, .tema-essenziale .testa-gruppo h2 { word-spacing: 0; }
/* colonna di sinistra e barra in alto */
body.tema-essenziale.con-menu-laterale { background: var(--sfondo-menu); }
.tema-essenziale .menu-laterale, .tema-essenziale .barra-alta { background: var(--sfondo-menu); }
.tema-essenziale .menu-laterale { border-right: 1px solid var(--bordo); }
.tema-essenziale .barra-alta { border-bottom: 1px solid var(--bordo); }
.tema-essenziale.con-menu-laterale .area-contenuto { border-top-left-radius: 0; border: 0; }
.tema-essenziale .menu-laterale .logo-studio-menu { background: #fff; border: 1px solid #eef0f3; border-radius: 10px; box-shadow: none; }
.tema-essenziale .ricerca-veloce input[type=search] { border-radius: 8px; }
.tema-essenziale .menu-laterale:not(.menu-scuro) .ricerca-veloce input[type=search] { background: #f9fafb; border-color: var(--bordo); }
.tema-essenziale .menu-laterale .menu-principale a { gap: 10px; padding: 6px 10px; border-radius: 7px; font-weight: 500; }
.tema-essenziale .icona-menu { width: 22px; height: 22px; flex: 0 0 22px; background: none; border-radius: 0; }
.tema-essenziale .menu-laterale:not(.menu-scuro) .menu-principale a { color: #344054; }
.tema-essenziale .menu-laterale:not(.menu-scuro) .icona-menu { color: #667085; }
.tema-essenziale .menu-laterale:not(.menu-scuro) .menu-principale a:hover { background: #f2f4f7; color: #101828; }
.tema-essenziale .menu-laterale:not(.menu-scuro) .menu-principale a.attiva { background: color-mix(in srgb, var(--blu-primario) 9%, #fff); color: var(--blu-scuro); box-shadow: none; font-weight: 600; }
.tema-essenziale .menu-laterale .menu-principale a.attiva .icona-menu { background: none; color: var(--blu-primario); }
.tema-essenziale .menu-laterale.menu-scuro .menu-principale a { color: rgba(255,255,255,.84); }
.tema-essenziale .menu-laterale.menu-scuro .icona-menu { color: rgba(255,255,255,.6); }
.tema-essenziale .menu-laterale.menu-scuro .menu-principale a:hover { background: rgba(255,255,255,.08); color: #fff; }
.tema-essenziale .menu-laterale.menu-scuro .menu-principale a.attiva { background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 3px 0 0 #fff; }
.tema-essenziale .menu-laterale.menu-scuro .menu-principale a.attiva .icona-menu { color: #fff; }
.tema-essenziale .barra-alta:not(.menu-scuro) .briciole a { color: #667085; }
.tema-essenziale .barra-alta:not(.menu-scuro) .avatar-utente { background: var(--blu-scuro); }
.tema-essenziale .barra-alta .logo-app { opacity: 1; }
/* pulsanti e campi */
.tema-essenziale .pulsante { border-radius: 8px; padding: 8px 14px; font-weight: 600; }
.tema-essenziale .pulsante-primario { box-shadow: none; }
.tema-essenziale .pulsante-primario:hover { box-shadow: 0 1px 2px rgba(16,24,40,.1); }
.tema-essenziale .pulsante-secondario { background: #fff; border-color: #d0d5dd; color: #344054; }
.tema-essenziale .pulsante-secondario:hover { background: #f9fafb; border-color: #b9c0cb; }
.tema-essenziale .pulsante-piccolo { border-radius: 7px; }
.tema-essenziale .pulsante-esci { border-radius: 8px; }
.tema-essenziale .campo-form input, .tema-essenziale .campo-form select, .tema-essenziale .campo-form textarea, .tema-essenziale input[type=search], .tema-essenziale input[type=date] { border-radius: 8px; border-color: #d0d5dd; }
.tema-essenziale .campo-form input:focus, .tema-essenziale .campo-form select:focus, .tema-essenziale .campo-form textarea:focus, .tema-essenziale input[type=search]:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--blu-primario) 14%, transparent); }
.tema-essenziale .tabella-dati th { background: #f9fafb; color: #667085; font-weight: 600; }
.tema-essenziale .messaggio-flash { border-radius: 8px; }
/* carte */
.tema-essenziale .riquadro-riepilogo:hover { transform: none; box-shadow: 0 2px 8px rgba(16,24,40,.08); }
.tema-essenziale .intestazione-pannello h2 { font-size: 16px; }
/* Home (senza "Home a colori") */
.tema-essenziale:not(.home-colorata) .hero-home { padding: 2px 0 18px; border-bottom: 1px solid var(--bordo); border-radius: 0; }
.tema-essenziale:not(.home-colorata) .hero-home .saluto-home { font-size: 26px; font-weight: 650; color: #101828; }
.tema-essenziale:not(.home-colorata) .hero-home .data-oggi { color: #667085; font-size: 15px; }
.tema-essenziale:not(.home-colorata) .hero-home kbd { background: #f2f4f7; border-color: var(--bordo); color: #475467; }
.tema-essenziale:not(.home-colorata) .numero-hero { border-radius: 8px; box-shadow: none; background: #fff; }
.tema-essenziale:not(.home-colorata) .riquadri-compatti .riquadro-riepilogo { position: relative; background: #fff; border: 1px solid var(--bordo); color: #101828; }
.tema-essenziale:not(.home-colorata) .riquadri-compatti .riquadro-icona { position: absolute; top: 14px; right: 14px; width: 30px; height: 30px; margin: 0; border-radius: 8px; background: #f2f4f7; color: #667085; font-size: 16px; }
.tema-essenziale:not(.home-colorata) .riquadri-compatti .riquadro-etichetta { order: 1; padding-right: 36px; min-height: 34px; font-size: 13px; font-weight: 500; color: #667085; }
.tema-essenziale:not(.home-colorata) .riquadri-compatti .riquadro-numero { order: 2; font-size: 28px; font-weight: 650; color: #101828; }
.tema-essenziale:not(.home-colorata) .riquadri-compatti .riquadro-dettaglio { order: 3; color: #667085; }
.tema-essenziale:not(.home-colorata) .riquadri-compatti .riquadro-attenzione { border-color: #fda29b; box-shadow: inset 3px 0 0 #d92d20; }
.tema-essenziale:not(.home-colorata) .riquadri-compatti .riquadro-attenzione .riquadro-numero { color: #b42318; }
.tema-essenziale:not(.home-colorata) .riquadri-compatti .riquadro-attenzione .riquadro-icona { background: #fef3f2; color: #d92d20; }
/* scheda del paziente, agenda, impostazioni */
.tema-essenziale .campo-scheda { background: #f9fafb; border: 1px solid #eef0f3; border-radius: 8px; }
.tema-essenziale .etichetta-scheda { color: #667085; }
.tema-essenziale .schede-paziente a.attiva { color: var(--blu-primario); box-shadow: none; }
.tema-essenziale .testa-giorno.oggi { background: color-mix(in srgb, var(--blu-primario) 8%, #fff); color: var(--blu-primario); }
.tema-essenziale .evento-agenda { border-radius: 6px; }
.tema-essenziale .gruppo-indice { border-radius: 10px; }
.tema-essenziale .gruppo-indice .icona-gruppo, .tema-essenziale .icona-titolo-voce { background: #f2f4f7; color: #475467; border-radius: 9px; }
.tema-essenziale .gruppo-indice li a { border-radius: 7px; }
.tema-essenziale .schede-impostazioni.voci-gruppo a { border-radius: 8px; }
.tema-essenziale .stato-voce { border-radius: 6px; }
/* finestra di accesso */
body.pagina-login.tema-essenziale { background: var(--sfondo-pagine); }
.pagina-login.tema-essenziale .scheda-login { border-radius: 14px; border: 1px solid var(--bordo); box-shadow: 0 12px 32px rgba(16,24,40,.08); }
.pagina-login.tema-essenziale .scheda-login input, .pagina-login.tema-essenziale .scheda-login button[type=submit] { border-radius: 8px; }
/* anteprima nella scelta del tema */
.anteprima-essenziale { background: #f6f7f9; } .anteprima-essenziale i { background: #fff; border-right: 1px solid #e4e7ec; } .anteprima-essenziale b { background: #fff; border-bottom: 1px solid #e4e7ec; }
.anteprima-essenziale em { background: #fff; border: 1px solid #e4e7ec; box-shadow: inset 0 3px 0 #1f4fd1; }

/* ======================================================================
   Versione 1.27: Note interne studio (pazienti/note_interne.php)
   ====================================================================== */
.testa-note-interne { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.testa-note-interne h1 { margin: 4px 0 2px; }
.testa-note-interne .nota-elenco { margin: 0; max-width: 820px; }
.torna-scheda { font-size: 14px; font-weight: 600; }
.ultima-modifica-note { margin: 0; font-size: 13px; color: #667085; }
.modulo-note-interne { padding: 16px; }
.campo-note-interne { display: block; width: 100%; box-sizing: border-box; min-height: max(380px, calc(100vh - 385px)); resize: vertical;
    font: inherit; font-size: 15.5px; line-height: 1.6; padding: 16px 18px; border: 1px solid var(--bordo); border-radius: 10px; background: #fffef9; }
.campo-note-interne:focus { outline: none; border-color: var(--blu-primario); box-shadow: 0 0 0 3px color-mix(in srgb, var(--blu-primario) 14%, transparent); }
.modulo-note-interne .azioni-form { align-items: center; margin-top: 12px; }
.conta-note { margin-right: auto; font-size: 13px; color: #667085; }
.segno-note { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #f0a020; margin-left: 4px; vertical-align: middle; }
@media (max-width: 700px) { .campo-note-interne { min-height: 60vh; font-size: 16px; padding: 12px; } .modulo-note-interne { padding: 10px; } }

/* ======================================================================
   Versione 1.28: riquadri della Home uguali in tutti i temi — icona in alto
   al centro, testo al centro (centrato), numero in basso al centro.
   (Selettori più specifici delle regole dei temi, che restano per i colori.)
   ====================================================================== */
body .home-studio .riquadri-riepilogo.riquadri-compatti .riquadro-riepilogo { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: flex-start; gap: 6px; padding: 14px 12px; }
body .home-studio .riquadri-riepilogo.riquadri-compatti .riquadro-riepilogo .riquadro-icona { order: 1; position: static; margin: 0 auto; flex: 0 0 auto; }
body .home-studio .riquadri-riepilogo.riquadri-compatti .riquadro-riepilogo .riquadro-etichetta { order: 2; margin: auto 0; padding: 0; min-height: 0; text-align: center; line-height: 1.3; }
body .home-studio .riquadri-riepilogo.riquadri-compatti .riquadro-riepilogo .riquadro-numero { order: 3; margin: 0; text-align: center; line-height: 1.1; }
body .home-studio .riquadri-riepilogo.riquadri-compatti .riquadro-riepilogo .riquadro-dettaglio { order: 4; margin: -2px 0 0; text-align: center; }
