/* Overlay du menu mobile : clic/tap pour fermer */
.layout-menu-expanded .layout-overlay.layout-menu-toggle {
    cursor: pointer;
}

/* ===== Sidebar : sous-menus harmonisés + indentation ===== */
#layout-menu .menu-sub {
    padding-left: 0;
    margin-left: 0;
}

#layout-menu .menu-sub .menu-link {
    position: relative;
    padding-left: 2.5rem !important;
    margin: .15rem .75rem;
    border-radius: 12px;
    font-weight: 500;
    color: rgba(17, 24, 39, .78);
    transition: background .15s ease, color .15s ease;
}

#layout-menu .menu-sub .menu-item>.menu-link:hover {
    background: rgba(17, 24, 39, .05) !important;
}

#layout-menu .menu-sub .menu-item.active>.menu-link {
    /* background: rgba(183, 28, 28, .08) !important; */
    color: #B71C1C !important;
    font-weight: 600;
}

#layout-menu .menu-sub .menu-item>.menu-link::before {
    background-color: rgba(161, 172, 184, .5) !important;
}

#layout-menu .menu-sub .menu-item.active>.menu-link:not(.menu-toggle)::before {
    content: '' !important;
    position: absolute !important;
    background-color: #B71C1C !important;
    border: none !important;
    box-shadow: none !important;
    width: .5rem;
    height: .5rem;
    left: 1.25rem;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50%;
}

/* Fond du site : micro-grain très subtil (style initial Rentabilité) */
:root {
    --bs-body-bg: #F6F7F9;
}

body {
    background: linear-gradient(180deg,
            #F6F7F9 0%,
            #EEF1F4 100%);
}

/* micro-grain très subtil */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background-image: radial-gradient(rgba(0, 0, 0, 0.02) 1px, transparent 1px);
    background-size: 4px 4px;
    pointer-events: none;
}

/* halo lumineux derrière le header */
.page-bg-glow {
    position: fixed;
    top: -200px;
    left: 50%;
    transform: translateX(-50%);
    width: 900px;
    height: 600px;
    background: radial-gradient(ellipse at center, rgba(183, 28, 28, 0.031), transparent 69%);
    pointer-events: none;
    z-index: 0;
}

/* Cartes : coins identiques à /locataire (16px) */
.card {
    --bs-card-border-radius: 16px !important;
    --bs-card-inner-border-radius: 14px;
    border-radius: 16px !important;
    background: linear-gradient(0deg, rgba(255, 255, 255, .98) 0%, rgba(249, 250, 251, .96) 100%) !important;

}

.card-header:first-child {
    border-radius: 16px 16px 0 0 !important;
}

.card-footer:last-child {
    border-radius: 0 0 16px 16px !important;
}

.card>.list-group:first-child {
    border-top-left-radius: 16px !important;
    border-top-right-radius: 16px !important;
}

.card>.list-group:last-child {
    border-bottom-left-radius: 16px !important;
    border-bottom-right-radius: 16px !important;
}

.table_list td {
    display: table-cell;
}

.add-button {
    position: relative;
}

.list-group.list-group-timeline .list-group-timeline-primary:before {
    background-color: #7A0006
}

a.list-group-item-primary,
button.list-group-item-primary {
    color: #7A0006
}

a.list-group-item-primary:hover,
a.list-group-item-primary:focus,
button.list-group-item-primary:hover,
button.list-group-item-primary:focus {
    background-color: #d6d7f2;
    color: #7A0006
}

a.list-group-item-primary.active,
button.list-group-item-primary.active {
    border-color: #871107;
    background-color: #7A0006;
    color: #7A0006
}

.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
    border-color: #871107;
    background-color: #7A0006
}

.list-group.list-group-timeline .list-group-timeline-primary:before {
    background-color: #7A0006
}

.alert-primary {
    background-color: #5593D420;
    border-color: #d2d3ff;
    color: #7A0006
}

.alert-warning {
    --alert-accent: #E0A93B;
    position: relative;
    background: #FFF8E6;
    border: 1px solid #F2D7A4;
    color: #7A5B2E;
    border-radius: 12px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 500;
}

.alert-warning::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    border-radius: 4px 0 0 4px;
    background: var(--alert-accent);
}

.alert-warning .material-symbols-outlined,
.alert-warning i,
.alert-warning svg {
    color: #C58A1F;
}

.alert-danger {
    --alert-accent: #B71C1C;
    position: relative;
    background: #FDECEC;
    border: 1px solid #F3B7B7;
    color: #7A1E1E;
    border-radius: 12px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 500;
}

.alert-danger::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    border-radius: 4px 0 0 4px;
    background: var(--alert-accent);
}

.alert-danger .material-symbols-outlined,
.alert-danger i,
.alert-danger svg {
    color: #B71C1C;
}

.alert-success {
    --alert-accent: #2E8B57;
    position: relative;
    background: #ECF7F1;
    border: 1px solid #BFE6D1;
    color: #2F6F4E;
    border-radius: 12px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 500;
}

.alert-success::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    border-radius: 4px 0 0 4px;
    background: var(--alert-accent);
}

.alert-success .material-symbols-outlined,
.alert-success i,
.alert-success svg {
    color: #2E8B57;
}

.alert-info {
    --alert-accent: #2E6273;
    position: relative;
    background: #EEF6F9;
    border: 1px solid #C9E2EA;
    color: #244B59;
    border-radius: 12px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: .3em;
    font-weight: 500;
}

.alert-info::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    border-radius: 4px 0 0 4px;
    background: var(--alert-accent);
}

.alert-info .material-symbols-outlined,
.alert-info i,
.alert-info svg {
    color: #2E6273;
}

