/* =====================================================================================
   NP15 - Tema scuro (configuratore /AspettoNP15, 11/10/2026)
   -------------------------------------------------------------------------------------
   Attivo solo con data-np-scuro="1" su <html>, messo da wwwroot/js/np15/np15-aspetto.js quando
   il cliente rende disponibile lo scuro e l'utente (o il cliente, o il dispositivo) lo sceglie.
   I colori scuri sono le variabili --npa-* scritte dal generatore: qui si vestono i componenti
   Bootstrap usati DENTRO le maschere NP15 (campi, card, tabelle, modali, menu a tendina), che
   non leggono le variabili NP15. Le maschere V1 non sono toccate: restano chiare.
   Caricato sempre dal _Layout: senza l'attributo nessuna regola si applica.
   ===================================================================================== */

/* contenitori NP15 (pagina, modali, temi dei moduli) */
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .cerca-anag-np15, .note-np15, .estr-np15, .pol-np15) {
    color-scheme: dark;
    color: var(--npa-fg, #e5e9f2);
}

/* pagina che ospita una maschera NP15: fondo, titolo e briciole di pane */
html[data-np-scuro="1"] :is(.page-content-wrapper, .page-content):has(:is(.np15, .pol-np15, .estr-np15)) { background: var(--npa-bg, #10141b) !important; color: var(--npa-fg, #e5e9f2); }
html[data-np-scuro="1"] .page-content:has(:is(.np15, .pol-np15, .estr-np15)) :is(.subheader-title, .subheader-title small, .breadcrumb, .breadcrumb-item, .breadcrumb-item a, .breadcrumb-item.active, .breadcrumb-item + .breadcrumb-item::before) { color: var(--npa-fg2, #c3cad8) !important; }

/* testi */
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .pol-np15) :is(h1, h2, h3, h4, h5, h6, label, legend, .text-dark, .text-body) { color: var(--npa-fg, #e5e9f2) !important; }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .pol-np15) :is(.text-muted, small.text-muted, .form-text, .help-block) { color: var(--npa-muted, #9aa4b8) !important; }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .pol-np15) hr { border-color: var(--npa-line, #2a3140); }

/* campi */
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .cerca-anag-np15, .pol-np15) :is(.form-control, .custom-select, select, textarea, input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=button]):not([type=submit])) {
    background-color: var(--npa-surface2, #1a202b); color: var(--npa-fg, #e5e9f2); border-color: var(--npa-line, #2a3140);
}
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .cerca-anag-np15, .pol-np15) :is(.form-control, input, textarea)::placeholder { color: var(--npa-faint, #7c869c); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .cerca-anag-np15, .pol-np15) :is(.form-control:disabled, .form-control[readonly], .custom-select:disabled) { background-color: var(--npa-surface3, #1f2633); color: var(--npa-muted, #9aa4b8); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .pol-np15) .input-group-text { background-color: var(--npa-surface3, #1f2633); color: var(--npa-fg2, #c3cad8); border-color: var(--npa-line, #2a3140); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .select2-container--default :is(.select2-selection--single, .select2-selection--multiple) { background-color: var(--npa-surface2, #1a202b); border-color: var(--npa-line, #2a3140); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--npa-fg, #e5e9f2); }

/* card, pannelli, liste, schede */
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .pol-np15) :is(.card, .card-header, .card-body, .card-footer, .panel, .panel-hdr, .panel-container, .panel-content, .list-group-item, .jumbotron) {
    background-color: var(--npa-surface, #161b24); color: var(--npa-fg, #e5e9f2); border-color: var(--npa-line, #2a3140);
}
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .pol-np15) :is(.bg-white, .bg-light) { background-color: var(--npa-surface, #161b24) !important; }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .pol-np15) :is(.border, .border-top, .border-bottom, .border-left, .border-right) { border-color: var(--npa-line, #2a3140) !important; }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .nav-tabs { border-color: var(--npa-line, #2a3140); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .nav-tabs .nav-link { color: var(--npa-muted, #9aa4b8); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .nav-tabs .nav-link.active { background-color: var(--npa-surface, #161b24); color: var(--npa-fg, #e5e9f2); border-color: var(--npa-line, #2a3140) var(--npa-line, #2a3140) transparent; }

/* tabelle (anche DataTables) */
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .table { color: var(--npa-fg, #e5e9f2); background-color: transparent; }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .table :is(th, td) { border-color: var(--npa-line2, #222833); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .table :is(thead th, .thead-light th) { background-color: var(--npa-surface2, #1a202b); color: var(--npa-muted, #9aa4b8); border-color: var(--npa-line, #2a3140); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .table-striped tbody tr:nth-of-type(odd) { background-color: rgba(255,255,255,.025); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .table-hover tbody tr:hover { background-color: rgba(255,255,255,.05); color: var(--npa-fg, #e5e9f2); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) :is(.dataTables_wrapper, .dt-container) { color: var(--npa-fg2, #c3cad8); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .page-link { background-color: var(--npa-surface, #161b24); color: var(--npa-fg, #e5e9f2); border-color: var(--npa-line, #2a3140); }

/* modali e menu a tendina aperti da una maschera NP15 */
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15-modal, .pol-np15) :is(.modal-content, .modal-header, .modal-body, .modal-footer) { background-color: var(--npa-surface, #161b24); color: var(--npa-fg, #e5e9f2); border-color: var(--npa-line, #2a3140); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15-modal, .pol-np15) :is(.modal-title, .close) { color: var(--npa-fg, #e5e9f2); text-shadow: none; }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .dropdown-menu { background-color: var(--npa-surface, #161b24); border-color: var(--npa-line, #2a3140); color: var(--npa-fg, #e5e9f2); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .dropdown-item { color: var(--npa-fg, #e5e9f2); }
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .pol-np15) .dropdown-item:is(:hover, :focus) { background-color: var(--npa-surface3, #1f2633); color: var(--npa-fg, #e5e9f2); }

/* bottoni chiari di Bootstrap */
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .pol-np15) :is(.btn-light, .btn-default, .btn-outline-secondary, .btn-secondary) {
    background-color: var(--npa-surface2, #1a202b); color: var(--npa-fg, #e5e9f2); border-color: var(--npa-line, #2a3140);
}
html[data-np-scuro="1"] :is(.np15, .np15-modali, .np-modal, .anag-np15, .anag-np15-modal, .pol-np15) :is(.btn-light, .btn-default, .btn-outline-secondary, .btn-secondary):hover { background-color: var(--npa-surface3, #1f2633); color: var(--npa-fg, #e5e9f2); }

/* menu NP15 (barra e pannello delle aree) */
html[data-np-scuro="1"] .nm-host, html[data-np-scuro="1"] .nm-pal-bg {
    --nm-fg: var(--npa-fg); --nm-fg2: var(--npa-fg2); --nm-muted: var(--npa-muted); --nm-faint: var(--npa-faint);
    --nm-surface: var(--npa-surface); --nm-surface2: var(--npa-surface2); --nm-surface3: var(--npa-surface3);
    --nm-line: var(--npa-line); --nm-line2: var(--npa-line2);
    color-scheme: dark;
}

/* menu classico in alto (chi non ha il menu NP15): solo la barra, le tendine restano quelle del tema */
@media (min-width: 992px) {
    html[data-np-scuro="1"] .nav-function-top .page-wrapper .page-sidebar:not(.nm-host) { background: var(--npa-surface, #161b24) !important; border-bottom: 1px solid var(--npa-line, #2a3140); }
    html[data-np-scuro="1"] .nav-function-top .page-sidebar:not(.nm-host) .primary-nav .nav-menu > li > a { color: var(--npa-fg2, #c3cad8) !important; }
    html[data-np-scuro="1"] .nav-function-top .page-sidebar:not(.nm-host) .primary-nav .nav-menu > li:hover > a,
    html[data-np-scuro="1"] .nav-function-top .page-sidebar:not(.nm-host) .primary-nav .nav-menu > li.active > a { color: var(--npa-fg, #e5e9f2) !important; }
}
