@charset "UTF-8";
/* Tema scuro del backoffice (riordino 2026-10, blocco E10, mockup validato).
   Attivo con data-tema="scuro" sull'elemento html (scelta dell'utente) o con
   «Automatico» quando il sistema è scuro. I due blocchi qui sotto DEVONO
   restare identici a parte il selettore (test core/test_tema.py): lo stesso
   insieme di regole per la scelta esplicita e per il sistema.
   Le anteprime del sito del cittadino (intestazione-pie.css) restano chiare. */

html[data-tema="scuro"] {
  color-scheme: dark;
  --bo-content-bg: #0e141b;
  --bo-surface: #161f29;
  --bo-surface-2: #1b2633;
  --bo-ink: #e7edf4;
  --bo-muted: #9aa8b8;
  --bo-line: #2a3644;
  --bo-field: #7d8b9b;
  --bo-primary: #5aa6f0;
  --bo-primary-ink: #0e141b;
  --bo-primary-soft: #14293f;
  --bo-ok: #5fc48a;
  --bo-ok-soft: #12291c;
  --bo-warn: #f0b35a;
  --bo-warn-soft: #2d2210;
  --bo-bad: #f08080;
  --bo-bad-soft: #2f1515;
  --bo-sidebar-bg-top: #123a63;
  --bo-sidebar-bg-bottom: #0b1f36;
}
html[data-tema="scuro"] body, html[data-tema="scuro"] #main-content { background-color: var(--bo-content-bg); color: var(--bo-ink); }
html[data-tema="scuro"] h1, html[data-tema="scuro"] h2, html[data-tema="scuro"] h3, html[data-tema="scuro"] h4, html[data-tema="scuro"] h5, html[data-tema="scuro"] h6, html[data-tema="scuro"] .h1, html[data-tema="scuro"] .h2, html[data-tema="scuro"] .h3, html[data-tema="scuro"] .h4, html[data-tema="scuro"] .h5, html[data-tema="scuro"] .h6 { color: var(--bo-ink); }
html[data-tema="scuro"] label, html[data-tema="scuro"] legend, html[data-tema="scuro"] .form-label, html[data-tema="scuro"] dt, html[data-tema="scuro"] dd, html[data-tema="scuro"] th, html[data-tema="scuro"] td, html[data-tema="scuro"] p, html[data-tema="scuro"] li { color: inherit; }
html[data-tema="scuro"] #main-content a:not(.btn):not(.dropdown-item):not(.nav-link) { color: var(--bo-primary); }
html[data-tema="scuro"] .card, html[data-tema="scuro"] .card-body, html[data-tema="scuro"] .card-header, html[data-tema="scuro"] .card-footer, html[data-tema="scuro"] .bg-white, html[data-tema="scuro"] .modal-content, html[data-tema="scuro"] .dropdown-menu, html[data-tema="scuro"] .list-group-item, html[data-tema="scuro"] .accordion-item, html[data-tema="scuro"] .accordion-button, html[data-tema="scuro"] .popover { background-color: var(--bo-surface) !important; color: var(--bo-ink); border-color: var(--bo-line); }
html[data-tema="scuro"] .card .card-body .card-title, html[data-tema="scuro"] .card .card-body .card-text, html[data-tema="scuro"] .card .card-body h5, html[data-tema="scuro"] .card .card-body h6, html[data-tema="scuro"] .card-title, html[data-tema="scuro"] .card-text { color: var(--bo-ink) !important; }
html[data-tema="scuro"] .bg-light, html[data-tema="scuro"] .table-light, html[data-tema="scuro"] .table-light > * { background-color: var(--bo-surface-2) !important; color: var(--bo-ink) !important; }
html[data-tema="scuro"] .shadow-sm, html[data-tema="scuro"] .shadow { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5) !important; }
html[data-tema="scuro"] .text-secondary, html[data-tema="scuro"] .text-muted, html[data-tema="scuro"] .form-text, html[data-tema="scuro"] .small.text-secondary { color: var(--bo-muted) !important; }
html[data-tema="scuro"] .text-dark, html[data-tema="scuro"] .text-body, html[data-tema="scuro"] .text-black { color: var(--bo-ink) !important; }
html[data-tema="scuro"] .text-primary { color: var(--bo-primary) !important; }
html[data-tema="scuro"] .text-danger { color: var(--bo-bad) !important; }
html[data-tema="scuro"] .text-success { color: var(--bo-ok) !important; }
html[data-tema="scuro"] hr { border-color: var(--bo-line); opacity: 1; }
html[data-tema="scuro"] .table { --bs-table-bg: var(--bo-surface); --bs-table-color: var(--bo-ink); --bs-table-border-color: var(--bo-line); --bs-table-striped-bg: var(--bo-surface-2); --bs-table-hover-bg: var(--bo-surface-2); --bs-table-hover-color: var(--bo-ink); color: var(--bo-ink); }
html[data-tema="scuro"] .table > :not(caption) > * > * { background-color: var(--bo-surface); color: var(--bo-ink); border-color: var(--bo-line); }
html[data-tema="scuro"] .form-control, html[data-tema="scuro"] .form-select, html[data-tema="scuro"] .input-group-text, html[data-tema="scuro"] input[type="text"], html[data-tema="scuro"] input[type="search"], html[data-tema="scuro"] input[type="email"], html[data-tema="scuro"] input[type="tel"], html[data-tema="scuro"] input[type="date"], html[data-tema="scuro"] input[type="time"], html[data-tema="scuro"] input[type="number"], html[data-tema="scuro"] input[type="password"], html[data-tema="scuro"] input[type="url"], html[data-tema="scuro"] textarea, html[data-tema="scuro"] select { background-color: var(--bo-surface); color: var(--bo-ink); border-color: var(--bo-field) !important; }
html[data-tema="scuro"] .form-control::placeholder, html[data-tema="scuro"] textarea::placeholder, html[data-tema="scuro"] input::placeholder { color: var(--bo-muted); opacity: 1; }
html[data-tema="scuro"] .form-control:disabled, html[data-tema="scuro"] .form-select:disabled { background-color: var(--bo-surface-2); color: var(--bo-muted); }
html[data-tema="scuro"] .form-check-input { background-color: var(--bo-surface); border-color: var(--bo-field); }
html[data-tema="scuro"] .form-check-input:checked { background-color: var(--bo-primary); border-color: var(--bo-primary); }
html[data-tema="scuro"] .btn-primary, html[data-tema="scuro"] .btn-primary:hover, html[data-tema="scuro"] .btn-primary:focus { background-color: var(--bo-primary); border-color: var(--bo-primary); color: var(--bo-primary-ink); }
html[data-tema="scuro"] .btn-outline-primary { color: var(--bo-primary); border-color: var(--bo-primary); box-shadow: inset 0 0 0 2px var(--bo-primary); background-color: transparent; }
html[data-tema="scuro"] .btn-outline-primary:hover, html[data-tema="scuro"] .btn-outline-primary.active { background-color: var(--bo-primary); color: var(--bo-primary-ink); }
html[data-tema="scuro"] .btn-outline-secondary, html[data-tema="scuro"] .btn-outline-dark { color: var(--bo-ink); border-color: var(--bo-line); box-shadow: inset 0 0 0 2px var(--bo-line); background-color: transparent; }
html[data-tema="scuro"] .btn-outline-success { color: var(--bo-ok); box-shadow: inset 0 0 0 2px var(--bo-ok); }
html[data-tema="scuro"] .btn-outline-danger { color: var(--bo-bad); box-shadow: inset 0 0 0 2px var(--bo-bad); }
html[data-tema="scuro"] .btn-link:not(.bo-sidebar-logout):not(.bo-mobile-bar-link) { color: var(--bo-primary); }
html[data-tema="scuro"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
html[data-tema="scuro"] .dropdown-item { color: var(--bo-ink); }
html[data-tema="scuro"] .dropdown-item:hover, html[data-tema="scuro"] .dropdown-item:focus { background-color: var(--bo-surface-2); color: var(--bo-ink); }
html[data-tema="scuro"] .alert-info { background-color: var(--bo-primary-soft); color: var(--bo-ink); border-color: var(--bo-primary); }
html[data-tema="scuro"] .alert-warning { background-color: var(--bo-warn-soft); color: var(--bo-ink); border-color: var(--bo-warn); }
html[data-tema="scuro"] .alert-danger { background-color: var(--bo-bad-soft); color: var(--bo-ink); border-color: var(--bo-bad); }
html[data-tema="scuro"] .alert-success { background-color: var(--bo-ok-soft); color: var(--bo-ink); border-color: var(--bo-ok); }
html[data-tema="scuro"] .badge.bg-light, html[data-tema="scuro"] .badge.text-bg-light { background-color: var(--bo-surface-2) !important; color: var(--bo-ink) !important; }
html[data-tema="scuro"] .page-link { background-color: var(--bo-surface); color: var(--bo-primary); border-color: var(--bo-line); }
html[data-tema="scuro"] .page-item.active .page-link { background-color: var(--bo-primary); color: var(--bo-primary-ink); }
html[data-tema="scuro"] .nav-tabs .nav-link { color: var(--bo-muted); }
html[data-tema="scuro"] .nav-tabs .nav-link.active { background-color: var(--bo-surface); color: var(--bo-primary); }
html[data-tema="scuro"] .icon:not(.icon-white):not(.icon-primary) { fill: currentColor; }
html[data-tema="scuro"] .leaflet-container { background: var(--bo-surface-2); }
html[data-tema="scuro"] .leaflet-bar a { background-color: var(--bo-surface); color: var(--bo-ink); border-color: var(--bo-line); }
html[data-tema="scuro"] .breadcrumb-item, html[data-tema="scuro"] .breadcrumb-item.active, html[data-tema="scuro"] .breadcrumb-item + .breadcrumb-item::before { color: var(--bo-muted); }
html[data-tema="scuro"] .nav-tabs .nav-link, html[data-tema="scuro"] .bo-schede .nav-link { background-color: var(--bo-surface); border-color: var(--bo-line); }
html[data-tema="scuro"] .nav-tabs { background-color: var(--bo-surface); border-color: var(--bo-line); }
html[data-tema="scuro"] #main-content a.disp-chip.attivo:not(.btn):not(.dropdown-item):not(.nav-link) { color: var(--bo-primary-ink); }
html[data-tema="scuro"] .disp-tabella tr.disp-off td { background-color: var(--bo-bad-soft); }
html[data-tema="scuro"] .disp-bd--n { color: var(--bo-ink); }
html[data-tema="scuro"] .disp-bd--blu { color: var(--bo-primary); }
html[data-tema="scuro"] .disp-bd--ko { background-color: var(--bo-bad-soft); color: var(--bo-bad); }
html[data-tema="scuro"] .disp-card, html[data-tema="scuro"] .disp-card > h2, html[data-tema="scuro"] .disp-chip { border-color: var(--bo-line); }
html[data-tema="scuro"] code { color: var(--bo-ink); }
html[data-tema="scuro"] .alert code, html[data-tema="scuro"] .disp-avviso code, html[data-tema="scuro"] .disp-suggerimento code, html[data-tema="scuro"] .callout code { background-color: rgba(255, 255, 255, 0.1); border-radius: 3px; padding: 0 .25em; }

@media (prefers-color-scheme: dark) {
html:not([data-tema="chiaro"]) {
  color-scheme: dark;
  --bo-content-bg: #0e141b;
  --bo-surface: #161f29;
  --bo-surface-2: #1b2633;
  --bo-ink: #e7edf4;
  --bo-muted: #9aa8b8;
  --bo-line: #2a3644;
  --bo-field: #7d8b9b;
  --bo-primary: #5aa6f0;
  --bo-primary-ink: #0e141b;
  --bo-primary-soft: #14293f;
  --bo-ok: #5fc48a;
  --bo-ok-soft: #12291c;
  --bo-warn: #f0b35a;
  --bo-warn-soft: #2d2210;
  --bo-bad: #f08080;
  --bo-bad-soft: #2f1515;
  --bo-sidebar-bg-top: #123a63;
  --bo-sidebar-bg-bottom: #0b1f36;
}
html:not([data-tema="chiaro"]) body, html:not([data-tema="chiaro"]) #main-content { background-color: var(--bo-content-bg); color: var(--bo-ink); }
html:not([data-tema="chiaro"]) h1, html:not([data-tema="chiaro"]) h2, html:not([data-tema="chiaro"]) h3, html:not([data-tema="chiaro"]) h4, html:not([data-tema="chiaro"]) h5, html:not([data-tema="chiaro"]) h6, html:not([data-tema="chiaro"]) .h1, html:not([data-tema="chiaro"]) .h2, html:not([data-tema="chiaro"]) .h3, html:not([data-tema="chiaro"]) .h4, html:not([data-tema="chiaro"]) .h5, html:not([data-tema="chiaro"]) .h6 { color: var(--bo-ink); }
html:not([data-tema="chiaro"]) label, html:not([data-tema="chiaro"]) legend, html:not([data-tema="chiaro"]) .form-label, html:not([data-tema="chiaro"]) dt, html:not([data-tema="chiaro"]) dd, html:not([data-tema="chiaro"]) th, html:not([data-tema="chiaro"]) td, html:not([data-tema="chiaro"]) p, html:not([data-tema="chiaro"]) li { color: inherit; }
html:not([data-tema="chiaro"]) #main-content a:not(.btn):not(.dropdown-item):not(.nav-link) { color: var(--bo-primary); }
html:not([data-tema="chiaro"]) .card, html:not([data-tema="chiaro"]) .card-body, html:not([data-tema="chiaro"]) .card-header, html:not([data-tema="chiaro"]) .card-footer, html:not([data-tema="chiaro"]) .bg-white, html:not([data-tema="chiaro"]) .modal-content, html:not([data-tema="chiaro"]) .dropdown-menu, html:not([data-tema="chiaro"]) .list-group-item, html:not([data-tema="chiaro"]) .accordion-item, html:not([data-tema="chiaro"]) .accordion-button, html:not([data-tema="chiaro"]) .popover { background-color: var(--bo-surface) !important; color: var(--bo-ink); border-color: var(--bo-line); }
html:not([data-tema="chiaro"]) .card .card-body .card-title, html:not([data-tema="chiaro"]) .card .card-body .card-text, html:not([data-tema="chiaro"]) .card .card-body h5, html:not([data-tema="chiaro"]) .card .card-body h6, html:not([data-tema="chiaro"]) .card-title, html:not([data-tema="chiaro"]) .card-text { color: var(--bo-ink) !important; }
html:not([data-tema="chiaro"]) .bg-light, html:not([data-tema="chiaro"]) .table-light, html:not([data-tema="chiaro"]) .table-light > * { background-color: var(--bo-surface-2) !important; color: var(--bo-ink) !important; }
html:not([data-tema="chiaro"]) .shadow-sm, html:not([data-tema="chiaro"]) .shadow { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5) !important; }
html:not([data-tema="chiaro"]) .text-secondary, html:not([data-tema="chiaro"]) .text-muted, html:not([data-tema="chiaro"]) .form-text, html:not([data-tema="chiaro"]) .small.text-secondary { color: var(--bo-muted) !important; }
html:not([data-tema="chiaro"]) .text-dark, html:not([data-tema="chiaro"]) .text-body, html:not([data-tema="chiaro"]) .text-black { color: var(--bo-ink) !important; }
html:not([data-tema="chiaro"]) .text-primary { color: var(--bo-primary) !important; }
html:not([data-tema="chiaro"]) .text-danger { color: var(--bo-bad) !important; }
html:not([data-tema="chiaro"]) .text-success { color: var(--bo-ok) !important; }
html:not([data-tema="chiaro"]) hr { border-color: var(--bo-line); opacity: 1; }
html:not([data-tema="chiaro"]) .table { --bs-table-bg: var(--bo-surface); --bs-table-color: var(--bo-ink); --bs-table-border-color: var(--bo-line); --bs-table-striped-bg: var(--bo-surface-2); --bs-table-hover-bg: var(--bo-surface-2); --bs-table-hover-color: var(--bo-ink); color: var(--bo-ink); }
html:not([data-tema="chiaro"]) .table > :not(caption) > * > * { background-color: var(--bo-surface); color: var(--bo-ink); border-color: var(--bo-line); }
html:not([data-tema="chiaro"]) .form-control, html:not([data-tema="chiaro"]) .form-select, html:not([data-tema="chiaro"]) .input-group-text, html:not([data-tema="chiaro"]) input[type="text"], html:not([data-tema="chiaro"]) input[type="search"], html:not([data-tema="chiaro"]) input[type="email"], html:not([data-tema="chiaro"]) input[type="tel"], html:not([data-tema="chiaro"]) input[type="date"], html:not([data-tema="chiaro"]) input[type="time"], html:not([data-tema="chiaro"]) input[type="number"], html:not([data-tema="chiaro"]) input[type="password"], html:not([data-tema="chiaro"]) input[type="url"], html:not([data-tema="chiaro"]) textarea, html:not([data-tema="chiaro"]) select { background-color: var(--bo-surface); color: var(--bo-ink); border-color: var(--bo-field) !important; }
html:not([data-tema="chiaro"]) .form-control::placeholder, html:not([data-tema="chiaro"]) textarea::placeholder, html:not([data-tema="chiaro"]) input::placeholder { color: var(--bo-muted); opacity: 1; }
html:not([data-tema="chiaro"]) .form-control:disabled, html:not([data-tema="chiaro"]) .form-select:disabled { background-color: var(--bo-surface-2); color: var(--bo-muted); }
html:not([data-tema="chiaro"]) .form-check-input { background-color: var(--bo-surface); border-color: var(--bo-field); }
html:not([data-tema="chiaro"]) .form-check-input:checked { background-color: var(--bo-primary); border-color: var(--bo-primary); }
html:not([data-tema="chiaro"]) .btn-primary, html:not([data-tema="chiaro"]) .btn-primary:hover, html:not([data-tema="chiaro"]) .btn-primary:focus { background-color: var(--bo-primary); border-color: var(--bo-primary); color: var(--bo-primary-ink); }
html:not([data-tema="chiaro"]) .btn-outline-primary { color: var(--bo-primary); border-color: var(--bo-primary); box-shadow: inset 0 0 0 2px var(--bo-primary); background-color: transparent; }
html:not([data-tema="chiaro"]) .btn-outline-primary:hover, html:not([data-tema="chiaro"]) .btn-outline-primary.active { background-color: var(--bo-primary); color: var(--bo-primary-ink); }
html:not([data-tema="chiaro"]) .btn-outline-secondary, html:not([data-tema="chiaro"]) .btn-outline-dark { color: var(--bo-ink); border-color: var(--bo-line); box-shadow: inset 0 0 0 2px var(--bo-line); background-color: transparent; }
html:not([data-tema="chiaro"]) .btn-outline-success { color: var(--bo-ok); box-shadow: inset 0 0 0 2px var(--bo-ok); }
html:not([data-tema="chiaro"]) .btn-outline-danger { color: var(--bo-bad); box-shadow: inset 0 0 0 2px var(--bo-bad); }
html:not([data-tema="chiaro"]) .btn-link:not(.bo-sidebar-logout):not(.bo-mobile-bar-link) { color: var(--bo-primary); }
html:not([data-tema="chiaro"]) .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
html:not([data-tema="chiaro"]) .dropdown-item { color: var(--bo-ink); }
html:not([data-tema="chiaro"]) .dropdown-item:hover, html:not([data-tema="chiaro"]) .dropdown-item:focus { background-color: var(--bo-surface-2); color: var(--bo-ink); }
html:not([data-tema="chiaro"]) .alert-info { background-color: var(--bo-primary-soft); color: var(--bo-ink); border-color: var(--bo-primary); }
html:not([data-tema="chiaro"]) .alert-warning { background-color: var(--bo-warn-soft); color: var(--bo-ink); border-color: var(--bo-warn); }
html:not([data-tema="chiaro"]) .alert-danger { background-color: var(--bo-bad-soft); color: var(--bo-ink); border-color: var(--bo-bad); }
html:not([data-tema="chiaro"]) .alert-success { background-color: var(--bo-ok-soft); color: var(--bo-ink); border-color: var(--bo-ok); }
html:not([data-tema="chiaro"]) .badge.bg-light, html:not([data-tema="chiaro"]) .badge.text-bg-light { background-color: var(--bo-surface-2) !important; color: var(--bo-ink) !important; }
html:not([data-tema="chiaro"]) .page-link { background-color: var(--bo-surface); color: var(--bo-primary); border-color: var(--bo-line); }
html:not([data-tema="chiaro"]) .page-item.active .page-link { background-color: var(--bo-primary); color: var(--bo-primary-ink); }
html:not([data-tema="chiaro"]) .nav-tabs .nav-link { color: var(--bo-muted); }
html:not([data-tema="chiaro"]) .nav-tabs .nav-link.active { background-color: var(--bo-surface); color: var(--bo-primary); }
html:not([data-tema="chiaro"]) .icon:not(.icon-white):not(.icon-primary) { fill: currentColor; }
html:not([data-tema="chiaro"]) .leaflet-container { background: var(--bo-surface-2); }
html:not([data-tema="chiaro"]) .leaflet-bar a { background-color: var(--bo-surface); color: var(--bo-ink); border-color: var(--bo-line); }
html:not([data-tema="chiaro"]) .breadcrumb-item, html:not([data-tema="chiaro"]) .breadcrumb-item.active, html:not([data-tema="chiaro"]) .breadcrumb-item + .breadcrumb-item::before { color: var(--bo-muted); }
html:not([data-tema="chiaro"]) .nav-tabs .nav-link, html:not([data-tema="chiaro"]) .bo-schede .nav-link { background-color: var(--bo-surface); border-color: var(--bo-line); }
html:not([data-tema="chiaro"]) .nav-tabs { background-color: var(--bo-surface); border-color: var(--bo-line); }
html:not([data-tema="chiaro"]) #main-content a.disp-chip.attivo:not(.btn):not(.dropdown-item):not(.nav-link) { color: var(--bo-primary-ink); }
html:not([data-tema="chiaro"]) .disp-tabella tr.disp-off td { background-color: var(--bo-bad-soft); }
html:not([data-tema="chiaro"]) .disp-bd--n { color: var(--bo-ink); }
html:not([data-tema="chiaro"]) .disp-bd--blu { color: var(--bo-primary); }
html:not([data-tema="chiaro"]) .disp-bd--ko { background-color: var(--bo-bad-soft); color: var(--bo-bad); }
html:not([data-tema="chiaro"]) .disp-card, html:not([data-tema="chiaro"]) .disp-card > h2, html:not([data-tema="chiaro"]) .disp-chip { border-color: var(--bo-line); }
html:not([data-tema="chiaro"]) code { color: var(--bo-ink); }
html:not([data-tema="chiaro"]) .alert code, html:not([data-tema="chiaro"]) .disp-avviso code, html:not([data-tema="chiaro"]) .disp-suggerimento code, html:not([data-tema="chiaro"]) .callout code { background-color: rgba(255, 255, 255, 0.1); border-radius: 3px; padding: 0 .25em; }
}