.alert-dismissible .btn-close {
    opacity: 1;
}

.alert-warning.alert-dismissible .btn-close {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23E0A93B' stroke-linecap='round' stroke-width='2'%3e%3cpath d='M2 2l12 12M14 2L2 14'/%3e%3c/svg%3e");
}

.alert-danger.alert-dismissible .btn-close {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23B71C1C' stroke-linecap='round' stroke-width='2'%3e%3cpath d='M2 2l12 12M14 2L2 14'/%3e%3c/svg%3e");
}

.alert-success.alert-dismissible .btn-close {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%232E8B57' stroke-linecap='round' stroke-width='2'%3e%3cpath d='M2 2l12 12M14 2L2 14'/%3e%3c/svg%3e");
}

.alert-info.alert-dismissible .btn-close {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%232E6273' stroke-linecap='round' stroke-width='2'%3e%3cpath d='M2 2l12 12M14 2L2 14'/%3e%3c/svg%3e");
}

/* Base commune pour les boutons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 3em !important;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    transition: background-color .18s ease, border-color .18s ease,
        color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.btn-primary {
    background: #B71C1C;
    border: 1px solid #B71C1C;
    color: #fff;
    border-radius: 999px;
    font-weight: 600;
    transition: background-color .18s ease, border-color .18s ease,
        box-shadow .18s ease, transform .18s ease, color .18s ease;
    padding-top: 0.6em;

}

/* IMPORTANT : ne jamais "opacity" sur :hover */
.btn-primary:hover {
    opacity: 1 !important;
    filter: none !important;

    background: #D32F2F;
    border-color: #D32F2F;
    color: #fff;

    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12);
}

/* Focus / Active : rester rouge (surcharge theme-default bleu) */
.btn-check:focus+.btn-primary,
.btn-primary:focus,
.btn-primary.focus,
.btn-check:checked+.btn-primary,
.btn-check:active+.btn-primary,
.btn-primary:active,
.btn-primary.active,
.btn-primary.show.dropdown-toggle,
.show>.btn-primary.dropdown-toggle {
    background-color: #B71C1C !important;
    border-color: #B71C1C !important;
    color: #fff !important;
}

.btn-primary:active:focus,
.btn-primary.active:focus,
.btn-primary.show.dropdown-toggle:focus,
.show>.btn-primary.dropdown-toggle:focus {
    box-shadow: 0 0 0 3px rgba(183, 28, 28, 0.25) !important;
}

/* Icônes : doivent suivre la couleur du texte */
.btn-primary .material-symbols-outlined,
.btn-primary i,
.btn-primary svg {
    color: currentColor;
}

/* Si tu utilises des pseudo-éléments pour des effets */
.btn-primary::before,
.btn-primary::after {
    opacity: 1 !important;
    filter: none !important;
}

.btn-logia {
    background: #264E5D;
    color: #ffffff;
    border: 1px solid #264E5D;
    border-radius: 999px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;

    transition:
        background-color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease;
}

.btn-logia:hover {
    background: #2E6273;
    border-color: #2E6273;
    color: #ffffff;
    transform: translateY(-1px);

    box-shadow:
        0 10px 22px rgba(0, 0, 0, 0.12),
        0 0 20px rgba(38, 78, 93, 0.18);
}

.btn-logia .material-symbols-outlined,
.btn-logia i,
.btn-logia svg {
    color: currentColor;
}

/* Primary outline (rouge BONLOCA) - !important pour surcharger theme-default bleu */
.btn-outline-primary,
.btnDetails.btn-outline-primary,
.details-btn.btn-outline-primary,
.btn-xs.btn-outline-primary {
    background: transparent !important;
    color: #B71C1C !important;
    border: 1px solid rgba(183, 28, 28, 0.45) !important;
    border-radius: 3em !important;
    font-weight: 600;
    padding: 10px 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;

    transition:
        background-color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease,
        color .18s ease;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-check:focus+.btn-outline-primary,
.btnDetails.btn-outline-primary:hover,
.details-btn.btn-outline-primary:hover,
.btn-xs.btn-outline-primary:hover {
    background: rgba(183, 28, 28, 0.08) !important;
    border-color: #B71C1C !important;
    color: #B71C1C !important;

    transform: translateY(-1px);

    box-shadow:
        0 10px 22px rgba(0, 0, 0, 0.12),
        0 0 0 3px rgba(183, 28, 28, 0.10) !important;
}

.btn-outline-primary:active,
.btn-outline-primary.active,
.btn-outline-primary.dropdown-toggle.show,
.btn-check:checked+.btn-outline-primary,
.btn-check:active+.btn-outline-primary {
    background: rgba(183, 28, 28, 0.12) !important;
    border-color: #B71C1C !important;
    color: #B71C1C !important;
}

.btn-outline-primary:active,
.btn-outline-primary.active {
    transform: translateY(0);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.10) !important;
}

.btn-outline-primary .material-symbols-outlined,
.btn-outline-primary i,
.btn-outline-primary svg {
    color: currentColor !important;
}

/* Onglets nav-pills actifs : bordure légère type btn-outline-primary */
.nav-link.btn-sm.active,
.nav-link.btn.btn-sm.active {
    border: 1px solid rgba(183, 28, 28, 0.45) !important;
}

/* btn-xs : taille réduite, même style rouge */
.btn-xs.btn-outline-primary {
    padding: 4px 12px !important;
    font-size: 0.75rem;
}

/* Danger outline (rouge BONLOCA) */
.btn-outline-danger {
    background: transparent;
    color: #B71C1C;
    border: 1px solid rgba(183, 28, 28, 0.35);
    font-size: 0.78rem;
    padding: 3px 10px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: all .15s ease;
}

