/*
 * Tema scuro RIC: un solo strato, caricato dopo style.bundle.css e
 * ric_brand_tokens.css (layouts/shared/_scripts). Ogni regola vive sotto
 * [data-bs-theme="dark"]: il tema chiaro non cambia.
 *
 * Prima i toni (una volta sola), poi le variabili di Bootstrap/Metronic che
 * i componenti gia' leggono (cosi' cambiano insieme card, tabelle, campi,
 * menu, select2, flatpickr, DataTables...), infine poche regole dove il
 * bundle scrive colori fissi. Le pagine ridisegnate (ric_overview.css,
 * notifications.css, ...) leggono gli stessi toni --ric-dark-* e --ric-tone-*.
 *
 * Contrasti (misurati, WCAG AA): testo >= 4.5:1 su superficie e rialzo;
 * bordi dei campi e icone >= 3:1 sulla superficie.
 *   superficie #1f1c21: testo 12.1, attenuato 7.6, tenue 6.3, segnaposto 5.6,
 *   bordo campo 3.5, bordeaux chiaro (#efbdc9) 10.3, rosso 8.3, verde 9.9,
 *   ambra 10.1, blu 8.9, viola 8.7; testo bianco sui pieni: rosso 5.4,
 *   ambra 4.7, viola 6.5, blu 6.3, verde 6.6, bordeaux 9.9.
 */
