:root,
[data-bs-theme="light"] {
    --ric-brand-start: #7f1f29;
    --ric-brand-mid: #5e1f29;
    --ric-brand-end: #2b1c24;
    --ric-brand-ink: #2b1c24;
    --ric-brand-text: #5e1f29;
    --ric-brand-soft: #f5e6e8;
    --ric-brand-border: #e8c8cc;
    --ric-brand-focus: rgba(127, 31, 41, .28);
    --ric-success: #1f6b46;
    --ric-success-text: #1f6b46;
    --ric-success-active: #174e33;
    --ric-success-soft: #e7f3ec;
    --ric-success-border: #b8d7c5;
    --bs-success: var(--ric-success);
    --bs-success-rgb: 31, 107, 70;
    --bs-text-success: var(--ric-success-text);
    --bs-success-active: var(--ric-success-active);
    --bs-success-active-rgb: 23, 78, 51;
    --bs-success-light: var(--ric-success-soft);
    --bs-success-inverse: #ffffff;
    --bs-success-clarity: rgba(31, 107, 70, .20);
    --bs-success-text-emphasis: var(--ric-success-text);
    --bs-success-bg-subtle: var(--ric-success-soft);
    --bs-success-border-subtle: var(--ric-success-border);
    --bs-primary: var(--ric-brand-start);
    --bs-primary-rgb: 127, 31, 41;
    --bs-primary-active: var(--ric-brand-mid);
    --bs-primary-active-rgb: 94, 31, 41;
    --bs-primary-hover: var(--ric-brand-mid);
    --bs-primary-inverse: #ffffff;
    --bs-primary-light: var(--ric-brand-soft);
    --bs-primary-lighter: #faf2f3;
    --bs-primary-lightest: #fcf8f9;
    --bs-primary-dark: var(--ric-brand-mid);
    --bs-primary-darker: var(--ric-brand-end);
    --bs-primary-disabled: #a2737d;
    --bs-primary-clarity: rgba(127, 31, 41, .20);
    --bs-primary-text-emphasis: var(--ric-brand-text);
    --bs-text-primary: var(--ric-brand-ink);
    --bs-primary-bg-subtle: var(--ric-brand-soft);
    --bs-primary-border-subtle: var(--ric-brand-border);
    --bs-link-color: var(--ric-brand-text);
    --bs-link-color-rgb: 94, 31, 41;
    --bs-link-hover-color: var(--ric-brand-end);
    --bs-link-hover-color-rgb: 43, 28, 36;
    --bs-component-active-color: #ffffff;
    --bs-component-active-bg: var(--ric-brand-start);
    --bs-focus-ring-color: var(--ric-brand-focus);
}