.btn-outline-danger:hover {
    background: rgba(183, 28, 28, 0.08);
    border-color: rgba(183, 28, 28, 0.55);
    color: #9F1414;
}

.btn-outline-danger:active {
    background: rgba(183, 28, 28, 0.12);
}

.btn-outline-danger .material-symbols-outlined,
.btn-outline-danger i,
.btn-outline-danger svg {
    color: currentColor;
    font-size: 1.4em;
    transition: transform .15s ease;
}

.btn-outline-danger:hover .material-symbols-outlined,
.btn-outline-danger:hover i,
.btn-outline-danger:hover svg {
    transform: scale(1.05);
}

/* btn-label-danger : rouge BONLOCA (cohérence avec le reste du thème) */
.btn-label-danger {
    color: #B71C1C !important;
    background-color: rgba(183, 28, 28, 0.08) !important;
    border-color: rgba(183, 28, 28, 0.25) !important;
}

.btn-label-danger:hover {
    color: #fff !important;
    background-color: #B71C1C !important;
    border-color: #B71C1C !important;
}

/* Boutons btn-label-* (success, warning, danger, secondary, info) : icônes couleur + taille cohérentes */
.btn-label-success .material-symbols-outlined,
.btn-label-success i,
.btn-label-success svg,
.btn-label-info .material-symbols-outlined,
.btn-label-info i,
.btn-label-info svg,
.btn-label-warning .material-symbols-outlined,
.btn-label-warning i,
.btn-label-warning svg,
.btn-label-danger .material-symbols-outlined,
.btn-label-danger i,
.btn-label-danger svg,
.btn-label-secondary .material-symbols-outlined,
.btn-label-secondary i,
.btn-label-secondary svg {
    color: currentColor !important;
    font-size: 1.2em !important;
    vertical-align: -0.15em;
}

.btn-label-success:hover .material-symbols-outlined,
.btn-label-success:hover i,
.btn-label-success:hover svg,
.btn-label-info:hover .material-symbols-outlined,
.btn-label-info:hover i,
.btn-label-info:hover svg,
.btn-label-warning:hover .material-symbols-outlined,
.btn-label-warning:hover i,
.btn-label-warning:hover svg,
.btn-label-danger:hover .material-symbols-outlined,
.btn-label-danger:hover i,
.btn-label-danger:hover svg,
.btn-label-secondary:hover .material-symbols-outlined,
.btn-label-secondary:hover i,
.btn-label-secondary:hover svg {
    color: currentColor !important;
}

/* z-index global : dropdown au-dessus des cartes et autres éléments */
.dropdown-menu {
    z-index: 1200 !important;
}

/* Carte avec dropdown ouverte : passer au-dessus des cartes voisines */
#cards-container .card:has(.dropdown.show),
#cards-container .card:has(.btn-group.show),
#revenus .card:has(.dropdown.show),
#revenus .card:has(.btn-group.show) {
    position: relative;
    z-index: 10;
}

/* dropdown-item : affichage initial (Capture 1) - sans bordures ni effet de boîte */
/* Cibler les li et leurs enfants pour supprimer les bordures entre items (pas entre groupes) */
.dropdown-menu>li {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
}

/* Pas de bordure entre deux li consécutifs (items d'un même groupe) */
.dropdown-menu>li+li .dropdown-item {
    border-top: none !important;
}

.dropdown-item {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
    border-radius: 0.5rem !important;
    border-top: none !important;
    border-bottom: none !important;
}

/* dropdown-divider et hr : lignes de séparation entre les groupes (comme Capture 1) */
.dropdown-menu .dropdown-divider,
.dropdown-menu hr {
    margin: 0.5rem 1rem !important;
    border: 0 !important;
    border-top: 1px solid #e9ecef !important;
    height: 0 !important;
    opacity: 1;
}

/* dropdown-item.btn-label-danger : icônes alignées et cohérentes */
.dropdown-item.btn-label-danger {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.dropdown-item.btn-label-danger .material-symbols-outlined,
.dropdown-item.btn-label-danger i,
.dropdown-item.btn-label-danger svg {
    color: currentColor;
    font-size: 1.15em;
    flex-shrink: 0;
}

.sk-pulse {
    position: absolute;
    right: 3em;
    /* Ajuster selon tes besoins */
    transform: translateY(-50%);
    /* Centrer verticalement */
    display: none;
    /* Cacher initialement */
}

.dropdown-item:not(.disabled).active,
.dropdown-item:not(.disabled):active {
    background-color: #9C000820;
    color: #697a8d;
    border-radius: 0.5rem;
}

/* ===== Surcharges bleu → rouge BONLOCA (theme-default, core) ===== */
.btn-label-primary {
    color: #B71C1C !important;
    background-color: rgba(183, 28, 28, 0.08) !important;
    border-color: rgba(183, 28, 28, 0.3) !important;
}

.btn-label-primary:hover {
    color: #fff !important;
    background-color: #B71C1C !important;
    border-color: #B71C1C !important;
}

.bg-primary {
    background-color: #B71C1C !important;
}

.bg-label-primary {
    color: #B71C1C !important;
    line-height: 2em;
}

.bg-label-hover-primary:hover {
    background-color: rgba(183, 28, 28, 0.08) !important;
    color: #B71C1C !important;
}

/* =========================
   Système premium des liens
   ========================= */

:root {
    --link-color: #B71C1C;
    --link-hover: #8E1414;
    --link-visited: #A31A1A;
    --link-active: #6E0F0F;
    --link-focus-ring: rgba(183, 28, 28, 0.22);
    --link-underline: rgba(183, 28, 28, 0.35);
    --link-underline-hover: rgba(142, 20, 20, 0.6);
    --link-disabled: #9ca3af;
    --link-bg-hover: rgba(183, 28, 28, 0.06);
    --transition-link: 180ms ease;

    --info-premium: #4b6475;
    --info-premium-hover: #2f4858;
    --info-premium-active: #1f3441;
    --info-premium-visited: #5a6d7b;
    --info-premium-focus: rgba(75, 100, 117, 0.14);
}

/* Lien standard (texte courant) */
a,
a.link-inline {
    color: var(--link-color);
    text-decoration: none;
    position: relative;
    transition:
        color var(--transition-link),
        background-color var(--transition-link),
        box-shadow var(--transition-link),
        opacity var(--transition-link);
    -webkit-tap-highlight-color: transparent;
}

/* Soulignement premium (liens purs uniquement, pas sur boutons/nav/dropdown) */
a:not(.btn):not([class*="btn-"])::after,
a.link-inline:not(.btn):not([class*="btn-"])::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -0.08em;
    width: 100%;
    height: 1px;
    background: var(--link-underline);
    transform-origin: left center;
    transform: scaleX(1);
    transition:
        background-color var(--transition-link),
        transform 220ms ease;
    pointer-events: none;
}