[data-bs-theme="dark"] {
    color-scheme: dark;

    /* Superfici: dal piu' profondo (pagina) al piu' alto (hover). */
    --ric-dark-page: #161418;
    --ric-dark-page-rgb: 22, 20, 24;
    --ric-dark-surface: #1f1c21;
    --ric-dark-surface-rgb: 31, 28, 33;
    --ric-dark-raised: #29252b;
    --ric-dark-raised-rgb: 41, 37, 43;
    --ric-dark-hover: #332e35;
    --ric-dark-line: #3b3439;
    --ric-dark-line-soft: #2f2a30;
    --ric-dark-line-strong: #7c6f77;

    /* Testo */
    --ric-dark-ink: #f2eaee;
    --ric-dark-text: #e2d8dd;
    --ric-dark-text-rgb: 226, 216, 221;
    --ric-dark-muted: #b9aab2;
    --ric-dark-subtle: #a89aa2;
    --ric-dark-placeholder: #9e9198;

    /* Toni di stato: testo / fondo tenue / bordo / pieno (testo bianco).
       Gli stessi delle notifiche (notifications.css): un rosso, un verde,
       un blu... uguali in ogni pagina. */
    --ric-tone-success: #84d8ab;
    --ric-tone-success-soft: #19392a;
    --ric-tone-success-line: #3f7755;
    --ric-tone-success-fill: #1f6b46;
    --ric-tone-danger: #f3a097;
    --ric-tone-danger-soft: #3a1f24;
    --ric-tone-danger-line: #6e3540;
    --ric-tone-danger-fill: #c0364a;
    --ric-tone-danger-fill-hover: #a32c3e;
    --ric-tone-warning: #e8c46e;
    --ric-tone-warning-soft: #362c15;
    --ric-tone-warning-line: #6b5627;
    --ric-tone-warning-fill: #9a6b00;
    --ric-tone-info: #a3bfe0;
    --ric-tone-info-soft: #1c2940;
    --ric-tone-info-line: #34507a;
    --ric-tone-info-fill: #2f5fa8;
    --ric-tone-violet: #c3b2ea;
    --ric-tone-violet-soft: #2a2140;
    --ric-tone-violet-line: #4d3d78;
    --ric-tone-violet-fill: #6b45c2;
    --ric-tone-gold: #e0c766;
    --ric-tone-gold-soft: #352c17;
    --ric-tone-gold-line: #66552c;

    /* Toni delle pagine ridisegnate (ric_overview.css) anche fuori da
       .ric-overview, dove le regole li leggono con un valore di ripiego
       chiaro: in scuro valgono questi. --ov-*-fill: pieni con testo bianco. */
    --ov-brand: var(--ric-brand-text);
    --ov-brand-fill: var(--ric-brand-start);
    --ov-deep: #e8bbc7;
    --ov-deep-fill: var(--ric-brand-mid);
    --ov-end: var(--ric-dark-ink);
    --ov-green: var(--ric-tone-success);
    --ov-green-fill: var(--ric-tone-success-fill);
    --ov-wash: #3a2a30;
    --ov-wash-line: #73515b;
    --ov-line: var(--ric-dark-line);
    --ov-ink: #eadde3;
    --ov-muted: var(--ric-dark-muted);
    --ov-surface: var(--ric-dark-surface);

    /* Alone chiaro dietro le icone a colori disegnate per il fondo chiaro
       (set della dashboard e loro anteprime: la bara marrone scuro, il carro
       nero...). Resta pieno fin quasi al bordo, dove passano le sagome
       larghe come la bara, poi sfuma nella scheda. Misurato sul bordo delle
       sagome di tutte le 80 icone: sotto 1.6:1 da 27 a 16, la bara della
       Plastilina da 1.35 a oltre 1.6. */
    --ric-dark-icon-halo: radial-gradient(closest-side, rgba(245, 232, 236, .46), rgba(245, 232, 236, .38) 72%, rgba(245, 232, 236, .18) 92%, rgba(245, 232, 236, 0));

    /* Anello di focus: il bordeaux chiaro, piu' pieno che in chiaro. */
    --ric-brand-focus: rgba(239, 189, 201, .62);
    --ric-dark-focus: #efbdc9;
    /* Bordo del campo con il focus (ric_brand_tokens.css): bordeaux chiaro. */
    --ric-focus-border: #efbdc9;

    /* Nomi del vecchio tema scuro ancora letti da qualche pagina. */
    --bs-dark-bg: var(--ric-dark-page);
    --bs-dark-bg-secondary: var(--ric-dark-surface);
    --bs-dark-bg-tertiary: var(--ric-dark-raised);
    --bs-dark-bg-elevated: var(--ric-dark-hover);
    --bs-dark-bg-hover: var(--ric-dark-hover);

    /* ── Bootstrap / Metronic ───────────────────────────────────────── */
    --bs-page-bg: var(--ric-dark-page);
    --bs-app-blank-bg: var(--ric-dark-page);
    --bs-body-bg: var(--ric-dark-surface);
    --bs-body-bg-rgb: var(--ric-dark-surface-rgb);
    --bs-body-color: var(--ric-dark-text);
    --bs-body-color-rgb: var(--ric-dark-text-rgb);
    --bs-emphasis-color: #ffffff;
    --bs-heading-color: var(--ric-dark-ink);
    --bs-secondary-color: var(--ric-dark-muted);
    --bs-tertiary-color: var(--ric-dark-subtle);
    --bs-secondary-bg: var(--ric-dark-raised);
    --bs-tertiary-bg: var(--ric-dark-raised);
    --bs-border-color: var(--ric-dark-line);
    --bs-border-color-translucent: rgba(242, 234, 238, .12);
    --bs-border-dashed-color: #4a4248;
    --bs-text-muted: var(--ric-dark-muted);

    --bs-gray-100: #29252b;
    --bs-gray-100-rgb: 41, 37, 43;
    --bs-gray-200: #322d34;
    --bs-gray-200-rgb: 50, 45, 52;
    --bs-gray-300: #3b3439;
    --bs-gray-300-rgb: 59, 52, 57;
    --bs-gray-400: #5a5057;
    --bs-gray-400-rgb: 90, 80, 87;
    --bs-gray-500: #9e9198;
    --bs-gray-500-rgb: 158, 145, 152;
    --bs-gray-600: #b0a3aa;
    --bs-gray-600-rgb: 176, 163, 170;
    --bs-gray-700: #c9bcc3;
    --bs-gray-700-rgb: 201, 188, 195;
    --bs-gray-800: #ddd2d8;
    --bs-gray-800-rgb: 221, 210, 216;
    --bs-gray-900: #f2eaee;
    --bs-gray-900-rgb: 242, 234, 238;

    /* .text-gray-*: testo e icone leggibili anche nei toni "chiari". */
    --bs-text-gray-100: #f2eaee;
    --bs-text-gray-200: #e2d8dd;
    --bs-text-gray-300: #988b92;
    --bs-text-gray-400: #a89aa2;
    --bs-text-gray-500: #b3a6ad;
    --bs-text-gray-600: #c1b4bb;
    --bs-text-gray-700: #d2c6cc;
    --bs-text-gray-800: #e2d8dd;
    --bs-text-gray-900: #f2eaee;
    --bs-text-secondary: var(--ric-dark-muted);
    --bs-text-dark: var(--ric-dark-ink);
    --bs-text-light: var(--ric-dark-muted);

    --bs-light: var(--ric-dark-raised);
    --bs-light-rgb: var(--ric-dark-raised-rgb);
    --bs-light-active: var(--ric-dark-hover);
    --bs-light-light: var(--ric-dark-raised);
    --bs-light-inverse: var(--ric-dark-text);
    --bs-light-clarity: rgba(242, 234, 238, .08);
    --bs-secondary: #4a4248;
    --bs-secondary-rgb: 74, 66, 72;
    --bs-secondary-active: #5a5057;
    --bs-secondary-light: var(--ric-dark-raised);
    --bs-secondary-inverse: #ffffff;
    --bs-dark: var(--ric-dark-ink);
    --bs-dark-light: var(--ric-dark-raised);

    --bs-danger: var(--ric-tone-danger-fill);
    --bs-danger-rgb: 192, 54, 74;
    --bs-danger-active: var(--ric-tone-danger-fill-hover);
    --bs-danger-light: var(--ric-tone-danger-soft);
    --bs-danger-inverse: #ffffff;
    --bs-danger-clarity: rgba(243, 160, 151, .20);
    --bs-text-danger: var(--ric-tone-danger);
    --bs-danger-text-emphasis: var(--ric-tone-danger);
    --bs-danger-bg-subtle: var(--ric-tone-danger-soft);
    --bs-danger-border-subtle: var(--ric-tone-danger-line);

    --bs-warning: var(--ric-tone-warning-fill);
    --bs-warning-rgb: 154, 107, 0;
    --bs-warning-active: #845b00;
    --bs-warning-light: var(--ric-tone-warning-soft);
    --bs-warning-inverse: #ffffff;
    --bs-warning-clarity: rgba(232, 196, 110, .20);
    --bs-text-warning: var(--ric-tone-warning);
    --bs-warning-text-emphasis: var(--ric-tone-warning);
    --bs-warning-bg-subtle: var(--ric-tone-warning-soft);
    --bs-warning-border-subtle: var(--ric-tone-warning-line);

    --bs-info: var(--ric-tone-violet-fill);
    --bs-info-rgb: 107, 69, 194;
    --bs-info-active: #5a38a8;
    --bs-info-light: var(--ric-tone-violet-soft);
    --bs-info-inverse: #ffffff;
    --bs-info-clarity: rgba(195, 178, 234, .20);
    --bs-text-info: var(--ric-tone-violet);
    --bs-info-text-emphasis: var(--ric-tone-violet);
    --bs-info-bg-subtle: var(--ric-tone-violet-soft);
    --bs-info-border-subtle: var(--ric-tone-violet-line);

    --bs-success-light: var(--ric-tone-success-soft);
    --bs-success-inverse: #ffffff;

    --bs-component-active-bg: var(--ric-brand-start);
    --bs-component-active-color: #ffffff;
    --bs-component-hover-bg: var(--ric-dark-hover);
    --bs-component-hover-color: var(--ric-brand-text);
    --bs-component-checked-bg: var(--ric-brand-start);
    --bs-component-checked-color: #ffffff;

    --bs-input-color: var(--ric-dark-text);
    --bs-input-bg: var(--ric-dark-surface);
    --bs-input-solid-color: var(--ric-dark-text);
    --bs-input-solid-bg: var(--ric-dark-raised);
    --bs-input-solid-bg-focus: var(--ric-dark-hover);
    --bs-input-solid-placeholder-color: var(--ric-dark-placeholder);

    --bs-root-card-border-color: var(--ric-dark-line);
    --bs-root-card-box-shadow: 0 3px 12px rgba(0, 0, 0, .22);
    --bs-table-striped-bg: rgba(242, 234, 238, .03);
    --bs-dropdown-bg: var(--ric-dark-raised);
    --bs-dropdown-box-shadow: 0 10px 30px rgba(0, 0, 0, .5);
    --bs-menu-dropdown-bg-color: var(--ric-dark-raised);
    --bs-menu-dropdown-box-shadow: 0 10px 30px rgba(0, 0, 0, .5);
    --bs-menu-heading-color: var(--ric-dark-muted);
    --bs-menu-link-color-hover: var(--ric-brand-text);
    --bs-menu-link-color-show: var(--ric-brand-text);
    --bs-menu-link-color-here: var(--ric-brand-text);
    --bs-menu-link-color-active: var(--ric-brand-text);
    --bs-menu-link-bg-color-hover: var(--ric-dark-hover);
    --bs-menu-link-bg-color-show: var(--ric-dark-hover);
    --bs-menu-link-bg-color-here: var(--ric-dark-hover);
    --bs-menu-link-bg-color-active: var(--ric-dark-hover);
    --bs-drawer-bg-color: var(--ric-dark-surface);
    --bs-symbol-label-bg: var(--ric-dark-raised);
    --bs-symbol-border-color: rgba(242, 234, 238, .35);
    --bs-bullet-bg-color: var(--bs-gray-400);
    --bs-code-bg: var(--ric-dark-raised);
    --bs-code-color: #f0b6c8;
    --bs-scrolltop-bg-color: var(--ric-brand-start);
    --bs-scrolltop-bg-color-hover: var(--ric-brand-mid);
    --bs-scrolltop-opacity-on: .85;
    --bs-overlay-bg: rgba(0, 0, 0, .35);
    --bs-blockui-overlay-bg: rgba(0, 0, 0, .35);
    --bs-engage-btn-bg: var(--ric-dark-raised);
    --bs-engage-btn-border-color: var(--ric-dark-line);
    --bs-highlight-bg: #5c4612;
    --bs-highlight-color: var(--ric-dark-ink);
}