[data-bs-theme="dark"] {
    --ric-brand-start: #7f1f29;
    --ric-brand-mid: #5e1f29;
    --ric-brand-end: #2b1c24;
    --ric-brand-ink: #f5e8ec;
    --ric-brand-text: #efbdc9;
    --ric-brand-soft: #452d37;
    --ric-brand-border: #73515b;
    --ric-brand-focus: rgba(239, 189, 201, .38);
    --ric-success: #1f6b46;
    --ric-success-text: #84d8ab;
    --ric-success-active: #174e33;
    --ric-success-soft: #19392a;
    --ric-success-border: #3f7755;
    --bs-success: var(--ric-success);
    --bs-success-rgb: 31, 107, 70;
    --bs-text-success: var(--ric-success-text);
    --bs-success-active: var(--ric-success-active);
    --bs-success-active-rgb: 23, 78, 51;
    --bs-success-light: var(--ric-success-soft);
    --bs-success-inverse: #ffffff;
    --bs-success-clarity: rgba(132, 216, 171, .20);
    --bs-success-text-emphasis: var(--ric-success-text);
    --bs-success-bg-subtle: var(--ric-success-soft);
    --bs-success-border-subtle: var(--ric-success-border);
    --bs-primary: var(--ric-brand-start);
    --bs-primary-rgb: 127, 31, 41;
    --bs-primary-active: var(--ric-brand-mid);
    --bs-primary-active-rgb: 94, 31, 41;
    --bs-primary-hover: var(--ric-brand-mid);
    --bs-primary-inverse: #ffffff;
    --bs-primary-light: var(--ric-brand-soft);
    --bs-primary-lighter: #35232c;
    --bs-primary-lightest: var(--ric-brand-end);
    --bs-primary-dark: var(--ric-brand-mid);
    --bs-primary-darker: var(--ric-brand-end);
    --bs-primary-disabled: #a2737d;
    --bs-primary-clarity: rgba(239, 189, 201, .20);
    --bs-primary-text-emphasis: var(--ric-brand-text);
    --bs-text-primary: var(--ric-brand-ink);
    --bs-primary-bg-subtle: var(--ric-brand-soft);
    --bs-primary-border-subtle: var(--ric-brand-border);
    --bs-link-color: var(--ric-brand-text);
    --bs-link-color-rgb: 239, 189, 201;
    --bs-link-hover-color: #ffffff;
    --bs-link-hover-color-rgb: 255, 255, 255;
    --bs-component-active-color: #ffffff;
    --bs-component-active-bg: var(--ric-brand-start);
    --bs-focus-ring-color: var(--ric-brand-focus);
}

/* Metronic mixes runtime variables with compiled primary states. */
:root .btn.btn-primary {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: var(--ric-brand-start);
    --bs-btn-border-color: var(--ric-brand-start);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: var(--ric-brand-mid);
    --bs-btn-hover-border-color: var(--ric-brand-mid);
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: var(--ric-brand-mid);
    --bs-btn-active-border-color: var(--ric-brand-mid);
    --bs-btn-disabled-color: #ffffff;
    --bs-btn-disabled-bg: var(--ric-brand-start);
    --bs-btn-disabled-border-color: var(--ric-brand-start);
    --bs-btn-focus-shadow-rgb: 127, 31, 41;
    color: #ffffff !important;
    background-color: var(--ric-brand-start) !important;
    border-color: var(--ric-brand-start) !important;
}

:root .btn.btn-primary:hover:not(:disabled),
:root .btn.btn-primary:focus:not(.btn-active),
:root .btn.btn-primary:active:not(.btn-active),
:root .btn.btn-primary.active,
:root .btn.btn-primary.show,
:root .btn-check:checked + .btn.btn-primary {
    color: #ffffff !important;
    background-color: var(--ric-brand-mid) !important;
    border-color: var(--ric-brand-mid) !important;
}

:root .btn.btn-primary:disabled,
:root .btn.btn-primary.disabled {
    color: #ffffff !important;
    background-color: var(--ric-brand-start) !important;
    border-color: var(--ric-brand-start) !important;
    opacity: .65;
}

:root .btn.btn-light-primary {
    color: var(--ric-brand-text) !important;
    background-color: var(--ric-brand-soft) !important;
    border-color: var(--ric-brand-border) !important;
}

:root .btn.btn-light-primary:hover:not(:disabled),
:root .btn.btn-light-primary:focus:not(.btn-active),
:root .btn.btn-light-primary:active:not(.btn-active),
:root .btn.btn-light-primary.active,
:root .btn.btn-light-primary.show,
:root .btn-check:checked + .btn.btn-light-primary {
    color: #ffffff !important;
    background-color: var(--ric-brand-mid) !important;
    border-color: var(--ric-brand-mid) !important;
}

:root .btn.btn-primary i,
:root .btn.btn-primary .svg-icon,
:root .btn.btn-light-primary i,
:root .btn.btn-light-primary .svg-icon {
    color: inherit !important;
}

:root .btn.btn-primary:focus,
:root .btn.btn-light-primary:focus {
    box-shadow: 0 0 0 .2rem var(--ric-brand-focus) !important;
}