/* Pas de soulignement sur boutons, nav, dropdown, pagination, liens icônes, etc. */
.dropdown-item::after,
#goToTop::after,
.link-icon::after,
.nav-link::after,
.menu-link::after,
.dropdown-toggle::after,
.page-link::after,
.list-group-item-action::after,
.breadcrumb-item::after,
.btn::after,
a.btn::after,
[class*="btn-"]::after,
.rb-chip::after,
a.rb-chip::after,
.paginate_button::after,
.hide-arrow::after {
    display: none !important;
}

a:hover,
a.link-inline:hover {
    color: var(--link-hover);
}

a:hover::after,
a.link-inline:hover::after {
    background: var(--link-underline-hover);
    transform: scaleX(1);
}

a:active,
a.link-inline:active {
    color: var(--link-active);
}

a:active::after,
a.link-inline:active::after {
    background: var(--link-active);
    transform: scaleX(0.98);
}

a:focus,
a.link-inline:focus {
    outline: none;
}

a:focus-visible,
a.link-inline:focus-visible {
    border-radius: 8px;
    box-shadow: 0 0 0 4px var(--link-focus-ring);
}

a:focus-visible::after,
a.link-inline:focus-visible::after {
    background: var(--link-hover);
}

/* Désactivé */
a[aria-disabled="true"],
a.is-disabled,
a.link-inline[aria-disabled="true"],
a.link-inline.is-disabled {
    color: var(--link-disabled);
    pointer-events: none;
    cursor: default;
    opacity: 0.72;
    text-decoration: none;
}

a[aria-disabled="true"]::after,
a.is-disabled::after,
a.link-inline[aria-disabled="true"]::after,
a.link-inline.is-disabled::after {
    display: none;
}

/* Lien courant / page active */
a[aria-current="page"],
a.is-current,
a.link-inline[aria-current="page"],
a.link-inline.is-current {
    color: var(--link-active);
    font-weight: 600;
}

a[aria-current="page"]::after,
a.is-current::after,
a.link-inline[aria-current="page"]::after,
a.link-inline.is-current::after {
    height: 2px;
    background: currentColor;
    opacity: 0.9;
}

/* Lien secondaire (muted) */
a.link-muted {
    color: #4b5563;
}

a.link-muted::after {
    background: rgba(75, 85, 99, 0.25);
}

a.link-muted:hover {
    color: #383f48;
}

a.link-muted:hover::after {
    background: var(--link-underline-hover);
}

/* Sidebar / menu (nav-link, menu-link) */
#layout-menu .menu-link,
#layout-menu .nav-link,
.nav-link.menu-style {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 42px;
    padding: 0.72rem 0.95rem;
    border-radius: 12px;
    color: #383f48;
    text-decoration: none;
    transition:
        background-color 180ms ease,
        color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease;
    position: relative;
}

#layout-menu .menu-link::after,
#layout-menu .nav-link::after,
.nav-link.menu-style::after {
    display: none;
}

#layout-menu .menu-link:hover,
#layout-menu .nav-link:hover,
.nav-link.menu-style:hover {
    color: #111827;
    background: rgba(17, 24, 39, 0.05);
}

#layout-menu .menu-link:active,
#layout-menu .nav-link:active,
.nav-link.menu-style:active {
    transform: translateY(1px);
}

#layout-menu .menu-link:focus,
#layout-menu .nav-link:focus,
.nav-link.menu-style:focus {
    outline: none;
}

#layout-menu .menu-link:focus-visible,
#layout-menu .nav-link:focus-visible,
.nav-link.menu-style:focus-visible {
    box-shadow: 0 0 0 4px rgba(17, 24, 39, 0.14);
}

#layout-menu .menu-item.active>.menu-link,
#layout-menu .menu-item.open>.menu-link,
#layout-menu .nav-link[aria-current="page"],
#layout-menu .nav-link.is-current,
.nav-link.menu-style[aria-current="page"],
.nav-link.menu-style.is-current {
    color: #111827;
    background: rgba(17, 24, 39, 0.08);
    font-weight: 600;
}

/* text-info : premium info (bleu-gris) */
.text-info,
a.text-info {
    color: var(--info-premium) !important;
    text-decoration: none;
    transition: color 180ms ease, opacity 180ms ease, box-shadow 180ms ease;
}

a.text-info:hover,
a.text-info:focus {
    color: var(--info-premium-hover) !important;
}

a.text-info:active {
    color: var(--info-premium-active) !important;
}

a.text-info:visited {
    color: var(--info-premium-visited) !important;
}