/* ── Base ─────────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] body,
[data-bs-theme="dark"] body.app-blank {
    background-color: var(--ric-dark-page);
    color: var(--ric-dark-text);
}

[data-bs-theme="dark"] .text-muted,
[data-bs-theme="dark"] .text-secondary {
    color: var(--ric-dark-muted) !important;
}

[data-bs-theme="dark"] .form-text,
[data-bs-theme="dark"] .text-body-secondary,
[data-bs-theme="dark"] .text-body-tertiary {
    color: var(--ric-dark-muted) !important;
}

[data-bs-theme="dark"] .text-dark { color: var(--ric-dark-ink) !important; }
[data-bs-theme="dark"] .text-danger,
[data-bs-theme="dark"] .link-danger { color: var(--ric-tone-danger) !important; }
[data-bs-theme="dark"] .text-warning { color: var(--ric-tone-warning) !important; }
[data-bs-theme="dark"] .text-info { color: var(--ric-tone-violet) !important; }
[data-bs-theme="dark"] .text-hover-primary:hover,
[data-bs-theme="dark"] .text-active-primary.active { color: var(--ric-brand-text) !important; }
[data-bs-theme="dark"] .text-hover-danger:hover { color: var(--ric-tone-danger) !important; }

/* Icone Keenicons a due toni con colore di stato: il tono chiaro. */
[data-bs-theme="dark"] :is(.text-danger, .text-warning, .text-info, .text-success, .text-muted, .text-secondary) .ki-duotone [class^="path"]::before { color: inherit; }