:root .btn.btn-primary:focus-visible,
:root .btn.btn-light-primary:focus-visible,
:root .link-primary:focus-visible {
    outline: 2px solid var(--ric-brand-text) !important;
    outline-offset: 3px !important;
}

/* Azioni di riga "light" (Archivia / Elimina / Ripristina): il tema Metronic
   non da' loro alcun segno di focus da tastiera. Stesso anello bordeaux di
   btn-light-primary, solo con :focus-visible (niente alone al clic). */
:root .btn.btn-light-secondary:focus-visible,
:root .btn.btn-light-danger:focus-visible,
:root .btn.btn-light-success:focus-visible,
:root .btn.btn-light-warning:focus-visible {
    outline: 2px solid var(--ric-brand-text) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 .2rem var(--ric-brand-focus) !important;
}

:root .text-primary,
:root .link-primary,
:root .svg-icon-primary {
    color: var(--ric-brand-text) !important;
}

:root .ki-duotone.text-primary path,
:root .text-primary .ki-duotone path {
    fill: currentColor !important;
}

:root .link-primary {
    text-decoration-color: currentColor !important;
}

:root .link-primary:hover,
:root .link-primary:focus {
    color: var(--bs-link-hover-color) !important;
    text-decoration-color: currentColor !important;
}

:root .bg-primary,
:root .badge-primary {
    background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important;
}

:root .badge-primary {
    color: #ffffff !important;
}

:root .badge-light-primary {
    color: var(--ric-brand-text) !important;
    background-color: var(--ric-brand-soft) !important;
}

/* Badge rosso pieno (contatore «da verificare», «Sessione scaduta», ...): il
   rosso Metronic #f8285a teneva il bianco a 3.7:1; quello dei contatori delle
   notifiche nuove (--rn-new, #c8283c) lo porta a 5.5:1. Il tema scuro ha il
   suo pieno in ric_dark.css, che arriva dopo e vince. */
:root .badge.badge-danger {
    color: #ffffff;
    background-color: #c8283c;
}

:root .border-primary {
    border-color: var(--ric-brand-start) !important;
}

:root .text-success,
:root .link-success,
:root .funeral-urgency-status[data-tone="success"] {
    color: var(--ric-success-text) !important;
}

:root .btn.btn-success {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: var(--ric-success);
    --bs-btn-border-color: var(--ric-success);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: var(--ric-success-active);
    --bs-btn-hover-border-color: var(--ric-success-active);
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: var(--ric-success-active);
    --bs-btn-active-border-color: var(--ric-success-active);
    --bs-btn-disabled-color: #ffffff;
    --bs-btn-disabled-bg: var(--ric-success);
    --bs-btn-disabled-border-color: var(--ric-success);
    --bs-btn-focus-shadow-rgb: 31, 107, 70;
}

:root .btn.btn-outline-success {
    --bs-btn-color: var(--ric-success-text);
    --bs-btn-border-color: var(--ric-success-text);
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: var(--ric-success-active);
    --bs-btn-hover-border-color: var(--ric-success-active);
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: var(--ric-success-active);
    --bs-btn-active-border-color: var(--ric-success-active);
    --bs-btn-disabled-color: var(--ric-success-text);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--ric-success-text);
    --bs-btn-focus-shadow-rgb: 31, 107, 70;
    color: var(--ric-success-text) !important;
    border-color: var(--ric-success-text) !important;
}

:root .btn.btn-light-success,
:root .badge-light-success {
    color: var(--ric-success-text) !important;
    background-color: var(--ric-success-soft) !important;
}

:root .badge.badge-outline.badge-success {
    color: var(--ric-success-text) !important;
    border-color: var(--ric-success-text) !important;
}

:root .btn.btn-light-success :is(i, .svg-icon),
:root .btn.btn-outline-success :is(i, .svg-icon),
:root .badge.badge-outline.badge-success :is(i, .svg-icon),
:root .badge-light-success :is(i, .svg-icon) {
    color: inherit !important;
}