a.text-info:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px var(--info-premium-focus);
    border-radius: 8px;
}

/* link-primary : compatibilité BONLOCA (rouge) */
.link-primary {
    color: #B71C1C !important;
}

.link-primary:hover,
.link-primary:focus {
    color: #9F1414 !important;
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(183, 28, 28, 0.5) !important;
    box-shadow: 0 0 0 3px rgba(183, 28, 28, 0.12) !important;
}

.form-check-input:focus {
    border-color: rgba(183, 28, 28, 0.5);
    box-shadow: 0 0 0 3px rgba(183, 28, 28, 0.12);
}

.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
    background-color: #B71C1C !important;
    border-color: #B71C1C !important;
}

/* form-switch (ig-toggle, etc.) : knob et track en rouge BONLOCA */
.form-switch .form-check-input:focus {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23B71C1C'/%3e%3c/svg%3e");
    border-color: rgba(183, 28, 28, 0.5);
    box-shadow: 0 0 0 3px rgba(183, 28, 28, 0.12);
}

.form-switch .form-check-input:checked {
    background-color: #B71C1C !important;
    border-color: #B71C1C !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

/* Disabled : gris neutre (unchecked) ou rouge atténué (checked) */
.form-check-input:disabled,
.form-check-input.ig-toggle:disabled {
    opacity: 0.65;
    cursor: not-allowed;
    background-color: #e9ecef !important;
    border-color: #dee2e6 !important;
}

.form-check-input:disabled:checked,
.form-check-input.ig-toggle:disabled:checked {
    background-color: rgba(183, 28, 28, 0.45) !important;
    border-color: rgba(183, 28, 28, 0.45) !important;
}

/* DataTables : boutons et pagination */
.dataTables_wrapper .dataTables_paginate.paging_simple {
    margin-top: 1em;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
    background: rgba(183, 28, 28, 0.06) !important;
    border: 1px solid rgba(183, 28, 28, 0.2) !important;
    color: #697a8d !important;
    border-radius: 999px;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: #B71C1C !important;
    border-color: #B71C1C !important;
    color: #fff !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:not(.disabled):not(.current):hover {
    background: rgba(183, 28, 28, 0.12) !important;
    border-color: rgba(183, 28, 28, 0.45) !important;
    color: #B71C1C !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:not(.disabled):active {
    background: rgba(183, 28, 28, 0.18) !important;
    border-color: #B71C1C !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
    background: transparent !important;
    border-color: rgba(0, 0, 0, 0.08) !important;
    color: #a1acb8 !important;
    cursor: default !important;
}

/* DataTables : spinner de chargement */
div.dataTables_processing>div:last-child>div {
    background: #B71C1C !important;
}

/* =========================
   Onglets premium
   .nav / .nav-pills / .nav-tabs
   ========================= */

:root {
    --tab-text: #353942;
    --tab-text-strong: #1f2937;
    --tab-bg: #F2F4F7;
    --tab-border: #E3E6EA;
    --tab-hover-bg: #E9EDF1;
    --tab-hover-border: rgba(16, 24, 40, 0.18);
    --tab-active-bg: rgba(255, 255, 255, 0.88);
    --tab-active-border: rgba(15, 23, 42, 0.08);
    --tab-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
}

/* conteneur d'onglets */
.nav-pills,
.nav-tabs,
.nav {
    gap: .35rem;
}

/* style de base = .action-btn (locataire) au repos, non soulignés */
.nav-pills .nav-link,
.nav-tabs .nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 44px;
    padding: .72rem .8rem;
    border-radius: 2em;
    border: 1px solid var(--tab-border);
    background: var(--tab-bg);
    color: var(--tab-text);
    font-weight: 600;
    letter-spacing: .01em;
    text-decoration: none;
    transition:
        color .15s ease,
        background-color .15s ease,
        border-color .15s ease,
        box-shadow .15s ease,
        transform .15s ease;
}

/* hover = .action-btn:hover */
.nav-pills .nav-link:hover,
.nav-tabs .nav-link:hover {
    background: var(--tab-hover-bg);
    border-color: var(--tab-hover-border);
    color: var(--tab-text-strong);
    transform: translateY(-1px);
    text-decoration: none;
}

/* focus accessible */
.nav-pills .nav-link:focus-visible,
.nav-tabs .nav-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px rgba(37, 50, 70, 0.10);
    text-decoration: none;
}

/* actif : fond plus marqué, sans soulignement */
.nav-pills .nav-link.active,
.nav-pills .show>.nav-link,
.nav-tabs .nav-link.active,
.nav-tabs .show>.nav-link {
    background: var(--tab-active-bg);
    color: var(--tab-text-strong);
    border-color: var(--tab-active-border);
    box-shadow: var(--tab-shadow);
    text-decoration: none;
}

/* icônes dans les onglets */
.nav-pills .nav-link .material-symbols-outlined,
.nav-pills .nav-link .material-symbols-sharp,
.nav-pills .nav-link i,
.nav-tabs .nav-link .material-symbols-outlined,
.nav-tabs .nav-link .material-symbols-sharp,
.nav-tabs .nav-link i {
    font-size: 1.05rem;
    opacity: .85;
}

/* actif : icône plus nette */
.nav-pills .nav-link.active .material-symbols-outlined,
.nav-pills .nav-link.active .material-symbols-sharp,
.nav-pills .nav-link.active i,
.nav-tabs .nav-link.active .material-symbols-outlined,
.nav-tabs .nav-link.active .material-symbols-sharp,
.nav-tabs .nav-link.active i {
    opacity: 1;
}

/* version compacte si besoin */
.nav-pills.nav-pills-sm .nav-link {
    min-height: 36px;
    padding: .48rem .82rem;
    border-radius: 2em;
    font-size: .92rem;
}