[data-bs-theme="dark"] hr,
[data-bs-theme="dark"] .separator { border-color: var(--ric-dark-line); }
[data-bs-theme="dark"] .separator.separator-dashed { border-bottom-color: #4a4248; }

[data-bs-theme="dark"] ::selection { background: rgba(239, 189, 201, .35); color: #ffffff; }

[data-bs-theme="dark"] ::-webkit-scrollbar-thumb { background-color: #4a4248; }
[data-bs-theme="dark"] ::-webkit-scrollbar-track { background-color: transparent; }

/* ── Card ─────────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .card {
    --bs-card-bg: var(--ric-dark-surface);
    --bs-card-border-color: var(--ric-dark-line);
    --bs-card-title-color: var(--ric-dark-ink);
    --bs-card-cap-bg: transparent;
    --bs-card-box-shadow: 0 3px 12px rgba(0, 0, 0, .22);
}
[data-bs-theme="dark"] .card.card-bordered { border-color: var(--ric-dark-line); }
[data-bs-theme="dark"] .card .card-header,
[data-bs-theme="dark"] .card .card-footer { border-color: var(--ric-dark-line); }
/* Stessa vita della card in chiaro (_light_css): si alza un poco al
   passaggio; con un menu Azioni aperto resta sopra le card che seguono. */
[data-bs-theme="dark"] .card { transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease; }
[data-bs-theme="dark"] .card:hover { box-shadow: 0 6px 18px rgba(0, 0, 0, .35); transform: translateY(-2px); border-color: var(--ric-brand-border); }
[data-bs-theme="dark"] .card:has(.menu-sub.show) { z-index: 110; }
[data-bs-theme="dark"] .card > .card-header,
[data-bs-theme="dark"] .card > .card-footer { background-color: rgba(242, 234, 238, .025); }
[data-bs-theme="dark"] .card .card-header .card-title,
[data-bs-theme="dark"] .card .card-header .card-title .card-label { color: var(--ric-dark-ink); }
/* Icone nei titoli delle card (bordeaux in chiaro): bordeaux chiaro. */
[data-bs-theme="dark"] .card .card-title > i:where(:not([class*="text-"])),
[data-bs-theme="dark"] .ric-card .card-title > i { color: var(--ric-brand-text) !important; }

[data-bs-theme="dark"] .bg-light,
[data-bs-theme="dark"] .bg-gray-100,
[data-bs-theme="dark"] .bg-light-dark { background-color: var(--ric-dark-raised) !important; }
[data-bs-theme="dark"] .bg-white,
[data-bs-theme="dark"] .bg-body { background-color: var(--ric-dark-surface) !important; }
[data-bs-theme="dark"] .bg-light-primary { background-color: var(--ric-brand-soft) !important; }
[data-bs-theme="dark"] .bg-light-success { background-color: var(--ric-tone-success-soft) !important; }
[data-bs-theme="dark"] .bg-light-danger { background-color: var(--ric-tone-danger-soft) !important; }
[data-bs-theme="dark"] .bg-light-warning { background-color: var(--ric-tone-warning-soft) !important; }
[data-bs-theme="dark"] .bg-light-info { background-color: var(--ric-tone-violet-soft) !important; }


/* ── Pulsanti ─────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .btn.btn-light,
[data-bs-theme="dark"] .btn.btn-secondary,
[data-bs-theme="dark"] .btn.btn-light-secondary {
    color: var(--ric-dark-text);
    background-color: var(--ric-dark-raised);
    border-color: var(--ric-dark-line);
}
[data-bs-theme="dark"] .btn.btn-light :is(i, .svg-icon),
[data-bs-theme="dark"] .btn.btn-secondary :is(i, .svg-icon),
[data-bs-theme="dark"] .btn.btn-light-secondary :is(i, .svg-icon) { color: var(--ric-dark-muted); }
[data-bs-theme="dark"] :is(.btn.btn-light, .btn.btn-secondary, .btn.btn-light-secondary):not(:disabled):not(.disabled):is(:hover, :focus-visible, :active, .active, .show) {
    color: var(--ric-dark-ink) !important;
    background-color: var(--ric-dark-hover) !important;
    border-color: var(--ric-dark-line-strong) !important;
}
[data-bs-theme="dark"] :is(.btn.btn-light, .btn.btn-secondary, .btn.btn-light-secondary):not(:disabled):not(.disabled):is(:hover, :focus-visible, :active, .active, .show) :is(i, .svg-icon) { color: var(--ric-brand-text) !important; }

/* Azioni distruttive: rosso pieno con testo bianco (5.4:1), come in chiaro
   sono il pulsante piu' forte della riga; mai beige, mai "spente". */
[data-bs-theme="dark"] .btn.btn-danger {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: var(--ric-tone-danger-fill);
    --bs-btn-border-color: var(--ric-tone-danger-fill);
    color: #ffffff !important;
    background: var(--ric-tone-danger-fill) !important;
    border: 1px solid var(--ric-tone-danger-fill) !important;
    box-shadow: none;
}
[data-bs-theme="dark"] .btn.btn-danger:not(:disabled):not(.disabled):is(:hover, :focus-visible, :active, .active, .show) {
    color: #ffffff !important;
    background: var(--ric-tone-danger-fill-hover) !important;
    border-color: var(--ric-tone-danger-fill-hover) !important;
}
[data-bs-theme="dark"] .btn.btn-danger :is(i, .svg-icon) { color: #ffffff !important; }

[data-bs-theme="dark"] .btn.btn-light-danger,
[data-bs-theme="dark"] .btn.btn-outline-danger,
[data-bs-theme="dark"] .ric-row-action--danger.btn {
    color: var(--ric-tone-danger) !important;
    background-color: var(--ric-tone-danger-soft) !important;
    border: 1px solid var(--ric-tone-danger-line) !important;
}
[data-bs-theme="dark"] .btn.btn-outline-danger { background-color: transparent !important; border-color: var(--ric-tone-danger) !important; }
[data-bs-theme="dark"] :is(.btn.btn-light-danger, .btn.btn-outline-danger, .ric-row-action--danger.btn) :is(i, .svg-icon) { color: inherit !important; }
[data-bs-theme="dark"] :is(.btn.btn-light-danger, .btn.btn-outline-danger, .ric-row-action--danger.btn):not(:disabled):not(.disabled):is(:hover, :focus-visible, :active, .active, .show) {
    color: #ffffff !important;
    background-color: var(--ric-tone-danger-fill) !important;
    border-color: var(--ric-tone-danger-fill) !important;
}
[data-bs-theme="dark"] :is(.btn.btn-light-danger, .btn.btn-outline-danger, .ric-row-action--danger.btn):not(:disabled):not(.disabled):is(:hover, :focus-visible, :active, .active, .show) :is(i, .svg-icon) { color: #ffffff !important; }
[data-bs-theme="dark"] .btn.btn-active-light-danger:is(:hover, .active) { color: var(--ric-tone-danger) !important; background-color: var(--ric-tone-danger-soft) !important; }

[data-bs-theme="dark"] .btn.btn-warning { color: #ffffff; background-color: var(--ric-tone-warning-fill); border-color: var(--ric-tone-warning-fill); }
[data-bs-theme="dark"] .btn.btn-light-warning { color: var(--ric-tone-warning) !important; background-color: var(--ric-tone-warning-soft) !important; border: 1px solid var(--ric-tone-warning-line); }
[data-bs-theme="dark"] .btn.btn-light-warning :is(i, .svg-icon) { color: inherit !important; }
[data-bs-theme="dark"] .btn.btn-info { color: #ffffff; background-color: var(--ric-tone-violet-fill); border-color: var(--ric-tone-violet-fill); }
[data-bs-theme="dark"] .btn.btn-light-info { color: var(--ric-tone-violet) !important; background-color: var(--ric-tone-violet-soft) !important; border: 1px solid var(--ric-tone-violet-line); }
[data-bs-theme="dark"] .btn.btn-light-info :is(i, .svg-icon) { color: inherit !important; }
[data-bs-theme="dark"] .btn.btn-light-success { border: 1px solid var(--ric-success-border) !important; }
[data-bs-theme="dark"] .btn.btn-light-primary { border: 1px solid var(--ric-brand-border) !important; }
[data-bs-theme="dark"] .btn.btn-dark { color: var(--ric-dark-page); background-color: var(--ric-dark-ink); border-color: var(--ric-dark-ink); }

[data-bs-theme="dark"] .btn.btn-color-gray-400,
[data-bs-theme="dark"] .btn.btn-color-gray-500,
[data-bs-theme="dark"] .btn.btn-color-gray-600,
[data-bs-theme="dark"] .btn.btn-color-muted { color: var(--ric-dark-muted) !important; }
[data-bs-theme="dark"] .btn.btn-color-gray-400 i,
[data-bs-theme="dark"] .btn.btn-color-gray-500 i,
[data-bs-theme="dark"] .btn.btn-color-gray-600 i,
[data-bs-theme="dark"] .btn.btn-color-muted i { color: inherit !important; }
[data-bs-theme="dark"] .btn.btn-active-color-primary:is(:hover, .active, :focus-visible),
[data-bs-theme="dark"] .btn.btn-active-color-primary:is(:hover, .active, :focus-visible) i,
[data-bs-theme="dark"] .btn.btn-active-light-primary:is(:hover, .active, :focus-visible),
[data-bs-theme="dark"] .btn.btn-active-light-primary:is(:hover, .active, :focus-visible) i { color: var(--ric-brand-text) !important; }
[data-bs-theme="dark"] .btn.btn-active-light-primary:is(:hover, .active, :focus-visible) { background-color: var(--ric-brand-soft) !important; }

/* Focus da tastiera: Metronic toglie l'outline a ogni .btn; in scuro
   l'anello e' bordeaux chiaro pieno (>= 3:1 su ogni superficie). */
[data-bs-theme="dark"] .btn:focus-visible,
[data-bs-theme="dark"] label.btn:focus-within {
    outline: 2px solid var(--ric-dark-focus) !important;
    outline-offset: 2px;
}
:where([data-bs-theme="dark"]) :is(a, button, summary, [tabindex]):focus-visible {
    outline: 2px solid var(--ric-dark-focus);
    outline-offset: 2px;
}
[data-bs-theme="dark"] #kt_header .header-actions > div > .btn-icon:focus-visible,
[data-bs-theme="dark"] #kt_header #kt_aside_toggle:focus-visible,
[data-bs-theme="dark"] #kt_header #kt_header_user_menu_toggle > .btn:focus-visible { outline-color: var(--ric-header-ink, #f0f0f0) !important; }

/* ── Campi ────────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select,
[data-bs-theme="dark"] .input-group-text,
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-selection {
    color: var(--ric-dark-text);
    border-color: var(--ric-dark-line-strong);
}
[data-bs-theme="dark"] .form-control:not(.form-control-solid):not(.form-control-transparent),
[data-bs-theme="dark"] .form-select:not(.form-select-solid):not(.form-select-transparent) { background-color: var(--ric-dark-surface); }
[data-bs-theme="dark"] .form-control.form-control-solid,
[data-bs-theme="dark"] .form-select.form-select-solid,
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-selection.form-select-solid {
    color: var(--ric-dark-text);
    background-color: var(--ric-dark-raised);
    border-color: var(--ric-dark-line-strong);
}
[data-bs-theme="dark"] .form-control.form-control-solid:focus,
[data-bs-theme="dark"] .form-select.form-select-solid:focus,
[data-bs-theme="dark"] .form-control.form-control-solid.active { background-color: var(--ric-dark-hover); }
[data-bs-theme="dark"] .input-group-text { background-color: var(--ric-dark-raised); }
[data-bs-theme="dark"] .input-group-solid .input-group-text,
[data-bs-theme="dark"] .input-group-solid .form-control { border-color: var(--ric-dark-line-strong); }
[data-bs-theme="dark"] .form-control::placeholder,
[data-bs-theme="dark"] .form-select::placeholder,
[data-bs-theme="dark"] .select2-selection__placeholder,
[data-bs-theme="dark"] textarea::placeholder,
[data-bs-theme="dark"] input::placeholder { color: var(--ric-dark-placeholder) !important; opacity: 1; }
/* Campo «solid» con il fuoco: il fondo passa a --ric-dark-hover (#332e35) e
   il segnaposto #9e9198 scendeva a 4.4:1 (es. il campo del pannello
   Scansione del listino, che si apre gia' col fuoco); il tenue #a89aa2 fa
   4.9:1 e resta piu' spento del valore digitato (#e2d8dd). */
[data-bs-theme="dark"] .form-control.form-control-solid:focus::placeholder,
[data-bs-theme="dark"] .form-control.form-control-solid.active::placeholder { color: var(--ric-dark-subtle) !important; }
[data-bs-theme="dark"] .form-control:disabled,
[data-bs-theme="dark"] .form-select:disabled,
[data-bs-theme="dark"] .form-control[readonly]:not(.flatpickr-input):not(.form-control-solid) {
    color: var(--ric-dark-muted);
    background-color: var(--ric-dark-page);
    border-color: var(--ric-dark-line);
}
[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
    color: var(--ric-dark-ink);
    border-color: var(--ric-brand-text) !important;
    box-shadow: 0 0 0 .2rem var(--ric-brand-focus) !important;
}
[data-bs-theme="dark"] .form-select:not([multiple]):not([size]) {
    --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23c9bcc3' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}
[data-bs-theme="dark"] .form-label,
[data-bs-theme="dark"] .col-form-label,
[data-bs-theme="dark"] .form-check-label { color: var(--ric-dark-text); }
[data-bs-theme="dark"] .required::after { color: var(--ric-tone-danger); }
[data-bs-theme="dark"] .form-check-input:not(:checked):not(:indeterminate) {
    background-color: var(--ric-dark-surface);
    border-color: var(--ric-dark-line-strong);
}
[data-bs-theme="dark"] .form-check-custom.form-check-solid .form-check-input:not(:checked) { background-color: var(--ric-dark-raised); border: 1px solid var(--ric-dark-line-strong); }
[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked) {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23c9bcc3'/%3e%3c/svg%3e");
}
[data-bs-theme="dark"] .form-check-input:focus-visible { outline: 2px solid var(--ric-dark-focus); outline-offset: 2px; }
[data-bs-theme="dark"] .invalid-feedback { color: var(--ric-tone-danger); }
[data-bs-theme="dark"] .valid-feedback { color: var(--ric-tone-success); }

/* ── Tabelle e DataTables ─────────────────────────────────────────────── */
[data-bs-theme="dark"] .table {
    --bs-table-color: var(--ric-dark-text);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--ric-dark-line);
    --bs-table-striped-color: var(--ric-dark-text);
    --bs-table-striped-bg: rgba(242, 234, 238, .03);
    --bs-table-hover-color: var(--ric-dark-ink);
    --bs-table-hover-bg: rgba(239, 189, 201, .06);
    --bs-table-active-bg: rgba(239, 189, 201, .08);
}
[data-bs-theme="dark"] .table.table-row-dashed tr,
[data-bs-theme="dark"] .table.table-row-bordered tr,
[data-bs-theme="dark"] .table :is(thead, tbody, tfoot, tr, td, th) { border-color: var(--ric-dark-line); }
[data-bs-theme="dark"] .table.table-row-gray-100 tr,
[data-bs-theme="dark"] .table.table-row-gray-200 tr,
[data-bs-theme="dark"] .table.table-row-gray-300 tr { border-bottom-color: var(--ric-dark-line); }
[data-bs-theme="dark"] .table thead :is(th, td),
[data-bs-theme="dark"] .table thead tr.text-muted,
[data-bs-theme="dark"] .table thead tr.text-gray-400,
[data-bs-theme="dark"] .table thead tr.text-gray-500,
[data-bs-theme="dark"] .table thead tr.text-gray-600,
[data-bs-theme="dark"] table.dataTable thead .dt-column-title { color: var(--ric-dark-muted); }
[data-bs-theme="dark"] .table tbody tr:hover > * { --bs-table-color-state: var(--ric-dark-ink); }
[data-bs-theme="dark"] table.dataTable > thead > tr > th.dt-orderable-asc .dt-column-order::before,
[data-bs-theme="dark"] table.dataTable > thead > tr > th.dt-orderable-desc .dt-column-order::after { color: var(--ric-dark-subtle); }
[data-bs-theme="dark"] div.dt-container .dt-info,
[data-bs-theme="dark"] div.dt-container .dt-length label,
[data-bs-theme="dark"] div.dt-container .dt-search label,
[data-bs-theme="dark"] .dataTables_info { color: var(--ric-dark-muted); }
[data-bs-theme="dark"] div.dt-processing,
[data-bs-theme="dark"] .dataTables_processing { color: var(--ric-dark-text); background: var(--ric-dark-raised); box-shadow: var(--bs-dropdown-box-shadow); }

/* ── Paginazione ──────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .page-link,
[data-bs-theme="dark"] .page-item .page-link {
    color: var(--ric-dark-text) !important;
    background-color: transparent !important;
    border-color: transparent !important;
}
[data-bs-theme="dark"] .page-item:not(.active):not(.disabled) .page-link:hover { color: var(--ric-brand-text) !important; background-color: var(--ric-dark-hover) !important; }
[data-bs-theme="dark"] .page-item.active .page-link,
[data-bs-theme="dark"] .dt-paging-button.active .page-link {
    color: #ffffff !important;
    background-color: var(--ric-brand-start) !important;
    border-color: var(--ric-brand-text) !important;
}
[data-bs-theme="dark"] .page-item.disabled .page-link { color: var(--ric-dark-subtle) !important; opacity: .8; }

/* ── Badge ────────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .badge.badge-light,
[data-bs-theme="dark"] .badge.badge-secondary,
[data-bs-theme="dark"] .badge.badge-light-dark,
[data-bs-theme="dark"] .badge.badge-light-secondary { color: var(--ric-dark-text); background-color: var(--ric-dark-hover); }
[data-bs-theme="dark"] .badge.badge-light-danger { color: var(--ric-tone-danger) !important; background-color: var(--ric-tone-danger-soft) !important; }
[data-bs-theme="dark"] .badge.badge-light-warning { color: var(--ric-tone-warning) !important; background-color: var(--ric-tone-warning-soft) !important; }
[data-bs-theme="dark"] .badge.badge-light-info { color: var(--ric-tone-violet) !important; background-color: var(--ric-tone-violet-soft) !important; }
[data-bs-theme="dark"] .badge.badge-light-success { color: var(--ric-tone-success) !important; background-color: var(--ric-tone-success-soft) !important; }
[data-bs-theme="dark"] .badge.badge-light-primary { color: var(--ric-brand-text) !important; background-color: var(--ric-brand-soft) !important; }
/* Categoria «Pratica» dei segnaposti (TemplatePlaceholder.category_color = purple):
   Metronic non ha badge-light-purple né text-purple, quindi in scuro il «+» dei
   «Dati della pratica» restava #6f42c1 sul fondo scuro (2,59:1). Il chiaro non cambia. */
[data-bs-theme="dark"] .badge.badge-light-purple { color: var(--ric-tone-violet); background-color: var(--ric-tone-violet-soft); }
[data-bs-theme="dark"] .text-purple { color: var(--ric-tone-violet) !important; }
[data-bs-theme="dark"] .badge :is(i, .svg-icon) { color: inherit !important; }
[data-bs-theme="dark"] .badge.badge-danger { color: #ffffff; background-color: var(--ric-tone-danger-fill); }
[data-bs-theme="dark"] .badge.badge-warning { color: #ffffff; background-color: var(--ric-tone-warning-fill); }
[data-bs-theme="dark"] .badge.badge-info { color: #ffffff; background-color: var(--ric-tone-violet-fill); }
[data-bs-theme="dark"] .badge.badge-dark { color: var(--ric-dark-page); background-color: var(--ric-dark-ink); }
[data-bs-theme="dark"] .badge.badge-outline { background: transparent; }

/* ── Avvisi ───────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .alert { border: 1px solid var(--ric-dark-line); }
[data-bs-theme="dark"] .alert-success { color: var(--ric-tone-success); background-color: var(--ric-tone-success-soft); border-color: var(--ric-tone-success-line); }
[data-bs-theme="dark"] .alert-danger { color: var(--ric-tone-danger); background-color: var(--ric-tone-danger-soft); border-color: var(--ric-tone-danger-line); }
[data-bs-theme="dark"] .alert-warning { color: var(--ric-tone-warning); background-color: var(--ric-tone-warning-soft); border-color: var(--ric-tone-warning-line); }
[data-bs-theme="dark"] .alert-info { color: var(--ric-tone-info); background-color: var(--ric-tone-info-soft); border-color: var(--ric-tone-info-line); }
[data-bs-theme="dark"] .alert-primary { color: var(--ric-brand-text); background-color: var(--ric-brand-soft); border-color: var(--ric-brand-border); }
[data-bs-theme="dark"] .alert-secondary,
[data-bs-theme="dark"] .alert-light { color: var(--ric-dark-text); background-color: var(--ric-dark-raised); border-color: var(--ric-dark-line); }
[data-bs-theme="dark"] .alert :is(.alert-heading, h1, h2, h3, h4, h5, h6, strong, b) { color: inherit; }
[data-bs-theme="dark"] .alert a:not(.btn) { color: inherit !important; text-decoration: underline; }
[data-bs-theme="dark"] .alert .text-gray-700,
[data-bs-theme="dark"] .alert .text-gray-800,
[data-bs-theme="dark"] .alert .text-gray-900,
[data-bs-theme="dark"] .alert .text-dark { color: inherit !important; }
/* Notice Metronic (bg-light-* + bordo tratteggiato). */
[data-bs-theme="dark"] .notice.bg-light-warning { border-color: var(--ric-tone-warning-line) !important; }
[data-bs-theme="dark"] .notice.bg-light-danger { border-color: var(--ric-tone-danger-line) !important; }
[data-bs-theme="dark"] .notice.bg-light-primary { border-color: var(--ric-brand-border) !important; }
[data-bs-theme="dark"] .notice.bg-light-info { border-color: var(--ric-tone-violet-line) !important; }
[data-bs-theme="dark"] .notice.bg-light-success { border-color: var(--ric-tone-success-line) !important; }

/* ── Menu a tendina, dropdown, select2, flatpickr ─────────────────────── */
[data-bs-theme="dark"] .dropdown-menu {
    --bs-dropdown-color: var(--ric-dark-text);
    --bs-dropdown-bg: var(--ric-dark-raised);
    --bs-dropdown-border-color: var(--ric-dark-line);
    --bs-dropdown-link-color: var(--ric-dark-text);
    --bs-dropdown-link-hover-color: var(--ric-dark-ink);
    --bs-dropdown-link-hover-bg: var(--ric-dark-hover);
    --bs-dropdown-link-active-color: #ffffff;
    --bs-dropdown-link-active-bg: var(--ric-brand-start);
    --bs-dropdown-divider-bg: var(--ric-dark-line);
    --bs-dropdown-header-color: var(--ric-dark-muted);
    border: 1px solid var(--ric-dark-line);
    box-shadow: var(--bs-dropdown-box-shadow);
}
[data-bs-theme="dark"] .dropdown-item.text-danger:not(:hover):not(:focus) { color: var(--ric-tone-danger) !important; }
[data-bs-theme="dark"] .menu-sub-dropdown { border: 1px solid var(--ric-dark-line); }
[data-bs-theme="dark"] .menu-sub-dropdown .menu-link { color: var(--ric-dark-text); }
[data-bs-theme="dark"] .menu-sub-dropdown .menu-link .menu-icon i,
[data-bs-theme="dark"] .menu-sub-dropdown .menu-link > i,
[data-bs-theme="dark"] .menu-sub-dropdown .menu-link > .ki-duotone { color: var(--ric-dark-muted); }
[data-bs-theme="dark"] .menu-sub-dropdown .menu-link:hover .menu-icon i,
[data-bs-theme="dark"] .menu-sub-dropdown .menu-link:hover > i { color: var(--ric-brand-text); }
[data-bs-theme="dark"] .menu-sub-dropdown .menu-link.text-danger,
[data-bs-theme="dark"] .menu-sub-dropdown .menu-link.text-danger i { color: var(--ric-tone-danger) !important; }
[data-bs-theme="dark"] .menu-sub-dropdown .menu-content .text-muted { color: var(--ric-dark-muted) !important; }

[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-dropdown {
    color: var(--ric-dark-text);
    background-color: var(--ric-dark-raised);
    border: 1px solid var(--ric-dark-line);
    box-shadow: var(--bs-dropdown-box-shadow);
}
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-dropdown .select2-results__option { color: var(--ric-dark-text); }
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-dropdown .select2-results__option.select2-results__option--highlighted { color: var(--ric-dark-ink); background-color: var(--ric-dark-hover); }
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-dropdown .select2-results__option.select2-results__option--selected { color: #ffffff; background-color: var(--ric-brand-start); }
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-dropdown .select2-results__option[aria-disabled="true"] { color: var(--ric-dark-subtle); }
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-dropdown .select2-results__group,
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-dropdown .select2-results__message { color: var(--ric-dark-muted); }
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-dropdown .select2-search .select2-search__field { color: var(--ric-dark-text); background-color: var(--ric-dark-surface); border-color: var(--ric-dark-line-strong); }
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-selection--single .select2-selection__rendered { color: var(--ric-dark-text); }
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-selection--multiple .select2-selection__choice { color: var(--ric-dark-text); background-color: var(--ric-dark-hover); }
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-selection__clear,
[data-bs-theme="dark"] .select2-container--bootstrap5 .select2-selection__choice__remove { filter: invert(1) grayscale(1) brightness(1.4); }

[data-bs-theme="dark"] .flatpickr-calendar {
    background: var(--ric-dark-raised);
    border: 1px solid var(--ric-dark-line);
    box-shadow: var(--bs-dropdown-box-shadow);
}
[data-bs-theme="dark"] .flatpickr-calendar :is(.flatpickr-month, .flatpickr-current-month, .flatpickr-monthDropdown-months, .numInputWrapper input, .flatpickr-weekday, span.flatpickr-weekday, .flatpickr-time input, .flatpickr-time .flatpickr-am-pm, .flatpickr-time-separator) { color: var(--ric-dark-text) !important; fill: var(--ric-dark-text); background: transparent; }
[data-bs-theme="dark"] .flatpickr-calendar .flatpickr-monthDropdown-months option { background: var(--ric-dark-raised); }
[data-bs-theme="dark"] .flatpickr-calendar :is(.flatpickr-prev-month, .flatpickr-next-month) svg { fill: var(--ric-dark-text) !important; }
[data-bs-theme="dark"] .flatpickr-day { color: var(--ric-dark-text); }
[data-bs-theme="dark"] .flatpickr-day:is(.prevMonthDay, .nextMonthDay) { color: var(--ric-dark-subtle); }
[data-bs-theme="dark"] .flatpickr-day:is(.flatpickr-disabled, .notAllowed) { color: #6f646a; }
[data-bs-theme="dark"] .flatpickr-day:hover { color: var(--ric-dark-ink); background: var(--ric-dark-hover); border-color: var(--ric-dark-hover); }
[data-bs-theme="dark"] .flatpickr-day.today:not(.selected) { color: var(--ric-brand-text); border-color: var(--ric-brand-text); background: transparent; }
[data-bs-theme="dark"] .flatpickr-day:is(.selected, .startRange, .endRange) { color: #ffffff !important; background: var(--ric-brand-start) !important; border-color: var(--ric-brand-text) !important; }
[data-bs-theme="dark"] .flatpickr-day.inRange { color: var(--ric-dark-ink); background: var(--ric-brand-soft); border-color: var(--ric-brand-soft); box-shadow: -5px 0 0 var(--ric-brand-soft), 5px 0 0 var(--ric-brand-soft); }
[data-bs-theme="dark"] .flatpickr-time { border-top-color: var(--ric-dark-line) !important; }
[data-bs-theme="dark"] .flatpickr-time :is(input, .flatpickr-am-pm):hover { background: var(--ric-dark-hover); }

/* ── Modali, offcanvas, drawer, popover, tooltip ──────────────────────── */
[data-bs-theme="dark"] .modal {
    --bs-modal-bg: var(--ric-dark-surface);
    --bs-modal-color: var(--ric-dark-text);
    --bs-modal-border-color: var(--ric-dark-line);
    --bs-modal-header-border-color: var(--ric-dark-line);
    --bs-modal-footer-border-color: var(--ric-dark-line);
    --bs-modal-box-shadow: 0 20px 50px rgba(0, 0, 0, .6);
}
[data-bs-theme="dark"] .modal-content { border: 1px solid var(--ric-dark-line); }
[data-bs-theme="dark"] .modal-title { color: var(--ric-dark-ink); }
[data-bs-theme="dark"] .modal-backdrop { --bs-backdrop-bg: #000000; --bs-backdrop-opacity: .65; }
[data-bs-theme="dark"] .offcanvas { --bs-offcanvas-bg: var(--ric-dark-surface); --bs-offcanvas-color: var(--ric-dark-text); --bs-offcanvas-border-color: var(--ric-dark-line); }
[data-bs-theme="dark"] .popover { --bs-popover-bg: var(--ric-dark-raised); --bs-popover-body-color: var(--ric-dark-text); --bs-popover-header-bg: var(--ric-dark-hover); --bs-popover-header-color: var(--ric-dark-ink); --bs-popover-border-color: var(--ric-dark-line); }
/* Stessa specificita' della regola Metronic `[data-bs-theme=dark]
   .tooltip:not(.tooltip-inverse)` (fondo #26272F): con il solo `.tooltip`
   vinceva lei sul fondo e restava il nostro testo scuro, 1.1:1. */
[data-bs-theme="dark"] .tooltip:not(.tooltip-inverse) { --bs-tooltip-bg: var(--ric-dark-ink); --bs-tooltip-color: #1f1c21; }
[data-bs-theme="dark"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); opacity: .75; }
[data-bs-theme="dark"] .btn-close:hover,
[data-bs-theme="dark"] .btn-close:focus-visible { opacity: 1; }

/* ── Navigazione: schede, liste, breadcrumb, aside ────────────────────── */
[data-bs-theme="dark"] :is(.nav-tabs .nav-link, .nav-pills .nav-link, .nav-line-tabs .nav-link, [role="tablist"] [role="tab"], .ric-section-tabs .ric-section-tab, .voip-dialer-tab):not(.active):not(.is-active):not(.is-current):not([aria-selected="true"]):not([aria-current="page"]) {
    color: var(--ric-dark-muted) !important;
}
[data-bs-theme="dark"] .nav-line-tabs,
[data-bs-theme="dark"] .nav-tabs { border-bottom-color: var(--ric-dark-line); }
[data-bs-theme="dark"] .list-group { --bs-list-group-color: var(--ric-dark-text); --bs-list-group-bg: var(--ric-dark-surface); --bs-list-group-border-color: var(--ric-dark-line); --bs-list-group-action-hover-bg: var(--ric-dark-hover); --bs-list-group-action-hover-color: var(--ric-dark-ink); --bs-list-group-active-bg: var(--ric-brand-start); --bs-list-group-active-border-color: var(--ric-brand-start); --bs-list-group-active-color: #ffffff; }
[data-bs-theme="dark"] .accordion { --bs-accordion-bg: var(--ric-dark-surface); --bs-accordion-color: var(--ric-dark-text); --bs-accordion-border-color: var(--ric-dark-line); --bs-accordion-btn-color: var(--ric-dark-ink); --bs-accordion-active-color: var(--ric-brand-text); --bs-accordion-active-bg: var(--ric-dark-raised); }
[data-bs-theme="dark"] #kt_header_breadcrumb .breadcrumb-nav-item > a > i,
[data-bs-theme="dark"] .breadcrumb-link i,
[data-bs-theme="dark"] .breadcrumb .breadcrumb-item i { color: var(--ric-dark-muted) !important; }
[data-bs-theme="dark"] .breadcrumb-link { color: var(--ric-dark-muted); }
[data-bs-theme="dark"] .breadcrumb-current { color: var(--ric-dark-text); }

/* Stati vuoti: icone "di sfondo" (text-gray-300/400) almeno a 3:1. */
[data-bs-theme="dark"] .text-gray-300 i,
[data-bs-theme="dark"] i.text-gray-300,
[data-bs-theme="dark"] i.text-gray-400,
[data-bs-theme="dark"] i.text-secondary,
[data-bs-theme="dark"] i.text-muted { color: var(--ric-dark-subtle) !important; }

/* ── Simboli, progress, codice ────────────────────────────────────────── */
[data-bs-theme="dark"] .symbol .symbol-label { color: var(--ric-dark-text); }
[data-bs-theme="dark"] .symbol .symbol-label.bg-light-primary,
[data-bs-theme="dark"] .symbol-label.bg-light-primary { color: var(--ric-brand-text) !important; }
[data-bs-theme="dark"] .symbol-label.bg-light-danger { color: var(--ric-tone-danger) !important; }
[data-bs-theme="dark"] .symbol-label.bg-light-success { color: var(--ric-tone-success) !important; }
[data-bs-theme="dark"] .symbol-label.bg-light-warning { color: var(--ric-tone-warning) !important; }
[data-bs-theme="dark"] .symbol-label.bg-light-info { color: var(--ric-tone-violet) !important; }
[data-bs-theme="dark"] .progress { --bs-progress-bg: var(--ric-dark-hover); }
[data-bs-theme="dark"] .bullet { background-color: var(--bs-gray-500); }

/* ── Toastr e SweetAlert ──────────────────────────────────────────────── */
[data-bs-theme="dark"] #toast-container > div { opacity: 1; box-shadow: 0 10px 30px rgba(0, 0, 0, .55); }
[data-bs-theme="dark"] #toast-container > .toast-success { color: #ffffff; background-color: var(--ric-tone-success-fill); }
[data-bs-theme="dark"] #toast-container > .toast-error { color: #ffffff; background-color: var(--ric-tone-danger-fill); }
[data-bs-theme="dark"] #toast-container > .toast-warning { color: #ffffff; background-color: var(--ric-tone-warning-fill); }
[data-bs-theme="dark"] #toast-container > .toast-info { color: #ffffff; background-color: var(--ric-tone-info-fill); }
[data-bs-theme="dark"] #toast-container > div :is(.toast-title, .toast-message, .toast-message a, .toast-close-button) { color: #ffffff; }
[data-bs-theme="dark"] .swal2-popup { color: var(--ric-dark-text); background: var(--ric-dark-surface); border: 1px solid var(--ric-dark-line); }
[data-bs-theme="dark"] .swal2-popup .swal2-title { color: var(--ric-dark-ink); }
[data-bs-theme="dark"] .swal2-popup .swal2-html-container,
[data-bs-theme="dark"] .swal2-popup .swal2-content { color: var(--ric-dark-text); }
[data-bs-theme="dark"] .swal2-popup .swal2-input,
[data-bs-theme="dark"] .swal2-popup .swal2-textarea,
[data-bs-theme="dark"] .swal2-popup .swal2-select { color: var(--ric-dark-text); background: var(--ric-dark-raised); border-color: var(--ric-dark-line-strong); }
[data-bs-theme="dark"] .swal2-icon.swal2-warning { color: var(--ric-tone-warning); border-color: var(--ric-tone-warning); }
[data-bs-theme="dark"] .swal2-icon.swal2-error { color: var(--ric-tone-danger); border-color: var(--ric-tone-danger); }
[data-bs-theme="dark"] .swal2-icon.swal2-error [class^="swal2-x-mark-line"] { background-color: var(--ric-tone-danger); }
[data-bs-theme="dark"] .swal2-icon.swal2-info,
[data-bs-theme="dark"] .swal2-icon.swal2-question { color: var(--ric-tone-info); border-color: var(--ric-tone-info); }
[data-bs-theme="dark"] .swal2-icon.swal2-success { color: var(--ric-tone-success); border-color: var(--ric-tone-success-line); }
[data-bs-theme="dark"] .swal2-icon.swal2-success [class^="swal2-success-line"] { background-color: var(--ric-tone-success); }
[data-bs-theme="dark"] .swal2-icon.swal2-success .swal2-success-ring { border-color: var(--ric-tone-success-line); }
[data-bs-theme="dark"] .swal2-icon.swal2-success [class^="swal2-success-circular-line"],
[data-bs-theme="dark"] .swal2-icon.swal2-success .swal2-success-fix { background-color: transparent !important; }
[data-bs-theme="dark"] .swal2-container.swal2-backdrop-show { background: rgba(0, 0, 0, .65); }
[data-bs-theme="dark"] .swal2-validation-message { color: var(--ric-tone-danger); background: var(--ric-tone-danger-soft); }

/* ── FullCalendar ─────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .fc {
    --fc-page-bg-color: var(--ric-dark-surface);
    --fc-neutral-bg-color: var(--ric-dark-raised);
    --fc-neutral-text-color: var(--ric-dark-muted);
    --fc-border-color: var(--ric-dark-line);
    --fc-today-bg-color: rgba(239, 189, 201, .07);
    --fc-now-indicator-color: var(--ric-tone-danger);
    --fc-highlight-color: rgba(239, 189, 201, .12);
    --fc-list-event-hover-bg-color: var(--ric-dark-hover);
    --fc-non-business-color: rgba(0, 0, 0, .18);
    --fc-bg-event-color: var(--ric-tone-success-fill);
    --fc-button-text-color: var(--ric-dark-text);
    --fc-button-bg-color: var(--ric-dark-raised);
    --fc-button-border-color: var(--ric-dark-line);
    --fc-button-hover-bg-color: var(--ric-dark-hover);
    --fc-button-hover-border-color: var(--ric-dark-line-strong);
    --fc-button-active-bg-color: var(--ric-brand-start);
    --fc-button-active-border-color: var(--ric-brand-start);
    color: var(--ric-dark-text);
}
[data-bs-theme="dark"] .fc :is(.fc-col-header-cell-cushion, .fc-daygrid-day-number, .fc-timegrid-slot-label-cushion, .fc-timegrid-axis-cushion, .fc-list-day-text, .fc-list-day-side-text) { color: var(--ric-dark-text) !important; }
/* Giorni fuori mese: in chiaro sono velati (opacity .3); in scuro il velo
   li spegneva sotto 2:1, qui restano tenui ma leggibili. */
[data-bs-theme="dark"] .fc .fc-day-other .fc-daygrid-day-top { opacity: 1; }
[data-bs-theme="dark"] .fc .fc-day-other .fc-daygrid-day-number { color: var(--ric-dark-subtle) !important; }
[data-bs-theme="dark"] .fc .fc-button:focus-visible { outline: 2px solid var(--ric-dark-focus); outline-offset: 2px; box-shadow: none; }
[data-bs-theme="dark"] .fc .fc-toolbar-title { color: var(--ric-dark-ink); }
[data-bs-theme="dark"] .fc .fc-list-day-cushion,
[data-bs-theme="dark"] .fc .fc-cell-shaded { background-color: var(--ric-dark-raised); }
[data-bs-theme="dark"] .fc .fc-list-empty { background-color: var(--ric-dark-surface); color: var(--ric-dark-muted); }
[data-bs-theme="dark"] .fc .fc-popover { background: var(--ric-dark-raised); border-color: var(--ric-dark-line); }
[data-bs-theme="dark"] .fc .fc-popover .fc-popover-header { background: var(--ric-dark-hover); color: var(--ric-dark-ink); }
/* Eventi: il pieno arriva dal feed (CalendarPalette) e tiene il testo a
   4.5:1 e oltre in entrambi i temi; sul fondo scuro un filo chiaro ne
   disegna il bordo. Outline e non box-shadow: resta sopra il contenuto
   colorato dell'evento e non tocca l'anello di FullCalendar fra eventi
   affiancati. Il fuoco da tastiera mantiene il suo anello. */
[data-bs-theme="dark"] .fc .fc-event:not(.fc-bg-event):not(.fc-daygrid-dot-event):not(.fc-list-event):not(:focus-visible) { outline: 1px solid rgba(242, 234, 238, .28); outline-offset: -1px; }
[data-bs-theme="dark"] .fc :is(.fc-list-event-dot, .fc-daygrid-event-dot) { box-shadow: 0 0 0 1px rgba(242, 234, 238, .7); }

/* ── Leaflet, ApexCharts, Tagify, Dropzone, Quill ─────────────────────── */
[data-bs-theme="dark"] .leaflet-container .leaflet-control a,
[data-bs-theme="dark"] .leaflet-container .leaflet-popup-content-wrapper,
[data-bs-theme="dark"] .leaflet-container .leaflet-popup-tip { color: #1f1c21; }
[data-bs-theme="dark"] .apexcharts-tooltip.apexcharts-theme-light { color: var(--ric-dark-text); background: var(--ric-dark-raised) !important; border-color: var(--ric-dark-line) !important; }
[data-bs-theme="dark"] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title { background: var(--ric-dark-hover) !important; border-color: var(--ric-dark-line) !important; }
[data-bs-theme="dark"] .apexcharts-text,
[data-bs-theme="dark"] .apexcharts-legend-text { fill: var(--ric-dark-muted); color: var(--ric-dark-muted) !important; }
[data-bs-theme="dark"] .tagify { --tags-border-color: var(--ric-dark-line-strong); --tag-bg: var(--ric-dark-hover); --tag-text-color: var(--ric-dark-text); --input-color: var(--ric-dark-text); --placeholder-color: var(--ric-dark-placeholder); }
[data-bs-theme="dark"] .dropzone { background-color: var(--ric-dark-raised); border-color: var(--ric-dark-line-strong); color: var(--ric-dark-text); }
[data-bs-theme="dark"] .ql-toolbar.ql-snow,
[data-bs-theme="dark"] .ql-container.ql-snow { border-color: var(--ric-dark-line-strong); }
[data-bs-theme="dark"] .ql-snow .ql-stroke { stroke: var(--ric-dark-text); }
[data-bs-theme="dark"] .ql-snow .ql-fill { fill: var(--ric-dark-text); }
[data-bs-theme="dark"] .ql-snow .ql-picker { color: var(--ric-dark-text); }
[data-bs-theme="dark"] .ql-editor.ql-blank::before { color: var(--ric-dark-placeholder); }

/* ── Stati scritti con il colore "pieno" come testo ───────────────────── */
/* Indicatore di salvataggio degli editor grafici (Santini, Manifesti,
   Modulistica): in chiaro usa --bs-warning/success/danger, che in scuro sono
   i pieni dei pulsanti; qui il tono leggibile. */
[data-bs-theme="dark"] .save-indicator.saving { color: var(--ric-tone-warning) !important; }
[data-bs-theme="dark"] .save-indicator.saved { color: var(--ric-tone-success) !important; }
[data-bs-theme="dark"] .save-indicator.error { color: var(--ric-tone-danger) !important; }

/* ── Stepper Metronic (procedure guidate nelle finestre) ──────────────── */
[data-bs-theme="dark"] .stepper {
    --bs-stepper-icon-number-color: var(--ric-brand-text);
    --bs-stepper-icon-check-color-completed: var(--ric-brand-text);
    --bs-stepper-icon-bg-color-completed: var(--ric-brand-soft);
}

/* Badge "chiaro su chiaro" (badge-light-light): in scuro almeno leggibile. */
[data-bs-theme="dark"] .badge.badge-light-light { color: var(--ric-dark-muted); background-color: var(--ric-dark-hover); }