:root :is(.btn.btn-light-success, .btn.btn-outline-success):not(:disabled):not(.disabled):is(:hover, :focus-visible, :active, .active) {
    color: #ffffff !important;
    background-color: var(--ric-success-active) !important;
    border-color: var(--ric-success-active) !important;
}

:root .btn.btn-light-success:focus-visible,
:root .btn.btn-outline-success:focus-visible,
:root .btn.btn-success:focus-visible,
:root .link-success:focus-visible {
    outline: 2px solid var(--ric-success-text) !important;
    outline-offset: 3px !important;
}

:root .link-success {
    text-decoration-color: currentColor !important;
}

.nav-pills {
    --bs-nav-pills-link-active-bg: transparent;
    --bs-nav-pills-link-active-color: var(--ric-brand-text);
}

.progress,
.progress-stacked {
    --bs-progress-bar-bg: var(--ric-brand-start);
}

:root .form-control:focus:not(.is-invalid):not(.is-valid):not(.was-validated .form-control),
:root .form-select:focus:not(.is-invalid):not(.is-valid):not(.was-validated .form-select) {
    border-color: var(--ric-focus-border, var(--ric-brand-start)) !important;
    box-shadow: 0 0 0 .2rem var(--ric-brand-focus) !important;
}

:root .form-check-input:is(:checked, [type="checkbox"]:indeterminate):not(.is-invalid):not(.is-valid):not(.was-validated .form-check-input):not(.form-check-success .form-check-input):not(.form-check-warning .form-check-input):not(.form-check-danger .form-check-input) {
    background-color: var(--ric-brand-start) !important;
    border-color: var(--ric-brand-start) !important;
}

:root .form-check-input:focus-visible:not(.is-invalid):not(.is-valid):not(.was-validated .form-check-input):not(.form-check-success .form-check-input):not(.form-check-warning .form-check-input):not(.form-check-danger .form-check-input) {
    border-color: var(--ric-focus-border, var(--ric-brand-start)) !important;
    box-shadow: 0 0 0 .2rem var(--ric-brand-focus) !important;
    outline: 2px solid var(--ric-brand-text) !important;
    outline-offset: 3px !important;
}

/* Tab presentation is shared; each workspace retains its own layout and lifecycle.
   .ric-section-tabs .ric-section-tab: schede Cerimonia/Logistica, Frasi
   predefinite, Calendario dipendenti, Marcatempo e Amministrazione
   (section_tabs.css da' solo la geometria): una sola linea, un solo colore.
   La fila nell'intestazione delle pratiche (funerale, Pet, Previdenza) non e'
   una scheda ma un insieme di pulsanti: public/css/shared/practice_menu.css. */
:root :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) {
    color: var(--bs-gray-700, #4b5675) !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

:root :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):is(.active, .is-active, .is-current, [aria-selected="true"], [aria-current="page"]) {
    color: var(--ric-brand-text) !important;
    border-bottom-color: var(--ric-brand-start) !important;
    font-weight: 700 !important;
}

:root :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):hover:not(.disabled):not(:disabled):not([aria-disabled="true"]) {
    color: var(--ric-brand-text) !important;
    background: var(--ric-brand-soft) !important;
}

:root :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):focus-visible {
    outline: 2px solid var(--ric-brand-text) !important;
    outline-offset: -3px !important;
}

:root :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) > i {
    color: inherit !important;
}

:root :is(.ric-print-filters, .statistics-tabs-shell) {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--bs-border-color, #f1f1f4) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

[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):is(.active, .is-active, .is-current, [aria-selected="true"], [aria-current="page"]) {
    border-bottom-color: var(--ric-brand-text) !important;
}

/* Avvisi toastr (es. «Giacenza aggiornata» del Listino): il plugin li lascia
   all'80% di opacita' e sotto il testo bianco si leggevano le icone
   dell'intestazione (verde RIC + header chiaro: 4,2:1). Pieni, come gia' al
   passaggio del mouse: testo bianco su #1f6b46 a 6,4:1. */
#toastr-container > .toastr { opacity: 1; }