/* Card-header-pills / Card-header-tabs : layout */
.card-header-pills.nav,
.card-header .nav-pills,
.card-header-tabs.nav,
.card-header .nav-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    align-items: center;
}

.card-header-tabs {
    border-bottom: 1px solid var(--tab-border);
}

/* mobile */
@media (max-width: 767.98px) {

    .nav-pills .nav-link,
    .nav-tabs .nav-link {
        min-height: 38px;
        padding: .58rem .82rem;
        border-radius: 2em;
        font-size: .92rem;
    }
}

/* Styles de base (Mobile First) */
.hidden {
    display: none;
}

.visible-mobile {
    display: inline;
    /* Cache par défaut, puis affiche sur mobile */
}

.visible-desktop {
    display: inline;
    /* Affiche par défaut, puis cache sur desktop */
}

/* Utilisation optionnelle pour la gestion du gras */
/* Par défaut, ne spécifie pas de style en gras ici */
.font-normal {
    font-weight: normal;
}

.font-bold {
    font-weight: bold;
}

#dropdownMenuButton {
    position: absolute;
    right: 1.25em;
    top: 1.25em;
}

.dropdownMenuButton {
    position: absolute;
    right: 1.25em;
    top: 1.25em;
}

.mobile {
    display: none;
}

[class^="ri-"],
[class*=" ri-"] {
    font-size: 1.3rem;
}

.dataTables_wrapper .dataTables_filter input {
    background-color: #FFF !important;
}

.nowrap {
    white-space: nowrap;
}

.dataTables_empty {
    display: none !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    top: -2px !important;
    right: 6px !important;
}

.filters .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-top: -0.6em !important;
}

/* Petits écrans */
@media only screen and (max-width: 767px) {
    .truncate-small {
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

/* Grands écrans */
@media only screen and (min-width: 768px) {
    .truncate-large {
        /* Aucune limitation de taille pour les grands écrans */
    }
}


/* Media query pour les écrans plus larges que 600px (typiquement desktop) */
@media (min-width: 601px) {
    .visible-mobile {
        display: none;
        /* Continue de cacher sur desktop */
    }

    .visible-desktop {
        display: inline;
        /* S'assure que c'est visible sur desktop */
    }
}



/* Media query pour ajuster le style en gras si nécessaire */
@media (max-width: 600px) {
    .bold-mobile {
        font-weight: bold;
        /* Applique en gras uniquement sur mobile */
    }

    .table_list td {
        display: block;
    }

    .table_list th {
        display: none;
    }

    .btn_action {
        position: relative;
        right: -9em;
        top: 3.3em;
    }

    .dataTables_filter {
        position: relative;
        /* left: -3.3em; */
        bottom: 1em;
    }

    #example_info {
        display: none;
    }

    .breadcrumb-item.active {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 230px;
        /* Ajuste cette valeur selon tes besoins */
    }

    .mobile {
        display: inline;
    }

    .desktop {
        display: none;
    }

    .desktop-bold {
        font-weight: bold;
    }
}

/* ===== Mobile : nav + adresse ===== */
@media (max-width: 767.98px) {

    /* 1. Éviter que la nav dépasse sur la droite */
    html,
    body {
        overflow-x: hidden;
    }

    .layout-page,
    #layout-navbar {
        overflow-x: hidden;
        max-width: 100%;
    }

    .layout-navbar.container-fluid {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    .portal-nav-top {
        padding-right: 0.25rem;
    }

    .navbar-nav-right {
        min-width: 0;
        overflow: visible;
        flex: 1 1 auto;
    }

    .portal-nav-left,
    .portal-nav-greeting-wrap {
        min-width: 0;
        flex: 1 1 auto;
        flex-shrink: 1;
        align-items: center;
        padding-top: 0;
    }

    /* Nom aligné verticalement avec l'icône menu */
    .portal-greeting {
        flex-shrink: 0;
        display: flex;
        align-items: center;
    }

    .portal-greeting h5 {
        white-space: normal;
        overflow: visible;
        text-overflow: unset;
        margin: 0;
    }

    /* Avatar non tronqué */
    #layout-navbar .navbar-nav {
        flex-shrink: 0;
    }

    #layout-navbar .nav-item.dropdown-user {
        flex-shrink: 0;
    }

    #layout-navbar .avatar {
        flex-shrink: 0;
    }

    /* 2. Adresse moins décalée + chambre sous l'adresse */
    .portal-nav-left {
        padding-left: 0;
        max-width: 100%;
        margin-left: -6em;
    }

    .portal-address {
        flex-wrap: wrap;
        padding-left: 0;
        max-width: 100%;
    }

    .portal-address .addr-text {
        flex: 1 1 0;
        min-width: 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .portal-address .room {
        flex-basis: 100%;
        width: 100%;
        display: block;
        margin-top: 0.05rem;
        padding-left: 1.5rem;
        white-space: normal;
    }

    /* Bloc adresse dans l'espace entre nav et carte, aligné à gauche */
    .portal-address-row {
        padding: 0.5rem 0;
        text-align: left;
    }

    .portal-address-row .portal-address {
        padding: 0.35rem 0;
        justify-content: flex-start;
        position: absolute;
        top: 5.6em;
        left: 2em;
        right: 2em;
        max-width: calc(100% - 4em);
        min-width: 0;
    }
}

/* Grille compte : Mes coordonnées 2/3, Adresse actuelle 1/3 */
.grid-coordonnees-adresse {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 992px) {
    .grid-coordonnees-adresse {
        grid-template-columns: 1fr;
    }
}

/* Légende offcanvas : tous les items sur une seule ligne */
.legend-inline-nowrap {
    display: flex !important;
    flex-wrap: nowrap !important;
    white-space: nowrap;
}

.legend-inline-nowrap .list-inline-item {
    flex-shrink: 0;
}

/* Badges légende : taille réduite pour tenir dans l’offcanvas */
.legend-inline-nowrap .badge-center-legend {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    padding: 1.4em;
    line-height: 1;
}

.legend-inline-nowrap .badge-center-legend .material-symbols-outlined {
    font-size: 1rem !important;
}

/* Badge version (login, etc.) : harmonisé avec le design premium */
.version-glow {
    font-family: 'Public Sans', sans-serif;
}

.version-glow small {
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: rgba(53, 57, 66, 0.75);
}

/* Bouton Demande d'intervention (tâches) : icône et texte blancs au survol/focus/active */
#searchIntervention:hover,
#searchIntervention:hover>*,
#searchIntervention:focus,
#searchIntervention:focus>*,
#searchIntervention:active,
#searchIntervention:active>* {
    color: #fff !important;
}

#searchIntervention:hover *,
#searchIntervention:focus *,
#searchIntervention:active * {
    color: #fff !important;
}

#searchIntervention:hover i,
#searchIntervention:hover span,
#searchIntervention:focus i,
#searchIntervention:focus span,
#searchIntervention:active i,
#searchIntervention:active span {
    color: #fff !important;
    fill: #fff !important;
}

/* Annule l'effet hover/focus/active sur les badges outline (ex. alertes guardrail) */
.btn-outline-static:hover,
.btn-outline-static:focus,
.btn-outline-static:active,
.btn-outline-static.active {
    background-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}

.btn-outline-danger.btn-outline-static:hover,
.btn-outline-danger.btn-outline-static:focus,
.btn-outline-danger.btn-outline-static:active {
    color: #ff3e1d !important;
    border-color: #ff3e1d !important;
}

/* ===== Menu mobile : hamburger (navbar) et fermeture (drawer) — même zone tactile et alignement ===== */
@media (max-width: 1199.98px) {

    /* Ne pas centrer le toggle sur la hauteur titre + sous-titre */
    .layout-navbar.navbar-detached {
        align-items: flex-start !important;
    }

    .layout-navbar .layout-menu-toggle.navbar-nav .nav-link {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 2.75rem;
        min-height: 2.75rem;
        margin-top: 0.12rem;
        box-sizing: border-box;
    }

    #layout-menu .app-brand-premium .menu-close-btn,
    #layout-menu .app-brand.demo .menu-close-btn {
        align-self: center !important;
        width: 2.75rem !important;
        height: 2.75rem !important;
        min-width: 2.75rem !important;
        min-height: 2.75rem !important;
    }
}

/* ===== Boutons premium Decilog : navbar + contenu (même base qu’Office / scenarios_gestion) ===== */
.layout-wrapper.layout-content-navbar {
    --decilog-ui-border: rgba(15, 23, 42, 0.08);
    --decilog-ui-border-strong: rgba(15, 23, 42, 0.14);
    --decilog-ui-text-strong: #383f48;
    --decilog-ui-brand: #383f48;
    --decilog-ui-brand-hover: #1b2534;
    --decilog-ui-focus-ring: 0 0 0 4px rgba(37, 50, 70, 0.10);
    --decilog-ui-transition: 180ms ease;
}

#layout-navbar .form-control,
#layout-navbar .form-select {
    min-height: 46px;
    border-radius: 14px;
    border: 1px solid var(--decilog-ui-border);
    background: rgba(255, 255, 255, 0.88);
    color: var(--decilog-ui-text-strong);
    box-shadow: none !important;
    transition:
        border-color var(--decilog-ui-transition),
        background-color var(--decilog-ui-transition),
        box-shadow var(--decilog-ui-transition);
}

#layout-navbar .form-control:hover,
#layout-navbar .form-select:hover {
    border-color: var(--decilog-ui-border-strong);
    background: #fff;
}

#layout-navbar .form-control:focus,
#layout-navbar .form-select:focus {
    border-color: rgba(37, 50, 70, 0.24);
    box-shadow: var(--decilog-ui-focus-ring) !important;
    background: #fff;
}

#layout-navbar .btn,
.layout-wrapper.layout-content-navbar .layout-page .btn:not(.btn-close):not(.btn-link) {
    border-radius: 999px;
    min-height: 42px;
    padding: 0.68rem 1.05rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    transition:
        transform var(--decilog-ui-transition),
        box-shadow var(--decilog-ui-transition),
        background-color var(--decilog-ui-transition),
        border-color var(--decilog-ui-transition),
        color var(--decilog-ui-transition);
}

#layout-navbar .btn:focus,
.layout-wrapper.layout-content-navbar .layout-page .btn:not(.btn-close):not(.btn-link):focus {
    box-shadow: none !important;
}

#layout-navbar .btn:focus-visible,
.layout-wrapper.layout-content-navbar .layout-page .btn:not(.btn-close):not(.btn-link):focus-visible {
    box-shadow: var(--decilog-ui-focus-ring) !important;
}

#layout-navbar .btn:active:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn:not(.btn-close):not(.btn-link):not(.btn-outline-static):active:not(:disabled) {
    transform: translateY(1px);
}

#layout-navbar .btn.btn-sm,
.layout-wrapper.layout-content-navbar .layout-page .btn.btn-sm:not(.btn-close):not(.btn-link) {
    min-height: 38px;
    padding: 0.5rem 0.85rem;
    font-size: 0.875rem;
}

/* Primaire plein : noir / anthracite uniquement dans la barre de navigation.
   Le contenu des pages garde le rouge marque (.btn-primary plus haut dans ce fichier). */
#layout-navbar .btn-primary {
    background: var(--decilog-ui-brand) !important;
    border-color: var(--decilog-ui-brand) !important;
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(37, 50, 70, 0.16);
}

#layout-navbar .btn-primary:hover:not(:disabled),
#layout-navbar .btn-primary:focus-visible:not(:disabled) {
    background: var(--decilog-ui-brand-hover) !important;
    border-color: var(--decilog-ui-brand-hover) !important;
    color: #fff !important;
}

#layout-navbar .btn-outline-primary,
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-primary:not(.btn-close):not(.btn-link) {
    border-color: rgba(37, 50, 70, 0.22) !important;
    color: var(--decilog-ui-brand) !important;
    background: rgba(255, 255, 255, 0.78) !important;
}

#layout-navbar .btn-outline-primary:hover:not(:disabled),
#layout-navbar .btn-outline-primary:focus-visible:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-primary:not(.btn-close):not(.btn-link):hover:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-primary:not(.btn-close):not(.btn-link):focus-visible:not(:disabled) {
    background: rgba(37, 50, 70, 0.05) !important;
    color: var(--decilog-ui-brand-hover) !important;
    border-color: rgba(37, 50, 70, 0.32) !important;
}

#layout-navbar .btn-outline-secondary,
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-secondary:not(.btn-close):not(.btn-link) {
    border-color: rgba(37, 50, 70, 0.22) !important;
    color: #5c6776 !important;
    background: rgba(255, 255, 255, 0.78) !important;
}

#layout-navbar .btn-outline-secondary:hover:not(:disabled),
#layout-navbar .btn-outline-secondary:focus-visible:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-secondary:not(.btn-close):not(.btn-link):hover:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-secondary:not(.btn-close):not(.btn-link):focus-visible:not(:disabled) {
    background: rgba(37, 50, 70, 0.05) !important;
    color: var(--decilog-ui-text-strong) !important;
    border-color: rgba(37, 50, 70, 0.32) !important;
}

#layout-navbar .btn-outline-success,
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-success:not(.btn-close):not(.btn-link) {
    border-color: rgba(37, 50, 70, 0.22) !important;
    color: #2f6f3c !important;
    background: rgba(255, 255, 255, 0.78) !important;
}

#layout-navbar .btn-outline-success:hover:not(:disabled),
#layout-navbar .btn-outline-success:focus-visible:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-success:not(.btn-close):not(.btn-link):hover:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-success:not(.btn-close):not(.btn-link):focus-visible:not(:disabled) {
    background: rgba(37, 50, 70, 0.05) !important;
    color: #1b4d26 !important;
    border-color: rgba(37, 50, 70, 0.32) !important;
}

#layout-navbar .btn-outline-danger,
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-danger:not(.btn-close):not(.btn-link) {
    border-color: rgba(37, 50, 70, 0.22) !important;
    color: #b42318 !important;
    background: rgba(255, 255, 255, 0.78) !important;
}

#layout-navbar .btn-outline-danger:hover:not(:disabled),
#layout-navbar .btn-outline-danger:focus-visible:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-danger:not(.btn-close):not(.btn-link):hover:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-danger:not(.btn-close):not(.btn-link):focus-visible:not(:disabled) {
    background: rgba(37, 50, 70, 0.05) !important;
    color: #7f1d1d !important;
    border-color: rgba(37, 50, 70, 0.32) !important;
}

#layout-navbar .btn-outline-dark,
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-dark:not(.btn-close):not(.btn-link) {
    border-color: rgba(37, 50, 70, 0.22) !important;
    color: var(--decilog-ui-text-strong) !important;
    background: rgba(255, 255, 255, 0.78) !important;
}

#layout-navbar .btn-outline-dark:hover:not(:disabled),
#layout-navbar .btn-outline-dark:focus-visible:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-dark:not(.btn-close):not(.btn-link):hover:not(:disabled),
.layout-wrapper.layout-content-navbar .layout-page .btn-outline-dark:not(.btn-close):not(.btn-link):focus-visible:not(:disabled) {
    background: rgba(37, 50, 70, 0.05) !important;
    color: #111827 !important;
    border-color: rgba(37, 50, 70, 0.32) !important;
}

/* Icônes Material : couleur = texte du bouton (navbar + contenu) */
#layout-navbar .btn [class^="material-symbols-"],
.layout-wrapper.layout-content-navbar .layout-page .btn:not(.btn-close):not(.btn-link) [class^="material-symbols-"] {
    color: currentColor;
}

#layout-navbar .budget-icon-white-hover:hover:not(:disabled) [class^="material-symbols-"],
#layout-navbar .budget-icon-white-hover:focus:not(:disabled) [class^="material-symbols-"],
.layout-wrapper.layout-content-navbar .layout-page .budget-icon-white-hover:hover:not(:disabled) [class^="material-symbols-"],
.layout-wrapper.layout-content-navbar .layout-page .budget-icon-white-hover:focus:not(:disabled) [class^="material-symbols-"] {
    color: currentColor !important;
}

/*
 * ApexCharts — survols : aligner titre et libellés sur Public Sans (stack du site).
 * Le titre (.apexcharts-tooltip-title) peut sinon hériter d’une police à empattements selon le contexte SVG / styles inline.
 */
.apexcharts-tooltip {
    font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

.apexcharts-tooltip-title,
.apexcharts-tooltip .apexcharts-tooltip-text,
.apexcharts-tooltip .apexcharts-tooltip-text *,
.apexcharts-tooltip .apexcharts-tooltip-series-group,
.apexcharts-xaxistooltip,
.apexcharts-xaxistooltip *,
.apexcharts-yaxistooltip,
.apexcharts-yaxistooltip * {
    font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}