html.theme-dark {
    color-scheme: dark;
    --theme-dark-bg: #0f172a;
    --theme-dark-bg-soft: #131d33;
    --theme-dark-surface: #182235;
    --theme-dark-surface-2: #1d2940;
    --theme-dark-surface-3: #22314d;
    --theme-dark-border: rgba(148, 163, 184, 0.18);
    --theme-dark-border-soft: rgba(148, 163, 184, 0.10);
    --theme-dark-text: #e7eef9;
    --theme-dark-text-soft: #b8c6db;
    --theme-dark-text-muted: #90a0ba;
    --theme-dark-accent: var(--app-accent, var(--app-navbar-accent, #3b82f6));
    --theme-dark-accent-contrast: var(--app-accent-contrast, #ffffff);
    --theme-dark-control-bg: color-mix(in srgb, var(--theme-dark-surface-3) 82%, transparent);
    --theme-dark-control-hover-bg: color-mix(in srgb, var(--theme-dark-accent) 12%, var(--theme-dark-surface-3));
    --theme-dark-control-active-bg: var(--app-accent-strong, var(--theme-dark-accent));
    --theme-dark-control-active-text: #ffffff;
    --theme-dark-control-border: var(--theme-dark-border);
    --theme-dark-shadow: 0 16px 36px rgba(0, 0, 0, 0.26);
    min-height: 100%;
    background: var(--theme-dark-bg) !important;
}

body:has(.initial-setup-page) {
    --setup-accent: var(--app-brand-accent, var(--app-accent, #ea7a12));
    --setup-accent-strong: var(--app-brand-accent-strong, var(--app-accent-strong, #c45507));
    --setup-accent-rgb: var(--app-brand-accent-rgb, var(--app-accent-rgb, 234, 122, 18));
    --setup-bg: #edf3f9;
    --setup-surface: rgba(255, 255, 255, 0.92);
    --setup-surface-solid: #ffffff;
    --setup-text: #142033;
    --setup-muted: #63748b;
    --setup-border: #d4e0ea;
    --setup-field: #fbfdff;
    --setup-shadow: 0 34px 90px rgba(30, 41, 59, 0.16);
    background:
        radial-gradient(circle at 12% 8%, rgba(var(--setup-accent-rgb), 0.16), transparent 28rem),
        radial-gradient(circle at 82% 14%, rgba(14, 165, 233, 0.14), transparent 30rem),
        linear-gradient(180deg, #f8fbff 0%, var(--setup-bg) 100%) !important;
    color: var(--setup-text);
}

body:has(.initial-setup-page) .app-page-shell {
    min-height: 100vh;
    padding: 0 !important;
}

body:has(.initial-setup-page) .app-page-shell > main[role="main"] {
    width: 100%;
    max-width: none;
    min-height: 100vh;
    padding: 0 !important;
}

.initial-setup-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: clamp(1.25rem, 3vw, 3rem);
    color: var(--setup-text);
}

.initial-setup-hero {
    width: min(1180px, 100%);
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(420px, 1.12fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: center;
}

.initial-setup-copy {
    display: grid;
    gap: 1.15rem;
    align-content: center;
}

.initial-setup-kicker {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.48rem 0.72rem;
    border: 1px solid color-mix(in srgb, var(--setup-accent) 28%, var(--setup-border));
    border-radius: 999px;
    color: var(--setup-accent-strong);
    background: color-mix(in srgb, var(--setup-accent) 11%, #ffffff);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.initial-setup-copy h1 {
    margin: 0;
    color: var(--setup-text);
    font-size: clamp(2.3rem, 5vw, 4.8rem);
    line-height: 0.96;
    font-weight: 950;
}

.initial-setup-copy p {
    max-width: 34rem;
    margin: 0;
    color: var(--setup-muted);
    font-size: 1.08rem;
    font-weight: 720;
    line-height: 1.55;
}

.initial-setup-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
}

.initial-setup-steps span {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.6rem;
    padding: 0 0.82rem;
    border: 1px solid var(--setup-border);
    border-radius: 8px;
    color: var(--setup-text);
    background: rgba(255, 255, 255, 0.72);
    font-weight: 850;
    box-shadow: 0 10px 24px rgba(30, 41, 59, 0.06);
}

.initial-setup-steps i {
    color: var(--setup-accent);
}

.initial-setup-card {
    position: relative;
    overflow: hidden;
    display: grid;
    gap: 1.15rem;
    padding: clamp(1.25rem, 2.4vw, 1.8rem);
    border: 1px solid var(--setup-border);
    border-radius: 14px;
    background: var(--setup-surface);
    box-shadow: var(--setup-shadow);
    backdrop-filter: blur(18px);
}

.initial-setup-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--setup-accent), #0ea5e9, #16a34a);
}

.initial-setup-card__head {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.initial-setup-card__icon {
    flex: 0 0 auto;
    display: grid;
    width: 3.4rem;
    height: 3.4rem;
    place-items: center;
    border-radius: 12px;
    color: #ffffff;
    background: linear-gradient(135deg, var(--setup-accent), var(--setup-accent-strong));
    box-shadow: 0 16px 34px rgba(var(--setup-accent-rgb), 0.22);
    font-size: 1.35rem;
}

.initial-setup-card__head h2 {
    margin: 0;
    color: var(--setup-text);
    font-size: 1.42rem;
    font-weight: 950;
}

.initial-setup-card__head p {
    margin: 0.16rem 0 0;
    color: var(--setup-muted);
    font-weight: 720;
}

.initial-setup-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.initial-setup-field {
    display: grid;
    gap: 0.42rem;
    margin: 0;
}

.initial-setup-field > span:first-child {
    color: color-mix(in srgb, var(--setup-text) 74%, var(--setup-muted));
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.initial-setup-field small {
    color: var(--setup-muted);
    font-size: 0.74rem;
    font-weight: 700;
}

.initial-setup-field .form-control {
    min-height: 3.1rem;
    border: 1px solid var(--setup-border);
    border-radius: 9px;
    color: var(--setup-text);
    background: var(--setup-field);
    font-weight: 760;
    box-shadow: none;
}

.initial-setup-field .form-control::placeholder {
    color: color-mix(in srgb, var(--setup-muted) 72%, transparent);
}

.initial-setup-field .form-control:focus {
    border-color: color-mix(in srgb, var(--setup-accent) 62%, var(--setup-border));
    background: var(--setup-surface-solid);
    box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--setup-accent) 18%, transparent);
}

.initial-setup-validation {
    display: none;
    padding: 0.75rem 0.9rem;
    border: 1px solid rgba(220, 38, 38, 0.26);
    border-radius: 9px;
    color: #991b1b;
    background: #fff1f2;
    font-weight: 750;
}

.initial-setup-validation.validation-summary-errors {
    display: block;
}

.initial-setup-submit {
    min-height: 3.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    border: 0;
    border-radius: 10px;
    color: #ffffff;
    background: linear-gradient(135deg, var(--setup-accent), var(--setup-accent-strong));
    font-weight: 950;
    box-shadow: 0 18px 42px rgba(var(--setup-accent-rgb), 0.24);
}

.initial-setup-submit:hover,
.initial-setup-submit:focus {
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 22px 50px rgba(var(--setup-accent-rgb), 0.30);
}

html.theme-dark body:has(.initial-setup-page) {
    --setup-bg: #08111f;
    --setup-surface: rgba(18, 28, 46, 0.92);
    --setup-surface-solid: #121c30;
    --setup-text: #e8eef8;
    --setup-muted: #a4b2c7;
    --setup-border: rgba(126, 146, 176, 0.30);
    --setup-field: rgba(8, 17, 31, 0.82);
    --setup-shadow: 0 36px 100px rgba(0, 0, 0, 0.48);
    background:
        radial-gradient(circle at 12% 8%, rgba(var(--setup-accent-rgb), 0.20), transparent 28rem),
        radial-gradient(circle at 82% 14%, rgba(56, 189, 248, 0.16), transparent 30rem),
        linear-gradient(180deg, #0d1728 0%, #08111f 100%) !important;
}

html.theme-dark .initial-setup-kicker {
    color: color-mix(in srgb, var(--setup-accent) 36%, #ffffff);
    background: rgba(var(--setup-accent-rgb), 0.13);
}

html.theme-dark .initial-setup-steps span {
    color: var(--setup-text);
    background: rgba(18, 28, 46, 0.72);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
}

html.theme-dark .initial-setup-card {
    background:
        radial-gradient(circle at 12% 0%, rgba(56, 189, 248, 0.10), transparent 22rem),
        var(--setup-surface);
}

html.theme-dark .initial-setup-field .form-control {
    color: var(--setup-text);
    background: var(--setup-field);
}

html.theme-dark .initial-setup-field .form-control:focus {
    background: var(--setup-surface-solid);
}

html.theme-dark .initial-setup-validation {
    color: #fecdd3;
    border-color: rgba(251, 113, 133, 0.38);
    background: rgba(127, 29, 29, 0.24);
}

@media (max-width: 940px) {
    .initial-setup-hero,
    .initial-setup-grid {
        grid-template-columns: 1fr;
    }

    .initial-setup-copy {
        text-align: center;
        justify-items: center;
    }

    .initial-setup-card__head {
        align-items: flex-start;
    }
}

/* Responsive density contract loaded after every view stylesheet. */
@media (max-width: 575.98px) {
    body:not(:has(.login-page)) {
        font-size: 0.95rem;
    }

    body:not(:has(.login-page)) :where(.app-shell-header) {
        padding: 0.35rem 0.45rem 0;
    }

    body:not(:has(.login-page)) :where(.app-navbar__shell) {
        padding: 0.55rem;
    }

    body:not(:has(.login-page)) :where(.app-navbar__layout, .app-navbar__context-panel, .app-navbar__profile-panel, .app-navbar__nav-center, .app-navbar__nav) {
        gap: 0.45rem;
    }

    body:not(:has(.login-page)) :where(.app-navbar__brand-copy strong, .app-navbar__home-link, .app-navbar__nav-link, .app-navbar__nav-title, .app-navbar__context-btn, .app-navbar__utility-btn, .app-navbar__logout-btn, .app-navbar__context-pill) {
        font-size: 0.86rem !important;
    }

    body:not(:has(.login-page)) :where(.app-page-shell) {
        padding-inline: 0.45rem;
    }

    body:not(:has(.login-page)) :where(.card-header, .modal-header, .accordion-header) {
        padding: 0.72rem 0.82rem;
    }

    body:not(:has(.login-page)) :where(.card-body, .modal-body, .accordion-body) {
        padding: 0.82rem;
    }

    body:not(:has(.login-page)) :where(.modal-dialog) {
        margin: 0.5rem;
    }

    body:not(:has(.login-page)) :where(.btn, button.dt-button, .dt-button, .dropdown-item, .workspace-nav__link) {
        min-height: 2.2rem;
        font-size: 0.88rem !important;
    }

    body:not(:has(.login-page)) :where(.form-control, .form-select, .custom-select, .select2-container--default .select2-selection--single, .select2-container--default .select2-selection--multiple, .dataTables_filter input, .dataTables_length select) {
        min-height: 2.35rem;
        font-size: 0.92rem !important;
    }

    body:not(:has(.login-page)) :where(label, .form-label, .form-check-label) {
        font-size: 0.86rem !important;
    }

    body:not(:has(.login-page)) :where(.table, table.dataTable, .dataTable) {
        font-size: 0.82rem !important;
    }

    body:not(:has(.login-page)) :where(.table thead th, table.dataTable thead th, table.dataTable thead td, .table tbody td, table.dataTable tbody td) {
        padding: 0.52rem 0.58rem !important;
        line-height: 1.25;
    }

    body:not(:has(.login-page)) :where(.badge, .badge-paiement, [class*="badge"], [class*="pill"], [class*="status"]) {
        font-size: 0.74rem !important;
    }

    body:not(:has(.login-page)) :where(h1, .h1) {
        font-size: 1.35rem;
    }

    body:not(:has(.login-page)) :where(h2, .h2) {
        font-size: 1.18rem;
    }

    body:not(:has(.login-page)) :where(h3, .h3, .modal-title, .card-header h5) {
        font-size: 1.02rem;
    }
}

@media (min-width: 576px) and (max-width: 991.98px) {
    body:not(:has(.login-page)) {
        font-size: 0.98rem;
    }

    body:not(:has(.login-page)) :where(.app-page-shell) {
        padding-inline: 0.7rem;
    }

    body:not(:has(.login-page)) :where(.app-navbar__home-link, .app-navbar__nav-link, .app-navbar__nav-title, .app-navbar__context-btn, .app-navbar__utility-btn, .app-navbar__logout-btn, .app-navbar__context-pill) {
        font-size: 0.92rem !important;
    }

    body:not(:has(.login-page)) :where(.card-header, .modal-header, .accordion-header) {
        padding: 0.82rem 0.95rem;
    }

    body:not(:has(.login-page)) :where(.card-body, .modal-body, .accordion-body) {
        padding: 0.95rem;
    }

    body:not(:has(.login-page)) :where(.btn, button.dt-button, .dt-button, .dropdown-item, .workspace-nav__link) {
        min-height: 2.28rem;
        font-size: 0.9rem !important;
    }

    body:not(:has(.login-page)) :where(.form-control, .form-select, .custom-select, .select2-container--default .select2-selection--single, .select2-container--default .select2-selection--multiple, .dataTables_filter input, .dataTables_length select) {
        min-height: 2.42rem;
        font-size: 0.94rem !important;
    }

    body:not(:has(.login-page)) :where(.table, table.dataTable, .dataTable) {
        font-size: 0.85rem !important;
    }

    body:not(:has(.login-page)) :where(.table thead th, table.dataTable thead th, table.dataTable thead td, .table tbody td, table.dataTable tbody td) {
        padding: 0.58rem 0.64rem !important;
    }
}

@media (min-width: 992px) and (max-width: 1699.98px) {
    body:not(:has(.login-page)) {
        font-size: 1rem;
    }

    body:not(:has(.login-page)) :where(.app-navbar__home-link, .app-navbar__nav-link, .app-navbar__nav-title) {
        font-size: 0.9rem !important;
    }

    body:not(:has(.login-page)) :where(.btn, button.dt-button, .dt-button, .dropdown-item, .workspace-nav__link) {
        font-size: 0.9rem !important;
    }

    body:not(:has(.login-page)) :where(.form-control, .form-select, .custom-select, .select2-container--default .select2-selection--single, .select2-container--default .select2-selection--multiple, .dataTables_filter input, .dataTables_length select) {
        font-size: 0.94rem !important;
    }

    body:not(:has(.login-page)) :where(.table, table.dataTable, .dataTable) {
        font-size: 0.86rem !important;
    }
}

@media (min-width: 2200px) {
    body:not(:has(.login-page)) :where(.app-navbar__home-link, .app-navbar__nav-link, .app-navbar__nav-title) {
        font-size: 1rem !important;
        line-height: 1.16;
    }

    body:not(:has(.login-page)) :where(.app-navbar__home-link, .app-navbar__nav-link) {
        min-height: 2.65rem;
        padding: 0.72rem 1rem !important;
    }

    body:not(:has(.login-page)) :where(.app-navbar__dropdown-menu .dropdown-item) {
        font-size: 0.96rem !important;
    }
}

@media (min-width: 2400px) {
    body:not(:has(.login-page)) :where(.app-navbar__home-link, .app-navbar__nav-link, .app-navbar__nav-title) {
        font-size: 1.14rem !important;
    }

    body:not(:has(.login-page)) :where(.app-navbar__home-link, .app-navbar__nav-link) {
        min-height: 2.95rem;
        padding: 0.82rem 1.18rem !important;
    }

    body:not(:has(.login-page)) :where(.app-navbar__dropdown-menu .dropdown-item) {
        font-size: 1.06rem !important;
    }
}

html.theme-dark body {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, color-mix(in srgb, var(--theme-dark-accent) 12%, transparent), transparent 28%),
        radial-gradient(circle at top right, color-mix(in srgb, var(--theme-dark-accent) 8%, transparent), transparent 24%),
        var(--theme-dark-bg) !important;
    background-attachment: fixed;
    color: var(--theme-dark-text);
}

html.theme-dark .app-page-shell,
html.theme-dark .app-page-shell > main[role="main"] {
    background: transparent !important;
}

html.theme-dark body.school-year-context--past {
    background:
        radial-gradient(circle at top left, rgba(245, 158, 11, 0.16), transparent 30%),
        var(--theme-dark-bg) !important;
}

html.theme-dark body.school-year-context--future {
    background:
        radial-gradient(circle at top left, rgba(var(--app-brand-accent-rgb), 0.16), transparent 30%),
        var(--theme-dark-bg) !important;
}

html.theme-dark body[class*="app-view--"] {
    background:
        radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--app-view-accent) 16%, transparent), transparent 28%),
        radial-gradient(circle at top right, color-mix(in srgb, var(--app-view-accent) 9%, transparent), transparent 24%),
        var(--theme-dark-bg) !important;
}

html.theme-dark .app-view-context__inner {
    border-color: color-mix(in srgb, var(--app-view-accent) 32%, var(--theme-dark-border));
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--app-view-accent) 16%, var(--theme-dark-surface)) 0%, rgba(24, 34, 53, 0.96) 42%, rgba(17, 26, 45, 0.94) 100%);
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .app-view-context__icon {
    background: color-mix(in srgb, var(--app-view-accent) 18%, var(--theme-dark-surface-2));
    color: color-mix(in srgb, var(--app-view-accent) 68%, #ffffff);
}

html.theme-dark .app-view-context__eyebrow {
    color: color-mix(in srgb, var(--app-view-accent) 68%, var(--theme-dark-text-soft));
}

html.theme-dark .app-view-context__copy strong {
    color: var(--theme-dark-text);
}

html.theme-dark .app-view-context__copy small {
    color: var(--theme-dark-text-soft);
}

html.theme-dark .app-view-context__meta span {
    border-color: color-mix(in srgb, var(--app-view-accent) 24%, var(--theme-dark-border));
    background: rgba(20, 29, 49, 0.72);
    color: var(--theme-dark-text-soft);
}

html.theme-dark .app-view-context__action {
    border-color: color-mix(in srgb, var(--app-view-accent) 30%, var(--theme-dark-border));
    background: color-mix(in srgb, var(--app-view-accent) 16%, var(--theme-dark-surface-2));
    color: color-mix(in srgb, var(--app-view-accent) 72%, #ffffff);
}

html.theme-dark .app-view-context__action:hover,
html.theme-dark .app-view-context__action:focus {
    border-color: color-mix(in srgb, var(--app-view-accent) 70%, #ffffff);
    background: color-mix(in srgb, var(--app-view-accent) 72%, #ffffff);
    color: #0f172a;
}

html.theme-dark .app-view-context__meta i {
    color: color-mix(in srgb, var(--app-view-accent) 70%, #ffffff);
}

.theme-switch {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.theme-switch__label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: #1f2937;
}

.theme-switch__toggle {
    margin: 0;
    min-height: auto;
}

.theme-switch__toggle .form-check-input {
    cursor: pointer;
}

.app-zoom-control {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.35rem;
    padding: 0.34rem 0.48rem 0.34rem 0.62rem;
    border: 1px solid rgba(95, 122, 171, 0.16);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.68);
}

.app-zoom-control__label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    color: var(--app-navbar-text);
    font-size: 0.76rem;
    font-weight: 900;
    white-space: nowrap;
}

.app-zoom-control__label i {
    color: var(--app-navbar-accent);
}

.app-zoom-control__body {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
}

.app-zoom-control__button,
.app-zoom-control__value {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid color-mix(in srgb, var(--app-navbar-accent) 18%, rgba(95, 122, 171, 0.16));
    background: rgba(255, 255, 255, 0.82);
    color: var(--app-navbar-accent-strong);
    font-weight: 900;
    cursor: pointer;
}

.app-zoom-control__button {
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 999px;
    font-size: 0.72rem;
}

.app-zoom-control__value {
    min-width: 3.4rem;
    height: 1.8rem;
    padding-inline: 0.45rem;
    border-radius: 999px;
    color: var(--app-navbar-text);
    font-size: 0.74rem;
}

.app-zoom-control__button:hover,
.app-zoom-control__button:focus,
.app-zoom-control__value:hover,
.app-zoom-control__value:focus {
    background: var(--app-navbar-accent-soft);
}

html.theme-dark .theme-switch {
    background: rgba(17, 24, 39, 0.92);
    border-color: var(--theme-dark-border);
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .theme-switch__label {
    color: var(--theme-dark-text);
}

html.theme-dark .app-zoom-control {
    background: rgba(17, 24, 39, 0.92);
    border-color: var(--theme-dark-border);
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .app-zoom-control__label {
    color: var(--theme-dark-text);
}

html.theme-dark .app-zoom-control__button,
html.theme-dark .app-zoom-control__value {
    background: color-mix(in srgb, var(--theme-dark-surface-2) 88%, transparent);
    border-color: var(--theme-dark-border);
    color: var(--theme-dark-text);
}

@media (max-width: 1199.98px) {
    .app-zoom-control {
        width: 100%;
        justify-content: space-between;
    }

    .app-zoom-control__body {
        flex: 1 1 auto;
        justify-content: flex-end;
    }

}

@media (min-width: 1200px) and (max-width: 2199.98px) {
    .app-navbar__nav-actions {
        align-items: center;
        flex-wrap: nowrap;
        justify-content: flex-end;
        max-width: none;
    }

    .app-navbar__theme-switch {
        order: 1;
    }

    .app-navbar__account {
        order: 2;
    }

    .app-zoom-control {
        order: 3;
        flex: 0 0 auto;
        justify-content: flex-start;
        min-height: 2.1rem;
        padding: 0.22rem 0.34rem 0.22rem 0.48rem;
    }
}

@media (min-width: 1200px) and (max-width: 2199.98px) {
    body:not(:has(.login-page)) .app-shell-header {
        padding: 0.35rem 0.6rem 0 !important;
    }

    body:not(:has(.login-page)) .app-navbar {
        border-radius: 16px !important;
    }

    body:not(:has(.login-page)) .app-navbar__shell {
        padding: 0.42rem 0.55rem !important;
    }

    body:not(:has(.login-page)) .app-navbar__layout {
        display: grid !important;
        grid-template-columns: auto minmax(28rem, 1fr) auto !important;
        gap: 0.34rem 0.62rem !important;
        align-items: center !important;
    }

    body:not(:has(.login-page)) .app-navbar__context-zone {
        grid-column: 1 !important;
        grid-row: 1 !important;
        justify-content: flex-start !important;
    }

    body:not(:has(.login-page)) .app-navbar__profile-zone {
        grid-column: 3 !important;
        grid-row: 1 !important;
        justify-content: flex-end !important;
    }

    body:not(:has(.login-page)) .app-navbar__nav-zone {
        grid-column: 2 !important;
        grid-row: 1 !important;
        justify-content: center !important;
    }

    body:not(:has(.login-page)) .app-navbar__context-panel,
    body:not(:has(.login-page)) .app-navbar__profile-panel {
        width: auto !important;
        max-width: none !important;
        min-height: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        gap: 0.34rem !important;
        flex-wrap: nowrap !important;
    }

    body:not(:has(.login-page)) .app-navbar__brand {
        gap: 0.42rem !important;
        margin-right: 0.12rem !important;
    }

    body:not(:has(.login-page)) .app-navbar__brand-mark {
        width: 28px !important;
        height: 28px !important;
        border-radius: 9px !important;
        font-size: 0.8rem !important;
    }

    body:not(:has(.login-page)) .app-navbar__brand-copy strong,
    body:not(:has(.login-page)) .app-navbar__context-btn,
    body:not(:has(.login-page)) .app-navbar__utility-btn,
    body:not(:has(.login-page)) .app-navbar__context-pill,
    body:not(:has(.login-page)) .app-navbar__home-link,
    body:not(:has(.login-page)) .app-navbar__nav-link,
    body:not(:has(.login-page)) .app-navbar__nav-title {
        font-size: 0.78rem !important;
    }

    body:not(:has(.login-page)) .app-navbar__context-btn,
    body:not(:has(.login-page)) .app-navbar__utility-btn,
    body:not(:has(.login-page)) .app-navbar__context-pill,
    body:not(:has(.login-page)) .app-navbar__home-link,
    body:not(:has(.login-page)) .app-navbar__nav-link {
        min-height: 32px !important;
        padding: 0.34rem 0.5rem !important;
        border-radius: 10px !important;
    }

    body:not(:has(.login-page)) .app-navbar__contexts,
    body:not(:has(.login-page)) .app-navbar__nav-actions,
    body:not(:has(.login-page)) .app-navbar__nav-center,
    body:not(:has(.login-page)) .app-navbar__nav {
        gap: 0.28rem !important;
        flex-wrap: nowrap !important;
    }

    body:not(:has(.login-page)) .app-navbar__home-link span,
    body:not(:has(.login-page)) .app-navbar__nav-title,
    body:not(:has(.login-page)) .app-navbar__context-btn span,
    body:not(:has(.login-page)) .app-navbar__utility-btn span {
        white-space: nowrap !important;
    }

    body:not(:has(.login-page)) .app-navbar__context-btn--school-year {
        min-width: 10.5rem !important;
        max-width: 12.5rem !important;
        min-height: 38px !important;
    }

    body:not(:has(.login-page)) .app-navbar__school-year-icon {
        width: 28px !important;
        height: 28px !important;
        flex-basis: 28px !important;
        border-radius: 9px !important;
    }

    body:not(:has(.login-page)) .app-navbar__school-year-copy small {
        font-size: 0.54rem !important;
    }

    body:not(:has(.login-page)) .app-navbar__school-year-copy strong {
        font-size: 0.84rem !important;
    }

    body:not(:has(.login-page)) .theme-switch,
    body:not(:has(.login-page)) .app-zoom-control,
    body:not(:has(.login-page)) .app-navbar__account {
        min-height: 32px !important;
        padding-block: 0.18rem !important;
        border-radius: 12px !important;
    }

    body:not(:has(.login-page)) .app-navbar__identity {
        padding: 0.12rem 0.18rem 0.12rem 0.34rem !important;
    }

    body:not(:has(.login-page)) .app-navbar__identity-copy strong {
        font-size: 0.76rem !important;
    }

    body:not(:has(.login-page)) .app-navbar__identity-role {
        font-size: 0.56rem !important;
    }

    body:not(:has(.login-page)) .app-zoom-control__label span {
        display: none !important;
    }
}

html.theme-dark .app-navbar {
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--app-navbar-accent) 18%, transparent) 0%, transparent 30%),
        radial-gradient(circle at 12% 16%, color-mix(in srgb, var(--app-navbar-accent) 12%, transparent) 0%, transparent 24%),
        linear-gradient(180deg, #172033 0%, #121a2c 100%) !important;
    border-color: var(--theme-dark-border-soft) !important;
}

html.theme-dark .app-navbar__brand,
html.theme-dark .app-navbar__brand-copy strong,
html.theme-dark .app-navbar__home-link,
html.theme-dark .app-navbar__nav-link,
html.theme-dark .site-name {
    color: #edf3ff !important;
}

html.theme-dark .app-navbar__brand-copy small,
html.theme-dark .app-navbar__identity-copy small,
html.theme-dark .app-navbar__nav-link small {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .app-navbar__context-btn,
html.theme-dark .app-navbar__utility-btn,
html.theme-dark .app-navbar__logout-btn,
html.theme-dark .app-navbar__context-pill,
html.theme-dark .app-navbar__context-panel,
html.theme-dark .app-navbar__profile-panel,
html.theme-dark .app-navbar__account,
html.theme-dark .app-navbar__identity,
html.theme-dark .app-navbar__toggler,
html.theme-dark .app-navbar__nav-link,
html.theme-dark .app-navbar__home-link {
    background: rgba(20, 29, 49, 0.86);
    color: var(--theme-dark-text) !important;
    border-color: var(--theme-dark-border);
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .app-navbar__context-btn:hover,
html.theme-dark .app-navbar__utility-btn:hover,
html.theme-dark .app-navbar__logout-btn:hover,
html.theme-dark .app-navbar__nav-item:hover .app-navbar__nav-link,
html.theme-dark .app-navbar__nav-item.is-active .app-navbar__nav-link,
html.theme-dark .app-navbar__home-link:hover,
html.theme-dark .app-navbar__home-link.is-active {
    background: rgba(30, 64, 124, 0.52);
    border-color: rgba(var(--app-brand-accent-rgb), 0.22);
    color: #f8fbff !important;
}

html.theme-dark .app-navbar__context-btn--school-year {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--app-navbar-accent) 24%, #101827) 0%, #162238 58%, color-mix(in srgb, var(--app-navbar-accent) 18%, #101827) 100%) !important;
    border-color: color-mix(in srgb, var(--app-navbar-accent) 48%, var(--theme-dark-border)) !important;
    color: #f8fbff !important;
    box-shadow:
        0 18px 36px color-mix(in srgb, var(--app-navbar-accent) 18%, rgba(0, 0, 0, 0.38)),
        inset 0 0 0 1px rgba(255, 255, 255, 0.06) !important;
}

html.theme-dark .app-navbar__context-btn--school-year:hover,
html.theme-dark .app-navbar__context-btn--school-year:focus {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--app-navbar-accent) 31%, #101827) 0%, #1b2a44 58%, color-mix(in srgb, var(--app-navbar-accent) 22%, #101827) 100%) !important;
    border-color: color-mix(in srgb, var(--app-navbar-accent) 62%, var(--theme-dark-border)) !important;
}

html.theme-dark .app-navbar__school-year-copy small {
    color: color-mix(in srgb, var(--app-navbar-accent) 68%, var(--theme-dark-text-soft)) !important;
}

html.theme-dark .app-navbar__school-year-copy strong {
    color: #f8fbff !important;
}

html.theme-dark .app-navbar__identity-copy strong,
html.theme-dark .app-navbar__nav-title {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .app-navbar__identity {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

html.theme-dark .app-navbar__identity-role {
    background: rgba(var(--app-brand-accent-rgb), 0.16);
    color: #dbeafe;
}

html.theme-dark .app-navbar__nav-panel {
    border-top-color: var(--theme-dark-border-soft);
}

html.theme-dark .dropdown-menu,
html.theme-dark .app-navbar__dropdown-menu {
    background: var(--theme-dark-surface) !important;
    color: var(--theme-dark-text) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .dropdown-item {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .dropdown-item:hover,
html.theme-dark .dropdown-item:focus {
    background: rgba(var(--app-brand-accent-rgb), 0.16) !important;
    color: #f8fbff !important;
}

html.theme-dark .app-mailing-panel__header {
    border-bottom-color: var(--theme-dark-border-soft);
}

html.theme-dark .app-mailing-panel__eyebrow {
    background: rgba(var(--app-brand-accent-rgb), 0.16);
    color: color-mix(in srgb, var(--app-navbar-accent) 62%, #f8fbff);
}

html.theme-dark .app-mailing-panel__header strong,
html.theme-dark .app-mailing-panel__palier-copy strong,
html.theme-dark .app-mailing-panel__class-chip {
    color: var(--theme-dark-text);
}

html.theme-dark .app-mailing-panel__header small,
html.theme-dark .app-mailing-panel__palier-copy small,
html.theme-dark .app-mailing-panel__footer span {
    color: var(--theme-dark-text-soft);
}

html.theme-dark .app-mailing-panel__group.is-selected {
    background: rgba(var(--app-brand-accent-rgb), 0.12);
}

html.theme-dark .app-mailing-panel__checkmark {
    background: rgba(15, 23, 42, 0.64);
    border-color: var(--theme-dark-border);
}

html.theme-dark .app-mailing-panel__class-chip {
    background: rgba(15, 23, 42, 0.62);
    border-color: var(--theme-dark-border);
}

html.theme-dark .app-mailing-panel__class-chip.is-selected {
    background: rgba(var(--app-brand-accent-rgb), 0.16);
    color: color-mix(in srgb, var(--app-navbar-accent) 58%, #f8fbff);
    border-color: rgba(var(--app-brand-accent-rgb), 0.38);
}

html.theme-dark .app-mailing-panel__footer {
    background: color-mix(in srgb, var(--theme-dark-surface) 92%, #020617);
    border-top-color: var(--theme-dark-border-soft);
    box-shadow: 0 -12px 24px rgba(0, 0, 0, 0.24);
}

html.theme-dark .home-index-commandbar,
html.theme-dark .home-index-hero,
html.theme-dark .home-index-nav,
html.theme-dark .home-index-section-card,
html.theme-dark .home-index-stat,
html.theme-dark .home-index-kpi {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow) !important;
}

html.theme-dark .home-index-commandbar__title,
html.theme-dark .home-index-hero__title,
html.theme-dark .home-index-stat__value,
html.theme-dark .home-index-section-card__title,
html.theme-dark .home-index-kpi strong,
html.theme-dark .home-index-empty-state strong {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-commandbar__text,
html.theme-dark .home-index-hero__text,
html.theme-dark .home-index-stat__label,
html.theme-dark .home-index-stat__meta,
html.theme-dark .home-index-section-card__text,
html.theme-dark .home-index-kpi small,
html.theme-dark .home-index-legend__item,
html.theme-dark .home-index-empty-state {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-nav__link {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-nav__link:hover,
html.theme-dark .home-index-nav__link:focus {
    background: rgba(var(--app-brand-accent-rgb), 0.16) !important;
    color: #f8fbff !important;
}

html.theme-dark .home-index-stat--alert {
    background: linear-gradient(180deg, rgba(249, 115, 22, 0.18) 0%, var(--theme-dark-surface-2) 100%) !important;
}

html.theme-dark .home-index-stat__helper {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-section-card__header,
html.theme-dark .home-index-total-row td {
    border-color: var(--theme-dark-border) !important;
    background: transparent !important;
}

html.theme-dark .home-index-parent-toolbar,
html.theme-dark .home-index-parent-scope-switch,
html.theme-dark .home-index-parent-table-shell,
html.theme-dark .home-index-children-empty {
    background: linear-gradient(180deg, rgba(18, 26, 44, 0.94) 0%, rgba(24, 34, 56, 0.96) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow) !important;
}

html.theme-dark .home-index-parent-card,
html.theme-dark .home-index-contact-pill,
html.theme-dark .home-index-parent-id-pill {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

html.theme-dark .home-index-child-card {
    background: rgba(15, 23, 42, 0.36) !important;
    border-color: var(--theme-dark-border-soft) !important;
    box-shadow: none !important;
}

html.theme-dark .home-index-effectifs-overview__card strong,
html.theme-dark .home-index-parent-card strong,
html.theme-dark .home-index-parent-toolbar__copy strong,
html.theme-dark .home-index-parent-scope-switch__copy strong,
html.theme-dark .home-index-modal-toolbar__copy p,
html.theme-dark .home-index-modal__title,
html.theme-dark .home-index-status-pill {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-parent-card small,
html.theme-dark .home-index-parent-toolbar__copy span,
html.theme-dark .home-index-parent-scope-switch__copy span,
html.theme-dark .home-index-contact-stack,
html.theme-dark .home-index-contact-pill small,
html.theme-dark .home-index-parent-id-pill small,
html.theme-dark .home-index-child-count-card small,
html.theme-dark .home-index-child-card__sub span:last-child,
html.theme-dark .home-index-modal-toolbar__copy span,
html.theme-dark .home-index-modal-toolbar__filters .btn,
html.theme-dark .home-index-modal__intro,
html.theme-dark .home-index-modal label,
html.theme-dark .home-index-modal .form-group label,
html.theme-dark .home-index-duplicate-grid {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-parent-card__badge,
html.theme-dark .home-index-parent-legend-pill,
html.theme-dark .home-index-child-card__status,
html.theme-dark .home-index-child-card__meta {
    background: rgba(var(--app-brand-accent-rgb), 0.16) !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.26) !important;
    color: #a7c4ff !important;
}

html.theme-dark .home-index-modal-toolbar__filters .btn-outline-secondary {
    border-color: rgba(148, 163, 184, 0.28) !important;
    background: rgba(15, 23, 42, 0.28) !important;
}

html.theme-dark .home-index-status-pill {
    background: rgba(15, 23, 42, 0.42) !important;
    border-color: rgba(148, 163, 184, 0.22) !important;
}

html.theme-dark .home-index-status-pill.is-actif {
    background: rgba(22, 163, 74, 0.18) !important;
    border-color: rgba(22, 163, 74, 0.26) !important;
    color: #8ef0b2 !important;
}

html.theme-dark .home-index-status-pill.is-inactif {
    background: rgba(71, 85, 105, 0.42) !important;
    border-color: rgba(100, 116, 139, 0.32) !important;
    color: #c7d2fe !important;
}

html.theme-dark .home-index-status-pill.is-en-attente {
    background: rgba(245, 158, 11, 0.2) !important;
    border-color: rgba(245, 158, 11, 0.32) !important;
    color: #ffd08a !important;
}

html.theme-dark .home-index-child-indicator {
    background: rgba(30, 41, 59, 0.92) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
    color: var(--theme-dark-text-soft) !important;
    box-shadow: none !important;
}

html.theme-dark .home-index-child-indicator--success {
    background: rgba(22, 163, 74, 0.18) !important;
    border-color: rgba(74, 222, 128, 0.24) !important;
    color: #bbf7d0 !important;
}

html.theme-dark .home-index-child-indicator--warning {
    background: rgba(249, 115, 22, 0.16) !important;
    border-color: rgba(251, 146, 60, 0.24) !important;
    color: #fdba74 !important;
}

html.theme-dark .home-index-child-indicator--danger {
    background: rgba(127, 29, 29, 0.28) !important;
    border-color: rgba(248, 113, 113, 0.24) !important;
    color: #fca5a5 !important;
}

html.theme-dark .home-index-child-indicator--info {
    background: rgba(37, 99, 235, 0.18) !important;
    border-color: rgba(96, 165, 250, 0.24) !important;
    color: #bfdbfe !important;
}

html.theme-dark .home-index-child-indicator--muted,
html.theme-dark .home-index-child-indicator--neutral {
    background: rgba(51, 65, 85, 0.7) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
    color: #cbd5e1 !important;
}

html.theme-dark .home-index-child-badge {
    background: rgba(var(--app-brand-accent-rgb), 0.16) !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.26) !important;
    color: #8db7ff !important;
}

html.theme-dark .home-index-parent-card--secondary .home-index-parent-card__badge,
html.theme-dark .home-index-contact-pill--mail i {
    color: #7ee7b8 !important;
}

html.theme-dark .home-index-contact-pill strong,
.theme-dark .toast-banner {
    border-color: rgba(var(--app-brand-accent-rgb), 0.18);
    background: linear-gradient(145deg, rgba(18, 26, 43, 0.96) 0%, rgba(23, 34, 55, 0.98) 100%);
    box-shadow: 0 24px 52px rgba(0, 0, 0, 0.34);
}

html.theme-dark .toast-banner__label {
    color: rgba(214, 228, 255, 0.82);
}

html.theme-dark .toast-banner__message {
    color: #eef4ff;
}

html.theme-dark .toast-banner__close {
    color: rgba(221, 231, 248, 0.56);
}

html.theme-dark .toast-banner__close:hover,
html.theme-dark .toast-banner__close:focus-visible {
    background: rgba(148, 163, 184, 0.14);
    color: #f8fbff;
}

html.theme-dark .toast-banner__progress {
    background: rgba(148, 163, 184, 0.10);
}

html.theme-dark .toast-banner__icon {
    background: rgba(255, 255, 255, 0.06);
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.14);
}

html.theme-dark .toast-banner--success {
    border-color: rgba(34, 197, 94, 0.18);
    background: linear-gradient(145deg, rgba(14, 47, 31, 0.96) 0%, rgba(18, 36, 30, 0.98) 100%);
}

html.theme-dark .toast-banner--error {
    border-color: rgba(248, 113, 113, 0.18);
    background: linear-gradient(145deg, rgba(60, 18, 27, 0.96) 0%, rgba(40, 18, 24, 0.98) 100%);
}

html.theme-dark .toast-banner--warning {
    border-color: rgba(251, 191, 36, 0.18);
    background: linear-gradient(145deg, rgba(61, 38, 9, 0.96) 0%, rgba(45, 31, 14, 0.98) 100%);
}

html.theme-dark .home-index-contact-pill strong,
html.theme-dark .home-index-child-card__head strong,
html.theme-dark .home-index-child-card__sub span:first-child,
html.theme-dark .home-index-parent-id-pill strong,
html.theme-dark .home-index-parent-id-pill__number {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-parent-id-pill__meta {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-child-card__class {
    background: rgba(var(--app-brand-accent-rgb), 0.16) !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.26) !important;
    color: #a7c4ff !important;
}

html.theme-dark .home-index-effectifs-overview__card,
html.theme-dark .home-index-child-count-card,
html.theme-dark .home-index-child-badge,
html.theme-dark .home-index-modal__section,
html.theme-dark .home-index-duplicate-grid {
    background: linear-gradient(180deg, rgba(18, 26, 44, 0.94) 0%, rgba(24, 34, 56, 0.96) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow) !important;
}

html.theme-dark .home-index-child-count-card {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-child-count-card small {
    color: #b7c6df !important;
}

html.theme-dark .home-index-retard-pill {
    background: linear-gradient(180deg, rgba(127, 29, 29, 0.28) 0%, rgba(63, 23, 38, 0.34) 100%) !important;
    border-color: rgba(248, 113, 113, 0.24) !important;
    box-shadow: none !important;
}

html.theme-dark .home-index-retard-pill strong {
    color: #fecdd3 !important;
}

html.theme-dark .home-index-retard-pill small {
    color: #fda4af !important;
}

html.theme-dark .home-index-retard-pill small span {
    background: rgba(15, 23, 42, 0.38) !important;
    border-color: rgba(248, 113, 113, 0.18) !important;
}

html.theme-dark .home-index-retard-pill--empty {
    background: linear-gradient(180deg, rgba(24, 34, 56, 0.88) 0%, rgba(18, 26, 44, 0.90) 100%) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark .home-index-retard-pill--empty strong {
    color: #cbd5e1 !important;
}

html.theme-dark .home-index-retard-pill--empty small {
    color: #8ea0bb !important;
}

html.theme-dark .home-index-retard-summary > div {
    background: linear-gradient(180deg, rgba(24, 34, 56, 0.92) 0%, rgba(18, 26, 44, 0.94) 100%) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
    box-shadow: none !important;
}

html.theme-dark .home-index-retard-summary span {
    color: #9fb1cc !important;
}

html.theme-dark .home-index-retard-summary strong {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-retard-type--scolarite {
    color: #bbf7d0 !important;
    background: rgba(22, 163, 74, 0.18) !important;
    border-color: rgba(74, 222, 128, 0.22) !important;
}

html.theme-dark .home-index-retard-type--transport {
    color: #fde68a !important;
    background: rgba(245, 158, 11, 0.16) !important;
    border-color: rgba(251, 191, 36, 0.24) !important;
}

html.theme-dark .home-index-retard-year--tone-1 {
    color: #bfdbfe !important;
    background: rgba(37, 99, 235, 0.2) !important;
    border-color: rgba(96, 165, 250, 0.24) !important;
}

html.theme-dark .home-index-retard-year--tone-2 {
    color: #bbf7d0 !important;
    background: rgba(5, 150, 105, 0.2) !important;
    border-color: rgba(52, 211, 153, 0.24) !important;
}

html.theme-dark .home-index-retard-year--tone-3 {
    color: #fde68a !important;
    background: rgba(217, 119, 6, 0.2) !important;
    border-color: rgba(251, 191, 36, 0.25) !important;
}

html.theme-dark .home-index-retard-year--tone-4 {
    color: #ddd6fe !important;
    background: rgba(124, 58, 237, 0.22) !important;
    border-color: rgba(167, 139, 250, 0.25) !important;
}

html.theme-dark .home-index-retard-year--tone-5 {
    color: #fecdd3 !important;
    background: rgba(225, 29, 72, 0.2) !important;
    border-color: rgba(251, 113, 133, 0.25) !important;
}

html.theme-dark .home-index-retard-year--tone-6 {
    color: #99f6e4 !important;
    background: rgba(13, 148, 136, 0.2) !important;
    border-color: rgba(45, 212, 191, 0.24) !important;
}

html.theme-dark .home-index-child-badge {
    box-shadow: inset 0 0 0 1px rgba(var(--app-brand-accent-rgb), 0.08), 0 12px 24px rgba(0, 0, 0, 0.16) !important;
}

html.theme-dark .home-index-table.table {
    --bs-table-color: var(--theme-dark-text);
    --bs-table-bg: transparent;
    --bs-table-striped-color: var(--theme-dark-text);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.02);
    --bs-table-hover-color: var(--theme-dark-text);
    --bs-table-hover-bg: rgba(var(--app-brand-accent-rgb), 0.12);
    --bs-table-border-color: rgba(148, 163, 184, 0.14);
}

html.theme-dark .home-index-table thead th,
html.theme-dark .home-index-effectifs-table thead th {
    color: #c9d7ee !important;
}

html.theme-dark .home-index-table-head th {
    background: linear-gradient(180deg, rgba(30, 41, 59, 0.96) 0%, rgba(23, 31, 47, 0.98) 100%) !important;
    border-bottom-color: rgba(148, 163, 184, 0.14) !important;
}

html.theme-dark .home-index-table tbody td,
html.theme-dark .home-index-effectifs-table tbody td {
    border-color: rgba(148, 163, 184, 0.14) !important;
}

html.theme-dark .home-index-child-card.is-depart,
html.theme-dark .home-index-child-card__status--danger,
html.theme-dark .home-index-child-card__status--confirmation,
html.theme-dark .home-index-child-card__meta--danger {
    background: rgba(127, 29, 29, 0.28) !important;
    border-color: rgba(248, 113, 113, 0.24) !important;
    color: #fca5a5 !important;
}

html.theme-dark .home-index-child-card.is-watch {
    background: linear-gradient(180deg, rgba(67, 20, 7, 0.35) 0%, rgba(24, 34, 56, 0.96) 100%) !important;
    border-color: rgba(251, 146, 60, 0.22) !important;
}

html.theme-dark .home-index-child-card.is-watch .home-index-child-card__status--warning,
html.theme-dark .home-index-child-card__status--validation,
html.theme-dark .home-index-child-card__status--confirmation-partial,
html.theme-dark .home-index-child-card.is-watch .home-index-child-card__meta {
    background: rgba(249, 115, 22, 0.16) !important;
    border-color: rgba(251, 146, 60, 0.24) !important;
    color: #fdba74 !important;
}

html.theme-dark .home-index-effectifs-table {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%) !important;
    border-color: rgba(148, 163, 184, 0.14) !important;
}

html.theme-dark .home-index-effectifs-toolbar__copy h3,
html.theme-dark .home-index-stage-toggle,
html.theme-dark .home-index-class-tag,
html.theme-dark .home-index-stage-tag--total {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-effectifs-toolbar__copy p,
html.theme-dark .home-index-effectif-muted,
html.theme-dark .home-index-effectif-branch,
html.theme-dark .home-index-stage-toggle i {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-effectifs-expand-btn,
html.theme-dark .home-index-toggle-group .btn.btn-outline-secondary {
    background: rgba(255, 255, 255, 0.04) !important;
    color: var(--theme-dark-text) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark .home-index-toggle-group .btn.is-active {
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.28) !important;
}

html.theme-dark .home-index-effectifs-table thead tr:first-child th {
    background: rgba(var(--app-brand-accent-rgb), 0.16) !important;
    color: #a7c4ff !important;
    border-color: rgba(148, 163, 184, 0.14) !important;
}

html.theme-dark .home-index-effectifs-table thead tr:last-child th,
html.theme-dark .home-index-effectif-row--palier td {
    background: rgba(255, 255, 255, 0.02) !important;
}

html.theme-dark .home-index-stage-tag {
    background: rgba(var(--app-brand-accent-rgb), 0.16) !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.26) !important;
    color: #a7c4ff !important;
}

html.theme-dark .home-index-stage-tag--total,
html.theme-dark .home-index-class-tag,
html.theme-dark .home-index-metric-card.is-neutral,
html.theme-dark .home-index-metric-card--neutral,
html.theme-dark .home-index-metric-card--service {
    background: rgba(255, 255, 255, 0.04) !important;
    border-color: rgba(148, 163, 184, 0.14) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-effectif-muted,
html.theme-dark .home-index-metric-card small {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-metric-card {
    background: rgba(var(--app-brand-accent-rgb), 0.1) !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.18) !important;
}

html.theme-dark .home-index-metric-card strong {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-metric-card.is-safe {
    background: rgba(22, 163, 74, 0.14) !important;
    border-color: rgba(74, 222, 128, 0.2) !important;
}

html.theme-dark .home-index-metric-card.is-safe strong,
html.theme-dark .home-index-metric-card--service strong {
    color: #7ee7b8 !important;
}

html.theme-dark .home-index-metric-card.is-watch {
    background: rgba(249, 115, 22, 0.14) !important;
    border-color: rgba(251, 146, 60, 0.22) !important;
}

html.theme-dark .home-index-metric-card.is-watch strong {
    color: #fdba74 !important;
}

html.theme-dark .home-index-metric-card.is-danger,
html.theme-dark .home-index-metric-card.is-full {
    background: rgba(220, 38, 38, 0.14) !important;
    border-color: rgba(248, 113, 113, 0.22) !important;
}

html.theme-dark .home-index-metric-card.is-danger strong,
html.theme-dark .home-index-metric-card.is-full strong {
    color: #fca5a5 !important;
}

html.theme-dark .home-index-modal {
    background: linear-gradient(180deg, #1a2338 0%, #121a2c 100%) !important;
    border: 1px solid rgba(148, 163, 184, 0.18) !important;
    box-shadow: 0 28px 60px rgba(0, 0, 0, 0.45) !important;
}

html.theme-dark .home-index-modal__header,
html.theme-dark .home-index-modal__body,
html.theme-dark .home-index-modal__footer,
html.theme-dark .home-index-modal__section-head {
    background: transparent !important;
    border-color: rgba(148, 163, 184, 0.16) !important;
}

html.theme-dark .home-index-modal .card-body {
    background: transparent !important;
}

html.theme-dark .home-index-modal .form-control,
html.theme-dark .home-index-modal .form-select,
html.theme-dark .home-index-modal select,
html.theme-dark .home-index-modal textarea {
    background: #121a2c !important;
    color: var(--theme-dark-text) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
    box-shadow: none !important;
}

html.theme-dark .home-index-modal .form-control::placeholder,
html.theme-dark .home-index-modal textarea::placeholder {
    color: rgba(203, 213, 225, 0.55) !important;
}

html.theme-dark .home-index-modal .btn-close {
    filter: invert(1) brightness(1.2);
}

html.theme-dark .home-index-post-rentree-summary__card {
    background: linear-gradient(180deg, rgba(18, 26, 44, 0.94) 0%, rgba(24, 34, 56, 0.96) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow) !important;
}

html.theme-dark .home-index-post-rentree-summary__card span {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-post-rentree-summary__card strong {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-modal__table {
    --bs-table-color: var(--theme-dark-text);
    --bs-table-bg: transparent;
    --bs-table-striped-color: var(--theme-dark-text);
    --bs-table-striped-bg: rgba(255,255,255,0.02);
    --bs-table-hover-color: var(--theme-dark-text);
    --bs-table-hover-bg: rgba(var(--app-brand-accent-rgb), 0.12);
    --bs-table-border-color: rgba(148, 163, 184, 0.14);
}

html.theme-dark .home-index-modal__table .text-muted {
    color: var(--theme-dark-text-muted) !important;
}

html.theme-dark .home-index-status-badge--pending {
    background: rgba(245, 158, 11, 0.18);
    border-color: rgba(245, 158, 11, 0.26);
    color: #fbbf24;
}

html.theme-dark .home-index-status-badge--inactive {
    background: rgba(100, 116, 139, 0.16);
    border-color: rgba(148, 163, 184, 0.18);
    color: #d7e0ef;
}

html.theme-dark .home-index-status-badge--protected {
    background: rgba(34, 197, 94, 0.18);
    border-color: rgba(34, 197, 94, 0.28);
    color: #86efac;
}

html.theme-dark .home-index-status-badge--repair {
    background: rgba(248, 113, 113, 0.18);
    border-color: rgba(248, 113, 113, 0.28);
    color: #fecaca;
}

html.theme-dark .home-index-post-rentree-section {
    background: linear-gradient(180deg, rgba(18, 26, 44, 0.94) 0%, rgba(24, 34, 56, 0.96) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow) !important;
}

html.theme-dark .home-index-post-rentree-section__header h6 {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-post-rentree-section__header p {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-post-rentree-section__count {
    background: rgba(var(--app-brand-accent-rgb), 0.18) !important;
    color: var(--app-brand-accent-soft) !important;
}

html.theme-dark .home-index-post-rentree-details {
    background: rgba(15, 23, 42, 0.72) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark .home-index-post-rentree-details summary {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-post-rentree-details__body {
    border-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark .home-index-post-rentree-lines-table {
    --bs-table-color: var(--theme-dark-text);
    --bs-table-bg: transparent;
    --bs-table-striped-color: var(--theme-dark-text);
    --bs-table-striped-bg: rgba(255,255,255,0.02);
    --bs-table-hover-color: var(--theme-dark-text);
    --bs-table-hover-bg: rgba(var(--app-brand-accent-rgb), 0.1);
    --bs-table-border-color: rgba(148, 163, 184, 0.14);
}

html.theme-dark .home-index-post-rentree-lines-table th {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-modal__body--table .dataTables_wrapper .dataTables_filter input,
html.theme-dark .home-index-modal__body--table .dataTables_wrapper .dataTables_length select {
    background: #121a2c !important;
    color: var(--theme-dark-text) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark .home-index-modal__body--table .dataTables_wrapper .dataTables_length,
html.theme-dark .home-index-modal__body--table .dataTables_wrapper .dataTables_filter,
html.theme-dark .home-index-modal__body--table .dataTables_wrapper .dataTables_info,
html.theme-dark .home-index-modal__body--table .dataTables_wrapper .dataTables_paginate {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .home-index-parent-action {
    box-shadow: none !important;
}

html.theme-dark .home-index-section-card .dataTables_wrapper .dataTables_filter input,
html.theme-dark .home-index-section-card .dataTables_wrapper .dataTables_length select {
    background: #121a2c !important;
    color: var(--theme-dark-text) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark .home-index-parent-scope-switch .form-check-label {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .home-index-parent-row--archived,
html.theme-dark .home-index-parent-row--civil-archive,
html.theme-dark .home-index-parent-row--outside-active {
    opacity: 0.86;
}

html.theme-dark .home-index-parent-row--outside-active {
    opacity: 0.9;
}

html.theme-dark .home-index-parent-row--civil-archive {
    opacity: 0.62;
}

html.theme-dark .home-index-parent-row--archived td,
html.theme-dark .home-index-parent-row--civil-archive td,
html.theme-dark .home-index-parent-row--outside-active td {
    background: linear-gradient(180deg, rgba(16, 23, 39, 0.90) 0%, rgba(22, 31, 49, 0.92) 100%) !important;
}

html.theme-dark .home-index-parent-row--outside-active td:first-child {
    box-shadow: inset 7px 0 0 #f97316 !important;
}

html.theme-dark .home-index-parent-row--civil-archive td:first-child {
    box-shadow: inset 7px 0 0 #64748b !important;
}

html.theme-dark .home-index-parent-row--archived .home-index-parent-card,
html.theme-dark .home-index-parent-row--archived .home-index-contact-pill,
html.theme-dark .home-index-parent-row--archived .home-index-parent-id-pill,
html.theme-dark .home-index-parent-row--archived .home-index-child-count-card,
html.theme-dark .home-index-parent-row--archived .home-index-children-context,
html.theme-dark .home-index-parent-row--archived .home-index-children-empty--archived,
html.theme-dark .home-index-parent-row--civil-archive .home-index-parent-card,
html.theme-dark .home-index-parent-row--civil-archive .home-index-contact-pill,
html.theme-dark .home-index-parent-row--civil-archive .home-index-parent-id-pill,
html.theme-dark .home-index-parent-row--civil-archive .home-index-child-count-card,
html.theme-dark .home-index-parent-row--civil-archive .home-index-children-context,
html.theme-dark .home-index-parent-row--outside-active .home-index-parent-card,
html.theme-dark .home-index-parent-row--outside-active .home-index-contact-pill,
html.theme-dark .home-index-parent-row--outside-active .home-index-parent-id-pill,
html.theme-dark .home-index-parent-row--outside-active .home-index-child-count-card,
html.theme-dark .home-index-parent-row--outside-active .home-index-children-context {
    background: linear-gradient(180deg, rgba(24, 34, 56, 0.88) 0%, rgba(18, 26, 44, 0.90) 100%) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
    box-shadow: none !important;
}

html.theme-dark .home-index-parent-row--archived .home-index-parent-card strong,
html.theme-dark .home-index-parent-row--archived .home-index-contact-pill strong,
html.theme-dark .home-index-parent-row--archived .home-index-parent-id-pill strong,
html.theme-dark .home-index-parent-row--archived .home-index-children-context strong,
html.theme-dark .home-index-parent-row--archived .home-index-children-empty--archived strong,
html.theme-dark .home-index-parent-row--archived .home-index-children-empty--archived span,
html.theme-dark .home-index-parent-row--civil-archive .home-index-parent-card strong,
html.theme-dark .home-index-parent-row--civil-archive .home-index-contact-pill strong,
html.theme-dark .home-index-parent-row--civil-archive .home-index-parent-id-pill strong,
html.theme-dark .home-index-parent-row--civil-archive .home-index-children-context strong,
html.theme-dark .home-index-parent-row--outside-active .home-index-parent-card strong,
html.theme-dark .home-index-parent-row--outside-active .home-index-contact-pill strong,
html.theme-dark .home-index-parent-row--outside-active .home-index-parent-id-pill strong,
html.theme-dark .home-index-parent-row--outside-active .home-index-children-context strong {
    color: #dbe6f7 !important;
}

html.theme-dark .home-index-parent-row--archived .home-index-parent-card small,
html.theme-dark .home-index-parent-row--archived .home-index-contact-pill small,
html.theme-dark .home-index-parent-row--archived .home-index-parent-id-pill small,
html.theme-dark .home-index-parent-row--archived .home-index-children-context span,
html.theme-dark .home-index-parent-row--archived .home-index-child-count-card small,
html.theme-dark .home-index-parent-row--civil-archive .home-index-parent-card small,
html.theme-dark .home-index-parent-row--civil-archive .home-index-contact-pill small,
html.theme-dark .home-index-parent-row--civil-archive .home-index-parent-id-pill small,
html.theme-dark .home-index-parent-row--civil-archive .home-index-children-context span,
html.theme-dark .home-index-parent-row--civil-archive .home-index-child-count-card small,
html.theme-dark .home-index-parent-row--outside-active .home-index-parent-card small,
html.theme-dark .home-index-parent-row--outside-active .home-index-contact-pill small,
html.theme-dark .home-index-parent-row--outside-active .home-index-parent-id-pill small,
html.theme-dark .home-index-parent-row--outside-active .home-index-children-context span,
html.theme-dark .home-index-parent-row--outside-active .home-index-child-count-card small {
    color: #9fb0c9 !important;
}

html.theme-dark .home-index-parent-row--archived .home-index-parent-card__badge,
html.theme-dark .home-index-parent-row--archived .home-index-child-badge--archived,
html.theme-dark .home-index-parent-row--civil-archive .home-index-parent-card__badge,
html.theme-dark .home-index-parent-row--civil-archive .home-index-child-badge--civil-archive,
html.theme-dark .home-index-parent-row--outside-active .home-index-parent-card__badge,
html.theme-dark .home-index-parent-row--outside-active .home-index-child-badge--outside-active {
    background: rgba(148, 163, 184, 0.10) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
    color: #c9d4e7 !important;
}

html.theme-dark .home-index-parent-state--civil-archive {
    background: #64748b !important;
    border-color: #64748b !important;
    color: #ffffff !important;
}

html.theme-dark .home-index-parent-state--outside-active {
    background: #f97316 !important;
    border-color: #f97316 !important;
    color: #ffffff !important;
}

html.theme-dark #loadingOverlay.loading-overlay {
    background:
        radial-gradient(circle at 14% 18%, rgba(var(--app-brand-accent-rgb), 0.18), transparent 26%),
        radial-gradient(circle at 82% 18%, rgba(56, 189, 248, 0.16), transparent 22%),
        radial-gradient(circle at 78% 84%, rgba(45, 212, 191, 0.12), transparent 24%),
        linear-gradient(180deg, rgba(8, 12, 20, 0.94) 0%, rgba(10, 16, 29, 0.97) 100%) !important;
}

html.theme-dark #loadingOverlay .loading-bg {
    opacity: 0.92;
}

html.theme-dark #loadingOverlay .loading-bg__orb {
    opacity: 0.88;
}

html.theme-dark #loadingOverlay .loading-bg__beam--a {
    background: linear-gradient(90deg, transparent 0%, rgba(var(--app-brand-accent-rgb), 0.18) 28%, rgba(56, 189, 248, 0.34) 56%, transparent 100%);
}

html.theme-dark #loadingOverlay .loading-bg__beam--b {
    background: linear-gradient(90deg, transparent 0%, rgba(45, 212, 191, 0.10) 30%, rgba(16, 185, 129, 0.28) 54%, transparent 100%);
}

html.theme-dark #loadingOverlay .loading-bg__grid {
    opacity: 0.2;
    background-image:
        linear-gradient(rgba(148, 163, 184, 0.16) 1px, transparent 1px),
        linear-gradient(90deg, rgba(148, 163, 184, 0.16) 1px, transparent 1px);
}

html.theme-dark #loadingOverlay .loading-card {
    background: linear-gradient(180deg, rgba(23, 33, 53, 0.96) 0%, rgba(15, 24, 41, 0.98) 100%) !important;
    border: 1px solid rgba(148, 163, 184, 0.16) !important;
    box-shadow:
        0 32px 70px rgba(0,0,0,.42),
        inset 0 1px 0 rgba(255,255,255,.05);
}

html.theme-dark #loadingOverlay .loading-card::after {
    border-color: rgba(255,255,255,0.06);
}

html.theme-dark #loadingOverlay .loading-card__badge {
    background: rgba(var(--app-brand-accent-rgb), 0.14);
    border-color: rgba(var(--app-brand-accent-rgb), 0.18);
    color: #dbeafe;
}

html.theme-dark #loadingOverlay .loading-card__hint,
html.theme-dark #loadingOverlay .loading-card__subtitle {
    color: #9eb0ca;
}

html.theme-dark #loadingOverlay .loading-card__title {
    color: #f8fbff;
}

html.theme-dark #loadingOverlay .loading-card__mark-ring {
    border-color: rgba(var(--app-brand-accent-rgb), 0.16);
    border-top-color: rgba(var(--app-brand-accent-rgb), 0.9);
    border-right-color: rgba(45, 212, 191, 0.72);
}

html.theme-dark #loadingOverlay .loading-card__mark-core {
    background: linear-gradient(135deg, var(--app-brand-accent) 0%, var(--app-brand-accent) 100%);
    box-shadow:
        0 0 0 10px rgba(var(--app-brand-accent-rgb), 0.09),
        0 10px 24px rgba(14, 165, 233, 0.18);
}

html.theme-dark #loadingOverlay .loading-card__meter {
    background: rgba(148, 163, 184, 0.14);
}

html.theme-dark #loadingOverlay .loading-card__meter-bar {
    background: linear-gradient(90deg, var(--app-brand-accent) 0%, var(--app-brand-accent) 54%, var(--app-brand-accent) 100%);
    box-shadow: 0 0 26px rgba(56, 189, 248, 0.3);
}

html.theme-dark #loadingOverlay .loading-card__progress span {
    background: rgba(15, 23, 42, 0.48);
    border-color: rgba(148, 163, 184, 0.14);
    color: #dbe7fb;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}

html.theme-dark #globalLoadingOverlay {
    background: rgba(8, 12, 20, 0.82);
    backdrop-filter: blur(4px);
}

html.theme-dark #globalLoadingOverlay .loading-box {
    background: linear-gradient(180deg, #172135 0%, #111a2c 100%) !important;
    color: #e7eef9 !important;
    border: 1px solid rgba(148, 163, 184, 0.18) !important;
    box-shadow:
        0 24px 48px rgba(0,0,0,.38),
        inset 0 1px 0 rgba(255,255,255,.04);
}

html.theme-dark #globalLoadingOverlay .spinner-border {
    color: var(--app-brand-accent) !important;
}

html.theme-dark .app-footer__shell {
    background:
        radial-gradient(circle at 10% 50%, color-mix(in srgb, var(--app-navbar-accent) 14%, transparent) 0%, transparent 20%),
        radial-gradient(circle at 90% 50%, color-mix(in srgb, var(--app-navbar-accent) 14%, transparent) 0%, transparent 20%),
        linear-gradient(180deg, rgba(18, 28, 48, 0.9) 0%, rgba(14, 22, 38, 0.92) 100%) !important;
    border-color: color-mix(in srgb, var(--app-navbar-accent) 22%, rgba(71, 85, 105, 0.34)) !important;
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.2) !important;
}

html.theme-dark .app-footer__signature-line {
    color: color-mix(in srgb, var(--app-navbar-accent) 38%, var(--theme-dark-text-soft)) !important;
}

html.theme-dark .workspace-nav {
    --workspace-nav-bg: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%);
    --workspace-nav-border: rgba(148, 163, 184, 0.24);
    --workspace-nav-shadow: var(--theme-dark-shadow);
    --workspace-nav-link-color: var(--theme-dark-text-soft);
    --workspace-nav-link-hover-color: #dbeafe;
    --workspace-nav-link-active-color: #bfdbfe;
    --workspace-nav-link-active-border: rgba(var(--app-brand-accent-rgb), 0.58);
    --workspace-nav-link-active-bg: linear-gradient(180deg, rgba(32, 55, 96, 0.95) 0%, rgba(22, 38, 65, 0.98) 100%);
    --workspace-nav-link-hover-bg: linear-gradient(180deg, var(--theme-dark-surface-2) 0%, var(--theme-dark-surface-3) 100%);
    --workspace-nav-link-icon-color: var(--theme-dark-text-soft);
}

html.theme-dark .modal-content,
html.theme-dark .loading-card,
html.theme-dark .loading-box,
html.theme-dark .payment-modal__panel,
html.theme-dark .payment-state-card,
html.theme-dark .payment-state-breakdown__item,
html.theme-dark .payment-empty-state,
html.theme-dark .card {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%) !important;
    color: var(--theme-dark-text) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .modal-body,
html.theme-dark .modal-title,
html.theme-dark .card-body,
html.theme-dark .card-header,
html.theme-dark .card-footer,
html.theme-dark .payment-state-card__label,
html.theme-dark .payment-state-breakdown__item,
html.theme-dark .payment-empty-state,
html.theme-dark .dataTables_info,
html.theme-dark .dataTables_filter,
html.theme-dark .dataTables_length,
html.theme-dark .dataTables_paginate,
html.theme-dark .form-label,
html.theme-dark label,
html.theme-dark .text-muted,
html.theme-dark p,
html.theme-dark h1,
html.theme-dark h2,
html.theme-dark h3,
html.theme-dark h4,
html.theme-dark h5,
html.theme-dark h6 {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .dt-button-collection {
    background: var(--theme-dark-surface) !important;
    border: 1px solid var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .dt-button-collection .dt-button,
html.theme-dark .dt-button-collection button.dt-button,
html.theme-dark .dt-button-collection a.dt-button {
    background: rgba(15, 23, 42, 0.82) !important;
    border-color: var(--theme-dark-border-soft) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .dt-button-collection .dt-button:hover,
html.theme-dark .dt-button-collection button.dt-button:hover,
html.theme-dark .dt-button-collection a.dt-button:hover {
    background: color-mix(in srgb, var(--theme-dark-accent) 14%, var(--theme-dark-surface-3)) !important;
    border-color: color-mix(in srgb, var(--theme-dark-accent) 34%, var(--theme-dark-border)) !important;
    color: #ffffff !important;
}

html.theme-dark .modal-title,
html.theme-dark h1,
html.theme-dark h2,
html.theme-dark h3,
html.theme-dark h4,
html.theme-dark h5,
html.theme-dark h6,
html.theme-dark strong,
html.theme-dark b {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .manuels-page .manuels-coverage-card__metrics > strong.is-alert,
html.theme-dark .manuels-page .manuels-coverage-badge.is-alert {
    border-color: rgba(252, 165, 165, .82) !important;
    background: linear-gradient(180deg, #fecaca 0%, #fca5a5 100%) !important;
    color: #7f1d1d !important;
    text-shadow: none !important;
}

html.theme-dark .manuels-page .manuels-coverage-card__metrics > strong.is-ok,
html.theme-dark .manuels-page .manuels-coverage-badge.is-ok {
    border-color: rgba(134, 239, 172, .62) !important;
    background: rgba(22, 163, 74, .24) !important;
    color: #bbf7d0 !important;
}

html.theme-dark .manuels-page .manuels-coverage-link.is-warning {
    border-color: rgba(251, 146, 60, .74) !important;
    background-color: rgba(154, 52, 18, .48) !important;
    color: #ffedd5 !important;
}

html.theme-dark .manuels-page .manuels-coverage-link.is-warning strong,
html.theme-dark .manuels-page .manuels-coverage-link.is-warning span {
    color: #ffedd5 !important;
}

html.theme-dark .manuels-page .manuels-stock-pill.is-low {
    background: #fecaca !important;
    color: #7f1d1d !important;
}

html.theme-dark .form-control,
html.theme-dark .form-select,
html.theme-dark textarea,
html.theme-dark input[type="text"],
html.theme-dark input[type="date"],
html.theme-dark input[type="number"],
html.theme-dark input[type="email"],
html.theme-dark input[type="password"] {
    background: #11192b !important;
    color: var(--theme-dark-text) !important;
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .form-control::placeholder,
html.theme-dark textarea::placeholder {
    color: var(--theme-dark-text-muted) !important;
}

html.theme-dark .payment-modal .modal-content {
    background: linear-gradient(180deg, #162136 0%, #101a2d 100%) !important;
    border: 1px solid rgba(71, 85, 105, 0.42) !important;
    box-shadow:
        0 30px 70px rgba(0, 0, 0, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.03) !important;
}

html.theme-dark .payment-modal .modal-header {
    border-bottom: 1px solid rgba(71, 85, 105, 0.35) !important;
}

html.theme-dark .payment-modal .modal-body {
    background: linear-gradient(180deg, #121c30 0%, #0e1728 100%) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .payment-modal__eyebrow {
    color: rgba(191, 219, 254, 0.82) !important;
}

html.theme-dark .payment-modal__subtitle {
    color: rgba(226, 232, 240, 0.82) !important;
}

html.theme-dark .payment-modal .modal-header .payment-modal__eyebrow,
html.theme-dark .payment-modal .modal-header .modal-title,
html.theme-dark .payment-modal .modal-header .payment-modal__subtitle {
    color: var(--payment-contrast) !important;
}

html.theme-dark .payment-modal .btn-close {
    filter: invert(1) grayscale(1) brightness(190%) !important;
}

html.theme-dark .payment-modal.payment-modal--aux .btn-close,
html.theme-dark .payment-modal.payment-modal--transport .btn-close {
    filter: none !important;
}

html.theme-dark .payment-modal__panel {
    background: linear-gradient(180deg, #172238 0%, #121b2e 100%) !important;
    border-color: rgba(71, 85, 105, 0.38) !important;
    box-shadow:
        0 18px 40px rgba(0, 0, 0, 0.24),
        inset 0 1px 0 rgba(255,255,255,0.03) !important;
}

html.theme-dark .payment-modal__panel .card-header {
    background: linear-gradient(180deg, #1b2841 0%, #152036 100%) !important;
    border-bottom-color: rgba(71, 85, 105, 0.36) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .payment-modal__panel .card-header i {
    color: color-mix(in srgb, var(--payment-accent) 72%, #ffffff) !important;
}

html.theme-dark .payment-modal__panel .card-body {
    background: transparent !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .payment-modal__hint {
    background: linear-gradient(180deg, rgba(20, 31, 51, 0.96) 0%, rgba(16, 25, 42, 0.98) 100%) !important;
    border-color: rgba(var(--payment-accent-rgb), 0.26) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .payment-modal__info-bubble {
    background: linear-gradient(180deg, rgba(71, 43, 5, 0.96) 0%, rgba(50, 31, 5, 0.98) 100%) !important;
    border-color: rgba(245, 158, 11, 0.38) !important;
    color: #fde7b3 !important;
}

html.theme-dark .payment-modal__info-bubble strong {
    color: #fff1c7 !important;
}

html.theme-dark .payment-modal__info-bubble--annual {
    background: linear-gradient(180deg, rgba(8, 47, 31, 0.96) 0%, rgba(8, 37, 31, 0.98) 100%) !important;
    border-color: rgba(74, 222, 128, 0.28) !important;
    color: #bbf7d0 !important;
}

html.theme-dark .payment-modal__info-bubble--annual strong {
    color: #dcfce7 !important;
}

html.theme-dark .payment-modal__info-bubble--complete {
    background: linear-gradient(180deg, rgba(8, 47, 73, 0.96) 0%, rgba(12, 39, 59, 0.98) 100%) !important;
    border-color: rgba(56, 189, 248, 0.3) !important;
    color: #bae6fd !important;
}

html.theme-dark .payment-modal__annual-head small,
html.theme-dark .payment-modal__annual-grid small {
    color: #9fb2cd !important;
}

html.theme-dark .payment-modal__annual-amount,
html.theme-dark .payment-modal__annual-grid > span {
    background: rgba(15, 23, 42, 0.62) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark .payment-confirmation-alert {
    background: linear-gradient(180deg, rgba(69, 18, 28, 0.94) 0%, rgba(47, 16, 25, 0.98) 100%) !important;
    border-color: rgba(248, 113, 113, 0.28) !important;
    color: #fecaca !important;
}

html.theme-dark .payment-confirmation-alert--partial {
    background: linear-gradient(180deg, rgba(71, 43, 5, 0.94) 0%, rgba(50, 31, 5, 0.98) 100%) !important;
    border-color: rgba(251, 146, 60, 0.32) !important;
    color: #fed7aa !important;
}

html.theme-dark .payment-modal__field .form-control,
html.theme-dark .payment-modal__field .form-select,
html.theme-dark .payment-modal__field .custom-select {
    background: #11192b !important;
    color: var(--theme-dark-text) !important;
    border-color: rgba(71, 85, 105, 0.42) !important;
}

html.theme-dark .payment-modal__field .form-control:focus,
html.theme-dark .payment-modal__field .form-select:focus,
html.theme-dark .payment-modal__field .custom-select:focus {
    border-color: rgba(var(--payment-accent-rgb), 0.9) !important;
    box-shadow: 0 0 0 0.22rem rgba(var(--payment-accent-rgb), 0.18) !important;
}

html.theme-dark .payment-modal__field .form-floating > label,
html.theme-dark .payment-modal label,
html.theme-dark .payment-modal .form-label,
html.theme-dark .payment-modal .text-muted,
html.theme-dark .payment-modal p,
html.theme-dark .payment-modal .invalid-feedback {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .payment-modal .sticky-actions {
    border-top-color: rgba(71, 85, 105, 0.32) !important;
}

html.theme-dark .payment-modal .sticky-actions .btn-secondary {
    background: rgba(30, 41, 59, 0.98) !important;
    border-color: rgba(71, 85, 105, 0.42) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .payment-history-block,
html.theme-dark .payment-state-block {
    background: linear-gradient(180deg, #172238 0%, #121b2e 100%) !important;
    border-color: rgba(71, 85, 105, 0.38) !important;
    box-shadow:
        0 18px 40px rgba(0, 0, 0, 0.24),
        inset 0 1px 0 rgba(255,255,255,0.03) !important;
}

html.theme-dark .payment-history-block__header,
html.theme-dark .payment-state-block__header {
    background: linear-gradient(180deg, #1b2841 0%, #152036 100%) !important;
    border-bottom-color: rgba(71, 85, 105, 0.36) !important;
}

html.theme-dark .payment-history-block__title,
html.theme-dark .payment-state-block__title,
html.theme-dark .payment-history-table__receipt,
html.theme-dark .payment-history-table__amount {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .payment-history-block__subtitle,
html.theme-dark .payment-state-block__subtitle,
html.theme-dark .payment-history-block__body,
html.theme-dark .payment-state-block__body {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .payment-state-card {
    background: linear-gradient(180deg, #1a2740 0%, #162238 100%) !important;
    border-color: rgba(148, 163, 184, 0.22) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
}

html.theme-dark .payment-state-card__label {
    color: #c3cede !important;
}

html.theme-dark .payment-state-card__value {
    color: #f3f7ff !important;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.18);
}

html.theme-dark .payment-state-card__value .text-muted,
html.theme-dark .payment-state-card__value span,
html.theme-dark .payment-state-card__value div {
    color: inherit !important;
}

html.theme-dark .payment-state-progress {
    background: rgba(148, 163, 184, 0.18) !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.28);
}

html.theme-dark .payment-state-progress .progress-bar {
    color: #ffffff !important;
}

html.theme-dark .payment-state-breakdown__item {
    background: linear-gradient(180deg, #1a2740 0%, #162238 100%) !important;
    border-color: rgba(148, 163, 184, 0.22) !important;
    color: #d9e3f2 !important;
}

html.theme-dark .payment-state-breakdown__item strong {
    color: #f5f8ff !important;
}

html.theme-dark .payment-priority-modal {
    background: linear-gradient(180deg, #172238 0%, #111b2e 100%) !important;
    border-color: rgba(148, 163, 184, 0.22) !important;
    color: var(--theme-dark-text) !important;
    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.44),
        inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
}

html.theme-dark .payment-priority-modal .modal-header {
    background:
        radial-gradient(circle at 96% 12%, rgba(249, 115, 22, 0.14), transparent 34%),
        linear-gradient(180deg, #1c2944 0%, #172238 100%) !important;
    border-bottom-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark .payment-priority-modal .modal-body {
    background: linear-gradient(180deg, #111b2e 0%, #0e1728 100%) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .payment-priority-modal .modal-footer {
    background: linear-gradient(180deg, #172238 0%, #121b2e 100%) !important;
    border-top-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark .payment-priority-modal__eyebrow {
    color: color-mix(in srgb, var(--app-navbar-accent, #f97316) 72%, #ffffff) !important;
}

html.theme-dark .payment-priority-modal .modal-title,
html.theme-dark .payment-priority-alert strong,
html.theme-dark .payment-priority-target strong {
    color: #f5f8ff !important;
}

html.theme-dark .payment-priority-alert,
html.theme-dark .payment-priority-target {
    background: linear-gradient(180deg, rgba(249, 115, 22, 0.12) 0%, rgba(30, 41, 59, 0.36) 100%) !important;
    border-color: rgba(249, 115, 22, 0.34) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .payment-priority-alert span,
html.theme-dark .payment-priority-target span {
    color: #c9d4e6 !important;
}

html.theme-dark .payment-priority-target em {
    background: rgba(248, 113, 113, 0.18) !important;
    border: 1px solid rgba(248, 113, 113, 0.34);
    color: #fecaca !important;
}

html.theme-dark .payment-priority-table {
    border-color: rgba(148, 163, 184, 0.18) !important;
    background: transparent !important;
}

html.theme-dark .payment-priority-table th {
    background: #1b2841 !important;
    color: #c3cede !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark .payment-priority-table td {
    background: #111b2e !important;
    color: #edf4ff !important;
    border-color: rgba(148, 163, 184, 0.16) !important;
}

html.theme-dark .payment-priority-table tbody tr:hover td {
    background: color-mix(in srgb, var(--app-navbar-accent, #f97316) 10%, #162238) !important;
}

html.theme-dark .payment-priority-modal .btn-outline-secondary {
    background: rgba(30, 41, 59, 0.98) !important;
    border-color: rgba(148, 163, 184, 0.30) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .payment-priority-modal .btn-outline-secondary:hover {
    background: rgba(51, 65, 85, 0.98) !important;
    border-color: rgba(148, 163, 184, 0.42) !important;
}

html.theme-dark .payment-history-table {
    background: transparent !important;
}

html.theme-dark .payment-history-table thead th {
    background: rgba(226, 232, 240, 0.08) !important;
    color: var(--theme-dark-text) !important;
    border-bottom-color: var(--theme-dark-border) !important;
}

html.theme-dark .payment-history-table tbody td {
    color: var(--theme-dark-text-soft) !important;
    border-top-color: var(--theme-dark-border-soft) !important;
}

html.theme-dark .payment-history-table tbody tr.table-info,
html.theme-dark .payment-history-table tbody tr.payment-history-table__row--active {
    background: linear-gradient(180deg, rgba(var(--app-brand-accent-rgb), 0.28) 0%, rgba(var(--app-brand-accent-rgb), 0.20) 100%) !important;
}

html.theme-dark .payment-history-table tbody tr.table-info td,
html.theme-dark .payment-history-table tbody tr.payment-history-table__row--active td {
    color: #eff6ff !important;
}

html.theme-dark .recu-modal,
html.theme-dark .recu-modal * {
    color-scheme: light !important;
}

html.theme-dark .recu-modal .modal-content {
    background: #ffffff !important;
    border: 1px solid #dbe4ee !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    color: #14213d !important;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.10) !important;
}

html.theme-dark .recu-modal .modal-header,
html.theme-dark .recu-modal .modal-footer {
    background: #ffffff !important;
    border-color: #dbe4ee !important;
    color: #14213d !important;
}

html.theme-dark .recu-modal .modal-body {
    background: linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%) !important;
    color: #14213d !important;
}

html.theme-dark .recu-modal .modal-title {
    color: #14213d !important;
}

html.theme-dark .recu-modal .btn-close {
    filter: none !important;
}

html.theme-dark .recu-modal .btn-secondary {
    background: #6c757d !important;
    color: #ffffff !important;
    border-color: #6c757d !important;
}

html.theme-dark .recu-modal .btn-primary {
    background: var(--app-brand-accent) !important;
    color: #ffffff !important;
    border-color: var(--app-brand-accent) !important;
}

html.theme-dark #recap-encaissement.recu-paper {
    background: #ffffff !important;
    border: 1px solid #d9e2ec !important;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.10) !important;
    color: #14213d !important;
}

html.theme-dark #recap-encaissement .recu-card,
html.theme-dark #recap-encaissement .card {
    background: #ffffff !important;
    border: 1px solid #e6ecf3 !important;
    box-shadow: none !important;
    border-radius: 10px !important;
}

html.theme-dark #recap-encaissement .card-body {
    background: #ffffff !important;
    color: #14213d !important;
}

html.theme-dark #recap-encaissement .card-header {
    background: linear-gradient(180deg, #f8fbff 0%, #f1f6fc 100%) !important;
    color: #1f365a !important;
    border-bottom: 1px solid #e6ecf3 !important;
}

html.theme-dark #recap-encaissement .recu-header {
    border-bottom: 1px solid #e8edf3 !important;
}

html.theme-dark #recap-encaissement .recu-header-topline,
html.theme-dark #recap-encaissement .recu-detail-item__label,
html.theme-dark #recap-encaissement .recu-stat__label,
html.theme-dark #recap-encaissement .recu-highlight__label,
html.theme-dark #recap-encaissement .recu-meta,
html.theme-dark #recap-encaissement .recu-highlight__meta {
    color: #6a7a90 !important;
}

html.theme-dark #recap-encaissement .recu-school-name {
    color: #0f3d91 !important;
}

html.theme-dark #recap-encaissement .recu-receipt-id,
html.theme-dark #recap-encaissement .recu-detail-item__value,
html.theme-dark #recap-encaissement .recu-stat__value,
html.theme-dark #recap-encaissement .recu-highlight__value,
html.theme-dark #recap-encaissement .recu-section-title,
html.theme-dark #recap-encaissement .recu-footer,
html.theme-dark #recap-encaissement .tiers,
html.theme-dark #recap-encaissement .recu-tier-badge,
html.theme-dark #recap-encaissement p,
html.theme-dark #recap-encaissement div,
html.theme-dark #recap-encaissement span {
    color: #14213d !important;
}

html.theme-dark #recap-encaissement .recu-chip--origin {
    background: #edf3fa !important;
    color: #28415d !important;
}

html.theme-dark #recap-encaissement .recu-chip--scolarite {
    background: #e8f6ee !important;
    color: #157347 !important;
}

html.theme-dark #recap-encaissement .recu-chip--manuels {
    background: #e8f6fb !important;
    color: #0b7394 !important;
}

html.theme-dark #recap-encaissement .recu-chip--transport {
    background: #fff2da !important;
    color: #935b0d !important;
}

html.theme-dark #recap-encaissement .recu-highlight {
    background: linear-gradient(180deg, #f9fbff 0%, #f0f5fc 100%) !important;
    border-color: #dce7f2 !important;
}

html.theme-dark #recap-encaissement .recu-detail-item,
html.theme-dark #recap-encaissement .recu-stat {
    background: #fbfdff !important;
    border-color: #e6edf5 !important;
}

html.theme-dark #recap-encaissement .recu-detail-grid,
html.theme-dark #recap-encaissement .recu-stat-grid,
html.theme-dark #recap-encaissement .recu-tier-list,
html.theme-dark #recap-encaissement .tiers {
    background: transparent !important;
}

html.theme-dark #recap-encaissement .recu-section-title {
    background: linear-gradient(180deg, #f8fbff 0%, #f1f6fc 100%) !important;
    color: #1f365a !important;
}

html.theme-dark #recap-encaissement .recu-section-title--scolarite {
    background: linear-gradient(180deg, #ecf8f1 0%, #e4f3ea 100%) !important;
    color: #155d39 !important;
}

html.theme-dark #recap-encaissement .recu-section-title--manuels {
    background: linear-gradient(180deg, #ecf8fc 0%, #e3f3f9 100%) !important;
    color: #0b7394 !important;
}

html.theme-dark #recap-encaissement .recu-section-title--transport {
    background: linear-gradient(180deg, #fff6e7 0%, #fff0d1 100%) !important;
    color: #8a580e !important;
}

html.theme-dark #recap-encaissement .recu-tier-badge {
    background: #f7fafc !important;
    border: none !important;
    color: #14213d !important;
}

html.theme-dark #recap-encaissement .progress.recu-progress {
    background: #e5e7eb !important;
}

html.theme-dark #recap-encaissement .recu-progress .progress-bar {
    color: #ffffff !important;
}

html.theme-dark .btn-secondary,
html.theme-dark .btn-outline-secondary {
    background: var(--theme-dark-surface-2);
    color: var(--theme-dark-text);
    border-color: var(--theme-dark-border);
}

html.theme-dark .btn-outline-dark {
    background: transparent;
    color: #e7eef9 !important;
    border-color: rgba(203, 213, 225, 0.34) !important;
}

html.theme-dark .btn-outline-dark:hover,
html.theme-dark .btn-outline-dark:focus {
    background: rgba(226, 232, 240, 0.10) !important;
    color: #ffffff !important;
    border-color: rgba(226, 232, 240, 0.46) !important;
}

html.theme-dark .btn-outline-secondary {
    background: transparent;
    color: #d9e3f1 !important;
    border-color: rgba(148, 163, 184, 0.28) !important;
}

html.theme-dark .btn-outline-secondary:hover,
html.theme-dark .btn-outline-secondary:focus {
    background: rgba(148, 163, 184, 0.12) !important;
    color: #ffffff !important;
}

html.theme-dark .btn-outline-primary,
html.theme-dark .btn-outline-warning,
html.theme-dark .btn-outline-success,
html.theme-dark .btn-outline-danger {
    background: transparent;
}

html.theme-dark .btn-close {
    filter: invert(1);
}

html.theme-dark #confirmModal .modal-content {
    overflow: hidden;
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-bg-soft) 100%) !important;
    border: 1px solid color-mix(in srgb, #f43f5e 24%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.50) !important;
}

html.theme-dark #confirmModal .modal-header {
    border-bottom-color: rgba(248, 113, 113, 0.30) !important;
    background: linear-gradient(135deg, #be123c 0%, #e11d48 100%) !important;
    color: #ffffff !important;
}

html.theme-dark #confirmModal .modal-title {
    color: #ffffff !important;
}

html.theme-dark #confirmModal .btn-close {
    filter: invert(1) grayscale(100%) brightness(180%);
    opacity: 0.78;
}

html.theme-dark #confirmModal .modal-body {
    background: rgba(8, 17, 31, 0.95) !important;
    color: var(--theme-dark-text) !important;
    font-weight: 780;
}

html.theme-dark #confirmModal .modal-footer {
    border-top-color: var(--theme-dark-border) !important;
    background: var(--theme-dark-surface-2) !important;
}

html.theme-dark .school-year-context-banner__inner {
    position: relative;
    background: linear-gradient(180deg, #1c2740 0%, #172033 100%) !important;
    border: 1px solid rgba(148, 163, 184, 0.16) !important;
    box-shadow:
        0 18px 40px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

html.theme-dark .school-year-context-banner__inner::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 6px;
    border-radius: 18px 0 0 18px;
    background: rgba(148, 163, 184, 0.4);
}

html.theme-dark .school-year-context-banner__content strong {
    color: #f8fbff !important;
}

html.theme-dark .school-year-context-banner__content span {
    color: #d0dbec !important;
    opacity: 1;
}

html.theme-dark body.school-year-context--past .school-year-context-banner__inner {
    background:
        linear-gradient(135deg, rgba(120, 53, 15, 0.28) 0%, rgba(28, 39, 64, 0.98) 46%, rgba(23, 32, 51, 1) 100%) !important;
    border-color: rgba(251, 146, 60, 0.34) !important;
}

html.theme-dark body.school-year-context--past .school-year-context-banner__inner::before {
    background: linear-gradient(180deg, #fb923c 0%, #ea580c 100%);
}

html.theme-dark body.school-year-context--past .school-year-context-banner__badge {
    background: rgba(251, 146, 60, 0.18);
    color: #fed7aa;
    border: 1px solid rgba(251, 146, 60, 0.34);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

html.theme-dark body.school-year-context--past .school-year-context-banner__content strong {
    color: #ffedd5 !important;
}

html.theme-dark body.school-year-context--past .school-year-context-banner__content span {
    color: #fdba74 !important;
}

html.theme-dark body.school-year-context--future .school-year-context-banner__inner {
    background:
        linear-gradient(135deg, rgba(var(--app-brand-accent-rgb), 0.22) 0%, rgba(28, 39, 64, 0.98) 44%, rgba(23, 32, 51, 1) 100%) !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.30) !important;
}

html.theme-dark body.school-year-context--future .school-year-context-banner__inner::before {
    background: linear-gradient(180deg, var(--app-brand-accent) 0%, var(--app-brand-accent-strong) 100%);
}

html.theme-dark body.school-year-context--future .school-year-context-banner__badge {
    background: rgba(var(--app-brand-accent-rgb), 0.18);
    color: #dbeafe;
    border: 1px solid rgba(var(--app-brand-accent-rgb), 0.30);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

html.theme-dark body.school-year-context--future .school-year-context-banner__content strong {
    color: #dbeafe !important;
}

html.theme-dark body.school-year-context--future .school-year-context-banner__content span {
    color: #93c5fd !important;
}

html.theme-dark .table,
html.theme-dark table.dataTable,
html.theme-dark table.dataTable th,
html.theme-dark table.dataTable td {
    color: #d6e0ef !important;
}

html.theme-dark table.dataTable thead th {
    color: var(--theme-dark-text) !important;
    border-bottom-color: rgba(148, 163, 184, 0.22) !important;
}

html.theme-dark table.dataTable tbody tr {
    border-color: rgba(148, 163, 184, 0.08) !important;
}

html.theme-dark table.dataTable tbody tr:hover {
    background: rgba(34, 49, 77, 0.72) !important;
}

html.theme-dark .table-danger.odd.table-danger,
html.theme-dark .table-danger.even.table-danger {
    background-color: rgba(127, 29, 29, 0.4) !important;
    color: #fee2e2 !important;
}

html.theme-dark body[class*="app-view--"] .card,
html.theme-dark body[class*="app-view--"] .modal-content,
html.theme-dark body[class*="app-view--"] .table-responsive,
html.theme-dark body[class*="app-view--"] .dataTables_wrapper,
html.theme-dark body[class*="app-view--"] .list-group,
html.theme-dark body[class*="app-view--"] .accordion-item {
    border-color: color-mix(in srgb, var(--app-view-accent) 24%, var(--theme-dark-border)) !important;
}

html.theme-dark body[class*="app-view--"] .modal-dialog {
    margin-block: clamp(0.75rem, 2vh, 1.75rem);
}

html.theme-dark body[class*="app-view--"] .modal-content {
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--app-view-accent) 8%, var(--theme-dark-surface)) 0%, var(--theme-dark-surface-2) 100%) !important;
    border-radius: 16px !important;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.46) !important;
    overflow: hidden;
}

html.theme-dark body[class*="app-view--"] .modal-header {
    align-items: center;
    gap: 0.75rem;
    min-height: 4rem;
    padding: 1rem 1.2rem;
}

html.theme-dark body[class*="app-view--"] .modal-title {
    font-size: 1.02rem;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1.2;
}

html.theme-dark body[class*="app-view--"] .modal-body {
    background: transparent;
    color: var(--theme-dark-text-soft) !important;
    padding: 1.1rem 1.2rem;
}

html.theme-dark body[class*="app-view--"] .modal-footer {
    background: color-mix(in srgb, var(--app-view-accent) 8%, var(--theme-dark-surface-2));
    border-top-color: color-mix(in srgb, var(--app-view-accent) 26%, var(--theme-dark-border)) !important;
    gap: 0.55rem;
    padding: 0.85rem 1.2rem;
}

html.theme-dark body[class*="app-view--"] .modal-footer .btn {
    border-radius: 10px;
    font-weight: 800;
    min-height: 2.35rem;
}

html.theme-dark body[class*="app-view--"] .btn-close {
    background-color: rgba(226, 232, 240, 0.18);
    border-radius: 10px;
    box-shadow: inset 0 0 0 1px rgba(226, 232, 240, 0.16);
    filter: invert(1) grayscale(100%);
    height: 2.15rem;
    opacity: 0.78;
    width: 2.15rem;
}

html.theme-dark body[class*="app-view--"] .btn-close:hover,
html.theme-dark body[class*="app-view--"] .btn-close:focus {
    opacity: 1;
}

html.theme-dark body[class*="app-view--"] .card-header:not(.bg-primary):not(.bg-info):not(.bg-warning):not(.bg-danger):not(.bg-success):not(.bg-dark),
html.theme-dark body[class*="app-view--"] .modal-header:not(.bg-primary):not(.bg-info):not(.bg-warning):not(.bg-danger):not(.bg-success):not(.bg-dark) {
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--app-view-accent) 13%, var(--theme-dark-surface-2)) 0%, var(--theme-dark-surface) 58%, var(--theme-dark-surface-2) 100%) !important;
    border-bottom-color: color-mix(in srgb, var(--app-view-accent) 26%, var(--theme-dark-border)) !important;
}

html.theme-dark body[class*="app-view--"] .card-header i,
html.theme-dark body[class*="app-view--"] .modal-header i,
html.theme-dark body[class*="app-view--"] h1 i,
html.theme-dark body[class*="app-view--"] h2 i,
html.theme-dark body[class*="app-view--"] h3 i,
html.theme-dark body[class*="app-view--"] h4 i,
html.theme-dark body[class*="app-view--"] h5 i {
    color: color-mix(in srgb, var(--app-view-accent) 72%, #ffffff) !important;
}

html.theme-dark body[class*="app-view--"] .table,
html.theme-dark body[class*="app-view--"] table.dataTable {
    --bs-table-hover-bg: color-mix(in srgb, var(--app-view-accent) 10%, var(--theme-dark-surface-3));
    --bs-table-border-color: color-mix(in srgb, var(--app-view-accent) 18%, var(--theme-dark-border));
}

html.theme-dark body[class*="app-view--"] .table thead th,
html.theme-dark body[class*="app-view--"] table.dataTable thead th,
html.theme-dark body[class*="app-view--"] table.dataTable thead td {
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--app-view-accent) 12%, var(--theme-dark-surface-2)) 0%, var(--theme-dark-surface) 100%) !important;
    border-bottom-color: color-mix(in srgb, var(--app-view-accent) 28%, var(--theme-dark-border)) !important;
}

html.theme-dark body[class*="app-view--"] .table-hover tbody tr:hover > *,
html.theme-dark body[class*="app-view--"] table.dataTable tbody tr:hover > * {
    background: color-mix(in srgb, var(--app-view-accent) 12%, var(--theme-dark-surface-3)) !important;
}

html.theme-dark body[class*="app-view--"] .form-control:focus,
html.theme-dark body[class*="app-view--"] .form-select:focus,
html.theme-dark body[class*="app-view--"] .custom-select:focus,
html.theme-dark body[class*="app-view--"] .dataTables_filter input:focus,
html.theme-dark body[class*="app-view--"] .dataTables_length select:focus {
    border-color: color-mix(in srgb, var(--app-view-accent) 68%, var(--theme-dark-border)) !important;
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--app-view-accent) 22%, transparent) !important;
}

html.theme-dark body[class*="app-view--"] .btn-primary {
    border-color: color-mix(in srgb, var(--app-view-accent) 76%, #ffffff) !important;
    background: color-mix(in srgb, var(--app-view-accent) 84%, #ffffff) !important;
    color: #07111f !important;
}

html.theme-dark body[class*="app-view--"] .btn-outline-primary {
    color: color-mix(in srgb, var(--app-view-accent) 72%, #ffffff) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 48%, var(--theme-dark-border)) !important;
}

html.theme-dark body[class*="app-view--"] .btn-outline-primary:hover,
html.theme-dark body[class*="app-view--"] .btn-outline-primary:focus {
    background: color-mix(in srgb, var(--app-view-accent) 72%, var(--theme-dark-surface-2)) !important;
    color: #ffffff !important;
}

html.theme-dark .transport-hero,
html.theme-dark .transport-panel > .card,
html.theme-dark .transport-modal .modal-content,
html.theme-dark .trajets-box {
    background: linear-gradient(180deg, rgba(24, 34, 53, 0.96) 0%, rgba(18, 27, 45, 0.98) 100%) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 28%, var(--theme-dark-border)) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24) !important;
}

html.theme-dark .transport-hero {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--app-view-accent) 10%, var(--theme-dark-surface-2)) 0%, rgba(24, 34, 53, 0.96) 62%, rgba(18, 27, 45, 0.98) 100%) !important;
}

html.theme-dark .transport-eyebrow,
html.theme-dark .transport-panel__kicker,
html.theme-dark .transport-field label,
html.theme-dark .transport-route-label,
html.theme-dark .transport-modal-summary strong {
    color: color-mix(in srgb, var(--app-view-accent) 70%, var(--theme-dark-text-soft)) !important;
}

html.theme-dark .transport-hero h1,
html.theme-dark .transport-panel__header h2,
html.theme-dark .transport-filterbar h2,
html.theme-dark .transport-modal .modal-title,
html.theme-dark .transport-empty-state strong,
html.theme-dark .transport-checkbox label span {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-hero p,
html.theme-dark .transport-hero__meta span,
html.theme-dark .transport-empty-state span,
html.theme-dark .transport-checkbox label small,
html.theme-dark .transport-modal-summary span {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .transport-hero__meta span,
html.theme-dark .transport-modal-summary span,
html.theme-dark .transport-empty-state,
html.theme-dark .transport-list-item {
    background: rgba(15, 23, 42, 0.38) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 22%, var(--theme-dark-border)) !important;
}

html.theme-dark #gestionBus .modifierbus,
html.theme-dark #gestionDestination .modifierdestination {
    color: color-mix(in srgb, var(--app-view-accent) 72%, #ffffff) !important;
}

html.theme-dark #gestionDestination .modifierdestination .text-muted {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #gestionDestination .modifierdestination .text-primary {
    color: color-mix(in srgb, var(--app-navbar-accent) 76%, #ffffff) !important;
}

html.theme-dark .transport-hero__meta i {
    color: color-mix(in srgb, var(--app-view-accent) 74%, #ffffff) !important;
}

html.theme-dark body.app-view--transport .app-view-context__meta span {
    background: rgba(15, 23, 42, 0.46);
    border-color: color-mix(in srgb, var(--app-view-accent) 24%, var(--theme-dark-border));
}

html.theme-dark .transport-panel__header,
html.theme-dark .transport-filterbar,
html.theme-dark .transport-modal .modal-header {
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--app-view-accent) 14%, var(--theme-dark-surface-2)) 0%, var(--theme-dark-surface) 58%, var(--theme-dark-surface-2) 100%) !important;
    border-bottom-color: color-mix(in srgb, var(--app-view-accent) 28%, var(--theme-dark-border)) !important;
}

html.theme-dark .transport-table,
html.theme-dark .transport-table.table,
html.theme-dark .transport-modal-table .table {
    --bs-table-color: var(--theme-dark-text);
    --bs-table-bg: transparent;
    --bs-table-striped-color: var(--theme-dark-text);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.025);
    --bs-table-hover-color: var(--theme-dark-text);
    --bs-table-hover-bg: color-mix(in srgb, var(--app-view-accent) 12%, var(--theme-dark-surface-3));
    --bs-table-border-color: color-mix(in srgb, var(--app-view-accent) 16%, var(--theme-dark-border));
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-table thead th,
html.theme-dark .transport-modal-table thead th {
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--app-view-accent) 13%, var(--theme-dark-surface-2)) 0%, var(--theme-dark-surface) 100%) !important;
    color: #c9d7ee !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 24%, var(--theme-dark-border)) !important;
}

html.theme-dark .transport-page .dataTables_wrapper {
    background: rgba(15, 23, 42, 0.24) !important;
    box-shadow: none !important;
}

html.theme-dark .transport-page .dataTables_length,
html.theme-dark .transport-page .dataTables_filter,
html.theme-dark .transport-page .dataTables_info,
html.theme-dark .transport-page .dataTables_paginate {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .transport-status-badge--active {
    border-color: rgba(74, 222, 128, 0.20) !important;
    background: rgba(34, 197, 94, 0.14) !important;
    color: #86efac !important;
}

html.theme-dark .transport-status-badge--waiting {
    border-color: rgba(251, 191, 36, 0.22) !important;
    background: rgba(245, 158, 11, 0.16) !important;
    color: #fde68a !important;
}

html.theme-dark .transport-status-badge--inactive {
    border-color: rgba(148, 163, 184, 0.18) !important;
    background: rgba(148, 163, 184, 0.10) !important;
    color: #cbd5e1 !important;
}

html.theme-dark .transport-cell-stack .transport-period-muted {
    color: var(--theme-dark-text-muted) !important;
}

html.theme-dark .transport-cell-stack .transport-period-muted strong {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .transport-period-muted--empty {
    color: rgba(148, 163, 184, 0.42) !important;
}

html.theme-dark .transport-trip-type {
    border-color: color-mix(in srgb, var(--app-view-accent) 28%, var(--theme-dark-border)) !important;
    background: color-mix(in srgb, var(--app-view-accent) 18%, transparent) !important;
    color: #a5f3fc !important;
}

html.theme-dark .transport-trip-type--aller-retour {
    border-color: rgba(34, 211, 238, 0.26) !important;
    background: rgba(8, 145, 178, 0.18) !important;
    color: #a5f3fc !important;
}

html.theme-dark .transport-trip-type--aller {
    border-color: rgba(96, 165, 250, 0.26) !important;
    background: rgba(37, 99, 235, 0.18) !important;
    color: #bfdbfe !important;
}

html.theme-dark .transport-trip-type--retour {
    border-color: rgba(167, 139, 250, 0.28) !important;
    background: rgba(124, 58, 237, 0.18) !important;
    color: #ddd6fe !important;
}

html.theme-dark .transport-date-chip {
    border-color: rgba(34, 211, 238, 0.24) !important;
    background: rgba(8, 145, 178, 0.16) !important;
    color: #a5f3fc !important;
}

html.theme-dark .transport-pilotage-row--inactive td {
    background: rgba(127, 29, 29, 0.18) !important;
}

html.theme-dark .transport-pilotage-row--export-highlight td {
    background: rgba(127, 29, 29, 0.34) !important;
    box-shadow: inset 3px 0 0 #f87171;
}

html.theme-dark .transport-route-card.alert {
    background: linear-gradient(180deg, rgba(24, 34, 53, 0.98) 0%, rgba(17, 25, 43, 0.98) 100%) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 24%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-route-card.alert-primary {
    background: linear-gradient(180deg, rgba(30, 64, 175, 0.18) 0%, rgba(17, 25, 43, 0.98) 100%) !important;
}

html.theme-dark .transport-route-card.alert-success {
    background: linear-gradient(180deg, rgba(22, 101, 52, 0.24) 0%, rgba(17, 25, 43, 0.98) 100%) !important;
}

html.theme-dark .transport-route-card.alert-danger {
    background: linear-gradient(180deg, rgba(127, 29, 29, 0.28) 0%, rgba(17, 25, 43, 0.98) 100%) !important;
}

html.theme-dark .transport-route-card__identity strong {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-route-card__identity span {
    color: var(--theme-dark-muted) !important;
}

html.theme-dark .transport-route-card:hover {
    border-color: color-mix(in srgb, var(--app-view-accent) 46%, var(--theme-dark-border)) !important;
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.30) !important;
}

html.theme-dark .trajets-box .card {
    background: rgba(15, 23, 42, 0.34) !important;
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .transport-list-item--locked {
    background: color-mix(in srgb, var(--app-view-accent) 14%, rgba(15, 23, 42, 0.42)) !important;
}

html.theme-dark .transport-modal .btn-close,
html.theme-dark .trajets-close {
    filter: invert(1) grayscale(100%) brightness(180%);
}

html.theme-dark .transport-modal .modal-content {
    background: linear-gradient(180deg, rgba(24, 34, 53, 0.98) 0%, rgba(15, 23, 42, 0.98) 100%) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 30%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.46) !important;
}

html.theme-dark .transport-modal .modal-body {
    background: linear-gradient(180deg, rgba(17, 25, 43, 0.98) 0%, rgba(11, 18, 32, 0.98) 100%) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-modal .modal-footer {
    background: rgba(15, 23, 42, 0.98) !important;
    border-top-color: color-mix(in srgb, var(--app-view-accent) 26%, var(--theme-dark-border)) !important;
}

html.theme-dark .transport-modal .modal-title,
html.theme-dark .transport-modal h5,
html.theme-dark .transport-modal strong,
html.theme-dark .transport-modal label,
html.theme-dark .transport-modal .transport-route-label {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-modal .text-muted,
html.theme-dark .transport-modal small,
html.theme-dark .transport-modal .form-text {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .transport-modal .form-control,
html.theme-dark .transport-modal .form-select {
    background-color: rgba(8, 17, 31, 0.92) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 28%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-modal .form-control::placeholder {
    color: rgba(203, 213, 225, 0.52) !important;
}

html.theme-dark .transport-modal .form-control:focus,
html.theme-dark .transport-modal .form-select:focus {
    border-color: color-mix(in srgb, var(--app-view-accent) 62%, var(--theme-dark-border)) !important;
    box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--app-view-accent) 18%, transparent) !important;
}

html.theme-dark .transport-modal .list-group,
html.theme-dark .transport-modal-table {
    background: rgba(8, 17, 31, 0.64) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 24%, var(--theme-dark-border)) !important;
}

html.theme-dark .transport-modal .list-group-item {
    background: rgba(15, 23, 42, 0.78) !important;
    border-color: rgba(126, 146, 176, 0.18) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-modal .table,
html.theme-dark .transport-modal-table .table {
    --bs-table-color: var(--theme-dark-text);
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.035);
    --bs-table-hover-bg: color-mix(in srgb, var(--app-view-accent) 12%, rgba(18, 28, 46, 0.95));
    --bs-table-border-color: rgba(126, 146, 176, 0.18);
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-modal .table td,
html.theme-dark .transport-modal .table th {
    border-color: rgba(126, 146, 176, 0.18) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-modal-summary span,
html.theme-dark .transport-optimization-item,
html.theme-dark .transport-empty-state {
    background: rgba(15, 23, 42, 0.78) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 24%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-modal-summary strong,
html.theme-dark .transport-empty-state span,
html.theme-dark .transport-optimization-item {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .transport-modal .btn-outline-secondary {
    background: rgba(15, 23, 42, 0.62) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 22%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .transport-modal .btn-outline-secondary:hover {
    border-color: color-mix(in srgb, var(--app-view-accent) 48%, var(--theme-dark-border)) !important;
    color: #ffffff !important;
}

html.theme-dark .transport-pilotage-panel .table-responsive::-webkit-scrollbar-track,
html.theme-dark .transport-page .dataTables_wrapper::-webkit-scrollbar-track,
html.theme-dark .transport-page .dataTables_scrollBody::-webkit-scrollbar-track,
html.theme-dark .transport-modal .modal-body::-webkit-scrollbar-track,
html.theme-dark .transport-modal-table::-webkit-scrollbar-track {
    background: rgba(8, 17, 31, 0.88) !important;
}

html.theme-dark .transport-pilotage-panel .table-responsive::-webkit-scrollbar-thumb,
html.theme-dark .transport-page .dataTables_wrapper::-webkit-scrollbar-thumb,
html.theme-dark .transport-page .dataTables_scrollBody::-webkit-scrollbar-thumb,
html.theme-dark .transport-modal .modal-body::-webkit-scrollbar-thumb,
html.theme-dark .transport-modal-table::-webkit-scrollbar-thumb {
    border-color: rgba(8, 17, 31, 0.88) !important;
    background: color-mix(in srgb, var(--app-view-accent) 52%, #64748b) !important;
}

html.theme-dark .transport-modal .form-check-input,
html.theme-dark .transport-modal .custom-control-input,
html.theme-dark #GestionTransportContainer .transport-modal .form-check-input,
html.theme-dark #GestionTransportContainer .transport-modal .custom-control-input {
    background-color: rgba(8, 17, 31, 0.9) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 30%, var(--theme-dark-border)) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04) !important;
}

html.theme-dark .transport-modal .form-check-input:hover,
html.theme-dark .transport-modal .custom-control-input:hover {
    border-color: color-mix(in srgb, var(--app-view-accent) 52%, var(--theme-dark-border)) !important;
}

html.theme-dark .transport-modal .form-check-input:focus,
html.theme-dark .transport-modal .custom-control-input:focus {
    border-color: color-mix(in srgb, var(--app-view-accent) 64%, var(--theme-dark-border)) !important;
    box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--app-view-accent) 18%, transparent) !important;
}

html.theme-dark .transport-modal .form-check-input:checked,
html.theme-dark .transport-modal .custom-control-input:checked {
    background-color: var(--app-view-accent) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 72%, #ffffff) !important;
}

@media (max-width: 640px) {
    html.theme-dark .transport-quicknav {
        background: color-mix(in srgb, var(--theme-dark-surface) 86%, #020617) !important;
    }

    html.theme-dark .transport-quicknav a,
    html.theme-dark .transport-pilotage-tabs button {
        background: var(--theme-dark-surface-2) !important;
        border-color: var(--theme-dark-border) !important;
        color: var(--theme-dark-text) !important;
    }

    html.theme-dark .transport-pilotage-tabs button.active {
        background: color-mix(in srgb, var(--app-view-accent) 18%, var(--theme-dark-surface-2)) !important;
        border-color: color-mix(in srgb, var(--app-view-accent) 42%, var(--theme-dark-border)) !important;
    }

    html.theme-dark .transport-page table.transport-table tbody tr {
        background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%) !important;
        border-color: color-mix(in srgb, var(--app-view-accent) 20%, var(--theme-dark-border)) !important;
        box-shadow: var(--theme-dark-shadow) !important;
    }

    html.theme-dark .transport-page table.transport-table tbody td {
        border-bottom-color: var(--theme-dark-border-soft) !important;
        color: var(--theme-dark-text) !important;
    }

    html.theme-dark .transport-page table.transport-table tbody td::before {
        color: var(--theme-dark-text-muted) !important;
    }

    html.theme-dark .trajets-popover {
        background: transparent !important;
    }
}

/* Gestion transport: desktop dark-mode polish */
html.theme-dark #GestionTransportContainer.transport-page {
    color: var(--theme-dark-text) !important;
}

html.theme-dark #GestionTransportContainer .transport-quicknav {
    background: linear-gradient(180deg, rgba(24, 34, 53, 0.82), rgba(15, 23, 42, 0.78)) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 20%, var(--theme-dark-border)) !important;
}

html.theme-dark #GestionTransportContainer .transport-quicknav a,
html.theme-dark #GestionTransportContainer .transport-pilotage-tabs button {
    background: rgba(15, 23, 42, 0.86) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 24%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
}

html.theme-dark #GestionTransportContainer .transport-quicknav a:hover,
html.theme-dark #GestionTransportContainer .transport-pilotage-tabs button:hover {
    border-color: color-mix(in srgb, var(--app-view-accent) 48%, var(--theme-dark-border)) !important;
    color: #ffffff !important;
}

html.theme-dark #GestionTransportContainer .transport-quicknav .workspace-nav__link {
    background: transparent !important;
    border-color: transparent !important;
    color: var(--workspace-nav-link-color, var(--theme-dark-text-soft)) !important;
    box-shadow: none !important;
}

html.theme-dark #GestionTransportContainer .transport-quicknav .workspace-nav__link:hover,
html.theme-dark #GestionTransportContainer .transport-quicknav .workspace-nav__link:focus {
    background: var(--workspace-nav-link-hover-bg, var(--theme-dark-surface-3)) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 42%, var(--theme-dark-border)) !important;
    color: var(--workspace-nav-link-hover-color, #ffffff) !important;
}

html.theme-dark #GestionTransportContainer .transport-quicknav .workspace-nav__link.is-active {
    background: var(--workspace-nav-link-active-bg, color-mix(in srgb, var(--app-view-accent) 18%, var(--theme-dark-surface-3))) !important;
    border-color: var(--workspace-nav-link-active-border, color-mix(in srgb, var(--app-view-accent) 58%, var(--theme-dark-border))) !important;
    color: var(--workspace-nav-link-active-color, color-mix(in srgb, var(--app-view-accent) 76%, #ffffff)) !important;
}

html.theme-dark #GestionTransportContainer .transport-quicknav .workspace-nav__link i {
    color: inherit !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-tabs button.active {
    background: color-mix(in srgb, var(--app-view-accent) 24%, rgba(15, 23, 42, 0.94)) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 54%, var(--theme-dark-border)) !important;
    color: #ffffff !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-tabs span {
    background: rgba(2, 6, 23, 0.84) !important;
    color: #ffffff !important;
}

html.theme-dark #GestionTransportContainer .transport-audit-badge {
    background: rgba(15, 23, 42, 0.88) !important;
    border-color: rgba(148, 163, 184, 0.24) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #GestionTransportContainer .transport-audit-badge--info {
    background: rgba(30, 64, 175, 0.18) !important;
    border-color: rgba(96, 165, 250, 0.34) !important;
    color: #bfdbfe !important;
}

html.theme-dark #GestionTransportContainer .transport-audit-badge--success {
    background: rgba(22, 101, 52, 0.22) !important;
    border-color: rgba(74, 222, 128, 0.34) !important;
    color: #bbf7d0 !important;
}

html.theme-dark #GestionTransportContainer .transport-audit-badge--warning {
    background: rgba(146, 64, 14, 0.24) !important;
    border-color: rgba(251, 191, 36, 0.34) !important;
    color: #fde68a !important;
}

html.theme-dark #GestionTransportContainer .transport-audit-badge--danger {
    background: rgba(127, 29, 29, 0.24) !important;
    border-color: rgba(248, 113, 113, 0.34) !important;
    color: #fecaca !important;
}

html.theme-dark #GestionTransportContainer .transport-audit-badge--neutral {
    background: rgba(51, 65, 85, 0.32) !important;
    border-color: rgba(148, 163, 184, 0.28) !important;
    color: #cbd5e1 !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-filters {
    background: linear-gradient(180deg, rgba(24, 34, 53, 0.94), rgba(15, 23, 42, 0.9)) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 28%, var(--theme-dark-border)) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-filters label,
html.theme-dark #GestionTransportContainer .transport-table-toolbar span,
html.theme-dark #GestionTransportContainer .transport-cell-stack span,
html.theme-dark #GestionTransportContainer .transport-page .dataTables_length,
html.theme-dark #GestionTransportContainer .transport-page .dataTables_filter,
html.theme-dark #GestionTransportContainer .transport-page .dataTables_info,
html.theme-dark #GestionTransportContainer .transport-page .dataTables_paginate {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #GestionTransportContainer .transport-table-toolbar strong,
html.theme-dark #GestionTransportContainer .transport-cell-stack strong,
html.theme-dark #GestionTransportContainer .transport-cell-stack .fw-bold,
html.theme-dark #GestionTransportContainer .transport-table td strong {
    color: #f8fbff !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-filters .form-select,
html.theme-dark #GestionTransportContainer .transport-pilotage-table .form-select,
html.theme-dark #GestionTransportContainer .transport-inline-editor .form-select,
html.theme-dark #GestionTransportContainer .dataTables_length select,
html.theme-dark #GestionTransportContainer .dataTables_filter input {
    background-color: rgba(8, 17, 31, 0.88) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 24%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-filters .form-select:focus,
html.theme-dark #GestionTransportContainer .transport-pilotage-table .form-select:focus,
html.theme-dark #GestionTransportContainer .dataTables_filter input:focus {
    border-color: color-mix(in srgb, var(--app-view-accent) 58%, var(--theme-dark-border)) !important;
    box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--app-view-accent) 18%, transparent) !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-filters .form-select:disabled,
html.theme-dark #GestionTransportContainer .transport-pilotage-table .form-select:disabled,
html.theme-dark #GestionTransportContainer .btn:disabled {
    background-color: rgba(15, 23, 42, 0.54) !important;
    border-color: rgba(148, 163, 184, 0.16) !important;
    color: rgba(203, 213, 225, 0.54) !important;
    opacity: 1 !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-panel .table-responsive,
html.theme-dark #GestionTransportContainer .transport-pilotage-panel .dataTables_wrapper {
    background: rgba(8, 17, 31, 0.48) !important;
    border: 1px solid color-mix(in srgb, var(--app-view-accent) 20%, var(--theme-dark-border)) !important;
    border-radius: 10px !important;
}

html.theme-dark #GestionTransportContainer .transport-table {
    background: rgba(8, 17, 31, 0.66) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 26%, var(--theme-dark-border)) !important;
}

html.theme-dark #GestionTransportContainer .transport-table tbody td {
    background: rgba(14, 23, 39, 0.78) !important;
    border-bottom-color: rgba(126, 146, 176, 0.18) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark #GestionTransportContainer .transport-table tbody tr:nth-child(even) td {
    background: rgba(18, 28, 46, 0.78) !important;
}

html.theme-dark #GestionTransportContainer .transport-table tbody tr:hover td {
    background: color-mix(in srgb, var(--app-view-accent) 12%, rgba(18, 28, 46, 0.95)) !important;
    box-shadow: inset 3px 0 0 var(--app-view-accent);
}

html.theme-dark #GestionTransportContainer .transport-table .text-muted,
html.theme-dark #GestionTransportContainer .transport-cell-stack .transport-period-muted {
    color: var(--theme-dark-text-muted) !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-table .dt-button,
html.theme-dark #GestionTransportContainer .dt-button,
html.theme-dark #GestionTransportContainer button.dt-button {
    background: rgba(18, 28, 46, 0.94) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 22%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark #GestionTransportContainer .dt-button:hover,
html.theme-dark #GestionTransportContainer button.dt-button:hover {
    border-color: color-mix(in srgb, var(--app-view-accent) 48%, var(--theme-dark-border)) !important;
    color: #ffffff !important;
}

html.theme-dark #GestionTransportContainer .dt-button.buttons-excel,
html.theme-dark #GestionTransportContainer button.dt-button.buttons-excel {
    background: rgba(34, 197, 94, 0.18) !important;
    border-color: rgba(74, 222, 128, 0.30) !important;
    color: #bbf7d0 !important;
}

html.theme-dark #GestionTransportContainer .dt-button.buttons-pdf,
html.theme-dark #GestionTransportContainer button.dt-button.buttons-pdf {
    background: rgba(249, 115, 22, 0.20) !important;
    border-color: rgba(251, 146, 60, 0.34) !important;
    color: #fed7aa !important;
}

html.theme-dark #GestionTransportContainer .transport-inline-loading {
    background: rgba(15, 23, 42, 0.9) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 22%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #GestionTransportContainer .transport-inline-error,
html.theme-dark #GestionTransportContainer .transport-pilotage-error-row td {
    background: rgba(127, 29, 29, 0.24) !important;
    color: #fecdd3 !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-loader {
    background: rgba(2, 6, 23, 0.68) !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-loader__card {
    background: var(--theme-dark-surface) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 28%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark #GestionTransportContainer .transport-pilotage-loader__card span:not(.spinner-border) {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .dep-actionbar,
html.theme-dark .dep-stat-card,
html.theme-dark .dep-panel,
html.theme-dark .dep-filters-box,
html.theme-dark .dep-total-card,
html.theme-dark .dep-table-wrap,
html.theme-dark .dep-admin-box,
html.theme-dark .dep-modal-content,
html.theme-dark .dep-main-card,
html.theme-dark .dep-domain-block,
html.theme-dark .dep-topbar,
html.theme-dark .dep-regie-mini-card,
html.theme-dark .dep-aux-summary-card {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .dep-page-body,
html.theme-dark .dep-domain-block .dep-domain-table-wrap,
html.theme-dark .dep-domain-block .table-responsive,
html.theme-dark .dep-domain-block .dep-table-responsive {
    background: transparent !important;
}

html.theme-dark .dep-domain-block--regie::before,
html.theme-dark .dep-domain-block--expenses::before {
    background: linear-gradient(180deg, color-mix(in srgb, var(--theme-dark-accent) 58%, #ffffff) 0%, var(--theme-dark-accent) 100%) !important;
}

html.theme-dark .dep-badge-category {
    background: color-mix(in srgb, var(--theme-dark-accent) 18%, var(--theme-dark-surface-2)) !important;
    border-color: color-mix(in srgb, var(--theme-dark-accent) 34%, var(--theme-dark-border)) !important;
    color: color-mix(in srgb, var(--theme-dark-accent) 42%, #ffffff) !important;
    box-shadow: none !important;
}

html.theme-dark .dep-modal-content .modal-header,
html.theme-dark .dep-modal-content .modal-body,
html.theme-dark .dep-modal-content .modal-footer,
html.theme-dark .dep-modal-content .card-body,
html.theme-dark .dep-modal-content .card-header,
html.theme-dark .dep-modal-content .card-footer {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%) !important;
    color: var(--theme-dark-text-soft) !important;
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .dep-modal-content .modal-title,
html.theme-dark .dep-modal-content strong,
html.theme-dark .dep-modal-content .fw-bold,
html.theme-dark .dep-modal-content .fw-semibold {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .dep-modal-content .text-muted,
html.theme-dark .dep-modal-content label,
html.theme-dark .dep-modal-content .form-label,
html.theme-dark .dep-modal-content p,
html.theme-dark .dep-modal-content td,
html.theme-dark .dep-modal-content th {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .dep-modal-content .bg-light,
html.theme-dark .dep-modal-content .border.rounded-3,
html.theme-dark .dep-modal-content .table-responsive {
    background: linear-gradient(180deg, rgba(25, 38, 61, 0.98) 0%, rgba(17, 27, 45, 0.98) 100%) !important;
    border-color: color-mix(in srgb, var(--app-view-accent) 22%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text-soft) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

html.theme-dark .dep-modal-content .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--theme-dark-text-soft);
    --bs-table-border-color: var(--theme-dark-border-soft);
    --bs-table-hover-bg: rgba(34, 49, 77, 0.58);
    --bs-table-hover-color: var(--theme-dark-text);
    color: var(--theme-dark-text-soft) !important;
    margin-bottom: 0;
}

html.theme-dark .dep-modal-content .table-light,
html.theme-dark .dep-modal-content .table-light > tr,
html.theme-dark .dep-modal-content .table-light > tr > th,
html.theme-dark .dep-modal-content thead.table-light th {
    --bs-table-bg: rgba(226, 232, 240, 0.08);
    --bs-table-color: var(--theme-dark-text);
    --bs-table-border-color: var(--theme-dark-border);
    background: rgba(226, 232, 240, 0.08) !important;
    color: var(--theme-dark-text) !important;
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .dep-modal-content .table tbody tr,
html.theme-dark .dep-modal-content .table tbody td {
    background: transparent !important;
    border-color: var(--theme-dark-border-soft) !important;
}

html.theme-dark .dep-modal-content .table tbody tr:hover td {
    background: rgba(34, 49, 77, 0.58) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .dep-modal-content .text-primary {
    color: color-mix(in srgb, var(--app-view-accent) 56%, #ffffff) !important;
}

html.theme-dark .dep-modal-content .text-danger {
    color: #fca5a5 !important;
}

html.theme-dark .dep-panel-header,
html.theme-dark .dep-table-header,
html.theme-dark .dep-modal-header,
html.theme-dark .dep-section-header--regie,
html.theme-dark .dep-section-header--expenses,
html.theme-dark .dep-section-header--loans,
html.theme-dark .dep-section-header--aux {
    background: linear-gradient(180deg, var(--theme-dark-surface-2) 0%, rgba(24, 34, 53, 0.96) 100%) !important;
    border-bottom-color: var(--theme-dark-border) !important;
}

html.theme-dark .dep-hero-title,
html.theme-dark .dep-stat-value,
html.theme-dark .dep-total-value,
html.theme-dark .dep-topbar-left h5,
html.theme-dark .dep-section-title,
html.theme-dark .dep-regie-mini-card__user,
html.theme-dark .dep-regie-mini-card__meta-value,
html.theme-dark .dep-aux-summary-card strong,
html.theme-dark .dep-aux-summary-card__title,
html.theme-dark .dep-aux-summary-card__row strong,
html.theme-dark .dep-table tbody td .fw-semibold,
html.theme-dark .dep-table tbody td .fw-bold,
html.theme-dark .dep-mini-table tbody td .fw-semibold,
html.theme-dark .dep-mini-table tbody td .fw-bold {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .dep-hero-subtitle,
html.theme-dark .dep-stat-label,
html.theme-dark .dep-total-label,
html.theme-dark .dep-total-subtext,
html.theme-dark .dep-filter-label,
html.theme-dark .dep-filter-label i,
html.theme-dark .dep-section-header .text-muted,
html.theme-dark .dep-topbar .text-muted,
html.theme-dark .dep-regie-mini-card__meta-label,
html.theme-dark .dep-aux-summary-card,
html.theme-dark .dep-aux-summary-card__row,
html.theme-dark .dep-regie-empty,
html.theme-dark .dep-mini-table tbody td,
html.theme-dark .dep-table tbody td {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .dep-regie-empty {
    background: rgba(15, 23, 42, 0.35) !important;
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .dep-mini-table thead th,
html.theme-dark .dep-table thead th {
    background: rgba(226, 232, 240, 0.08) !important;
    color: var(--theme-dark-text) !important;
    border-bottom-color: var(--theme-dark-border) !important;
}

html.theme-dark .dep-mini-table tbody td,
html.theme-dark .dep-table tbody td {
    border-color: var(--theme-dark-border-soft) !important;
}

html.theme-dark .dep-mini-table tbody tr:hover,
html.theme-dark .dep-table tbody tr:hover {
    background: rgba(34, 49, 77, 0.65) !important;
}

html.theme-dark .dep-total-card,
html.theme-dark .dep-stat-card,
html.theme-dark .dep-actionbar,
html.theme-dark .dep-domain-block,
html.theme-dark .dep-admin-box {
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .dep-user-visibility-box {
    background: linear-gradient(180deg, rgba(24, 34, 53, 0.96) 0%, rgba(19, 28, 44, 0.98) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .dep-user-visibility-box__title,
html.theme-dark .dep-user-filter-pill__label {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .dep-user-visibility-box__subtitle {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .dep-user-filter-pill {
    background: linear-gradient(180deg, rgba(29, 42, 66, 0.98) 0%, rgba(21, 32, 51, 0.98) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: none !important;
}

html.theme-dark .dep-user-filter-pill--admin {
    background: linear-gradient(180deg, rgba(27, 59, 113, 0.42) 0%, rgba(20, 35, 58, 0.98) 100%) !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.5) !important;
}

html.theme-dark .dep-date-range-box__label {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .dep-date-range-input {
    background: linear-gradient(180deg, rgba(18, 28, 44, 0.98) 0%, rgba(15, 23, 42, 1) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .daterangepicker.depense-daterangepicker .calendar-table td.depense-daterange-cell--current-month {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .daterangepicker.depense-daterangepicker .calendar-table td.depense-daterange-cell--with-total {
    background: linear-gradient(180deg, rgba(24, 41, 70, 0.96) 0%, rgba(20, 32, 53, 0.98) 100%) !important;
    box-shadow: inset 0 0 0 1px rgba(var(--app-brand-accent-rgb), 0.22) !important;
}

html.theme-dark .dep-annee-badge:not(.school-year-badge) {
    background: rgba(var(--app-brand-accent-rgb), 0.16) !important;
    color: #9fc5ff !important;
}

html.theme-dark .dep-loading-box {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%) !important;
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .dep-loading-title,
html.theme-dark .dep-loading-time {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .dep-loading-subtitle {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .bg-light,
html.theme-dark .border.rounded-3.p-3.bg-light,
html.theme-dark .border.rounded-3.p-3.h-100.bg-light,
html.theme-dark .border.rounded-3.p-3.bg-light.h-100,
html.theme-dark .border.rounded-3.p-3.h-100,
html.theme-dark .border.rounded-3.p-3,
html.theme-dark .table-responsive.border.rounded-3 {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .dm-page {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .dm-hero,
html.theme-dark .dm-card,
html.theme-dark .dm-card .card-body,
html.theme-dark .dm-sticky-bar {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .dm-title,
html.theme-dark .dm-section-header h5,
html.theme-dark .dm-summary-value,
html.theme-dark .dm-result-detail,
html.theme-dark .dm-result-detail strong,
html.theme-dark .dm-table tbody td .fw-bold,
html.theme-dark .dm-table tbody td .fw-semibold {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .dm-subtitle,
html.theme-dark .dm-summary-label,
html.theme-dark .dm-table tbody td,
html.theme-dark .dm-row-errors,
html.theme-dark .dm-section-header .text-muted,
html.theme-dark .dm-page .text-muted,
html.theme-dark .dm-page label,
html.theme-dark .dm-page .form-label {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .dm-table thead th {
    background: rgba(226, 232, 240, 0.08) !important;
    color: var(--theme-dark-text) !important;
    border-bottom-color: var(--theme-dark-border) !important;
}

html.theme-dark .dm-table tbody td {
    border-color: var(--theme-dark-border-soft) !important;
}

html.theme-dark .dm-page .form-control,
html.theme-dark .dm-page .form-select,
html.theme-dark .dm-page input,
html.theme-dark .dm-page select,
html.theme-dark .dm-page textarea {
    background: #11192b !important;
    color: var(--theme-dark-text) !important;
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .dm-page .form-control::placeholder,
html.theme-dark .dm-page textarea::placeholder {
    color: var(--theme-dark-text-muted) !important;
}

html.theme-dark .caisse-actionbar,
html.theme-dark .caisse-stat-card,
html.theme-dark .caisse-panel,
html.theme-dark .caisse-panel__header,
html.theme-dark .caisse-nav {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-surface-2) 100%) !important;
    border-color: var(--theme-dark-border) !important;
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .caisse-stat-card__value,
html.theme-dark .caisse-panel__title,
html.theme-dark .caisse-panel strong,
html.theme-dark .caisse-main-title,
html.theme-dark .caisse-nav .workspace-nav__link {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .caisse-stat-card__label,
html.theme-dark .caisse-stat-card__hint,
html.theme-dark .caisse-filter-label,
html.theme-dark .caisse-panel__subtitle,
html.theme-dark .caisse-nav .text-muted,
html.theme-dark .caisse-panel p,
html.theme-dark .caisse-panel .text-muted,
html.theme-dark .caisse-panel td,
html.theme-dark .caisse-panel th {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .caisse-panel th,
html.theme-dark .caisse-panel .fw-bold,
html.theme-dark .caisse-panel .fw-semibold,
html.theme-dark .caisse-panel strong,
html.theme-dark .caisse-pending-state-badges,
html.theme-dark .caisse-daily-state-badges {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .caisse-inline-stat,
html.theme-dark .caisse-journee-kpi,
html.theme-dark .caisse-journee-modal-summary,
html.theme-dark .caisse-comptage-card,
html.theme-dark .caisse-nav .workspace-nav__link {
    background: linear-gradient(180deg, var(--theme-dark-surface-2) 0%, var(--theme-dark-surface-3) 100%) !important;
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .caisse-panel__collapse {
    border-top-color: var(--theme-dark-border) !important;
}

html.theme-dark .caisse-panel.is-collapsed .caisse-panel__header,
html.theme-dark .caisse-panel.is-collapsed .caisse-panel__collapse {
    border-color: transparent !important;
}

html.theme-dark .caisse-nav .workspace-nav__link i {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .caisse-nav .workspace-nav__link:hover {
    border-color: rgba(var(--app-brand-accent-rgb), 0.55) !important;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.35) !important;
}

html.theme-dark .caisse-nav .workspace-nav__link.is-active {
    background: linear-gradient(180deg, rgba(32, 55, 96, 0.95) 0%, rgba(22, 38, 65, 0.98) 100%) !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.68) !important;
    box-shadow: 0 16px 30px rgba(15, 23, 42, 0.42) !important;
}

html.theme-dark .caisse-nav .workspace-nav__link.is-active,
html.theme-dark .caisse-nav .workspace-nav__link.is-active i {
    color: #bfdbfe !important;
}

html.theme-dark .caisse-inline-stat--remit {
    background: linear-gradient(180deg, rgba(13, 148, 96, 0.22) 0%, rgba(21, 128, 61, 0.18) 100%) !important;
    border-color: rgba(74, 222, 128, 0.45) !important;
    box-shadow: inset 0 0 0 1px rgba(74, 222, 128, 0.12);
}

html.theme-dark .caisse-inline-stat--cheque {
    background: linear-gradient(180deg, rgba(124, 58, 237, 0.20) 0%, rgba(91, 33, 182, 0.16) 100%) !important;
    border-color: rgba(196, 181, 253, 0.45) !important;
    box-shadow: inset 0 0 0 1px rgba(196, 181, 253, 0.12);
}

html.theme-dark .caisse-inline-stat--tpe {
    background: linear-gradient(180deg, rgba(13, 148, 136, 0.22) 0%, rgba(15, 118, 110, 0.18) 100%) !important;
    border-color: rgba(153, 246, 228, 0.45) !important;
    box-shadow: inset 0 0 0 1px rgba(153, 246, 228, 0.12);
}

html.theme-dark .caisse-inline-stat__label,
html.theme-dark .caisse-journee-kpi__label,
html.theme-dark .caisse-empty,
html.theme-dark .caisse-observation__sub {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark .caisse-inline-stat strong,
html.theme-dark .caisse-journee-kpi strong,
html.theme-dark .caisse-observation__main,
html.theme-dark .caisse-id {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .caisse-inline-stat--remit .caisse-inline-stat__label,
html.theme-dark .caisse-inline-stat--remit strong {
    color: #dcfce7 !important;
}

html.theme-dark .caisse-inline-stat--cheque .caisse-inline-stat__label,
html.theme-dark .caisse-inline-stat--cheque strong {
    color: #ede9fe !important;
}

html.theme-dark .caisse-inline-stat--tpe .caisse-inline-stat__label,
html.theme-dark .caisse-inline-stat--tpe strong {
    color: #ccfbf1 !important;
}

html.theme-dark .caisse-table thead th,
html.theme-dark .caisse-mini-table thead th {
    background: rgba(226, 232, 240, 0.08) !important;
    color: var(--theme-dark-text) !important;
    border-bottom-color: var(--theme-dark-border) !important;
}

html.theme-dark .caisse-table tbody td,
html.theme-dark .caisse-mini-table tbody td {
    border-color: var(--theme-dark-border-soft) !important;
}

html.theme-dark .caisse-table tbody tr:hover,
html.theme-dark .caisse-mini-table tbody tr:hover,
html.theme-dark #caisseDailySummaryBody .caisse-daily-row:hover > td,
html.theme-dark #caissePendingSummaryBody .caisse-pending-row:hover > td {
    background: rgba(34, 49, 77, 0.72) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .modal-content {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, var(--theme-dark-bg-soft) 100%) !important;
    border-color: color-mix(in srgb, var(--app-brand-accent) 24%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.50) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .modal-header {
    background: linear-gradient(90deg, color-mix(in srgb, var(--app-brand-accent) 14%, var(--theme-dark-surface-2)) 0%, var(--theme-dark-surface) 100%) !important;
    border-bottom-color: color-mix(in srgb, var(--app-brand-accent) 26%, var(--theme-dark-border)) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .modal-title {
    color: var(--theme-dark-text) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .btn-close {
    filter: invert(1) grayscale(100%) brightness(180%);
    opacity: 0.72;
}

html.theme-dark #modalCaisseJourneeHistorique .modal-body {
    background: linear-gradient(180deg, rgba(8, 17, 31, 0.95) 0%, rgba(12, 22, 38, 0.98) 100%) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .caisse-journee-modal-summary,
html.theme-dark #modalCaisseJourneeHistorique .caisse-comptage-card {
    background: linear-gradient(180deg, rgba(32, 45, 69, 0.96) 0%, rgba(27, 39, 62, 0.98) 100%) !important;
    border-color: color-mix(in srgb, var(--app-brand-accent) 22%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .caisse-journee-kpi {
    background: rgba(15, 23, 42, 0.46) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .caisse-journee-kpi__label,
html.theme-dark #modalCaisseJourneeHistorique .small,
html.theme-dark #modalCaisseJourneeHistorique .text-muted {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .caisse-journee-kpi strong,
html.theme-dark #modalCaisseJourneeHistorique .fw-bold,
html.theme-dark #modalCaisseJourneeHistorique .fw-semibold {
    color: var(--theme-dark-text) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .table-responsive {
    background: rgba(8, 17, 31, 0.58) !important;
    border: 1px solid color-mix(in srgb, var(--app-brand-accent) 18%, var(--theme-dark-border)) !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

html.theme-dark #modalCaisseJourneeHistorique .caisse-mini-table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--theme-dark-text);
    --bs-table-border-color: rgba(148, 163, 184, 0.16);
    color: var(--theme-dark-text) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .caisse-mini-table thead th {
    background: linear-gradient(180deg, rgba(30, 44, 68, 0.98) 0%, rgba(21, 34, 54, 0.98) 100%) !important;
    color: var(--theme-dark-text) !important;
    border-bottom-color: rgba(148, 163, 184, 0.20) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .caisse-mini-table tbody td {
    background: rgba(12, 22, 38, 0.84) !important;
    border-color: rgba(148, 163, 184, 0.14) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .caisse-mini-table tbody tr:hover td {
    background: color-mix(in srgb, var(--app-brand-accent) 10%, rgba(22, 35, 56, 0.96)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark #modalCaisseJourneeHistorique .caisse-mini-table tbody td.fw-semibold,
html.theme-dark #modalCaisseJourneeHistorique .caisse-mini-table tbody td strong {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .caisse-input,
html.theme-dark .caisse-panel .dataTables_filter input,
html.theme-dark .caisse-panel .dataTables_length select {
    background: #11192b !important;
    color: var(--theme-dark-text) !important;
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .caisse-panel .dataTables_filter input::placeholder {
    color: var(--theme-dark-text-muted) !important;
}

html.theme-dark .caisse-chip--filters,
html.theme-dark .caisse-chip--main,
html.theme-dark .caisse-chip--analysis,
html.theme-dark .caisse-chip--daily,
html.theme-dark .caisse-chip--pending,
html.theme-dark .caisse-chip--cheque,
html.theme-dark .caisse-chip--tpe,
html.theme-dark .caisse-chip--nav {
    box-shadow: none;
}

html.theme-dark .daterangepicker {
    background: var(--theme-dark-surface);
    border-color: var(--theme-dark-border);
    color: var(--theme-dark-text);
    box-shadow: var(--theme-dark-shadow);
}

html.theme-dark .daterangepicker:before,
html.theme-dark .daterangepicker:after {
    border-bottom-color: var(--theme-dark-surface) !important;
}

html.theme-dark .daterangepicker .calendar-table,
html.theme-dark .daterangepicker .calendar-table table,
html.theme-dark .daterangepicker .ranges,
html.theme-dark .daterangepicker td.off,
html.theme-dark .daterangepicker td.off.in-range,
html.theme-dark .daterangepicker td.off.start-date,
html.theme-dark .daterangepicker td.off.end-date {
    background: var(--theme-dark-surface);
    color: var(--theme-dark-text-soft);
}

html.theme-dark .daterangepicker .drp-calendar,
html.theme-dark .daterangepicker .drp-buttons,
html.theme-dark .daterangepicker .ranges ul {
    background: var(--theme-dark-surface) !important;
}

html.theme-dark .daterangepicker .drp-selected,
html.theme-dark .daterangepicker .month,
html.theme-dark .daterangepicker th,
html.theme-dark .daterangepicker td.available,
html.theme-dark .daterangepicker td.available.depense-daterange-cell--current-month,
html.theme-dark .daterangepicker td.available.caisse-daterange-cell--current-month {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .daterangepicker td.in-range {
    background: rgba(var(--app-brand-accent-rgb), 0.22) !important;
    color: #eff6ff !important;
    box-shadow: inset 0 0 0 1px rgba(var(--app-brand-accent-rgb), 0.26) !important;
}

html.theme-dark .daterangepicker td.in-range.caisse-daterange-cell--with-total,
html.theme-dark .daterangepicker td.available.caisse-daterange-cell--with-total,
html.theme-dark .daterangepicker td.caisse-daterange-cell--with-total.caisse-daterange-cell--current-month,
html.theme-dark .daterangepicker td.in-range.depense-daterange-cell--with-total,
html.theme-dark .daterangepicker td.available.depense-daterange-cell--with-total,
html.theme-dark .daterangepicker td.depense-daterange-cell--with-total.depense-daterange-cell--current-month {
    color: #0f172a !important;
}

html.theme-dark .daterangepicker td.start-date,
html.theme-dark .daterangepicker td.end-date,
html.theme-dark .daterangepicker td.active,
html.theme-dark .daterangepicker td.active:hover {
    background: var(--app-brand-accent) !important;
    color: #f8fbff !important;
    box-shadow: inset 0 0 0 1px rgba(var(--app-brand-accent-rgb), 0.24) !important;
}

html.theme-dark .daterangepicker td.start-date.depense-daterange-cell--with-total,
html.theme-dark .daterangepicker td.end-date.depense-daterange-cell--with-total,
html.theme-dark .daterangepicker td.active.depense-daterange-cell--with-total,
html.theme-dark .daterangepicker td.start-date.caisse-daterange-cell--with-total,
html.theme-dark .daterangepicker td.end-date.caisse-daterange-cell--with-total,
html.theme-dark .daterangepicker td.active.caisse-daterange-cell--with-total {
    background: var(--app-brand-accent) !important;
    color: #f8fbff !important;
}

html.theme-dark .daterangepicker td.week,
html.theme-dark .daterangepicker td.off,
html.theme-dark .daterangepicker td.off.in-range,
html.theme-dark .daterangepicker td.disabled,
html.theme-dark .daterangepicker td.disabled.off {
    color: rgba(148, 163, 184, 0.72) !important;
}

html.theme-dark .daterangepicker .calendar-table th,
html.theme-dark .daterangepicker .calendar-table td {
    border-color: rgba(51, 65, 85, 0.45) !important;
}

html.theme-dark .daterangepicker .ranges li {
    color: var(--theme-dark-text-soft) !important;
    border-radius: 10px;
}

html.theme-dark .daterangepicker .ranges li:hover {
    background: rgba(var(--app-brand-accent-rgb), 0.14) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .daterangepicker .ranges li.active {
    background: rgba(var(--app-brand-accent-rgb), 0.28) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .daterangepicker .drp-buttons {
    border-top-color: var(--theme-dark-border) !important;
}

html.theme-dark .daterangepicker .drp-buttons .btn {
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark .daterangepicker .drp-buttons .btn-default {
    background: rgba(30, 41, 59, 0.95) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark .daterangepicker .drp-buttons .btn-primary {
    background: var(--app-brand-accent) !important;
    border-color: var(--app-brand-accent) !important;
    color: #eff6ff !important;
}

html.theme-dark .daterangepicker td.available:hover,
html.theme-dark .daterangepicker th.available:hover {
    background: rgba(var(--app-brand-accent-rgb), 0.18);
}

@media (max-width: 768px) {
    .theme-switch {
        padding: 0.4rem 0.7rem;
    }

    .theme-switch__label span {
        display: none;
    }
}

html.theme-dark .admin-daily-pulse__shell {
    background:
        radial-gradient(circle at top left, rgba(var(--app-brand-accent-rgb), 0.16), transparent 28%),
        radial-gradient(circle at top right, rgba(16, 185, 129, 0.1), transparent 26%),
        linear-gradient(135deg, rgba(20, 28, 46, 0.98), rgba(18, 26, 44, 0.95));
    border-color: rgba(71, 97, 143, 0.35);
    box-shadow: 0 22px 42px rgba(3, 8, 20, 0.44);
}

html.theme-dark .admin-daily-pulse__header {
    border-bottom-color: rgba(71, 97, 143, 0.24);
}

html.theme-dark .admin-daily-pulse__badge {
    background: rgba(var(--app-brand-accent-rgb), 0.16);
    border-color: rgba(var(--app-brand-accent-rgb), 0.26);
    color: #bfdbfe;
}

html.theme-dark .admin-daily-pulse__titles strong,
html.theme-dark .admin-daily-pulse-card__value {
    color: #f8fbff;
}

html.theme-dark .admin-daily-pulse__titles small,
html.theme-dark .admin-daily-pulse-card__subvalue,
html.theme-dark .admin-daily-pulse-card__meta,
html.theme-dark .admin-daily-pulse-card__empty,
html.theme-dark .admin-daily-pulse-empty,
html.theme-dark .admin-daily-pulse-modal__subtitle {
    color: #93a6c7;
}

html.theme-dark .admin-daily-pulse-card,
html.theme-dark .admin-daily-pulse__action,
html.theme-dark .admin-daily-pulse-mini {
    background: rgba(17, 25, 42, 0.92);
    border-color: rgba(71, 97, 143, 0.32);
    color: #d7e2f4;
}

html.theme-dark .admin-daily-pulse__action {
    color: #c4d3ee;
}

html.theme-dark .admin-daily-pulse-mini {
    box-shadow: 0 10px 22px rgba(3, 8, 20, 0.28);
}

html.theme-dark .admin-daily-pulse-mini:hover {
    background: rgba(23, 34, 56, 0.98);
    border-color: rgba(var(--app-brand-accent-rgb), 0.34);
    box-shadow: 0 14px 30px rgba(3, 8, 20, 0.36);
}

html.theme-dark .admin-daily-pulse-mini span {
    color: #93a6c7;
}

html.theme-dark .admin-daily-pulse-mini strong {
    color: #f8fbff;
}

html.theme-dark .admin-daily-pulse-mini.is-day {
    border-left-color: color-mix(in srgb, var(--app-brand-accent) 76%, #ffffff);
}

html.theme-dark .admin-daily-pulse-chip,
html.theme-dark .admin-daily-pulse-detail-badge.is-neutral {
    background: rgba(27, 39, 63, 0.96);
    border-color: rgba(76, 98, 140, 0.36);
    color: #c6d5ec;
}

html.theme-dark .admin-daily-pulse-chip strong {
    color: #f8fbff;
}

html.theme-dark .admin-daily-pulse-chip.is-accent,
html.theme-dark .admin-daily-pulse-detail-badge.is-info,
html.theme-dark .admin-daily-pulse-detail-badge.is-accent {
    background: rgba(var(--app-brand-accent-rgb), 0.22);
    border-color: rgba(var(--app-brand-accent-rgb), 0.32);
    color: #dbeafe;
}

html.theme-dark .admin-daily-pulse-chip.is-success,
html.theme-dark .admin-daily-pulse-detail-badge.is-success {
    background: rgba(16, 185, 129, 0.18);
    border-color: rgba(52, 211, 153, 0.3);
    color: #d1fae5;
}

html.theme-dark .admin-daily-pulse-chip.is-warning,
html.theme-dark .admin-daily-pulse-detail-badge.is-warning {
    background: rgba(245, 158, 11, 0.2);
    border-color: rgba(251, 191, 36, 0.3);
    color: #fde68a;
}

html.theme-dark .admin-daily-pulse-chip.is-danger,
html.theme-dark .admin-daily-pulse-detail-badge.is-danger {
    background: rgba(239, 68, 68, 0.2);
    border-color: rgba(248, 113, 113, 0.3);
    color: #fecaca;
}

html.theme-dark .admin-daily-pulse-modal .modal-content {
    background: #11192b;
    color: #e5edf8;
    border-color: rgba(71, 97, 143, 0.34);
}

html.theme-dark .admin-daily-pulse-modal .modal-header {
    background:
        radial-gradient(circle at top left, rgba(var(--app-brand-accent-rgb), 0.16), transparent 26%),
        linear-gradient(135deg, rgba(20, 28, 46, 0.98), rgba(18, 26, 44, 0.95));
    border-bottom-color: rgba(71, 97, 143, 0.24);
}

html.theme-dark .admin-daily-pulse-modal .modal-body {
    background:
        linear-gradient(180deg, rgba(15, 22, 37, 0.98) 0%, rgba(19, 28, 46, 0.96) 100%);
}

html.theme-dark .admin-daily-pulse-modal__eyebrow {
    color: #9ab9f6;
}

html.theme-dark .admin-daily-pulse-modal .table-responsive {
    border-radius: 18px;
    border: 1px solid rgba(71, 97, 143, 0.22);
    overflow: hidden;
}

html.theme-dark .admin-daily-pulse-modal .dataTables_wrapper {
    color: #d8e4f7;
}

html.theme-dark .admin-daily-pulse-modal .dataTables_length,
html.theme-dark .admin-daily-pulse-modal .dataTables_filter,
html.theme-dark .admin-daily-pulse-modal .dataTables_info,
html.theme-dark .admin-daily-pulse-modal .dataTables_paginate {
    color: #9fb3d4 !important;
}

html.theme-dark .admin-daily-pulse-modal .dataTables_length label,
html.theme-dark .admin-daily-pulse-modal .dataTables_filter label {
    color: #9fb3d4 !important;
    font-weight: 700;
}

html.theme-dark .admin-daily-pulse-modal .dataTables_length select,
html.theme-dark .admin-daily-pulse-modal .dataTables_filter input {
    background: rgba(15, 22, 37, 0.96) !important;
    color: #f3f7ff !important;
    border: 1px solid rgba(var(--app-brand-accent-rgb), 0.28) !important;
    border-radius: 12px !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

html.theme-dark .admin-daily-pulse-modal .dataTables_length select:focus,
html.theme-dark .admin-daily-pulse-modal .dataTables_filter input:focus {
    outline: none;
    border-color: rgba(var(--app-brand-accent-rgb), 0.52) !important;
    box-shadow: 0 0 0 0.2rem rgba(var(--app-brand-accent-rgb), 0.16) !important;
}

html.theme-dark .admin-daily-pulse-modal .dataTables_paginate .paginate_button {
    color: #c9d8ef !important;
    border: 1px solid rgba(71, 97, 143, 0.24) !important;
    background: rgba(20, 28, 46, 0.9) !important;
    border-radius: 10px !important;
}

html.theme-dark .admin-daily-pulse-modal .dataTables_paginate .paginate_button:hover,
html.theme-dark .admin-daily-pulse-modal .dataTables_paginate .paginate_button:focus {
    color: #f8fbff !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.32) !important;
    background: rgba(30, 64, 124, 0.56) !important;
}

html.theme-dark .admin-daily-pulse-modal .dataTables_paginate .paginate_button.current,
html.theme-dark .admin-daily-pulse-modal .dataTables_paginate .paginate_button.current:hover {
    color: #f8fbff !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.42) !important;
    background: linear-gradient(135deg, rgba(var(--app-brand-accent-rgb), 0.78), rgba(var(--app-brand-accent-rgb), 0.88)) !important;
}

html.theme-dark .admin-daily-pulse-detail-table {
    color: #e5edf8;
}

html.theme-dark .admin-daily-pulse-detail-table thead th {
    background: rgba(29, 43, 70, 0.96);
    color: #d8e4f7;
    border-bottom-color: rgba(71, 97, 143, 0.32);
}

html.theme-dark .admin-daily-pulse-detail-table tbody td {
    background: rgba(17, 25, 42, 0.92);
    color: #d8e4f7;
    border-color: rgba(71, 97, 143, 0.24);
}

html.theme-dark .admin-daily-pulse-detail-table.dataTable tbody tr:hover td {
    background: rgba(26, 37, 60, 0.95) !important;
}

.param-incoherence-metric {
    height: 100%;
    padding: 1rem;
    border: 1px solid #d8e2ef;
    border-radius: 14px;
    background: #ffffff;
    color: #111827;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.param-reduction-motif-dashboard {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 0.85rem;
}

.param-incoherence-metric.border-warning {
    border-color: #f5bd3d;
}

.param-incoherence-metric.border-success,
.param-incoherence-metric--success {
    border-color: #35a66a;
}

.param-incoherence-metric.border-primary {
    border-color: #7aa7f7;
}

.param-incoherence-metric--warning {
    border-color: #f5bd3d;
}

.param-incoherence-metric__label {
    margin-bottom: 0.35rem;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.param-incoherence-metric__value {
    color: #0f172a;
    font-size: 2rem;
    font-weight: 900;
    line-height: 1.05;
}

.param-incoherence-metric__hint {
    margin-top: 0.35rem;
    color: #64748b;
    font-size: 0.76rem;
    font-weight: 800;
}

.param-incoherence-metric--clickable {
    cursor: pointer;
    transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.param-incoherence-metric--clickable:hover,
.param-incoherence-metric--clickable.is-active {
    background: color-mix(in srgb, var(--app-brand-accent) 8%, #ffffff);
    box-shadow: 0 12px 28px rgba(var(--app-brand-accent-rgb), 0.14);
    transform: translateY(-1px);
}

.param-incoherence-metric--clickable.is-active {
    border-color: var(--app-brand-accent) !important;
}

.param-residual-detail {
    border: 1px solid color-mix(in srgb, var(--app-brand-accent) 24%, #d8e2ef);
    border-radius: 14px;
    background: color-mix(in srgb, var(--app-brand-accent) 5%, #ffffff);
    overflow: hidden;
}

.param-residual-detail__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    border-bottom: 1px solid color-mix(in srgb, var(--app-brand-accent) 18%, #d8e2ef);
}

.param-residual-detail__eyebrow {
    display: block;
    margin-bottom: 0.15rem;
    color: var(--app-brand-accent-strong);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.param-residual-detail__table th {
    color: #64748b;
    font-size: 0.78rem;
    text-transform: uppercase;
}

.param-residual-detail__empty {
    padding: 1rem;
    color: #64748b;
    font-weight: 700;
    text-align: center;
}

.param-incoherence-metric--success .param-incoherence-metric__value,
.param-incoherence-metric.border-success .param-incoherence-metric__value {
    color: #16844d;
}

.param-incoherence-metric--warning .param-incoherence-metric__value,
.param-incoherence-metric.border-warning .param-incoherence-metric__value {
    color: #b77900;
}

.param-subtabs {
    gap: 0.5rem;
}

.param-subtabs .nav-link {
    border: 1px solid var(--param-border, #d8e2ef);
    color: var(--param-muted, #64748b);
    font-weight: 800;
    border-radius: 999px;
    background: var(--param-surface-soft, #f8fafc);
}

.param-subtabs .nav-link.active {
    background: var(--param-accent, #ea7a12);
    border-color: var(--param-accent, #ea7a12);
    color: #fff;
}

#parametreContainer .param-clickable-row {
    cursor: pointer;
}

#parametreContainer .param-clickable-row:hover td {
    background: rgba(234, 122, 18, 0.08) !important;
}

html.theme-dark #parametreContainer .param-clickable-row:hover td {
    background: rgba(251, 146, 60, 0.12) !important;
}

html.theme-dark .param-incoherence-metric {
    background: #132033;
    border-color: rgba(125, 154, 194, 0.34);
    color: #f4f7fb;
    box-shadow: none;
}

html.theme-dark .param-incoherence-metric.border-warning,
html.theme-dark .param-incoherence-metric--warning {
    border-color: rgba(245, 189, 61, 0.72);
}

html.theme-dark .param-incoherence-metric.border-success,
html.theme-dark .param-incoherence-metric--success {
    border-color: rgba(74, 222, 128, 0.58);
}

html.theme-dark .param-incoherence-metric.border-primary {
    border-color: rgba(var(--app-brand-accent-rgb), 0.62);
}

html.theme-dark .param-incoherence-metric__label {
    color: #b8c7dc;
}

html.theme-dark .param-incoherence-metric__value {
    color: #f8fbff;
}

html.theme-dark .param-incoherence-metric__hint {
    color: #b8c7dc;
}

html.theme-dark .param-incoherence-metric--clickable:hover,
html.theme-dark .param-incoherence-metric--clickable.is-active {
    background: color-mix(in srgb, var(--app-brand-accent) 12%, #132033);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
}

html.theme-dark .param-residual-detail {
    background: var(--theme-dark-surface);
    border-color: color-mix(in srgb, var(--app-brand-accent) 28%, var(--theme-dark-border));
}

html.theme-dark .param-residual-detail__header {
    border-bottom-color: var(--theme-dark-border);
}

html.theme-dark .param-residual-detail__table th {
    color: var(--theme-dark-text-soft);
}

html.theme-dark .param-residual-detail__empty {
    color: var(--theme-dark-text-soft);
}

html.theme-dark .param-incoherence-metric--success .param-incoherence-metric__value,
html.theme-dark .param-incoherence-metric.border-success .param-incoherence-metric__value {
    color: #4ade80;
}

html.theme-dark .param-incoherence-metric--warning .param-incoherence-metric__value,
html.theme-dark .param-incoherence-metric.border-warning .param-incoherence-metric__value {
    color: #fbbf24;
}

/* Parametrage */
#parametreContainer.param-page {
    --param-accent: var(--app-navbar-accent, #ea7a12);
    --param-accent-strong: var(--app-navbar-accent-strong, #c2510c);
    --param-accent-soft: var(--app-navbar-accent-soft, rgba(234, 122, 18, 0.14));
    --param-surface: #ffffff;
    --param-surface-soft: #f7fafc;
    --param-surface-muted: #eef3f8;
    --param-border: #dbe5f0;
    --param-text: #101827;
    --param-muted: #667085;
    --param-shadow: 0 14px 36px rgba(15, 23, 42, 0.08);
    color: var(--param-text);
}

#fusionEnfantsModal {
    --param-accent: var(--app-navbar-accent, #ea7a12);
    --param-accent-strong: var(--app-navbar-accent-strong, #c2510c);
    --param-accent-soft: var(--app-navbar-accent-soft, rgba(234, 122, 18, 0.14));
    --param-surface: #ffffff;
    --param-surface-soft: #f7fafc;
    --param-surface-muted: #eef3f8;
    --param-border: #dbe5f0;
    --param-text: #101827;
    --param-muted: #667085;
}

#parametreContainer .param-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1.15rem 1.25rem;
    border: 1px solid color-mix(in srgb, var(--param-accent) 22%, var(--param-border));
    border-left: 5px solid var(--param-accent);
    border-radius: 16px;
    background: var(--param-surface);
    box-shadow: var(--param-shadow);
}

#parametreContainer .param-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 0.65rem;
    border-radius: 999px;
    background: var(--param-accent-soft);
    color: var(--param-accent-strong);
    font-size: 0.76rem;
    font-weight: 900;
    text-transform: uppercase;
}

#parametreContainer .param-hero__title {
    margin: 0.4rem 0 0;
    color: var(--param-text);
    font-weight: 900;
    letter-spacing: 0;
}

#parametreContainer .param-hero__subtitle {
    margin: 0.2rem 0 0;
    color: var(--param-muted);
    font-weight: 650;
}

#parametreContainer .param-hero__status {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.55rem;
}

#parametreContainer .param-hero__pill,
#parametreContainer .param-chip,
#fusionEnfantsModal .param-chip,
#fusionParentsModal .param-chip,
#residualIncoherenceModal .param-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 28px;
    width: fit-content;
    padding: 0.28rem 0.7rem;
    border: 1px solid color-mix(in srgb, var(--param-accent) 20%, var(--param-border));
    border-radius: 999px;
    background: var(--param-accent-soft);
    color: var(--param-accent-strong);
    font-size: 0.8rem;
    font-weight: 850;
    white-space: nowrap;
}

#parametreContainer .param-chip--neutral,
#fusionEnfantsModal .param-chip--neutral,
#fusionParentsModal .param-chip--neutral,
#residualIncoherenceModal .param-chip--neutral {
    background: #eef2f7;
    border-color: #d8e0eb;
    color: #475467;
}

#parametreContainer .param-chip--soft,
#fusionEnfantsModal .param-chip--soft,
#fusionParentsModal .param-chip--soft,
#residualIncoherenceModal .param-chip--soft {
    background: #f8fafc;
    border-color: #dbe5f0;
    color: #344054;
}

#parametreContainer .param-chip--warning,
#fusionEnfantsModal .param-chip--warning,
#fusionParentsModal .param-chip--warning,
#residualIncoherenceModal .param-chip--warning {
    background: #fff7df;
    border-color: #ffd15f;
    color: #8a5700;
}

#parametreContainer .param-chip--success,
#fusionEnfantsModal .param-chip--success,
#fusionParentsModal .param-chip--success,
#residualIncoherenceModal .param-chip--success {
    background: #e8f8ef;
    border-color: #a9e6c4;
    color: #147c48;
}

#parametreContainer .param-chip--danger,
#fusionEnfantsModal .param-chip--danger,
#fusionParentsModal .param-chip--danger,
#residualIncoherenceModal .param-chip--danger {
    background: #fff0f0;
    border-color: #ffc4c4;
    color: #a91f2f;
}

#parametreContainer .param-linked-detail-row > td {
    background: color-mix(in srgb, var(--param-surface-muted) 65%, #fff);
}

#parametreContainer .param-detail-strip {
    padding: 0.85rem;
    border: 1px solid var(--param-border);
    border-radius: 14px;
    background: var(--param-surface);
}

#parametreContainer .param-tabs {
    position: sticky;
    top: 0.5rem;
    z-index: 10;
    display: flex;
    justify-content: center;
    justify-self: center;
    gap: 0.45rem;
    width: max-content;
    max-width: calc(100% - clamp(1rem, 5vw, 10rem));
    margin: 0 auto 1rem !important;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--param-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--param-surface) 92%, transparent);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
    backdrop-filter: blur(10px);
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
}

#parametreContainer .param-tabs::-webkit-scrollbar {
    display: none;
}

#parametreContainer .param-tabs .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 42px;
    padding: 0.62rem 0.9rem;
    border: 1px solid transparent;
    border-radius: 7px;
    color: var(--param-muted);
    font-weight: 850;
    white-space: nowrap;
}

#parametreContainer .param-tabs .nav-link:hover {
    background: var(--param-surface-soft);
    color: var(--param-accent-strong);
    border-color: color-mix(in srgb, var(--param-accent) 18%, var(--param-border));
}

#parametreContainer .param-tabs .nav-link.active {
    background: var(--param-accent-soft);
    color: var(--param-accent-strong);
    border-color: color-mix(in srgb, var(--param-accent) 32%, transparent);
    box-shadow: none;
}

#parametreContainer .param-command-center {
    display: grid;
    grid-template-columns: minmax(18rem, 1fr) minmax(28rem, 1.45fr);
    gap: 1rem;
    margin: 0 0 1rem;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--param-accent) 20%, var(--param-border));
    border-radius: 16px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--param-accent) 9%, var(--param-surface)) 0%, var(--param-surface) 58%, var(--param-surface-soft) 100%);
    box-shadow: var(--param-shadow);
}

#parametreContainer .param-command-center__eyebrow,
#parametreContainer .param-context-strip__eyebrow {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 0.35rem;
    color: var(--param-accent-strong);
    font-size: 0.72rem;
    font-weight: 950;
    text-transform: uppercase;
}

#parametreContainer .param-command-center h1 {
    margin: 0;
    color: var(--param-text);
    font-size: clamp(1.35rem, 2vw, 1.95rem);
    font-weight: 950;
    letter-spacing: 0;
    line-height: 1.1;
}

#parametreContainer .param-command-center p {
    max-width: 58ch;
    margin: 0.45rem 0 0;
    color: var(--param-muted);
    font-weight: 650;
}

#parametreContainer .param-command-center__actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
}

#parametreContainer .param-command-card {
    display: grid;
    align-content: start;
    gap: 0.35rem;
    min-height: 6.1rem;
    padding: 0.8rem;
    border: 1px solid var(--param-border);
    border-radius: 10px;
    background: color-mix(in srgb, var(--param-surface) 88%, transparent);
    color: var(--param-text);
    text-align: left;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
}

#parametreContainer .param-command-card:hover,
#parametreContainer .param-command-card:focus {
    border-color: color-mix(in srgb, var(--param-accent) 42%, var(--param-border));
    color: var(--param-accent-strong);
}

#parametreContainer .param-command-card.is-active {
    background: var(--param-accent-soft);
    border-color: color-mix(in srgb, var(--param-accent) 45%, var(--param-border));
    color: var(--param-accent-strong);
}

#parametreContainer .param-command-card span {
    display: inline-grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 9px;
    background: var(--param-accent-soft);
    color: var(--param-accent-strong);
}

#parametreContainer .param-command-card strong {
    color: inherit;
    font-weight: 950;
    line-height: 1.1;
}

#parametreContainer .param-command-card small {
    color: var(--param-muted);
    font-weight: 750;
    line-height: 1.25;
}

#parametreContainer .param-workspace {
    display: grid;
    grid-template-columns: minmax(16rem, 19rem) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

#parametreContainer .param-sidebar {
    position: sticky;
    top: 6.25rem;
    z-index: 11;
    max-height: calc(100vh - 7.5rem);
    overflow: auto;
    padding: 0.75rem;
    border: 1px solid var(--param-border);
    border-radius: 14px;
    background: color-mix(in srgb, var(--param-surface) 94%, transparent);
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
    scrollbar-width: thin;
}

#parametreContainer .param-sidebar__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
    padding: 0.55rem 0.6rem;
    border-radius: 10px;
    background: var(--param-surface-soft);
}

#parametreContainer .param-sidebar__head span {
    display: block;
    color: var(--param-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

#parametreContainer .param-sidebar__head strong {
    display: block;
    color: var(--param-text);
    font-weight: 950;
}

#parametreContainer .param-sidebar__head i {
    color: var(--param-accent-strong);
}

#parametreContainer .param-sidebar__search {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 2.35rem;
    margin-bottom: 0.65rem;
    padding: 0 0.7rem;
    border: 1px solid var(--param-border);
    border-radius: 10px;
    background: var(--param-surface);
    color: var(--param-muted);
}

#parametreContainer .param-sidebar__search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--param-text);
    font-weight: 750;
}

#parametreContainer .param-tabs {
    position: static;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    justify-self: auto;
    gap: 0.25rem;
    width: 100%;
    max-width: none;
    margin: 0 !important;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}

#parametreContainer .param-tabs__group {
    margin: 0.75rem 0 0.2rem;
    padding: 0 0.4rem;
    color: var(--param-muted);
    font-size: 0.7rem;
    font-weight: 950;
    text-transform: uppercase;
}

#parametreContainer .param-tabs__group:first-child {
    margin-top: 0;
}

#parametreContainer .param-tabs .nav-item.is-filtered-out,
#parametreContainer .param-tabs .param-tabs__group.is-filtered-out {
    display: none;
}

#parametreContainer .param-tabs .nav-link {
    display: grid;
    grid-template-columns: 1.55rem minmax(0, 1fr);
    align-items: start;
    gap: 0.5rem;
    width: 100%;
    min-height: 3.4rem;
    padding: 0.62rem 0.68rem;
    border-radius: 10px;
    text-align: left;
    white-space: normal;
}

#parametreContainer .param-tabs .nav-link i {
    display: inline-grid;
    place-items: center;
    width: 1.55rem;
    height: 1.55rem;
    margin-top: 0.08rem;
    color: inherit;
}

#parametreContainer .param-tabs .nav-link span {
    display: block;
    color: inherit;
    font-weight: 950;
    line-height: 1.1;
}

#parametreContainer .param-tabs .nav-link small {
    display: block;
    margin-top: 0.18rem;
    color: color-mix(in srgb, var(--param-muted) 82%, var(--param-text));
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.2;
}

#parametreContainer .param-tabs .nav-link.active small {
    color: color-mix(in srgb, var(--param-accent-strong) 72%, var(--param-muted));
}

#parametreContainer .param-main {
    min-width: 0;
}

#parametreContainer .param-context-strip {
    position: sticky;
    top: 6.25rem;
    z-index: 9;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--param-border);
    border-radius: 14px;
    background: color-mix(in srgb, var(--param-surface) 94%, transparent);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.07);
    backdrop-filter: blur(10px);
}

#parametreContainer .param-context-strip strong {
    display: block;
    color: var(--param-text);
    font-size: 1.02rem;
    font-weight: 950;
}

#parametreContainer .param-context-strip small {
    display: block;
    color: var(--param-muted);
    font-weight: 720;
}

#parametreContainer .param-context-strip__hint {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--param-muted);
    font-size: 0.82rem;
    font-weight: 780;
}

#parametreContainer .param-panel {
    margin-bottom: 1rem;
}

@media (max-width: 1199.98px) {
    #parametreContainer .param-command-center {
        grid-template-columns: 1fr;
    }

    #parametreContainer .param-workspace {
        grid-template-columns: 1fr;
    }

    #parametreContainer .param-sidebar {
        position: static;
        max-height: none;
    }

    #parametreContainer .param-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #parametreContainer .param-tabs__group {
        grid-column: 1 / -1;
    }

    #parametreContainer .param-context-strip {
        position: static;
    }
}

@media (max-width: 767.98px) {
    #parametreContainer .param-command-center {
        padding: 0.85rem;
    }

    #parametreContainer .param-command-center__actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #parametreContainer .param-tabs {
        grid-template-columns: 1fr;
    }

    #parametreContainer .param-context-strip {
        align-items: flex-start;
        flex-direction: column;
    }
}

#parametreContainer .param-panel {
    overflow: hidden;
    border: 1px solid var(--param-border) !important;
    border-radius: 16px;
    background: var(--param-surface);
    box-shadow: var(--param-shadow) !important;
}

#parametreContainer .param-panel__header {
    border-bottom: 1px solid var(--param-border);
    background: var(--param-surface) !important;
    padding: 1rem 1.1rem;
}

#parametreContainer .param-panel__title {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--param-text);
    font-size: 1rem;
}

#parametreContainer .param-panel__title i {
    color: var(--param-accent);
}

#parametreContainer .param-normalisation-overview {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--param-border);
    border-radius: 16px;
    background: var(--param-surface);
    box-shadow: var(--param-shadow);
}

#parametreContainer .param-normalisation-overview__title {
    color: var(--param-text);
    font-weight: 800;
}

#parametreContainer .param-normalisation-overview__links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
}

#parametreContainer .param-normalisation-overview__links a {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 2rem;
    padding: 0.35rem 0.7rem;
    border: 1px solid color-mix(in srgb, var(--param-accent) 22%, var(--param-border));
    border-radius: 999px;
    color: var(--param-accent-strong);
    background: color-mix(in srgb, var(--param-accent) 8%, var(--param-surface));
    font-size: 0.82rem;
    font-weight: 750;
    text-decoration: none;
}

#parametreContainer .param-normalisation-overview__links a:hover {
    background: var(--param-surface-soft);
    border-color: var(--param-accent);
}

#parametreContainer .param-normalisation-section {
    margin-top: 1.25rem;
    padding: 0.15rem 0 0.25rem;
    border-bottom: 1px solid var(--param-border);
}

#parametreContainer .param-normalisation-section__eyebrow {
    color: var(--param-accent-strong);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

#parametreContainer .param-normalisation-section h6 {
    margin: 0.1rem 0 0;
    color: var(--param-text);
    font-weight: 800;
}

#parametreContainer .param-normalisation-card {
    scroll-margin-top: 6rem;
}

#parametreContainer .param-normalisation-export-global {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
}

#parametreContainer .param-normalisation-export-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid color-mix(in srgb, var(--param-accent) 18%, var(--param-border));
    border-radius: 12px;
    background: color-mix(in srgb, var(--param-accent) 5%, var(--param-surface));
}

#parametreContainer .param-normalisation-export-toolbar__label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--param-text);
    font-size: 0.82rem;
    font-weight: 800;
}

#parametreContainer .param-normalisation-export-toolbar__label i {
    color: var(--param-accent);
}

#parametreContainer .param-normalisation-export-toolbar__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.4rem;
}

#parametreContainer .param-incoherence-table-tools {
    padding: 0.65rem 0.75rem;
    border: 1px solid color-mix(in srgb, var(--param-accent) 12%, var(--param-border));
    border-radius: 12px;
    background: color-mix(in srgb, var(--param-accent) 4%, var(--param-surface));
}

#parametreContainer .param-incoherence-table-tools__main {
    display: grid;
    gap: 0.55rem;
    min-width: 0;
}

#parametreContainer .param-incoherence-column-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

#parametreContainer .param-incoherence-column-filter-wrap {
    display: grid;
    gap: 0.22rem;
    min-width: 150px;
    max-width: 230px;
}

#parametreContainer .param-incoherence-column-filter-wrap span {
    color: var(--param-muted);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

#parametreContainer .param-incoherence-table-tools__search {
    width: min(100%, 320px);
}

@media (max-width: 768px) {
    #parametreContainer .param-normalisation-overview {
        align-items: stretch;
        flex-direction: column;
    }

    #parametreContainer .param-normalisation-export-global,
    #parametreContainer .param-normalisation-export-toolbar {
        justify-content: flex-start;
    }

    #parametreContainer .param-normalisation-export-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    #parametreContainer .param-incoherence-column-filter-wrap,
    #parametreContainer .param-incoherence-table-tools__search {
        width: 100%;
        max-width: none;
    }
}

#parametreContainer .form-control,
#parametreContainer .form-select {
    border-color: var(--param-border);
    border-radius: 10px;
    color: var(--param-text);
    background-color: var(--param-surface);
    font-weight: 650;
}

#parametreContainer .form-control:focus,
#parametreContainer .form-select:focus {
    border-color: color-mix(in srgb, var(--param-accent) 52%, var(--param-border));
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--param-accent) 16%, transparent);
}

#parametreContainer .form-check-input:checked {
    background-color: var(--param-accent);
    border-color: var(--param-accent);
}

#fusionEnfantsModal .child-merge-final-editor {
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--param-accent) 28%, var(--param-border));
    border-radius: 16px;
    background: var(--param-surface);
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
}

#fusionEnfantsModal .child-merge-final-editor__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    border-bottom: 1px solid var(--param-border);
    background: linear-gradient(90deg, var(--param-accent-soft), transparent);
    padding: 0.9rem 1rem;
}

#fusionEnfantsModal .child-merge-final-editor__title {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--param-text);
}

#fusionEnfantsModal .child-merge-final-editor__title i {
    color: var(--param-accent);
}

#fusionEnfantsModal .child-merge-final-editor__hint {
    border-color: color-mix(in srgb, var(--param-accent) 24%, var(--param-border));
    background: color-mix(in srgb, var(--param-accent-soft) 52%, #ffffff);
    color: var(--param-text);
    font-weight: 650;
}

#fusionEnfantsModal .child-merge-final-editor .form-label {
    color: var(--param-muted);
    font-weight: 800;
}

#fusionEnfantsModal .child-merge-final-editor .form-control,
#fusionEnfantsModal .child-merge-final-editor .form-select {
    border-color: var(--param-border);
    border-radius: 10px;
    color: var(--param-text);
    background-color: var(--param-surface);
    font-weight: 700;
}

#parametreContainer .param-btn-primary,
#parametreContainer .btn-primary {
    border-color: var(--param-accent) !important;
    background: var(--param-accent) !important;
    color: #ffffff !important;
    border-radius: 10px;
    font-weight: 850;
}

#parametreContainer .param-btn-primary:hover,
#parametreContainer .btn-primary:hover {
    border-color: var(--param-accent-strong) !important;
    background: var(--param-accent-strong) !important;
}

#parametreContainer .param-btn-outline,
#parametreContainer .btn-outline-primary {
    border-color: color-mix(in srgb, var(--param-accent) 44%, var(--param-border)) !important;
    color: var(--param-accent-strong) !important;
    background: var(--param-surface) !important;
    border-radius: 10px;
    font-weight: 850;
}

#parametreContainer .param-btn-outline:hover,
#parametreContainer .btn-outline-primary:hover {
    color: #ffffff !important;
    background: var(--param-accent) !important;
}

#parametreContainer .param-btn-warning {
    border-color: #ffbd38 !important;
    background: #ffbd38 !important;
    color: #111827 !important;
    border-radius: 10px;
    font-weight: 850;
}

#parametreContainer .param-btn-danger {
    border-radius: 10px;
    font-weight: 850;
}

#parametreContainer .param-link {
    cursor: pointer;
    color: var(--param-accent-strong);
    font-weight: 900;
    text-decoration: none;
}

#parametreContainer .param-link:hover {
    color: var(--param-accent);
    text-decoration: underline;
}

#parametreContainer .param-sortable-heading {
    cursor: pointer;
    user-select: none;
    position: relative;
    padding-right: 1.35rem !important;
}

#parametreContainer .param-sortable-heading::after {
    content: "\f0dc";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    right: .45rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--param-muted);
    font-size: .72rem;
    opacity: .65;
}

#parametreContainer .param-sortable-heading.param-sort-asc::after {
    content: "\f0de";
    color: var(--param-accent);
    opacity: 1;
}

#parametreContainer .param-sortable-heading.param-sort-desc::after {
    content: "\f0dd";
    color: var(--param-accent);
    opacity: 1;
}

#parametreContainer .dataTables_wrapper {
    color: var(--param-text);
}

#parametreContainer .dataTables_filter,
#parametreContainer .dataTables_length,
#parametreContainer .dataTables_info {
    display: none;
}

#parametreContainer table.dataTable,
#parametreContainer .table {
    border-collapse: separate !important;
    border-spacing: 0;
    color: var(--param-text);
}

#parametreContainer table.dataTable thead th,
#parametreContainer .table thead th {
    border-bottom: 1px solid var(--param-border) !important;
    background: var(--param-surface-soft);
    color: var(--param-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

#parametreContainer table.dataTable tbody td,
#parametreContainer .table tbody td {
    border-color: #edf2f7 !important;
    vertical-align: middle;
}

#parametreContainer table.dataTable tbody tr:hover > *,
#parametreContainer .table-hover tbody tr:hover > * {
    background: color-mix(in srgb, var(--param-accent) 8%, #ffffff) !important;
}

#parametreContainer .param-doc-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 9.5rem;
    padding: 0.34rem 0.62rem;
    border-radius: 0.55rem;
    border: 1px solid transparent;
    font-weight: 850;
    line-height: 1.15;
    white-space: nowrap;
}

#parametreContainer .param-doc-badge--attestation {
    background: #e0f2fe;
    border-color: #7dd3fc;
    color: #075985;
}

#parametreContainer .param-doc-badge--certificat {
    background: #dcfce7;
    border-color: #86efac;
    color: #166534;
}

#parametreContainer .details-row-custom > td {
    padding: 1.2rem 1.35rem !important;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--param-accent) 7%, #ffffff) 0%, #f7fafc 100%) !important;
}

#parametreContainer .param-details-card {
    border: 1px solid var(--param-border) !important;
    border-radius: 16px;
    background: var(--param-surface);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.08);
}

#parametreContainer .param-details-card .card-body {
    padding: 1.1rem 1.15rem;
}

#parametreContainer .param-detail-title {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--param-text);
    font-size: 1.06rem;
    font-weight: 900;
}

#parametreContainer .param-detail-title i {
    color: var(--param-accent);
}

#parametreContainer .param-class-list {
    gap: 0.72rem;
}

#parametreContainer .param-class-item {
    border: 1px solid var(--param-border);
    border-radius: 14px;
    background: var(--param-surface);
    min-height: 74px;
    padding: 0.95rem 1rem;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.045);
}

#parametreContainer .param-class-main {
    min-width: 0;
    flex: 1 1 auto;
}

#parametreContainer .param-class-name {
    color: var(--param-text);
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1.2;
}

#parametreContainer .param-class-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.48rem;
}

#parametreContainer .param-class-meta span,
#parametreContainer .param-payment-tile {
    border: 1px solid color-mix(in srgb, var(--param-border) 88%, var(--param-accent));
    border-radius: 12px;
    background: color-mix(in srgb, var(--param-surface-soft) 72%, #ffffff);
}

#parametreContainer .param-class-meta span {
    display: inline-flex;
    align-items: baseline;
    gap: 0.34rem;
    min-height: 30px;
    padding: 0.28rem 0.62rem;
}

#parametreContainer .param-class-meta span.is-enabled {
    border-color: color-mix(in srgb, #16a34a 44%, var(--param-border));
    background: rgba(22, 163, 74, 0.1);
}

#parametreContainer .param-class-meta small,
#parametreContainer .param-payment-tile span {
    color: var(--param-muted);
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

#parametreContainer .param-class-meta strong {
    color: var(--param-text);
    font-size: 0.88rem;
    font-weight: 900;
}

#parametreContainer .param-class-actions {
    flex: 0 0 auto;
}

#parametreContainer .param-payment-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.72rem;
}

#parametreContainer .param-payment-tile {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 70px;
    padding: 0.8rem 0.85rem;
}

#parametreContainer .param-payment-tile strong {
    margin-top: 0.18rem;
    color: var(--param-text);
    font-size: 1rem;
    font-weight: 900;
}

#parametreContainer .param-payment-tile--wide {
    grid-column: 1 / -1;
}

#parametreContainer .param-reduction-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

#parametreContainer .param-reduction-list .param-chip {
    min-height: 34px;
    font-size: 0.86rem;
}

#parametreContainer .param-empty-state {
    padding: 1rem;
    border: 1px dashed var(--param-border);
    border-radius: 12px;
    background: var(--param-surface-soft);
    color: var(--param-muted);
    font-weight: 750;
}

#parametreContainer .param-etab-panel .card-body {
    background:
        radial-gradient(circle at 6% 10%, color-mix(in srgb, var(--param-accent) 7%, transparent), transparent 28rem),
        linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

#parametreContainer .param-etab-panel__header {
    background:
        radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--param-accent) 10%, transparent), transparent 18rem),
        linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

#parametreContainer .etab-dashboard {
    display: grid;
    gap: 1rem;
}

#parametreContainer .etab-hero,
#parametreContainer .etab-card {
    border: 1px solid color-mix(in srgb, var(--param-accent) 18%, var(--param-border));
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 16px 42px rgba(15, 23, 42, 0.08);
}

#parametreContainer .etab-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1.05rem 1.15rem;
    border-radius: 18px;
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--param-accent) 16%, transparent), transparent 42%),
        linear-gradient(135deg, color-mix(in srgb, var(--param-accent) 7%, #ffffff) 0%, #ffffff 100%);
}

#parametreContainer .etab-hero__mark,
#parametreContainer .etab-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: var(--param-accent-strong);
    background: var(--param-accent-soft);
    border: 1px solid color-mix(in srgb, var(--param-accent) 22%, var(--param-border));
}

#parametreContainer .etab-hero__mark {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 1rem;
    font-size: 1.22rem;
}

#parametreContainer .etab-hero__copy {
    min-width: 0;
}

#parametreContainer .etab-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--param-accent-strong);
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

#parametreContainer .etab-hero__copy strong {
    display: block;
    color: var(--param-text);
    font-size: clamp(1.25rem, 2vw, 1.8rem);
    font-weight: 950;
    line-height: 1.05;
}

#parametreContainer .etab-hero__copy small {
    display: block;
    margin-top: 0.22rem;
    color: var(--param-muted);
    font-weight: 750;
}

#parametreContainer .etab-hero__status {
    justify-self: end;
}

#parametreContainer .etab-card {
    height: 100%;
    padding: 1rem;
    border-radius: 18px;
}

#parametreContainer .etab-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.95rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid color-mix(in srgb, var(--param-accent) 12%, var(--param-border));
}

#parametreContainer .etab-card__header h6,
#parametreContainer .etab-secondary-mail__head strong {
    margin: 0.12rem 0 0;
    color: var(--param-text);
    font-size: 1.05rem;
    font-weight: 950;
}

#parametreContainer .etab-card__icon {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.9rem;
}

#parametreContainer .etab-color-field {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.65rem;
    padding: 0.4rem 0.5rem;
    min-height: 2.45rem;
    border: 1px solid var(--param-border);
    border-radius: 0.7rem;
    background: var(--param-surface-soft);
}

#parametreContainer .etab-color-field .form-control-color {
    width: 2.2rem;
    height: 1.9rem;
    min-height: 1.9rem;
    padding: 0.1rem;
    border-radius: 0.55rem;
}

#parametreContainer .etab-color-field span {
    color: var(--param-muted);
    font-size: 0.78rem;
    font-weight: 800;
}

#parametreContainer .etab-input-group .input-group-text {
    border-color: var(--param-border);
    background: var(--param-surface-soft);
    color: var(--param-accent-strong);
}

#parametreContainer .etab-phone-list {
    padding: 0.75rem;
    border: 1px solid var(--param-border);
    border-radius: 14px;
    background: var(--param-surface-soft);
}

#parametreContainer .etab-secondary-mail {
    padding: 0.9rem;
    border: 1px solid color-mix(in srgb, var(--param-accent) 16%, var(--param-border));
    border-radius: 16px;
    background: color-mix(in srgb, var(--param-accent) 4%, var(--param-surface-soft));
}

#parametreContainer .etab-secondary-mail__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.8rem;
}

#parametreContainer .etab-mail-table {
    border-radius: 14px;
    border: 1px solid var(--param-border);
    background: var(--param-surface);
}

#parametreContainer .etab-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--param-accent) 14%, var(--param-border));
}

#residualIncoherenceModal,
#fusionParentsModal,
#fusionEnfantsModal,
#normaliserIncoherencesModal,
#normaliserPremieresAnneesAncienModal,
#normaliserRevenantsModal,
#productionBackupPreviewModal,
#reductionMotifModal,
#scolariteTrancheExonerationModal,
#addClasseReferentielModal,
#modifierClasseReferentielModal,
#addAnneeScolaireModal,
#modifierAnneeScolaireModal,
#addClasseModal,
#modifierClasseModal,
#addUserModal,
#modifierUserModal {
    --param-accent: var(--app-navbar-accent, #ea7a12);
    --param-accent-strong: var(--app-navbar-accent-strong, #c2510c);
    --param-accent-soft: var(--app-navbar-accent-soft, rgba(234, 122, 18, 0.14));
    --param-surface: #ffffff;
    --param-surface-soft: #f8fafc;
    --param-surface-muted: #eef3f8;
    --param-border: #dbe5f0;
    --param-text: #101827;
    --param-muted: #667085;
}

#residualIncoherenceModal .modal-content,
#fusionParentsModal .modal-content,
#fusionEnfantsModal .modal-content,
#normaliserIncoherencesModal .modal-content,
#normaliserPremieresAnneesAncienModal .modal-content,
#normaliserRevenantsModal .modal-content,
#productionBackupPreviewModal .modal-content,
#reductionMotifModal .modal-content,
#scolariteTrancheExonerationModal .modal-content,
#addClasseReferentielModal .modal-content,
#modifierClasseReferentielModal .modal-content,
#addAnneeScolaireModal .modal-content,
#modifierAnneeScolaireModal .modal-content,
#addClasseModal .modal-content,
#modifierClasseModal .modal-content,
#addUserModal .modal-content,
#modifierUserModal .modal-content {
    overflow: hidden !important;
    border: 1px solid var(--param-border) !important;
    border-radius: 18px !important;
    background: var(--param-surface) !important;
    color: var(--param-text) !important;
    box-shadow: 0 30px 90px rgba(15, 23, 42, 0.26) !important;
}

#residualIncoherenceModal .modal-header,
#fusionParentsModal .modal-header,
#fusionEnfantsModal .modal-header,
#normaliserIncoherencesModal .modal-header,
#normaliserPremieresAnneesAncienModal .modal-header,
#normaliserRevenantsModal .modal-header,
#productionBackupPreviewModal .modal-header,
#reductionMotifModal .modal-header,
#scolariteTrancheExonerationModal .modal-header,
#addClasseReferentielModal .modal-header,
#modifierClasseReferentielModal .modal-header,
#addAnneeScolaireModal .modal-header,
#modifierAnneeScolaireModal .modal-header,
#addClasseModal .modal-header,
#modifierClasseModal .modal-header,
#addUserModal .modal-header,
#modifierUserModal .modal-header {
    border: 0 !important;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--param-accent) 16%, #ffffff) 0%, #ffffff 100%) !important;
    color: var(--param-text) !important;
    padding: 1.15rem 1.35rem !important;
}

#residualIncoherenceModal .modal-title,
#fusionParentsModal .modal-title,
#fusionEnfantsModal .modal-title,
#normaliserIncoherencesModal .modal-title,
#normaliserPremieresAnneesAncienModal .modal-title,
#normaliserRevenantsModal .modal-title,
#productionBackupPreviewModal .modal-title,
#reductionMotifModal .modal-title,
#scolariteTrancheExonerationModal .modal-title,
#addClasseReferentielModal .modal-title,
#modifierClasseReferentielModal .modal-title,
#addAnneeScolaireModal .modal-title,
#modifierAnneeScolaireModal .modal-title,
#addClasseModal .modal-title,
#modifierClasseModal .modal-title,
#addUserModal .modal-title,
#modifierUserModal .modal-title {
    color: var(--param-text) !important;
    font-weight: 900;
}

#residualIncoherenceModal .btn-close,
#fusionParentsModal .btn-close,
#fusionEnfantsModal .btn-close,
#normaliserIncoherencesModal .btn-close,
#normaliserPremieresAnneesAncienModal .btn-close,
#normaliserRevenantsModal .btn-close,
#productionBackupPreviewModal .btn-close,
#reductionMotifModal .btn-close,
#scolariteTrancheExonerationModal .btn-close,
#addClasseReferentielModal .btn-close,
#modifierClasseReferentielModal .btn-close,
#addAnneeScolaireModal .btn-close,
#modifierAnneeScolaireModal .btn-close,
#addClasseModal .btn-close,
#modifierClasseModal .btn-close,
#addUserModal .btn-close,
#modifierUserModal .btn-close {
    filter: none !important;
}

#residualIncoherenceModal .modal-body,
#fusionParentsModal .modal-body,
#fusionEnfantsModal .modal-body,
#normaliserIncoherencesModal .modal-body,
#normaliserPremieresAnneesAncienModal .modal-body,
#normaliserRevenantsModal .modal-body,
#productionBackupPreviewModal .modal-body,
#reductionMotifModal .modal-body,
#scolariteTrancheExonerationModal .modal-body,
#addClasseReferentielModal .modal-body,
#modifierClasseReferentielModal .modal-body,
#addAnneeScolaireModal .modal-body,
#modifierAnneeScolaireModal .modal-body,
#addClasseModal .modal-body,
#modifierClasseModal .modal-body,
#addUserModal .modal-body,
#modifierUserModal .modal-body {
    background: var(--param-surface) !important;
}

#residualIncoherenceModal .modal-footer,
#fusionParentsModal .modal-footer,
#fusionEnfantsModal .modal-footer,
#normaliserIncoherencesModal .modal-footer,
#normaliserPremieresAnneesAncienModal .modal-footer,
#normaliserRevenantsModal .modal-footer,
#productionBackupPreviewModal .modal-footer,
#reductionMotifModal .modal-footer,
#scolariteTrancheExonerationModal .modal-footer,
#addClasseReferentielModal .modal-footer,
#modifierClasseReferentielModal .modal-footer,
#addAnneeScolaireModal .modal-footer,
#modifierAnneeScolaireModal .modal-footer,
#addClasseModal .modal-footer,
#modifierClasseModal .modal-footer,
#addUserModal .modal-footer,
#modifierUserModal .modal-footer {
    border-top: 1px solid var(--param-border) !important;
    background: var(--param-surface-soft) !important;
    padding: 0.95rem 1.25rem !important;
}

#residualIncoherenceModal .card,
#fusionParentsModal .card,
#fusionEnfantsModal .card,
#normaliserIncoherencesModal .card,
#normaliserPremieresAnneesAncienModal .card,
#normaliserRevenantsModal .card,
#addAnneeScolaireModal .card {
    border: 1px solid var(--param-border) !important;
    border-radius: 14px;
    background: var(--param-surface-soft);
    box-shadow: none !important;
}

#residualIncoherenceModal .form-control,
#residualIncoherenceModal .form-select,
#fusionParentsModal .form-control,
#fusionParentsModal .form-select,
#fusionEnfantsModal .form-control,
#fusionEnfantsModal .form-select,
#normaliserIncoherencesModal .form-control,
#normaliserIncoherencesModal .form-select,
#normaliserPremieresAnneesAncienModal .form-control,
#normaliserPremieresAnneesAncienModal .form-select,
#normaliserRevenantsModal .form-control,
#normaliserRevenantsModal .form-select,
#productionBackupPreviewModal .form-control,
#productionBackupPreviewModal .form-select,
#reductionMotifModal .form-control,
#reductionMotifModal .form-select,
#scolariteTrancheExonerationModal .form-control,
#scolariteTrancheExonerationModal .form-select,
#addClasseReferentielModal .form-control,
#addClasseReferentielModal .form-select,
#modifierClasseReferentielModal .form-control,
#modifierClasseReferentielModal .form-select,
#addAnneeScolaireModal .form-control,
#addAnneeScolaireModal .form-select,
#modifierAnneeScolaireModal .form-control,
#modifierAnneeScolaireModal .form-select,
#addClasseModal .form-control,
#addClasseModal .form-select,
#modifierClasseModal .form-control,
#modifierClasseModal .form-select,
#addUserModal .form-control,
#addUserModal .form-select,
#modifierUserModal .form-control,
#modifierUserModal .form-select {
    border-color: var(--param-border);
    border-radius: 11px;
    background: var(--param-surface);
    color: var(--param-text);
    font-weight: 650;
}

#residualIncoherenceModal .input-group-text,
#fusionParentsModal .input-group-text,
#fusionEnfantsModal .input-group-text,
#normaliserIncoherencesModal .input-group-text,
#normaliserPremieresAnneesAncienModal .input-group-text,
#normaliserRevenantsModal .input-group-text,
#productionBackupPreviewModal .input-group-text,
#reductionMotifModal .input-group-text,
#scolariteTrancheExonerationModal .input-group-text,
#addAnneeScolaireModal .input-group-text,
#modifierAnneeScolaireModal .input-group-text {
    border-color: var(--param-border);
    background: var(--param-accent-soft);
    color: var(--param-accent-strong);
    font-weight: 900;
}

#residualIncoherenceModal .btn-primary,
#fusionParentsModal .btn-primary,
#fusionEnfantsModal .btn-primary,
#normaliserIncoherencesModal .btn-primary,
#normaliserPremieresAnneesAncienModal .btn-primary,
#normaliserRevenantsModal .btn-primary,
#productionBackupPreviewModal .btn-primary,
#reductionMotifModal .btn-primary,
#scolariteTrancheExonerationModal .btn-primary,
#addClasseReferentielModal .btn-primary,
#modifierClasseReferentielModal .btn-primary,
#addAnneeScolaireModal .btn-primary,
#modifierAnneeScolaireModal .btn-primary,
#addClasseModal .btn-primary,
#modifierClasseModal .btn-primary,
#addUserModal .btn-primary,
#modifierUserModal .btn-primary {
    border-color: var(--param-accent) !important;
    background: var(--param-accent) !important;
    color: #ffffff !important;
    border-radius: 10px;
    font-weight: 850;
}

#residualIncoherenceModal .btn-primary:hover,
#fusionParentsModal .btn-primary:hover,
#fusionEnfantsModal .btn-primary:hover,
#normaliserIncoherencesModal .btn-primary:hover,
#normaliserPremieresAnneesAncienModal .btn-primary:hover,
#normaliserRevenantsModal .btn-primary:hover,
#productionBackupPreviewModal .btn-primary:hover,
#reductionMotifModal .btn-primary:hover,
#scolariteTrancheExonerationModal .btn-primary:hover,
#addClasseReferentielModal .btn-primary:hover,
#modifierClasseReferentielModal .btn-primary:hover,
#addAnneeScolaireModal .btn-primary:hover,
#modifierAnneeScolaireModal .btn-primary:hover,
#addClasseModal .btn-primary:hover,
#modifierClasseModal .btn-primary:hover,
#addUserModal .btn-primary:hover,
#modifierUserModal .btn-primary:hover {
    border-color: var(--param-accent-strong) !important;
    background: var(--param-accent-strong) !important;
}

#residualIncoherenceModal .btn-light,
#fusionParentsModal .btn-light,
#fusionEnfantsModal .btn-light,
#normaliserIncoherencesModal .btn-light,
#normaliserPremieresAnneesAncienModal .btn-light,
#normaliserRevenantsModal .btn-light,
#productionBackupPreviewModal .btn-light,
#reductionMotifModal .btn-light,
#scolariteTrancheExonerationModal .btn-light,
#addClasseReferentielModal .btn-light,
#modifierClasseReferentielModal .btn-light,
#addAnneeScolaireModal .btn-light,
#modifierAnneeScolaireModal .btn-light,
#addClasseModal .btn-light,
#modifierClasseModal .btn-light,
#addUserModal .btn-light,
#modifierUserModal .btn-light,
#residualIncoherenceModal .btn-outline-secondary,
#fusionParentsModal .btn-outline-secondary,
#fusionEnfantsModal .btn-outline-secondary,
#normaliserIncoherencesModal .btn-outline-secondary,
#normaliserPremieresAnneesAncienModal .btn-outline-secondary,
#normaliserRevenantsModal .btn-outline-secondary,
#productionBackupPreviewModal .btn-outline-secondary,
#reductionMotifModal .btn-outline-secondary,
#scolariteTrancheExonerationModal .btn-outline-secondary,
#addClasseReferentielModal .btn-outline-secondary,
#modifierClasseReferentielModal .btn-outline-secondary,
#addAnneeScolaireModal .btn-outline-secondary,
#modifierAnneeScolaireModal .btn-outline-secondary,
#addClasseModal .btn-outline-secondary,
#modifierClasseModal .btn-outline-secondary,
#addUserModal .btn-outline-secondary,
#modifierUserModal .btn-outline-secondary {
    border-color: var(--param-border) !important;
    background: var(--param-surface) !important;
    color: var(--param-text) !important;
    border-radius: 10px;
    font-weight: 850;
}

html.theme-dark #parametreContainer.param-page {
    --param-accent-soft: color-mix(in srgb, var(--theme-dark-accent) 18%, transparent);
    --param-surface: color-mix(in srgb, var(--theme-dark-surface) 92%, #020617);
    --param-surface-soft: color-mix(in srgb, var(--theme-dark-surface-2) 88%, #020617);
    --param-surface-muted: color-mix(in srgb, var(--theme-dark-surface-3) 84%, #020617);
    --param-border: var(--theme-dark-border);
    --param-text: var(--theme-dark-text);
    --param-muted: var(--theme-dark-text-soft);
    --param-shadow: var(--theme-dark-shadow);
}

html.theme-dark #fusionEnfantsModal {
    --param-accent-soft: color-mix(in srgb, var(--theme-dark-accent) 18%, transparent);
    --param-surface: color-mix(in srgb, var(--theme-dark-surface) 92%, #020617);
    --param-surface-soft: color-mix(in srgb, var(--theme-dark-surface-2) 88%, #020617);
    --param-surface-muted: color-mix(in srgb, var(--theme-dark-surface-3) 84%, #020617);
    --param-border: var(--theme-dark-border);
    --param-text: var(--theme-dark-text);
    --param-muted: var(--theme-dark-text-soft);
}

html.theme-dark #parametreContainer .param-hero {
    background:
        radial-gradient(circle at 88% 16%, color-mix(in srgb, var(--param-accent) 14%, transparent), transparent 32%),
        linear-gradient(180deg, var(--theme-dark-surface-2) 0%, var(--theme-dark-surface) 100%) !important;
    border-color: color-mix(in srgb, var(--param-accent) 30%, var(--theme-dark-border)) !important;
    border-left-color: var(--param-accent) !important;
    color: var(--param-text) !important;
    box-shadow: 0 22px 52px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
}

html.theme-dark #parametreContainer .param-tabs {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

html.theme-dark #parametreContainer .param-command-center,
html.theme-dark #parametreContainer .param-sidebar,
html.theme-dark #parametreContainer .param-context-strip {
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--param-accent) 8%, var(--theme-dark-surface-2)) 0%, color-mix(in srgb, var(--theme-dark-surface) 92%, #020617) 100%) !important;
    border-color: color-mix(in srgb, var(--param-accent) 22%, var(--theme-dark-border)) !important;
    color: var(--param-text) !important;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

html.theme-dark #parametreContainer .param-sidebar__head,
html.theme-dark #parametreContainer .param-sidebar__search,
html.theme-dark #parametreContainer .param-command-card {
    background: color-mix(in srgb, var(--theme-dark-surface-3) 84%, #020617) !important;
    border-color: color-mix(in srgb, var(--param-accent) 16%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .param-command-card strong,
html.theme-dark #parametreContainer .param-sidebar__head strong,
html.theme-dark #parametreContainer .param-context-strip strong,
html.theme-dark #parametreContainer .param-command-center h1 {
    color: var(--theme-dark-text) !important;
}

html.theme-dark #parametreContainer .param-command-card.is-active {
    background: color-mix(in srgb, var(--param-accent) 18%, var(--theme-dark-surface-3)) !important;
    border-color: color-mix(in srgb, var(--param-accent) 55%, var(--theme-dark-border)) !important;
}

html.theme-dark #parametreContainer .param-command-card.is-active strong,
html.theme-dark #parametreContainer .param-command-card:hover strong,
html.theme-dark #parametreContainer .param-command-card:focus strong,
html.theme-dark #parametreContainer .param-command-center__eyebrow,
html.theme-dark #parametreContainer .param-context-strip__eyebrow,
html.theme-dark #parametreContainer .param-sidebar__head i {
    color: color-mix(in srgb, var(--param-accent) 72%, #ffffff) !important;
}

html.theme-dark #parametreContainer .param-command-center p,
html.theme-dark #parametreContainer .param-command-card small,
html.theme-dark #parametreContainer .param-context-strip small,
html.theme-dark #parametreContainer .param-context-strip__hint,
html.theme-dark #parametreContainer .param-tabs__group,
html.theme-dark #parametreContainer .param-tabs .nav-link small {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .param-sidebar__search input {
    color: var(--theme-dark-text) !important;
}

html.theme-dark #parametreContainer .param-tabs .nav-link {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .param-tabs .nav-link:hover,
html.theme-dark #parametreContainer .param-tabs .nav-link:focus {
    background: color-mix(in srgb, var(--param-accent) 10%, var(--theme-dark-surface-3)) !important;
    border-color: color-mix(in srgb, var(--param-accent) 34%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark #parametreContainer .param-tabs .nav-link.active {
    background: color-mix(in srgb, var(--param-accent) 18%, var(--theme-dark-surface-3)) !important;
    border-color: color-mix(in srgb, var(--param-accent) 58%, var(--theme-dark-border)) !important;
    color: color-mix(in srgb, var(--param-accent) 76%, #ffffff) !important;
}

html.theme-dark #parametreContainer .param-panel,
html.theme-dark #parametreContainer .param-details-card,
html.theme-dark #parametreContainer .param-class-item {
    background: linear-gradient(180deg, var(--theme-dark-surface) 0%, color-mix(in srgb, var(--theme-dark-surface) 84%, #020617) 100%) !important;
    border-color: color-mix(in srgb, var(--theme-dark-border) 76%, var(--param-accent) 24%) !important;
    color: var(--param-text) !important;
}

html.theme-dark #parametreContainer .param-panel__header {
    background: linear-gradient(180deg, var(--theme-dark-surface-2) 0%, var(--theme-dark-surface) 100%) !important;
    border-bottom-color: color-mix(in srgb, var(--theme-dark-border) 80%, var(--param-accent) 20%) !important;
    color: var(--param-text) !important;
}

html.theme-dark #parametreContainer .param-panel__header small,
html.theme-dark #parametreContainer .param-panel__header .small {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .param-normalisation-overview {
    background: linear-gradient(180deg, var(--theme-dark-surface-2) 0%, var(--theme-dark-surface) 100%) !important;
    border-color: color-mix(in srgb, var(--theme-dark-border) 78%, var(--param-accent) 22%) !important;
    color: var(--param-text) !important;
}

html.theme-dark #parametreContainer .param-normalisation-overview__links a {
    background: color-mix(in srgb, var(--param-accent) 12%, var(--theme-dark-surface)) !important;
    border-color: color-mix(in srgb, var(--param-accent) 35%, var(--theme-dark-border)) !important;
    color: color-mix(in srgb, var(--param-accent) 72%, #ffffff) !important;
}

html.theme-dark #parametreContainer .param-normalisation-overview__links a:hover {
    background: color-mix(in srgb, var(--param-accent) 18%, var(--theme-dark-surface-2)) !important;
}

html.theme-dark #parametreContainer .param-normalisation-section {
    border-bottom-color: color-mix(in srgb, var(--theme-dark-border) 78%, var(--param-accent) 22%) !important;
}

html.theme-dark #parametreContainer .param-etab-panel .card-body {
    background:
        radial-gradient(circle at 8% 8%, color-mix(in srgb, var(--param-accent) 13%, transparent), transparent 28rem),
        linear-gradient(180deg, var(--theme-dark-surface) 0%, color-mix(in srgb, var(--theme-dark-surface) 86%, #020617) 100%) !important;
}

html.theme-dark #parametreContainer .param-etab-panel__header {
    background:
        radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--param-accent) 14%, transparent), transparent 20rem),
        linear-gradient(180deg, var(--theme-dark-surface-2) 0%, var(--theme-dark-surface) 100%) !important;
}

html.theme-dark #parametreContainer .etab-hero,
html.theme-dark #parametreContainer .etab-card {
    background: linear-gradient(180deg, var(--theme-dark-surface-2) 0%, color-mix(in srgb, var(--theme-dark-surface) 86%, #020617) 100%) !important;
    border-color: color-mix(in srgb, var(--param-accent) 26%, var(--theme-dark-border)) !important;
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.28) !important;
}

html.theme-dark #parametreContainer .etab-hero {
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--param-accent) 18%, transparent), transparent 44%),
        linear-gradient(135deg, color-mix(in srgb, var(--param-accent) 9%, var(--theme-dark-surface-2)) 0%, var(--theme-dark-surface) 100%) !important;
}

html.theme-dark #parametreContainer .etab-hero__mark,
html.theme-dark #parametreContainer .etab-card__icon {
    background: color-mix(in srgb, var(--param-accent) 14%, var(--theme-dark-surface-3)) !important;
    border-color: color-mix(in srgb, var(--param-accent) 30%, var(--theme-dark-border)) !important;
    color: color-mix(in srgb, var(--param-accent) 72%, #ffffff) !important;
}

html.theme-dark #parametreContainer .etab-eyebrow {
    color: color-mix(in srgb, var(--param-accent) 76%, #ffffff) !important;
}

html.theme-dark #parametreContainer .etab-hero__copy strong,
html.theme-dark #parametreContainer .etab-card__header h6,
html.theme-dark #parametreContainer .etab-secondary-mail__head strong {
    color: var(--theme-dark-text) !important;
}

html.theme-dark #parametreContainer .etab-hero__copy small,
html.theme-dark #parametreContainer .etab-color-field span {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .etab-card__header,
html.theme-dark #parametreContainer .etab-actions {
    border-color: color-mix(in srgb, var(--param-accent) 18%, var(--theme-dark-border)) !important;
}

html.theme-dark #parametreContainer .etab-color-field,
html.theme-dark #parametreContainer .etab-phone-list,
html.theme-dark #parametreContainer .etab-secondary-mail,
html.theme-dark #parametreContainer .etab-mail-table,
html.theme-dark #parametreContainer .etab-input-group .input-group-text {
    background: color-mix(in srgb, var(--theme-dark-surface-3) 82%, #020617) !important;
    border-color: var(--theme-dark-border) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #fusionEnfantsModal .child-merge-final-editor,
html.theme-dark #fusionEnfantsModal .child-merge-final-editor__header {
    background: var(--param-surface) !important;
    color: var(--param-text) !important;
}

html.theme-dark #fusionEnfantsModal .child-merge-final-editor__hint {
    background: color-mix(in srgb, var(--param-accent-soft) 45%, var(--theme-dark-surface-2));
    color: var(--param-text);
}

html.theme-dark #parametreContainer .param-hero__title,
html.theme-dark #parametreContainer .param-panel__title,
html.theme-dark #parametreContainer .param-detail-title,
html.theme-dark #parametreContainer table.dataTable,
html.theme-dark #parametreContainer .table {
    color: var(--param-text) !important;
}

html.theme-dark #parametreContainer .text-muted,
html.theme-dark #parametreContainer .param-hero__subtitle {
    color: var(--param-muted) !important;
}

html.theme-dark #parametreContainer .param-tabs .nav-link {
    color: var(--theme-dark-text-soft) !important;
    border-color: transparent;
}

html.theme-dark #parametreContainer .param-tabs .nav-link i,
html.theme-dark #parametreContainer .param-tabs .nav-link span {
    color: inherit !important;
}

html.theme-dark #parametreContainer .param-tabs .nav-link:hover {
    background: color-mix(in srgb, var(--param-accent) 12%, var(--theme-dark-surface-3));
    border-color: color-mix(in srgb, var(--param-accent) 28%, var(--theme-dark-border));
    color: var(--theme-dark-text) !important;
}

html.theme-dark #parametreContainer .param-tabs .nav-link.active {
    background: color-mix(in srgb, var(--param-accent) 18%, var(--theme-dark-surface-3)) !important;
    border-color: color-mix(in srgb, var(--param-accent) 58%, var(--theme-dark-border)) !important;
    color: color-mix(in srgb, var(--param-accent) 76%, #ffffff) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

html.theme-dark #parametreContainer .param-tabs .nav-link.active i,
html.theme-dark #parametreContainer .param-tabs .nav-link.active span {
    color: inherit !important;
}

html.theme-dark #parametreContainer .param-subtabs {
    padding: 0.35rem;
    border: 1px solid color-mix(in srgb, var(--param-accent) 18%, var(--theme-dark-border)) !important;
    border-radius: 999px;
    background: rgba(8, 17, 31, 0.36) !important;
}

html.theme-dark #parametreContainer .param-subtabs .nav-link {
    background: rgba(15, 23, 42, 0.72) !important;
    border-color: rgba(148, 163, 184, 0.16) !important;
    color: var(--theme-dark-text-soft) !important;
    box-shadow: none !important;
}

html.theme-dark #parametreContainer .param-subtabs .nav-link:hover,
html.theme-dark #parametreContainer .param-subtabs .nav-link:focus {
    background: color-mix(in srgb, var(--param-accent) 13%, var(--theme-dark-surface-3)) !important;
    border-color: color-mix(in srgb, var(--param-accent) 32%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark #parametreContainer .param-subtabs .nav-link.active {
    background: linear-gradient(135deg, var(--param-accent) 0%, color-mix(in srgb, var(--param-accent) 72%, #ffffff) 100%) !important;
    border-color: color-mix(in srgb, var(--param-accent) 72%, #ffffff) !important;
    color: #ffffff !important;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--param-accent) 24%, transparent) !important;
}

html.theme-dark #parametreContainer .form-control,
html.theme-dark #parametreContainer .form-select {
    background-color: var(--theme-dark-surface-3) !important;
    border-color: var(--theme-dark-border) !important;
    color: var(--theme-dark-text) !important;
    color-scheme: dark;
}

html.theme-dark #parametreContainer .form-control::placeholder {
    color: var(--theme-dark-text-muted);
}

html.theme-dark #parametreContainer .form-control:focus,
html.theme-dark #parametreContainer .form-select:focus {
    background-color: color-mix(in srgb, var(--theme-dark-surface-3) 88%, var(--param-accent)) !important;
    border-color: color-mix(in srgb, var(--param-accent) 58%, var(--theme-dark-border)) !important;
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--param-accent) 18%, transparent) !important;
}

html.theme-dark #parametreContainer .form-check-input {
    background-color: var(--theme-dark-surface-3);
    border-color: var(--theme-dark-border);
}

html.theme-dark #parametreContainer .form-check-input:checked {
    background-color: var(--param-accent);
    border-color: color-mix(in srgb, var(--param-accent) 76%, #ffffff);
}

html.theme-dark #parametreContainer .form-check-label,
html.theme-dark #parametreContainer label,
html.theme-dark #parametreContainer .form-label {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .alert {
    background: color-mix(in srgb, var(--theme-dark-surface-2) 88%, #020617) !important;
    border-color: color-mix(in srgb, var(--theme-dark-border) 78%, var(--param-accent) 22%) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .alert-info {
    background: linear-gradient(180deg, color-mix(in srgb, var(--param-accent) 10%, var(--theme-dark-surface-2)) 0%, rgba(15, 23, 42, 0.86) 100%) !important;
    border-color: color-mix(in srgb, var(--param-accent) 28%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .alert-warning {
    background: rgba(245, 158, 11, 0.13) !important;
    border-color: rgba(245, 158, 11, 0.38) !important;
    color: #fcd58b !important;
}

html.theme-dark #parametreContainer .btn-outline-secondary,
html.theme-dark #parametreContainer .btn-outline-dark {
    background: var(--theme-dark-surface-2) !important;
    border-color: var(--theme-dark-border) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .btn-outline-secondary:hover,
html.theme-dark #parametreContainer .btn-outline-dark:hover {
    background: var(--theme-dark-surface-3) !important;
    color: var(--theme-dark-text) !important;
}

html.theme-dark #parametreContainer .btn:disabled,
html.theme-dark #parametreContainer .btn.disabled {
    background: rgba(30, 41, 59, 0.62) !important;
    border-color: rgba(148, 163, 184, 0.14) !important;
    color: rgba(203, 213, 225, 0.56) !important;
    opacity: 1;
    box-shadow: none !important;
}

html.theme-dark #parametreContainer .param-chip--neutral,
html.theme-dark #parametreContainer .param-chip--soft,
html.theme-dark #fusionParentsModal .param-chip--neutral,
html.theme-dark #fusionParentsModal .param-chip--soft,
html.theme-dark #fusionEnfantsModal .param-chip--neutral,
html.theme-dark #fusionEnfantsModal .param-chip--soft,
html.theme-dark #residualIncoherenceModal .param-chip--neutral,
html.theme-dark #residualIncoherenceModal .param-chip--soft {
    background: var(--theme-dark-surface-3);
    border-color: var(--theme-dark-border);
    color: var(--theme-dark-text-soft);
}

html.theme-dark #parametreContainer .param-chip--warning,
html.theme-dark #fusionParentsModal .param-chip--warning,
html.theme-dark #fusionEnfantsModal .param-chip--warning,
html.theme-dark #residualIncoherenceModal .param-chip--warning {
    background: rgba(245, 158, 11, 0.14);
    border-color: rgba(245, 158, 11, 0.45);
    color: #fbbf24;
}

html.theme-dark #parametreContainer .param-chip--success,
html.theme-dark #fusionParentsModal .param-chip--success,
html.theme-dark #fusionEnfantsModal .param-chip--success,
html.theme-dark #residualIncoherenceModal .param-chip--success {
    background: rgba(34, 197, 94, 0.14);
    border-color: rgba(34, 197, 94, 0.44);
    color: #4ade80;
}

html.theme-dark #parametreContainer .param-chip--danger,
html.theme-dark #fusionParentsModal .param-chip--danger,
html.theme-dark #fusionEnfantsModal .param-chip--danger,
html.theme-dark #residualIncoherenceModal .param-chip--danger {
    background: rgba(239, 68, 68, 0.14);
    border-color: rgba(239, 68, 68, 0.46);
    color: #fca5a5;
}

html.theme-dark #parametreContainer .param-linked-detail-row > td {
    background: var(--theme-dark-surface-2);
}

html.theme-dark #parametreContainer .param-detail-strip {
    background: var(--theme-dark-surface-2);
    border-color: var(--theme-dark-border);
}

html.theme-dark #parametreContainer table.dataTable thead th,
html.theme-dark #parametreContainer .table thead th {
    background: color-mix(in srgb, var(--theme-dark-surface-3) 82%, #020617);
    color: var(--theme-dark-text-soft);
    border-bottom-color: color-mix(in srgb, var(--param-accent) 24%, var(--theme-dark-border)) !important;
}

html.theme-dark #parametreContainer table.dataTable tbody td,
html.theme-dark #parametreContainer .table tbody td {
    background: var(--theme-dark-surface);
    color: var(--theme-dark-text);
    border-color: var(--theme-dark-border-soft) !important;
}

html.theme-dark #parametreContainer table.dataTable tbody tr:hover > *,
html.theme-dark #parametreContainer .table-hover tbody tr:hover > * {
    background: color-mix(in srgb, var(--param-accent) 12%, var(--theme-dark-surface-3)) !important;
}

html.theme-dark #parametreContainer .param-doc-badge {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

html.theme-dark #parametreContainer .param-doc-badge--attestation {
    background: rgba(14, 165, 233, 0.16);
    border-color: rgba(56, 189, 248, 0.36);
    color: #bae6fd;
}

html.theme-dark #parametreContainer .param-doc-badge--certificat {
    background: rgba(34, 197, 94, 0.16);
    border-color: rgba(74, 222, 128, 0.34);
    color: #bbf7d0;
}

html.theme-dark #parametreContainer .details-row-custom > td,
html.theme-dark #parametreContainer .param-empty-state {
    background: linear-gradient(180deg, var(--theme-dark-surface-2) 0%, color-mix(in srgb, var(--theme-dark-surface-2) 82%, #020617) 100%) !important;
    color: var(--theme-dark-text-soft);
    border-color: var(--theme-dark-border) !important;
}

html.theme-dark #parametreContainer .param-class-meta span,
html.theme-dark #parametreContainer .param-payment-tile {
    background: var(--theme-dark-surface-2);
    border-color: var(--theme-dark-border-soft);
}

html.theme-dark #parametreContainer .param-class-meta span.is-enabled {
    background: rgba(34, 197, 94, 0.13);
    border-color: rgba(34, 197, 94, 0.38);
}

html.theme-dark #parametreContainer .param-class-name,
html.theme-dark #parametreContainer .param-class-meta strong,
html.theme-dark #parametreContainer .param-payment-tile strong {
    color: var(--theme-dark-text) !important;
}

html.theme-dark #parametreContainer .param-class-meta small,
html.theme-dark #parametreContainer .param-payment-tile span {
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .dropdown-menu {
    background: var(--theme-dark-surface);
    border-color: var(--theme-dark-border);
}

html.theme-dark #parametreContainer .dropdown-item {
    color: var(--theme-dark-text);
}

html.theme-dark #parametreContainer .dropdown-item:hover {
    background: var(--theme-dark-surface-3);
}

#parametreContainer .param-user-role-badge,
#parametreContainer .param-user-state,
#parametreContainer .param-user-permission,
#parametreContainer .param-user-empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 1.75rem;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 0.24rem 0.58rem;
    font-size: 0.74rem;
    font-weight: 950;
    line-height: 1;
    white-space: nowrap;
}

#parametreContainer .param-user-role-badge.is-admin {
    border-color: color-mix(in srgb, #f59e0b 34%, var(--param-border));
    background: color-mix(in srgb, #f59e0b 12%, var(--param-surface));
    color: #92400e;
}

#parametreContainer .param-user-role-badge.is-user {
    border-color: color-mix(in srgb, #0ea5e9 30%, var(--param-border));
    background: color-mix(in srgb, #0ea5e9 10%, var(--param-surface));
    color: #0369a1;
}

#parametreContainer .param-user-role-badge.is-muted,
#parametreContainer .param-user-empty {
    border-color: var(--param-border);
    background: var(--param-surface-soft);
    color: var(--param-muted);
}

#parametreContainer .param-user-permissions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.32rem;
    max-width: min(48rem, 100%);
}

#parametreContainer .param-user-permission {
    border-color: color-mix(in srgb, #06b6d4 28%, var(--param-border));
    background: color-mix(in srgb, #06b6d4 9%, var(--param-surface));
    color: #0e7490;
}

#parametreContainer .param-user-state.is-active {
    border-color: color-mix(in srgb, #16a34a 32%, var(--param-border));
    background: color-mix(in srgb, #16a34a 12%, var(--param-surface));
    color: #15803d;
}

#parametreContainer .param-user-state.is-inactive {
    border-color: color-mix(in srgb, #64748b 28%, var(--param-border));
    background: color-mix(in srgb, #64748b 10%, var(--param-surface));
    color: #475569;
}

html.theme-dark #parametreContainer .list-group-item {
    background: color-mix(in srgb, var(--theme-dark-surface-2) 90%, #020617) !important;
    border-color: color-mix(in srgb, var(--theme-dark-border) 80%, var(--param-accent) 20%) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .list-group-item strong,
html.theme-dark #parametreContainer .list-group-item .fw-semibold {
    color: var(--theme-dark-text) !important;
}

html.theme-dark #parametreContainer .list-group-item .text-muted {
    color: var(--theme-dark-text-muted) !important;
}

html.theme-dark #parametreContainer .param-user-role-badge.is-admin {
    border-color: color-mix(in srgb, #fbbf24 42%, var(--theme-dark-border)) !important;
    background: color-mix(in srgb, #f59e0b 18%, var(--theme-dark-surface-2)) !important;
    color: #fde68a !important;
}

html.theme-dark #parametreContainer .param-user-role-badge.is-user {
    border-color: color-mix(in srgb, #38bdf8 38%, var(--theme-dark-border)) !important;
    background: color-mix(in srgb, #0ea5e9 16%, var(--theme-dark-surface-2)) !important;
    color: #bae6fd !important;
}

html.theme-dark #parametreContainer .param-user-role-badge.is-muted,
html.theme-dark #parametreContainer .param-user-empty {
    border-color: var(--theme-dark-border) !important;
    background: var(--theme-dark-surface-2) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .param-user-permission {
    border-color: color-mix(in srgb, #22d3ee 32%, var(--theme-dark-border)) !important;
    background: color-mix(in srgb, #06b6d4 16%, var(--theme-dark-surface-2)) !important;
    color: #a5f3fc !important;
}

html.theme-dark #parametreContainer .param-user-state.is-active {
    border-color: color-mix(in srgb, #22c55e 36%, var(--theme-dark-border)) !important;
    background: color-mix(in srgb, #16a34a 18%, var(--theme-dark-surface-2)) !important;
    color: #86efac !important;
}

html.theme-dark #parametreContainer .param-user-state.is-inactive {
    border-color: color-mix(in srgb, #94a3b8 28%, var(--theme-dark-border)) !important;
    background: color-mix(in srgb, #64748b 16%, var(--theme-dark-surface-2)) !important;
    color: #cbd5e1 !important;
}

html.theme-dark #parametreContainer .bg-light,
html.theme-dark #parametreContainer .bg-body-tertiary,
html.theme-dark #parametreContainer .badge.bg-light,
html.theme-dark #parametreContainer .table-light,
html.theme-dark #parametreContainer thead.table-light,
html.theme-dark #parametreContainer .table-light > tr,
html.theme-dark #parametreContainer .table-light > tr > th,
html.theme-dark #parametreContainer .table-light > tr > td {
    background: var(--theme-dark-surface-2) !important;
    background-color: var(--theme-dark-surface-2) !important;
    border-color: var(--theme-dark-border) !important;
    color: var(--theme-dark-text-soft) !important;
}

html.theme-dark #parametreContainer .text-dark {
    color: var(--theme-dark-text) !important;
}

html.theme-dark #parametreContainer .badge.bg-warning.text-dark {
    background: rgba(245, 158, 11, 0.2) !important;
    border: 1px solid rgba(245, 158, 11, 0.36) !important;
    color: #fbbf24 !important;
}

html.theme-dark #residualIncoherenceModal,
html.theme-dark #fusionParentsModal,
html.theme-dark #fusionEnfantsModal,
html.theme-dark #normaliserIncoherencesModal,
html.theme-dark #normaliserPremieresAnneesAncienModal,
html.theme-dark #normaliserRevenantsModal,
html.theme-dark #productionBackupPreviewModal,
html.theme-dark #reductionMotifModal,
html.theme-dark #scolariteTrancheExonerationModal,
html.theme-dark #addClasseReferentielModal,
html.theme-dark #modifierClasseReferentielModal,
html.theme-dark #addAnneeScolaireModal,
html.theme-dark #modifierAnneeScolaireModal,
html.theme-dark #addClasseModal,
html.theme-dark #modifierClasseModal,
html.theme-dark #addUserModal,
html.theme-dark #modifierUserModal {
    --param-accent-soft: color-mix(in srgb, var(--theme-dark-accent) 18%, transparent);
    --param-surface: color-mix(in srgb, var(--theme-dark-surface) 92%, #020617);
    --param-surface-soft: color-mix(in srgb, var(--theme-dark-surface-2) 88%, #020617);
    --param-surface-muted: color-mix(in srgb, var(--theme-dark-surface-3) 84%, #020617);
    --param-border: var(--theme-dark-border);
    --param-text: var(--theme-dark-text);
    --param-muted: var(--theme-dark-text-soft);
}

html.theme-dark #residualIncoherenceModal .modal-header,
html.theme-dark #fusionParentsModal .modal-header,
html.theme-dark #fusionEnfantsModal .modal-header,
html.theme-dark #normaliserIncoherencesModal .modal-header,
html.theme-dark #normaliserPremieresAnneesAncienModal .modal-header,
html.theme-dark #normaliserRevenantsModal .modal-header,
html.theme-dark #productionBackupPreviewModal .modal-header,
html.theme-dark #reductionMotifModal .modal-header,
html.theme-dark #scolariteTrancheExonerationModal .modal-header,
html.theme-dark #addClasseReferentielModal .modal-header,
html.theme-dark #modifierClasseReferentielModal .modal-header,
html.theme-dark #addAnneeScolaireModal .modal-header,
html.theme-dark #modifierAnneeScolaireModal .modal-header,
html.theme-dark #addClasseModal .modal-header,
html.theme-dark #modifierClasseModal .modal-header,
html.theme-dark #addUserModal .modal-header,
html.theme-dark #modifierUserModal .modal-header {
    background:
        radial-gradient(circle at 92% 12%, color-mix(in srgb, var(--param-accent) 16%, transparent), transparent 30%),
        linear-gradient(180deg, var(--theme-dark-surface-2) 0%, var(--theme-dark-surface) 100%) !important;
    border-bottom: 1px solid color-mix(in srgb, var(--param-accent) 18%, var(--theme-dark-border)) !important;
}

html.theme-dark #residualIncoherenceModal .card,
html.theme-dark #fusionParentsModal .card,
html.theme-dark #fusionEnfantsModal .card,
html.theme-dark #normaliserIncoherencesModal .card,
html.theme-dark #normaliserPremieresAnneesAncienModal .card,
html.theme-dark #normaliserRevenantsModal .card,
html.theme-dark #addAnneeScolaireModal .card {
    background: var(--theme-dark-surface-2) !important;
    border-color: var(--theme-dark-border) !important;
    color: var(--theme-dark-text);
}

html.theme-dark #residualIncoherenceModal .text-muted,
html.theme-dark #fusionParentsModal .text-muted,
html.theme-dark #fusionEnfantsModal .text-muted,
html.theme-dark #normaliserIncoherencesModal .text-muted,
html.theme-dark #normaliserPremieresAnneesAncienModal .text-muted,
html.theme-dark #normaliserRevenantsModal .text-muted,
html.theme-dark #productionBackupPreviewModal .text-muted,
html.theme-dark #reductionMotifModal .text-muted,
html.theme-dark #scolariteTrancheExonerationModal .text-muted,
html.theme-dark #addClasseReferentielModal .text-muted,
html.theme-dark #modifierClasseReferentielModal .text-muted,
html.theme-dark #addAnneeScolaireModal .text-muted,
html.theme-dark #modifierAnneeScolaireModal .text-muted,
html.theme-dark #addClasseModal .text-muted,
html.theme-dark #modifierClasseModal .text-muted,
html.theme-dark #addUserModal .text-muted,
html.theme-dark #modifierUserModal .text-muted {
    color: var(--theme-dark-text-muted) !important;
}

html.theme-dark #residualIncoherenceModal .bg-light,
html.theme-dark #fusionParentsModal .bg-light,
html.theme-dark #fusionEnfantsModal .bg-light,
html.theme-dark #normaliserIncoherencesModal .bg-light,
html.theme-dark #normaliserPremieresAnneesAncienModal .bg-light,
html.theme-dark #normaliserRevenantsModal .bg-light,
html.theme-dark #productionBackupPreviewModal .bg-light,
html.theme-dark #reductionMotifModal .bg-light,
html.theme-dark #scolariteTrancheExonerationModal .bg-light,
html.theme-dark #addClasseReferentielModal .bg-light,
html.theme-dark #modifierClasseReferentielModal .bg-light,
html.theme-dark #addAnneeScolaireModal .bg-light,
html.theme-dark #modifierAnneeScolaireModal .bg-light,
html.theme-dark #addClasseModal .bg-light,
html.theme-dark #modifierClasseModal .bg-light,
html.theme-dark #addUserModal .bg-light,
html.theme-dark #modifierUserModal .bg-light,
html.theme-dark #residualIncoherenceModal .bg-body-tertiary,
html.theme-dark #fusionParentsModal .bg-body-tertiary,
html.theme-dark #fusionEnfantsModal .bg-body-tertiary,
html.theme-dark #normaliserIncoherencesModal .bg-body-tertiary,
html.theme-dark #normaliserPremieresAnneesAncienModal .bg-body-tertiary,
html.theme-dark #normaliserRevenantsModal .bg-body-tertiary,
html.theme-dark #productionBackupPreviewModal .bg-body-tertiary,
html.theme-dark #reductionMotifModal .bg-body-tertiary,
html.theme-dark #scolariteTrancheExonerationModal .bg-body-tertiary,
html.theme-dark #addClasseReferentielModal .bg-body-tertiary,
html.theme-dark #modifierClasseReferentielModal .bg-body-tertiary,
html.theme-dark #addAnneeScolaireModal .bg-body-tertiary,
html.theme-dark #modifierAnneeScolaireModal .bg-body-tertiary,
html.theme-dark #addClasseModal .bg-body-tertiary,
html.theme-dark #modifierClasseModal .bg-body-tertiary,
html.theme-dark #addUserModal .bg-body-tertiary,
html.theme-dark #modifierUserModal .bg-body-tertiary {
    background-color: var(--theme-dark-surface-2) !important;
}

html.theme-dark #residualIncoherenceModal .form-control,
html.theme-dark #residualIncoherenceModal .form-select,
html.theme-dark #fusionParentsModal .form-control,
html.theme-dark #fusionParentsModal .form-select,
html.theme-dark #fusionEnfantsModal .form-control,
html.theme-dark #fusionEnfantsModal .form-select,
html.theme-dark #normaliserIncoherencesModal .form-control,
html.theme-dark #normaliserIncoherencesModal .form-select,
html.theme-dark #normaliserPremieresAnneesAncienModal .form-control,
html.theme-dark #normaliserPremieresAnneesAncienModal .form-select,
html.theme-dark #normaliserRevenantsModal .form-control,
html.theme-dark #normaliserRevenantsModal .form-select,
html.theme-dark #productionBackupPreviewModal .form-control,
html.theme-dark #productionBackupPreviewModal .form-select,
html.theme-dark #reductionMotifModal .form-control,
html.theme-dark #reductionMotifModal .form-select,
html.theme-dark #scolariteTrancheExonerationModal .form-control,
html.theme-dark #scolariteTrancheExonerationModal .form-select,
html.theme-dark #addClasseReferentielModal .form-control,
html.theme-dark #addClasseReferentielModal .form-select,
html.theme-dark #modifierClasseReferentielModal .form-control,
html.theme-dark #modifierClasseReferentielModal .form-select,
html.theme-dark #addAnneeScolaireModal .form-control,
html.theme-dark #addAnneeScolaireModal .form-select,
html.theme-dark #modifierAnneeScolaireModal .form-control,
html.theme-dark #modifierAnneeScolaireModal .form-select,
html.theme-dark #addClasseModal .form-control,
html.theme-dark #addClasseModal .form-select,
html.theme-dark #modifierClasseModal .form-control,
html.theme-dark #modifierClasseModal .form-select,
html.theme-dark #addUserModal .form-control,
html.theme-dark #addUserModal .form-select,
html.theme-dark #modifierUserModal .form-control,
html.theme-dark #modifierUserModal .form-select {
    background: var(--theme-dark-surface-3);
    color: var(--theme-dark-text);
    border-color: var(--theme-dark-border);
    color-scheme: dark;
}

html.theme-dark #residualIncoherenceModal .form-control::placeholder,
html.theme-dark #fusionParentsModal .form-control::placeholder,
html.theme-dark #fusionEnfantsModal .form-control::placeholder,
html.theme-dark #normaliserIncoherencesModal .form-control::placeholder,
html.theme-dark #normaliserPremieresAnneesAncienModal .form-control::placeholder,
html.theme-dark #normaliserRevenantsModal .form-control::placeholder,
html.theme-dark #productionBackupPreviewModal .form-control::placeholder,
html.theme-dark #reductionMotifModal .form-control::placeholder,
html.theme-dark #scolariteTrancheExonerationModal .form-control::placeholder,
html.theme-dark #addClasseReferentielModal .form-control::placeholder,
html.theme-dark #modifierClasseReferentielModal .form-control::placeholder,
html.theme-dark #addAnneeScolaireModal .form-control::placeholder,
html.theme-dark #modifierAnneeScolaireModal .form-control::placeholder,
html.theme-dark #addClasseModal .form-control::placeholder,
html.theme-dark #modifierClasseModal .form-control::placeholder,
html.theme-dark #addUserModal .form-control::placeholder,
html.theme-dark #modifierUserModal .form-control::placeholder {
    color: var(--theme-dark-text-muted);
}

@media (max-width: 768px) {
    #parametreContainer .param-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    #parametreContainer .param-hero__status {
        justify-content: flex-start;
    }

    #parametreContainer .param-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    #parametreContainer .param-tabs .nav-link {
        white-space: nowrap;
    }

    #parametreContainer .details-row-custom > td {
        padding: 0.85rem !important;
    }

    #parametreContainer .param-class-item {
        align-items: stretch !important;
        flex-direction: column;
    }

    #parametreContainer .param-class-actions {
        width: 100%;
    }

    #parametreContainer .param-class-actions .btn {
        flex: 1 1 0;
    }

    #parametreContainer .param-payment-grid {
        grid-template-columns: 1fr;
    }
}

/* Pont de couleur global: les CSS site1/site2 alimentent ces variables. */
:root {
    --app-brand-accent: var(--app-accent, var(--app-navbar-accent, #ea7a12));
    --app-brand-accent-strong: var(--app-accent-strong, var(--app-navbar-accent-strong, #c2510c));
    --app-brand-accent-soft: var(--app-accent-soft, var(--app-navbar-accent-soft, rgba(234, 122, 18, 0.14)));
    --app-brand-accent-softer: var(--app-accent-softer, rgba(234, 122, 18, 0.08));
    --app-brand-accent-rgb: var(--app-accent-rgb, 234, 122, 18);
    --app-brand-contrast: var(--app-accent-contrast, #ffffff);
    --bs-primary: var(--app-brand-accent);
    --bs-primary-rgb: var(--app-brand-accent-rgb);
    --bs-link-color: var(--app-brand-accent-strong);
    --bs-link-hover-color: var(--app-brand-accent);
}

html:not(.theme-dark) body,
html:not(.theme-dark) body:has(#vueParentContainer),
html:not(.theme-dark) body:has(#caissePage),
html:not(.theme-dark) body:has(#parametreContainer),
html:not(.theme-dark) body:has(.dep-page-body) {
    background:
        radial-gradient(circle at 12% 0%, rgba(var(--app-brand-accent-rgb), 0.075), transparent 30rem),
        linear-gradient(180deg, var(--app-page-bg-soft, #f2f6fb) 0%, var(--app-page-bg, #e3eaf3) 32rem, var(--app-page-bg, #e3eaf3) 100%) !important;
}

html:not(.theme-dark) .app-page-shell,
html:not(.theme-dark) main[role="main"] {
    background: transparent !important;
}

html:not(.theme-dark) .home-index-commandbar,
html:not(.theme-dark) .home-index-hero,
html:not(.theme-dark) .home-index-nav,
html:not(.theme-dark) .home-index-section-card,
html:not(.theme-dark) .home-index-parent-table-shell,
html:not(.theme-dark) .home-index-effectifs-table,
html:not(.theme-dark) #vueParentContainer .vp-parent-summary,
html:not(.theme-dark) #vueParentContainer .vp-section-card,
html:not(.theme-dark) #vueParentContainer .vp-info-card,
html:not(.theme-dark) #vueParentContainer .vp-family-panel,
html:not(.theme-dark) #vueParentContainer .vp-parcours-child-card,
html:not(.theme-dark) #vueParentContainer .vp-payment-section,
html:not(.theme-dark) .caisse-actionbar,
html:not(.theme-dark) .caisse-stat-card,
html:not(.theme-dark) .caisse-panel,
html:not(.theme-dark) .caisse-nav,
html:not(.theme-dark) .dep-actionbar,
html:not(.theme-dark) .dep-main-card,
html:not(.theme-dark) .dep-table-wrap,
html:not(.theme-dark) .dep-domain-block,
html:not(.theme-dark) #parametreContainer .param-tabs,
html:not(.theme-dark) #parametreContainer .param-panel,
html:not(.theme-dark) #parametreContainer .param-details-card {
    background: linear-gradient(180deg, var(--app-surface, #ffffff) 0%, var(--app-surface-raised, #fbfdff) 100%) !important;
    border-color: var(--app-border, #d8e2ee) !important;
    box-shadow: var(--app-shadow-sm, 0 12px 30px rgba(30, 41, 59, 0.10)) !important;
}

html:not(.theme-dark) .table-responsive,
html:not(.theme-dark) .dataTables_wrapper,
html:not(.theme-dark) .dep-domain-block .dep-table-responsive,
html:not(.theme-dark) .dep-domain-block .table-responsive,
html:not(.theme-dark) .caisse-panel .table-responsive {
    background: linear-gradient(180deg, var(--app-surface, #ffffff) 0%, var(--app-surface-raised, #fbfdff) 100%) !important;
    border-color: var(--app-border, #d8e2ee) !important;
    box-shadow: var(--app-shadow-sm, 0 12px 30px rgba(30, 41, 59, 0.10)) !important;
}

html:not(.theme-dark) table.dataTable thead th,
html:not(.theme-dark) .table thead th {
    background: linear-gradient(180deg, var(--app-table-head, #eef3f8) 0%, #f8fbff 100%) !important;
    border-color: var(--app-border, #d8e2ee) !important;
    color: #667085 !important;
}

html:not(.theme-dark) table.dataTable tbody td,
html:not(.theme-dark) .table tbody td {
    border-color: var(--app-border-soft, #e7edf5) !important;
}

html:not(.theme-dark) #depensePage .dep-badge-category.badge {
    background: color-mix(in srgb, var(--app-brand-accent) 9%, #ffffff) !important;
    border: 1px solid color-mix(in srgb, var(--app-brand-accent) 18%, #dbe4f0) !important;
    color: color-mix(in srgb, var(--app-brand-accent-strong) 68%, #111827) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.84) !important;
}

html:not(.theme-dark) #depensePage .dep-domain-block--regie::before,
html:not(.theme-dark) #depensePage .dep-domain-block--expenses::before {
    width: 2px !important;
    background: color-mix(in srgb, var(--app-brand-accent) 46%, #ffffff) !important;
}

.text-primary {
    color: var(--app-brand-accent-strong) !important;
}

.bg-primary {
    background-color: var(--app-brand-accent) !important;
    color: var(--app-brand-contrast) !important;
}

.border-primary {
    border-color: color-mix(in srgb, var(--app-brand-accent) 48%, transparent) !important;
}

.btn-primary,
.btn-info,
.btn-warning,
#parametreContainer .param-btn-primary,
#parametreContainer .btn-primary,
#parametreContainer .param-btn-warning,
.modal-footer .btn-primary {
    background: var(--app-brand-accent) !important;
    border-color: var(--app-brand-accent) !important;
    color: var(--app-brand-contrast) !important;
    box-shadow: 0 10px 22px rgba(var(--app-brand-accent-rgb), 0.18) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-info:hover,
.btn-info:focus,
.btn-warning:hover,
.btn-warning:focus,
#parametreContainer .param-btn-primary:hover,
#parametreContainer .btn-primary:hover,
#parametreContainer .param-btn-warning:hover,
.modal-footer .btn-primary:hover {
    background: var(--app-brand-accent-strong) !important;
    border-color: var(--app-brand-accent-strong) !important;
    color: #ffffff !important;
}

.btn-outline-primary,
.btn-outline-warning,
#parametreContainer .btn-outline-primary {
    background: transparent !important;
    border-color: color-mix(in srgb, var(--app-brand-accent) 58%, transparent) !important;
    color: var(--app-brand-accent-strong) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-warning:hover,
.btn-outline-warning:focus,
#parametreContainer .btn-outline-primary:hover,
#parametreContainer .btn-outline-primary:focus {
    background: var(--app-brand-accent) !important;
    border-color: var(--app-brand-accent) !important;
    color: var(--app-brand-contrast) !important;
}

.payment-modal .sticky-actions .btn-primary {
    background: linear-gradient(135deg, var(--payment-deep) 0%, var(--payment-accent) 100%) !important;
    border-color: var(--payment-accent) !important;
    color: var(--payment-contrast) !important;
    box-shadow: 0 10px 22px rgba(var(--payment-accent-rgb), 0.22) !important;
}

.payment-modal .sticky-actions .btn-primary:hover,
.payment-modal .sticky-actions .btn-primary:focus {
    background: linear-gradient(135deg, var(--payment-deep) 0%, color-mix(in srgb, var(--payment-accent) 82%, #ffffff 18%) 100%) !important;
    border-color: var(--payment-deep) !important;
    color: var(--payment-contrast) !important;
}

.payment-modal .btn-outline-primary {
    background: transparent !important;
    border-color: color-mix(in srgb, var(--payment-accent) 62%, transparent) !important;
    color: var(--payment-deep) !important;
}

.payment-modal .btn-outline-primary:hover,
.payment-modal .btn-outline-primary:focus {
    background: var(--payment-accent) !important;
    border-color: var(--payment-accent) !important;
    color: var(--payment-contrast) !important;
}

.payment-origin {
    --payment-origin-bg: #f8fafc;
    --payment-origin-border: #94a3b8;
    --payment-origin-text: #334155;
    --payment-origin-hover-bg: #64748b;
    --payment-origin-hover-border: #475569;
    --payment-origin-hover-text: #ffffff;
    background: var(--payment-origin-bg) !important;
    border: 1px solid var(--payment-origin-border) !important;
    border-color: var(--payment-origin-border) !important;
    color: var(--payment-origin-text) !important;
    box-shadow: none !important;
}

.payment-origin--scolarite {
    --payment-origin-bg: #ecfdf3;
    --payment-origin-border: #16a34a;
    --payment-origin-text: #15803d;
    --payment-origin-hover-bg: #16a34a;
    --payment-origin-hover-border: #15803d;
    --payment-origin-hover-text: #ffffff;
}

.payment-origin--manuels {
    --payment-origin-bg: #ecfeff;
    --payment-origin-border: #06b6d4;
    --payment-origin-text: #0891b2;
    --payment-origin-hover-bg: #06b6d4;
    --payment-origin-hover-border: #0891b2;
    --payment-origin-hover-text: #ffffff;
}

.payment-origin--transport {
    --payment-origin-bg: #fffbeb;
    --payment-origin-border: #f59e0b;
    --payment-origin-text: #b45309;
    --payment-origin-hover-bg: #f59e0b;
    --payment-origin-hover-border: #d97706;
    --payment-origin-hover-text: #1f2937;
}

.payment-origin--aes {
    --payment-origin-bg: #fff7ed;
    --payment-origin-border: #fb923c;
    --payment-origin-text: #c2410c;
    --payment-origin-hover-bg: #f97316;
    --payment-origin-hover-border: #ea580c;
    --payment-origin-hover-text: #ffffff;
}

.payment-origin--aux {
    --payment-origin-bg: #f0fdfa;
    --payment-origin-border: #14b8a6;
    --payment-origin-text: #0f766e;
    --payment-origin-hover-bg: #14b8a6;
    --payment-origin-hover-border: #0f766e;
    --payment-origin-hover-text: #ffffff;
}

.btn.payment-origin:not(:disabled):hover,
.btn.payment-origin:not(:disabled):focus {
    background: var(--payment-origin-hover-bg) !important;
    border-color: var(--payment-origin-hover-border) !important;
    color: var(--payment-origin-hover-text) !important;
}

.payment-origin:disabled,
.payment-origin.disabled {
    opacity: 0.58;
    filter: grayscale(0.15);
}

.payment-mode {
    --payment-mode-bg: #f8fafc;
    --payment-mode-border: #94a3b8;
    --payment-mode-text: #334155;
    background: var(--payment-mode-bg) !important;
    border: 1px solid var(--payment-mode-border) !important;
    border-color: var(--payment-mode-border) !important;
    color: var(--payment-mode-text) !important;
    box-shadow: none !important;
}

.payment-mode--cash {
    --payment-mode-bg: #ecfdf5;
    --payment-mode-border: #34d399;
    --payment-mode-text: #047857;
}

.payment-mode--cheque {
    --payment-mode-bg: #f5f3ff;
    --payment-mode-border: #a78bfa;
    --payment-mode-text: #6d28d9;
}

.payment-mode--virement {
    --payment-mode-bg: #eff6ff;
    --payment-mode-border: #60a5fa;
    --payment-mode-text: #1d4ed8;
}

.payment-mode--tpe {
    --payment-mode-bg: #eef2ff;
    --payment-mode-border: #818cf8;
    --payment-mode-text: #4338ca;
}

.payment-mode--bank {
    --payment-mode-bg: #ecfeff;
    --payment-mode-border: #22d3ee;
    --payment-mode-text: #0e7490;
}

.school-year-badge {
    --school-year-bg: #f8fafc;
    --school-year-border: #94a3b8;
    --school-year-text: #334155;
    background: var(--school-year-bg) !important;
    border: 1px solid var(--school-year-border) !important;
    border-color: var(--school-year-border) !important;
    color: var(--school-year-text) !important;
    box-shadow: none !important;
}

.school-year-badge--0 {
    --school-year-bg: #ecfdf5;
    --school-year-border: #34d399;
    --school-year-text: #047857;
}

.school-year-badge--1 {
    --school-year-bg: #eff6ff;
    --school-year-border: #60a5fa;
    --school-year-text: #1d4ed8;
}

.school-year-badge--2 {
    --school-year-bg: #fffbeb;
    --school-year-border: #f59e0b;
    --school-year-text: #b45309;
}

.school-year-badge--3 {
    --school-year-bg: #f5f3ff;
    --school-year-border: #a78bfa;
    --school-year-text: #6d28d9;
}

.school-year-badge--4 {
    --school-year-bg: #ecfeff;
    --school-year-border: #22d3ee;
    --school-year-text: #0e7490;
}

.school-year-badge--5 {
    --school-year-bg: #fff1f2;
    --school-year-border: #fb7185;
    --school-year-text: #be123c;
}

.school-year-badge--6 {
    --school-year-bg: #f0fdf4;
    --school-year-border: #84cc16;
    --school-year-text: #4d7c0f;
}

.school-year-badge--7 {
    --school-year-bg: #fff7ed;
    --school-year-border: #fb923c;
    --school-year-text: #c2410c;
}

.nav-pills .nav-link.active,
.list-group-item.active,
.page-item.active .page-link,
.dropdown-item.active,
.dropdown-item:active,
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--app-brand-accent) !important;
    border-color: var(--app-brand-accent) !important;
    color: var(--app-brand-contrast) !important;
}

.page-link,
a:not(.btn):not(.nav-link):not(.dropdown-item) {
    color: var(--app-brand-accent-strong);
}

.page-link:hover,
a:not(.btn):not(.nav-link):not(.dropdown-item):hover {
    color: var(--app-brand-accent);
}

.form-control:focus,
.form-select:focus,
.custom-select:focus,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: color-mix(in srgb, var(--app-brand-accent) 58%, #ffffff) !important;
    box-shadow: 0 0 0 0.2rem rgba(var(--app-brand-accent-rgb), 0.15) !important;
}

.payment-modal__field .form-control:focus,
.payment-modal__field .form-select:focus,
.payment-modal__field .custom-select:focus {
    border-color: var(--payment-accent) !important;
    box-shadow: 0 0 0 0.22rem rgba(var(--payment-accent-rgb), 0.14) !important;
}

.table-hover tbody tr:hover > *,
table.dataTable tbody tr:hover > * {
    background: color-mix(in srgb, var(--app-brand-accent) 7%, #ffffff) !important;
}

.modal-header.bg-primary,
.modal-header.bg-info,
.modal-header.bg-warning,
.modal-header.app-branded-header {
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.18), transparent 34%),
        linear-gradient(135deg, var(--app-brand-accent-strong) 0%, var(--app-brand-accent) 100%) !important;
    border-color: color-mix(in srgb, var(--app-brand-accent) 38%, transparent) !important;
    color: var(--app-brand-contrast) !important;
}

.modal-header.bg-primary .modal-title,
.modal-header.bg-info .modal-title,
.modal-header.bg-warning .modal-title {
    color: var(--app-brand-contrast) !important;
}

.spinner-border.text-primary,
.spinner-border.text-light,
#globalLoadingOverlay .spinner-border,
.dep-loading-spinner {
    color: var(--app-brand-accent) !important;
}

#globalLoadingOverlay {
    background:
        radial-gradient(circle at 18% 18%, rgba(var(--app-brand-accent-rgb), 0.14), transparent 26%),
        rgba(15, 23, 42, 0.48) !important;
    backdrop-filter: blur(5px);
}

#globalLoadingOverlay .loading-box,
.dep-loading-box {
    background: linear-gradient(180deg, #ffffff 0%, color-mix(in srgb, var(--app-brand-accent) 5%, #ffffff) 100%) !important;
    border: 1px solid color-mix(in srgb, var(--app-brand-accent) 22%, #dbe3ee) !important;
    color: #111827 !important;
    box-shadow: 0 24px 58px rgba(var(--app-brand-accent-rgb), 0.16), 0 18px 44px rgba(15, 23, 42, 0.12) !important;
}

#loadingOverlay.loading-overlay {
    background:
        radial-gradient(circle at 18% 18%, rgba(var(--app-brand-accent-rgb), 0.14), transparent 24%),
        radial-gradient(circle at 82% 22%, rgba(var(--app-brand-accent-rgb), 0.10), transparent 22%),
        linear-gradient(180deg, rgba(255,255,255,0.96) 0%, color-mix(in srgb, var(--app-brand-accent) 6%, #f8fafc) 100%) !important;
}

#loadingOverlay .loading-bg__orb--a,
#loadingOverlay .loading-bg__orb--b,
#loadingOverlay .loading-bg__orb--c {
    background: radial-gradient(circle at 40% 40%, rgba(var(--app-brand-accent-rgb), 0.20), rgba(var(--app-brand-accent-rgb), 0.04) 68%, transparent 72%) !important;
}

#loadingOverlay .loading-bg__beam--a,
#loadingOverlay .loading-bg__beam--b {
    background: linear-gradient(90deg, transparent 0%, rgba(var(--app-brand-accent-rgb), 0.10) 30%, rgba(var(--app-brand-accent-rgb), 0.26) 56%, transparent 100%) !important;
}

#loadingOverlay .loading-card {
    border-color: color-mix(in srgb, var(--app-brand-accent) 18%, rgba(148, 163, 184, 0.18)) !important;
    box-shadow: 0 30px 80px rgba(var(--app-brand-accent-rgb), 0.14), 0 26px 70px rgba(15, 23, 42, 0.10) !important;
}

#loadingOverlay .loading-card__badge {
    background: var(--app-brand-accent-soft) !important;
    border-color: color-mix(in srgb, var(--app-brand-accent) 22%, transparent) !important;
    color: var(--app-brand-accent-strong) !important;
}

#loadingOverlay .loading-card__mark-ring {
    border-color: rgba(var(--app-brand-accent-rgb), 0.16) !important;
    border-top-color: rgba(var(--app-brand-accent-rgb), 0.82) !important;
    border-right-color: color-mix(in srgb, var(--app-brand-accent) 64%, #ffffff) !important;
}

#loadingOverlay .loading-card__mark-core,
#loadingOverlay .loading-card__meter-bar {
    background: linear-gradient(135deg, var(--app-brand-accent-strong) 0%, var(--app-brand-accent) 100%) !important;
    box-shadow: 0 0 0 10px rgba(var(--app-brand-accent-rgb), 0.08), 0 10px 24px rgba(var(--app-brand-accent-rgb), 0.20) !important;
}

html.theme-dark .text-primary {
    color: color-mix(in srgb, var(--app-brand-accent) 72%, #ffffff) !important;
}

html.theme-dark .btn-outline-primary,
html.theme-dark #parametreContainer .btn-outline-primary {
    color: color-mix(in srgb, var(--app-brand-accent) 78%, #ffffff) !important;
    border-color: color-mix(in srgb, var(--app-brand-accent) 50%, var(--theme-dark-border)) !important;
}

/* Brand actions must keep the active site's color in dark mode.
   View accents still color surfaces/tables, but primary buttons follow site1/site2. */
html.theme-dark body[class*="app-view--"] .btn-primary,
html.theme-dark body[class*="app-view--"] .modal-footer .btn-primary,
html.theme-dark body[class*="app-view--"] .btn-info {
    background: var(--app-brand-accent) !important;
    border-color: var(--app-brand-accent) !important;
    color: var(--app-brand-contrast) !important;
    box-shadow: 0 10px 22px rgba(var(--app-brand-accent-rgb), 0.22) !important;
}

html.theme-dark body[class*="app-view--"] .btn-primary:hover,
html.theme-dark body[class*="app-view--"] .btn-primary:focus,
html.theme-dark body[class*="app-view--"] .modal-footer .btn-primary:hover,
html.theme-dark body[class*="app-view--"] .modal-footer .btn-primary:focus,
html.theme-dark body[class*="app-view--"] .btn-info:hover,
html.theme-dark body[class*="app-view--"] .btn-info:focus {
    background: var(--app-brand-accent-strong) !important;
    border-color: var(--app-brand-accent-strong) !important;
    color: #ffffff !important;
}

html.theme-dark body[class*="app-view--"] .btn-outline-primary {
    background: transparent !important;
    border-color: color-mix(in srgb, var(--app-brand-accent) 50%, var(--theme-dark-border)) !important;
    color: color-mix(in srgb, var(--app-brand-accent) 78%, #ffffff) !important;
}

html.theme-dark body[class*="app-view--"] .btn-outline-primary:hover,
html.theme-dark body[class*="app-view--"] .btn-outline-primary:focus {
    background: color-mix(in srgb, var(--app-brand-accent) 14%, var(--theme-dark-surface-3)) !important;
    border-color: color-mix(in srgb, var(--app-brand-accent) 68%, var(--theme-dark-border)) !important;
    color: #ffffff !important;
}

html.theme-dark .table-hover tbody tr:hover > *,
html.theme-dark table.dataTable tbody tr:hover > * {
    background: color-mix(in srgb, var(--app-brand-accent) 10%, var(--theme-dark-surface-3)) !important;
}

html.theme-dark #globalLoadingOverlay,
html.theme-dark #loadingOverlay.loading-overlay {
    background:
        radial-gradient(circle at 16% 18%, rgba(var(--app-brand-accent-rgb), 0.20), transparent 26%),
        radial-gradient(circle at 84% 20%, rgba(var(--app-brand-accent-rgb), 0.14), transparent 24%),
        linear-gradient(180deg, rgba(8, 12, 20, 0.94) 0%, rgba(10, 16, 29, 0.97) 100%) !important;
}

html.theme-dark #globalLoadingOverlay .loading-box,
html.theme-dark .dep-loading-box,
html.theme-dark #loadingOverlay .loading-card {
    background: linear-gradient(180deg, var(--theme-dark-surface-2) 0%, var(--theme-dark-surface) 100%) !important;
    border-color: color-mix(in srgb, var(--app-brand-accent) 24%, var(--theme-dark-border)) !important;
    color: var(--theme-dark-text) !important;
    box-shadow: 0 26px 62px rgba(0, 0, 0, 0.36), 0 0 0 1px rgba(var(--app-brand-accent-rgb), 0.08) !important;
}

html.theme-dark #loadingOverlay .loading-card__badge {
    background: rgba(var(--app-brand-accent-rgb), 0.14) !important;
    border-color: rgba(var(--app-brand-accent-rgb), 0.24) !important;
    color: color-mix(in srgb, var(--app-brand-accent) 64%, #ffffff) !important;
}

html.theme-dark #loadingOverlay .loading-card__mark-ring {
    border-color: rgba(var(--app-brand-accent-rgb), 0.18) !important;
    border-top-color: rgba(var(--app-brand-accent-rgb), 0.95) !important;
    border-right-color: color-mix(in srgb, var(--app-brand-accent) 76%, #ffffff) !important;
}

html.theme-dark #loadingOverlay .loading-card__mark-core,
html.theme-dark #loadingOverlay .loading-card__meter-bar {
    background: linear-gradient(135deg, var(--app-brand-accent-strong) 0%, var(--app-brand-accent) 100%) !important;
    box-shadow: 0 0 0 10px rgba(var(--app-brand-accent-rgb), 0.10), 0 10px 26px rgba(var(--app-brand-accent-rgb), 0.22) !important;
}

/* Login */
body:has(.login-page) {
    min-height: 100vh;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 16% 10%, color-mix(in srgb, var(--app-navbar-accent) 15%, transparent), transparent 24rem),
        radial-gradient(circle at 84% 18%, rgba(59, 130, 246, 0.12), transparent 26rem),
        linear-gradient(180deg, #f7fafc 0%, #e8eef7 100%) !important;
}

body:has(.login-page) .app-page-shell {
    display: flex;
    flex: 1 0 auto;
    min-height: calc(100vh - 86px);
    align-items: center;
    justify-content: center;
}

body:has(.login-page) .app-page-shell > main[role="main"] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.login-page {
    --login-accent: var(--app-navbar-accent, #ea7a12);
    --login-accent-strong: var(--app-navbar-accent-strong, #c2510c);
    --login-accent-soft: var(--app-navbar-accent-soft, rgba(234, 122, 18, 0.14));
    --login-text: #172033;
    --login-muted: #64748b;
    --login-surface: rgba(255, 255, 255, 0.88);
    --login-surface-solid: #ffffff;
    --login-border: rgba(100, 116, 139, 0.18);
    --login-field-bg: #f8fafc;
    --login-shadow: 0 28px 70px rgba(15, 23, 42, 0.18);
    position: relative;
    display: grid;
    grid-template-columns: minmax(320px, 0.78fr) minmax(340px, 450px);
    align-items: center;
    gap: clamp(2.5rem, 6vw, 6rem);
    width: min(1240px, calc(100% - 4rem));
    margin: 0 auto;
    padding: clamp(2.2rem, 5vw, 4.6rem) 0;
    color: var(--login-text);
    text-align: left;
}

.login-page::before {
    content: "";
    position: absolute;
    inset: 7% 49% auto auto;
    width: 18rem;
    height: 18rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--login-accent) 12%, transparent);
    filter: blur(18px);
    pointer-events: none;
}

.login-page .login-title {
    position: relative;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: transparent !important;
    text-align: left;
}

.login-title__eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 0.8rem;
    border: 1px solid color-mix(in srgb, var(--login-accent) 28%, var(--login-border));
    border-radius: 999px;
    background: color-mix(in srgb, var(--login-accent) 10%, #ffffff);
    color: var(--login-accent-strong);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.login-page .login-title h1,
.login-page .login-title h2 {
    max-width: 10.5ch;
    margin: 1rem 0 0;
    color: var(--login-text);
    font-size: clamp(2.15rem, 3.1vw, 3.05rem);
    font-weight: 900;
    line-height: 1.04;
    letter-spacing: 0;
    overflow-wrap: normal;
}

@media (min-width: 901px) {
    .login-page .login-container {
        justify-self: end;
    }
}

.login-page .login-title p {
    max-width: 34rem;
    margin: 1.1rem 0 0;
    color: var(--login-muted);
    font-size: clamp(1rem, 1.4vw, 1.16rem);
    font-weight: 750;
    line-height: 1.55;
}

.login-page .login-container {
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 1rem;
    overflow: visible;
    border: 1px solid color-mix(in srgb, var(--login-accent) 24%, var(--login-border));
    border-radius: 24px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(248, 250, 252, 0.88) 100%),
        var(--login-surface-solid);
    box-shadow: var(--login-shadow);
    backdrop-filter: blur(18px);
}

.login-page .login-container::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: linear-gradient(90deg, var(--login-accent) 0%, color-mix(in srgb, var(--login-accent) 42%, #ffffff) 100%);
}

.login-page .panel-title {
    margin: 0 0 1rem;
    padding: 1.45rem 1.25rem;
    border: 1px solid color-mix(in srgb, var(--login-accent) 30%, transparent);
    border-radius: 18px;
    background:
        radial-gradient(circle at 90% 12%, rgba(255, 255, 255, 0.20), transparent 34%),
        linear-gradient(135deg, var(--login-accent) 0%, var(--login-accent-strong) 100%) !important;
    color: #ffffff;
    box-shadow: 0 18px 36px color-mix(in srgb, var(--login-accent) 24%, transparent);
    text-align: left;
}

.login-page .panel-title .app-name {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    margin: 0 0 0.75rem;
    padding: 0;
    color: #ffffff;
    font-size: 1.1rem;
    font-weight: 900;
    text-shadow: none;
}

.login-page .panel-title .app-name i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.18);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.login-page .panel-title .site-title {
    margin: 0;
    color: #ffffff;
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: 0;
}

.login-panel-subtitle {
    margin: 0.75rem 0 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.94rem;
    font-weight: 700;
    line-height: 1.45;
}

.login-page .login-form {
    padding: 0.35rem 0.15rem 0;
}

.login-page .form-group {
    position: relative;
    margin-bottom: 0.9rem;
    text-align: left;
}

.login-field-label {
    display: block;
    margin: 0 0 0.35rem;
    color: var(--login-muted);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.login-field-icon {
    position: absolute;
    left: 0.95rem;
    bottom: 0.86rem;
    z-index: 2;
    color: color-mix(in srgb, var(--login-accent) 66%, var(--login-muted));
    font-size: 0.95rem;
    pointer-events: none;
}

.login-page .form-control,
.login-page .form-select {
    width: 100%;
    min-height: 50px;
    margin: 0;
    padding: 0.72rem 0.95rem 0.72rem 2.75rem;
    border: 1px solid var(--login-border);
    border-radius: 14px;
    background-color: var(--login-field-bg);
    color: var(--login-text);
    font-size: 0.98rem;
    font-weight: 800;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.login-page .form-control::placeholder {
    color: color-mix(in srgb, var(--login-muted) 72%, transparent);
}

.login-page .form-control:focus,
.login-page .form-select:focus {
    background-color: #ffffff;
    border-color: color-mix(in srgb, var(--login-accent) 62%, var(--login-border));
    box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--login-accent) 16%, transparent);
}

.login-year-picker {
    position: relative;
}

.login-year-picker__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    min-height: 50px;
    padding: 0.72rem 0.95rem 0.72rem 2.75rem;
    border: 1px solid var(--login-border);
    border-radius: 14px;
    background-color: var(--login-field-bg);
    color: var(--login-text);
    font-size: 0.98rem;
    font-weight: 850;
    line-height: 1.2;
    text-align: left;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.login-year-picker__trigger i {
    color: color-mix(in srgb, var(--login-accent) 62%, var(--login-muted));
    transition: transform 160ms ease;
}

.login-year-picker.is-open .login-year-picker__trigger i {
    transform: rotate(180deg);
}

.login-year-picker.is-open .login-year-picker__trigger,
.login-year-picker__trigger:focus {
    background-color: #ffffff;
    border-color: color-mix(in srgb, var(--login-accent) 62%, var(--login-border));
    box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--login-accent) 16%, transparent);
    outline: none;
}

.login-year-picker.has-error .login-year-picker__trigger {
    border-color: rgba(220, 38, 38, 0.48);
    box-shadow: 0 0 0 0.2rem rgba(220, 38, 38, 0.12);
}

.login-year-picker__menu {
    position: absolute;
    top: auto;
    right: 0;
    bottom: calc(100% + 0.45rem);
    left: 0;
    z-index: 80;
    display: none;
    max-height: min(18rem, calc(100vh - 12rem));
    overflow-y: auto;
    margin-top: 0;
    padding: 0.55rem;
    border: 1px solid color-mix(in srgb, var(--login-accent) 22%, var(--login-border));
    border-radius: 16px;
    background: var(--login-surface-solid);
    box-shadow: 0 20px 46px rgba(15, 23, 42, 0.18);
}

.login-year-picker.is-open .login-year-picker__menu {
    display: grid;
    gap: 0.45rem;
}

.login-year-picker__group,
.login-year-picker__older {
    display: grid;
    gap: 0.35rem;
}

.login-year-picker__group-label {
    padding: 0.2rem 0.45rem;
    color: var(--login-muted);
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.login-year-picker__option,
.login-year-picker__older-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    min-height: 2.6rem;
    padding: 0.6rem 0.7rem;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: var(--login-text);
    font-size: 0.92rem;
    font-weight: 850;
    text-align: left;
}

.login-year-picker__option:hover,
.login-year-picker__option:focus,
.login-year-picker__older-toggle:hover,
.login-year-picker__older-toggle:focus {
    background: color-mix(in srgb, var(--login-accent) 9%, transparent);
    border-color: color-mix(in srgb, var(--login-accent) 18%, var(--login-border));
    outline: none;
}

.login-year-picker__option i {
    color: var(--login-accent-strong);
    opacity: 0;
}

.login-year-picker__option.is-selected {
    background: color-mix(in srgb, var(--login-accent) 12%, #ffffff);
    border-color: color-mix(in srgb, var(--login-accent) 26%, var(--login-border));
    color: var(--login-accent-strong);
}

.login-year-picker__option.is-selected i {
    opacity: 1;
}

.login-year-picker__older-toggle {
    margin-top: 0.2rem;
    border-style: dashed;
    color: color-mix(in srgb, var(--login-accent-strong) 70%, var(--login-text));
}

.login-year-picker__older-toggle i {
    transition: transform 160ms ease;
}

.login-year-picker__older-toggle.is-open i {
    transform: rotate(180deg);
}

.login-year-picker__older {
    padding-top: 0.15rem;
}

.login-year-picker__error {
    margin-top: 0.35rem;
    color: #b91c1c;
    font-size: 0.78rem;
    font-weight: 850;
}

.login-page .login-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    width: 100%;
    min-height: 52px;
    margin-top: 0.25rem;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--login-accent) 0%, var(--login-accent-strong) 100%) !important;
    color: #ffffff !important;
    font-weight: 900;
    box-shadow: 0 16px 32px color-mix(in srgb, var(--login-accent) 28%, transparent);
    transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.login-page .login-btn:hover,
.login-page .login-btn:focus {
    color: #ffffff !important;
    filter: brightness(1.04);
    transform: translateY(-1px);
    box-shadow: 0 20px 40px color-mix(in srgb, var(--login-accent) 34%, transparent);
}

.login-superadmin-access {
    margin-top: 0.85rem;
    text-align: center;
}

.login-superadmin-access a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 2.4rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    color: color-mix(in srgb, var(--login-accent-strong) 76%, var(--login-muted));
    font-size: 0.82rem;
    font-weight: 850;
    text-decoration: none;
}

.login-superadmin-access a:hover,
.login-superadmin-access a:focus {
    background: color-mix(in srgb, var(--login-accent) 9%, transparent);
    color: var(--login-accent-strong);
    text-decoration: none;
    outline: none;
}

.login-validation {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin-bottom: 0.95rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(220, 38, 38, 0.18);
    border-radius: 8px;
    background: rgba(254, 242, 242, 0.88);
    color: #9f1239;
    font-weight: 800;
    text-align: left;
}

.login-validation i {
    margin-top: 0.12rem;
    color: #dc2626;
    font-size: 0.95rem;
    flex: 0 0 auto;
}

.login-validation div {
    display: grid;
    gap: 0.2rem;
}

.login-validation span {
    font-size: 0.9rem;
    line-height: 1.35;
}

.login-validation ul {
    margin: 0;
    padding-left: 0;
    list-style: none;
}

html.theme-dark body:has(.login-page) {
    background:
        radial-gradient(circle at 18% 12%, color-mix(in srgb, var(--theme-dark-accent) 22%, transparent), transparent 26rem),
        radial-gradient(circle at 84% 18%, rgba(56, 189, 248, 0.10), transparent 26rem),
        linear-gradient(180deg, #101827 0%, #0b1220 55%, #08111f 100%) !important;
    color: var(--theme-dark-text);
}

html.theme-dark .login-page {
    --login-accent: var(--theme-dark-accent);
    --login-accent-strong: var(--app-navbar-accent-strong, var(--theme-dark-accent));
    --login-accent-soft: color-mix(in srgb, var(--theme-dark-accent) 18%, transparent);
    --login-text: var(--theme-dark-text);
    --login-muted: var(--theme-dark-text-soft);
    --login-surface: rgba(24, 34, 53, 0.76);
    --login-surface-solid: var(--theme-dark-surface);
    --login-border: color-mix(in srgb, var(--theme-dark-border) 78%, var(--theme-dark-accent) 22%);
    --login-field-bg: color-mix(in srgb, var(--theme-dark-surface-3) 86%, #020617);
    --login-shadow: 0 34px 86px rgba(0, 0, 0, 0.38);
}

html.theme-dark .login-title__eyebrow {
    background: color-mix(in srgb, var(--login-accent) 14%, var(--theme-dark-surface));
    border-color: color-mix(in srgb, var(--login-accent) 32%, var(--theme-dark-border));
    color: color-mix(in srgb, var(--login-accent) 58%, #ffffff);
}

html.theme-dark .login-page .login-container {
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--login-accent) 10%, transparent), transparent 34%),
        linear-gradient(180deg, rgba(24, 34, 53, 0.94) 0%, rgba(15, 23, 42, 0.92) 100%) !important;
    border-color: var(--login-border);
    box-shadow: var(--login-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

html.theme-dark .login-page .panel-title {
    border-color: color-mix(in srgb, var(--login-accent) 40%, transparent);
    background:
        radial-gradient(circle at 90% 12%, rgba(255, 255, 255, 0.16), transparent 34%),
        linear-gradient(135deg, color-mix(in srgb, var(--login-accent) 92%, #111827) 0%, color-mix(in srgb, var(--login-accent-strong) 86%, #020617) 100%) !important;
    box-shadow: 0 20px 42px color-mix(in srgb, var(--login-accent) 18%, transparent);
}

html.theme-dark .login-page .form-control,
html.theme-dark .login-page .form-select {
    background-color: var(--login-field-bg) !important;
    border-color: var(--theme-dark-border) !important;
    color: var(--theme-dark-text) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
    color-scheme: dark;
}

html.theme-dark .login-page .form-control::placeholder {
    color: var(--theme-dark-text-muted);
}

html.theme-dark .login-page .form-control:focus,
html.theme-dark .login-page .form-select:focus {
    background-color: color-mix(in srgb, var(--theme-dark-surface-3) 80%, var(--login-accent)) !important;
    border-color: color-mix(in srgb, var(--login-accent) 58%, var(--theme-dark-border)) !important;
    box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--login-accent) 18%, transparent) !important;
}

html.theme-dark .login-year-picker__trigger,
html.theme-dark .login-year-picker__menu {
    background-color: var(--login-field-bg) !important;
    border-color: var(--theme-dark-border) !important;
    color: var(--theme-dark-text) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

html.theme-dark .login-year-picker.is-open .login-year-picker__trigger,
html.theme-dark .login-year-picker__trigger:focus {
    background-color: color-mix(in srgb, var(--theme-dark-surface-3) 80%, var(--login-accent)) !important;
    border-color: color-mix(in srgb, var(--login-accent) 58%, var(--theme-dark-border)) !important;
    box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--login-accent) 18%, transparent) !important;
}

html.theme-dark .login-year-picker__option,
html.theme-dark .login-year-picker__older-toggle {
    color: var(--theme-dark-text) !important;
}

html.theme-dark .login-year-picker__option:hover,
html.theme-dark .login-year-picker__option:focus,
html.theme-dark .login-year-picker__older-toggle:hover,
html.theme-dark .login-year-picker__older-toggle:focus,
html.theme-dark .login-year-picker__option.is-selected {
    background: color-mix(in srgb, var(--login-accent) 16%, var(--theme-dark-surface-3)) !important;
    border-color: color-mix(in srgb, var(--login-accent) 28%, var(--theme-dark-border)) !important;
    color: color-mix(in srgb, var(--login-accent) 48%, #ffffff) !important;
}

html.theme-dark .login-year-picker__group-label {
    color: var(--theme-dark-text-muted);
}

html.theme-dark .login-field-icon {
    color: color-mix(in srgb, var(--login-accent) 64%, #ffffff);
}

html.theme-dark .login-validation {
    background: rgba(127, 29, 29, 0.18);
    border-color: rgba(248, 113, 113, 0.26);
    color: #fecaca;
}

html.theme-dark .login-validation i {
    color: #f87171;
}

html.theme-dark body:has(.login-page) .app-footer__shell {
    background:
        radial-gradient(circle at 96% 10%, color-mix(in srgb, var(--theme-dark-accent) 12%, transparent), transparent 34%),
        linear-gradient(180deg, rgba(24, 34, 53, 0.92) 0%, rgba(15, 23, 42, 0.90) 100%) !important;
    border-color: color-mix(in srgb, var(--theme-dark-accent) 22%, var(--theme-dark-border));
    color: var(--theme-dark-text-soft);
}

@media (max-width: 900px) {
    .login-page {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        width: min(520px, calc(100% - 1.5rem));
        padding: 2rem 0;
    }

    .login-page .login-title,
    .login-page .login-title h1,
    .login-page .login-title h2,
    .login-page .login-title p {
        max-width: none;
        text-align: center;
    }

    .login-title__eyebrow {
        margin-inline: auto;
    }
}

@media (max-width: 520px) {
    body:has(.login-page) .app-page-shell {
        min-height: auto;
    }

    .login-page {
        width: calc(100% - 1rem);
        padding: 1rem 0 1.5rem;
    }

    .login-page .login-title h1,
    .login-page .login-title h2 {
        font-size: 2.1rem;
    }

    .login-page .login-container {
        padding: 0.75rem;
        border-radius: 20px;
    }

    .login-page .panel-title {
        padding: 1.15rem;
    }

    .login-year-picker__menu {
        position: absolute;
        top: auto;
        right: 0;
        bottom: calc(100% + 0.45rem);
        left: 0;
        z-index: 1000;
        max-height: min(18rem, calc(100vh - 8rem));
    }
}

@media (min-width: 1600px) {
    body:has(.login-page) .app-page-shell {
        min-height: calc(100vh - 72px);
    }

    .login-page {
        width: min(1520px, calc(100% - 7rem));
        grid-template-columns: minmax(440px, 0.9fr) minmax(430px, 520px);
        gap: clamp(4rem, 7vw, 8.5rem);
        padding-block: clamp(3.5rem, 6vh, 6rem);
    }

    .login-page::before {
        width: 24rem;
        height: 24rem;
        inset: 4% 47% auto auto;
    }

    .login-page .login-title h1,
    .login-page .login-title h2 {
        max-width: 12ch;
        font-size: clamp(3.1rem, 3.5vw, 4.2rem);
    }

    .login-page .login-title p {
        font-size: 1.22rem;
    }

    .login-page .login-container {
        padding: 1.25rem;
        border-radius: 28px;
    }

    .login-page .panel-title {
        padding: 1.85rem 1.65rem;
    }

    .login-page .form-control,
    .login-page .form-select {
        min-height: 58px;
        font-size: 1.06rem;
    }

    .login-page .login-btn {
        min-height: 58px;
        font-size: 1.05rem;
    }
}

@media (min-width: 2200px) {
    .login-page {
        width: min(1760px, calc(100% - 10rem));
        grid-template-columns: minmax(540px, 1fr) minmax(500px, 590px);
        gap: clamp(6rem, 8vw, 12rem);
    }

    .login-page .login-title h1,
    .login-page .login-title h2 {
        font-size: clamp(4rem, 3.8vw, 5.4rem);
    }

    .login-page .login-container {
        padding: 1.45rem;
    }

    .login-page .panel-title {
        padding: 2.1rem 1.85rem;
    }
}

#parametreContainer .param-section-jumpbar {
    position: sticky;
    top: 0.75rem;
    z-index: 3;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    padding: 0.7rem;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 14px;
    background: color-mix(in srgb, var(--app-surface) 92%, #ffffff);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
}

html.theme-dark #parametreContainer .param-section-jumpbar {
    background: color-mix(in srgb, var(--theme-dark-surface) 88%, var(--app-brand-accent) 12%);
    border-color: var(--theme-dark-border);
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.26);
}

@media (min-width: 1700px) {
    body:not(:has(.login-page)) {
        font-size: 1.03rem;
    }

    .app-page-shell {
        padding-inline: clamp(1rem, 1.2vw, 1.75rem);
    }

    .app-page-shell > main > .container {
        width: 100%;
        max-width: min(100%, 1760px);
    }

    .app-page-shell > main > .container-fluid {
        padding-inline: clamp(0.8rem, 1vw, 1.35rem);
    }

    body:not(:has(.login-page)) :where(.card, .modal-content, .accordion-item, .list-group-item) {
        font-size: 1.02rem;
    }

    body:not(:has(.login-page)) :where(.card-header, .modal-header, .accordion-header) {
        padding: 0.95rem 1.1rem;
    }

    body:not(:has(.login-page)) :where(.card-body, .modal-body, .accordion-body) {
        padding: 1.15rem;
    }

    body:not(:has(.login-page)) :where(.card-header h1, .card-header h2, .card-header h3, .card-header h4, .card-header h5, .card-header h6, .modal-title) {
        font-size: 1.08rem;
        line-height: 1.2;
    }

    body:not(:has(.login-page)) :where(.btn, button.dt-button, .dt-button, .dropdown-item, .nav-link, .workspace-nav__link) {
        min-height: 2.35rem;
        font-size: 0.94rem;
    }

    body:not(:has(.login-page)) :where(.btn-sm, .btn-group-sm > .btn) {
        min-height: 2.05rem;
        font-size: 0.86rem;
    }

    body:not(:has(.login-page)) :where(.form-control, .form-select, .custom-select, .select2-container--default .select2-selection--single, .select2-container--default .select2-selection--multiple, .dataTables_filter input, .dataTables_length select) {
        min-height: 2.5rem;
        font-size: 0.96rem;
    }

    body:not(:has(.login-page)) :where(label, .form-label, .form-check-label) {
        font-size: 0.92rem;
    }

    body:not(:has(.login-page)) :where(.badge, .badge-paiement, [class*="badge"], [class*="pill"], [class*="status"]) {
        font-size: 0.82rem;
        line-height: 1.18;
    }

    body:not(:has(.login-page)) :where(.table, table.dataTable, .dataTable) {
        font-size: 0.88rem;
    }

    body:not(:has(.login-page)) :where(.table thead th, table.dataTable thead th, table.dataTable thead td) {
        padding: 0.72rem 0.78rem;
        font-size: 0.82rem;
        line-height: 1.25;
    }

    body:not(:has(.login-page)) :where(.table tbody td, table.dataTable tbody td) {
        padding: 0.7rem 0.78rem;
        line-height: 1.28;
    }

    body:not(:has(.login-page)) :where(.table-sm thead th, .table-sm tbody td, table.dataTable.table-sm thead th, table.dataTable.table-sm tbody td) {
        padding: 0.56rem 0.65rem;
    }

    body:not(:has(.login-page)) :where(.dataTables_wrapper) {
        font-size: 0.92rem;
    }

    body:not(:has(.login-page)) :where(.dataTables_info, .dataTables_paginate .paginate_button, .dataTables_filter, .dataTables_length, .dt-buttons) {
        font-size: 0.88rem;
    }

    body:not(:has(.login-page)) :where(.table-responsive, [class*="table-wrap"], [class*="table-shell"], [class*="table-responsive"]) {
        font-size: 1rem;
    }

    body:not(:has(.login-page)) :where(.workspace-nav) {
        gap: 0.55rem;
        padding: 0.55rem;
    }

    body:not(:has(.login-page)) :where(.workspace-nav__link) {
        padding: 0.62rem 0.9rem;
    }

    body:not(:has(.login-page)) :where(.app-view-context__copy strong, .home-index-section-card__title, .dep-title, .caisse-panel-title, .ep-section-title, .manuels-section-title, .param-panel__title) {
        font-size: 1.18rem;
    }

    body:not(:has(.login-page)) :where(.home-index-kpi strong, .ep-stat-card strong, .caisse-stat-card__value, .dep-stat__value, .manuels-summary-card strong, .param-stat-card strong) {
        font-size: 1.14rem;
    }

    body:not(:has(.login-page)) :where(.home-index-kpi small, .ep-stat-card span, .caisse-stat-card__label, .dep-stat__label, .manuels-summary-card span, .param-stat-card small) {
        font-size: 0.82rem;
    }
}

@media (min-width: 1900px) {
    body:not(:has(.login-page)) {
        font-size: 1.08rem;
    }

    .app-page-shell {
        padding-inline: clamp(1.2rem, 1.35vw, 2.2rem);
    }

    .app-page-shell > main > .container {
        max-width: min(100%, 1880px);
    }

    .app-page-shell > main > .container-fluid {
        padding-inline: clamp(1rem, 1.15vw, 1.75rem);
    }

    body:not(:has(.login-page)) :where(.card-header h1, .card-header h2, .card-header h3, .card-header h4, .card-header h5, .card-header h6, .modal-title) {
        font-size: 1.16rem;
    }

    body:not(:has(.login-page)) :where(.btn, button.dt-button, .dt-button, .dropdown-item, .nav-link, .workspace-nav__link) {
        min-height: 2.5rem;
        font-size: 1rem;
    }

    body:not(:has(.login-page)) :where(.btn-sm, .btn-group-sm > .btn) {
        min-height: 2.18rem;
        font-size: 0.92rem;
    }

    body:not(:has(.login-page)) :where(.form-control, .form-select, .custom-select, .select2-container--default .select2-selection--single, .select2-container--default .select2-selection--multiple, .dataTables_filter input, .dataTables_length select) {
        min-height: 2.65rem;
        font-size: 1.02rem;
    }

    body:not(:has(.login-page)) :where(label, .form-label, .form-check-label) {
        font-size: 0.98rem;
    }

    body:not(:has(.login-page)) :where(.badge, .badge-paiement, [class*="badge"], [class*="pill"], [class*="status"]) {
        font-size: 0.88rem;
    }

    body:not(:has(.login-page)) :where(.table, table.dataTable, .dataTable) {
        font-size: 0.96rem;
    }

    body:not(:has(.login-page)) :where(.table thead th, table.dataTable thead th, table.dataTable thead td) {
        padding: 0.82rem 0.9rem;
        font-size: 0.88rem;
    }

    body:not(:has(.login-page)) :where(.table tbody td, table.dataTable tbody td) {
        padding: 0.8rem 0.9rem;
    }

    body:not(:has(.login-page)) :where(.table-sm thead th, .table-sm tbody td, table.dataTable.table-sm thead th, table.dataTable.table-sm tbody td) {
        padding: 0.64rem 0.74rem;
    }

    body:not(:has(.login-page)) :where(.dataTables_info, .dataTables_paginate .paginate_button, .dataTables_filter, .dataTables_length, .dt-buttons) {
        font-size: 0.94rem;
    }

    body:not(:has(.login-page)) :where(.workspace-nav) {
        gap: 0.65rem;
        padding: 0.62rem;
    }

    body:not(:has(.login-page)) :where(.workspace-nav__link) {
        padding: 0.7rem 1rem;
    }

    body:not(:has(.login-page)) :where(.app-view-context__copy strong, .home-index-section-card__title, .dep-title, .caisse-panel-title, .ep-section-title, .manuels-section-title, .param-panel__title) {
        font-size: 1.28rem;
    }

    body:not(:has(.login-page)) :where(.home-index-kpi strong, .ep-stat-card strong, .caisse-stat-card__value, .dep-stat__value, .manuels-summary-card strong, .param-stat-card strong) {
        font-size: 1.24rem;
    }
}

.persapp-export-columns-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.55rem 0.85rem;
    max-height: min(52vh, 520px);
    overflow: auto;
    padding: 0.35rem;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 8px;
    background: rgba(248, 250, 252, 0.7);
}

.persapp-export-columns-list .form-check {
    min-height: 2.35rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0.45rem 0.6rem 0.45rem 2rem;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 7px;
    background: #ffffff;
}

.persapp-export-columns-list .form-check-input {
    margin-left: -1.35rem;
}

.persapp-export-columns-list .form-check-label {
    color: #334155;
    font-weight: 600;
    line-height: 1.2;
}

html.theme-dark .persapp-export-columns-list {
    border-color: rgba(148, 163, 184, 0.24);
    background: rgba(15, 23, 42, 0.78);
}

html.theme-dark .persapp-export-columns-list .form-check {
    border-color: rgba(148, 163, 184, 0.2);
    background: rgba(30, 41, 59, 0.88);
}

html.theme-dark .persapp-export-columns-list .form-check-label {
    color: #e2e8f0;
}

html.theme-dark #persappDataTableExportColumnsModal .btn-close {
    filter: invert(1) grayscale(100%) brightness(1.85);
    opacity: 0.84;
}

html.theme-dark #persappDataTableExportColumnsModal .btn-close:hover,
html.theme-dark #persappDataTableExportColumnsModal .btn-close:focus {
    opacity: 1;
}

body:has(.initial-setup-page) .app-page-shell,
body:has(.initial-setup-page) .app-page-shell > main[role="main"] {
    width: 100% !important;
    max-width: none !important;
    min-height: 100vh !important;
    padding: 0 !important;
}

@media (max-width: 575.98px) {
    body:has(.initial-setup-page) {
        font-size: 1rem;
    }

    .initial-setup-page {
        padding: 1rem;
    }

    .initial-setup-card {
        border-radius: 10px;
    }
}

@media (min-width: 1700px) {
    #vueParentContainer .table,
    #vueParentContainer table.dataTable,
    #EtatPaiementContainer .ep-table,
    #EtatPaiementContainer table.dataTable,
    #caissePage .caisse-table,
    #caissePage .caisse-mini-table,
    #depensePage .dep-table,
    #depensePage .dep-mini-table,
    #depenseMultiplePage .dm-table,
    #GestionTransportContainer .transport-table,
    #indexContainer .home-index-table,
    #listingEleveContainer table.dataTable,
    #listingTransportContainer table.dataTable,
    #parametreContainer table.dataTable,
    #parametreContainer .table,
    .manuels-table {
        font-size: 0.92rem !important;
    }

    #vueParentContainer .table thead th,
    #vueParentContainer table.dataTable thead th,
    #EtatPaiementContainer .ep-table thead th,
    #EtatPaiementContainer table.dataTable thead th,
    #caissePage .caisse-table thead th,
    #caissePage .caisse-mini-table thead th,
    #depensePage .dep-table thead th,
    #depensePage .dep-mini-table thead th,
    #depenseMultiplePage .dm-table thead th,
    #GestionTransportContainer .transport-table thead th,
    #indexContainer .home-index-table thead th,
    #listingEleveContainer table.dataTable thead th,
    #listingTransportContainer table.dataTable thead th,
    #parametreContainer table.dataTable thead th,
    #parametreContainer .table thead th,
    .manuels-table thead th {
        padding: 0.74rem 0.82rem !important;
        font-size: 0.84rem !important;
        line-height: 1.24;
    }

    #vueParentContainer .table tbody td,
    #vueParentContainer table.dataTable tbody td,
    #EtatPaiementContainer .ep-table tbody td,
    #EtatPaiementContainer table.dataTable tbody td,
    #caissePage .caisse-table tbody td,
    #caissePage .caisse-mini-table tbody td,
    #depensePage .dep-table tbody td,
    #depensePage .dep-mini-table tbody td,
    #depenseMultiplePage .dm-table tbody td,
    #GestionTransportContainer .transport-table tbody td,
    #indexContainer .home-index-table tbody td,
    #listingEleveContainer table.dataTable tbody td,
    #listingTransportContainer table.dataTable tbody td,
    #parametreContainer table.dataTable tbody td,
    #parametreContainer .table tbody td,
    .manuels-table tbody td {
        padding: 0.72rem 0.82rem !important;
        line-height: 1.3;
    }

    #vueParentContainer .card-header h5,
    #EtatPaiementContainer .card-header h5,
    #caissePage .card-header h5,
    #depensePage .card-header h5,
    #depenseMultiplePage .card-header h5,
    #GestionTransportContainer .card-header h5,
    #indexContainer .home-index-section-card__title,
    #parametreContainer .param-panel__title,
    .manuels-page .card-header h5,
    .manuels-page h2 {
        font-size: 1.12rem !important;
    }

    #vueParentContainer .btn,
    #EtatPaiementContainer .btn,
    #EtatPaiementContainer .ep-filter-btn,
    #caissePage .btn,
    #depensePage .btn,
    #depenseMultiplePage .btn,
    #GestionTransportContainer .btn,
    #indexContainer .btn,
    #listingEleveContainer .btn,
    #listingTransportContainer .btn,
    #parametreContainer .btn,
    .manuels-page .btn {
        font-size: 0.94rem !important;
    }

    #vueParentContainer .badge,
    #vueParentContainer .vp-inscription-pill,
    #EtatPaiementContainer .badge,
    #EtatPaiementContainer .ep-badge,
    #caissePage .caisse-badge,
    #caissePage .caisse-status-badge,
    #depensePage .dep-annee-badge,
    #depensePage .dep-badge-category,
    #GestionTransportContainer .badge,
    #indexContainer .home-index-pill,
    #indexContainer .home-index-child-card__status,
    #indexContainer .home-index-child-card__meta,
    #parametreContainer .badge,
    .manuels-page .badge {
        font-size: 0.84rem !important;
    }

    #vueParentContainer .form-control,
    #vueParentContainer .form-select,
    #vueParentContainer .custom-select,
    #EtatPaiementContainer .form-control,
    #EtatPaiementContainer .form-select,
    #caissePage .form-control,
    #caissePage .form-select,
    #depensePage .form-control,
    #depensePage .form-select,
    #depenseMultiplePage .form-control,
    #depenseMultiplePage .form-select,
    #GestionTransportContainer .form-control,
    #GestionTransportContainer .form-select,
    #indexContainer .form-control,
    #indexContainer .form-select,
    #listingEleveContainer .form-control,
    #listingEleveContainer .form-select,
    #listingTransportContainer .form-control,
    #listingTransportContainer .form-select,
    #parametreContainer .form-control,
    #parametreContainer .form-select,
    .manuels-page .form-control,
    .manuels-page .form-select {
        font-size: 0.96rem !important;
        min-height: 2.5rem;
    }
}

@media (min-width: 1900px) {
    #vueParentContainer .table,
    #vueParentContainer table.dataTable,
    #EtatPaiementContainer .ep-table,
    #EtatPaiementContainer table.dataTable,
    #caissePage .caisse-table,
    #caissePage .caisse-mini-table,
    #depensePage .dep-table,
    #depensePage .dep-mini-table,
    #depenseMultiplePage .dm-table,
    #GestionTransportContainer .transport-table,
    #indexContainer .home-index-table,
    #listingEleveContainer table.dataTable,
    #listingTransportContainer table.dataTable,
    #parametreContainer table.dataTable,
    #parametreContainer .table,
    .manuels-table {
        font-size: 1rem !important;
    }

    #vueParentContainer .table thead th,
    #vueParentContainer table.dataTable thead th,
    #EtatPaiementContainer .ep-table thead th,
    #EtatPaiementContainer table.dataTable thead th,
    #caissePage .caisse-table thead th,
    #caissePage .caisse-mini-table thead th,
    #depensePage .dep-table thead th,
    #depensePage .dep-mini-table thead th,
    #depenseMultiplePage .dm-table thead th,
    #GestionTransportContainer .transport-table thead th,
    #indexContainer .home-index-table thead th,
    #listingEleveContainer table.dataTable thead th,
    #listingTransportContainer table.dataTable thead th,
    #parametreContainer table.dataTable thead th,
    #parametreContainer .table thead th,
    .manuels-table thead th {
        padding: 0.84rem 0.95rem !important;
        font-size: 0.9rem !important;
    }

    #vueParentContainer .table tbody td,
    #vueParentContainer table.dataTable tbody td,
    #EtatPaiementContainer .ep-table tbody td,
    #EtatPaiementContainer table.dataTable tbody td,
    #caissePage .caisse-table tbody td,
    #caissePage .caisse-mini-table tbody td,
    #depensePage .dep-table tbody td,
    #depensePage .dep-mini-table tbody td,
    #depenseMultiplePage .dm-table tbody td,
    #GestionTransportContainer .transport-table tbody td,
    #indexContainer .home-index-table tbody td,
    #listingEleveContainer table.dataTable tbody td,
    #listingTransportContainer table.dataTable tbody td,
    #parametreContainer table.dataTable tbody td,
    #parametreContainer .table tbody td,
    .manuels-table tbody td {
        padding: 0.82rem 0.95rem !important;
    }

    #vueParentContainer .card-header h5,
    #EtatPaiementContainer .card-header h5,
    #caissePage .card-header h5,
    #depensePage .card-header h5,
    #depenseMultiplePage .card-header h5,
    #GestionTransportContainer .card-header h5,
    #indexContainer .home-index-section-card__title,
    #parametreContainer .param-panel__title,
    .manuels-page .card-header h5,
    .manuels-page h2 {
        font-size: 1.22rem !important;
    }

    #vueParentContainer .btn,
    #EtatPaiementContainer .btn,
    #EtatPaiementContainer .ep-filter-btn,
    #caissePage .btn,
    #depensePage .btn,
    #depenseMultiplePage .btn,
    #GestionTransportContainer .btn,
    #indexContainer .btn,
    #listingEleveContainer .btn,
    #listingTransportContainer .btn,
    #parametreContainer .btn,
    .manuels-page .btn {
        font-size: 1rem !important;
    }

    #vueParentContainer .badge,
    #vueParentContainer .vp-inscription-pill,
    #EtatPaiementContainer .badge,
    #EtatPaiementContainer .ep-badge,
    #caissePage .caisse-badge,
    #caissePage .caisse-status-badge,
    #depensePage .dep-annee-badge,
    #depensePage .dep-badge-category,
    #GestionTransportContainer .badge,
    #indexContainer .home-index-pill,
    #indexContainer .home-index-child-card__status,
    #indexContainer .home-index-child-card__meta,
    #parametreContainer .badge,
    .manuels-page .badge {
        font-size: 0.9rem !important;
    }

    #vueParentContainer .form-control,
    #vueParentContainer .form-select,
    #vueParentContainer .custom-select,
    #EtatPaiementContainer .form-control,
    #EtatPaiementContainer .form-select,
    #caissePage .form-control,
    #caissePage .form-select,
    #depensePage .form-control,
    #depensePage .form-select,
    #depenseMultiplePage .form-control,
    #depenseMultiplePage .form-select,
    #GestionTransportContainer .form-control,
    #GestionTransportContainer .form-select,
    #indexContainer .form-control,
    #indexContainer .form-select,
    #listingEleveContainer .form-control,
    #listingEleveContainer .form-select,
    #listingTransportContainer .form-control,
    #listingTransportContainer .form-select,
    #parametreContainer .form-control,
    #parametreContainer .form-select,
    .manuels-page .form-control,
    .manuels-page .form-select {
        font-size: 1.02rem !important;
        min-height: 2.65rem;
    }
}

/* Final responsive override: keep custom view components aligned with the same density scale. */
@media (min-width: 2200px) {
    body:not(:has(.login-page)) :where(
        .app-navbar__brand-copy strong,
        .app-navbar__home-link,
        .app-navbar__nav-link,
        .app-navbar__nav-title,
        .app-navbar__context-btn,
        .app-navbar__utility-btn,
        .app-navbar__logout-btn,
        .app-navbar__context-pill,
        .app-navbar__identity-copy strong
    ) {
        font-size: 1rem !important;
        line-height: 1.16;
    }

    body:not(:has(.login-page)) :where(.app-navbar__identity-role, .app-navbar__school-year-copy small) {
        font-size: 0.78rem !important;
    }

    body:not(:has(.login-page)) :where(.app-navbar__school-year-copy strong) {
        font-size: 1.18rem !important;
    }

    body:not(:has(.login-page)) :where(.app-navbar__home-link, .app-navbar__nav-link, .app-navbar__context-btn, .app-navbar__utility-btn, .app-navbar__logout-btn, .app-navbar__context-pill) {
        min-height: 2.65rem;
        padding: 0.72rem 1rem !important;
    }

    body:not(:has(.login-page)) :where(
        [class$="__title"],
        [class*="__title "],
        [class$="-title"],
        [class*="-title "],
        [class$="__heading"],
        [class*="__heading "],
        [class$="-heading"],
        [class*="-heading "],
        .section-title,
        .modal-title,
        .card-title
    ) {
        font-size: max(1.08rem, 1em) !important;
        line-height: 1.22;
    }

    body:not(:has(.login-page)) :where(
        [class$="__subtitle"],
        [class*="__subtitle "],
        [class$="-subtitle"],
        [class*="-subtitle "],
        [class$="__label"],
        [class*="__label "],
        [class$="-label"],
        [class*="-label "],
        [class$="__meta"],
        [class*="__meta "],
        [class$="-meta"],
        [class*="-meta "]
    ) {
        font-size: max(0.9rem, 1em) !important;
        line-height: 1.25;
    }

    body:not(:has(.login-page)) :where(
        [class$="__value"],
        [class*="__value "],
        [class$="-value"],
        [class*="-value "],
        [class$="__amount"],
        [class*="__amount "],
        [class$="-amount"],
        [class*="-amount "]
    ) {
        font-size: max(1rem, 1em) !important;
        line-height: 1.16;
    }
}

@media (min-width: 1900px) {
    body:not(:has(.login-page)) .app-shell-header {
        padding: 0.35rem 0.75rem 0 !important;
    }

    body:not(:has(.login-page)) .app-navbar {
        border-radius: 16px !important;
    }

    body:not(:has(.login-page)) .app-navbar__shell {
        padding: 0.42rem 0.6rem !important;
    }

    body:not(:has(.login-page)) .app-navbar__layout {
        grid-template-columns: minmax(28rem, auto) minmax(30rem, 1fr) minmax(20rem, auto) !important;
        gap: 0.5rem !important;
        align-items: center !important;
    }

    body:not(:has(.login-page)) .app-navbar__context-panel,
    body:not(:has(.login-page)) .app-navbar__profile-panel {
        padding: 0.18rem 0.24rem !important;
        gap: 0.34rem !important;
        border-radius: 14px !important;
    }

    body:not(:has(.login-page)) :where(
        .app-navbar__brand-copy strong,
        .app-navbar__home-link,
        .app-navbar__nav-link,
        .app-navbar__nav-title,
        .app-navbar__context-btn,
        .app-navbar__utility-btn,
        .app-navbar__logout-btn,
        .app-navbar__context-pill,
        .app-navbar__identity-copy strong
    ) {
        font-size: 0.88rem !important;
        line-height: 1.15;
    }

    body:not(:has(.login-page)) :where(.app-navbar__identity-role, .app-navbar__school-year-copy small) {
        font-size: 0.64rem !important;
    }

    body:not(:has(.login-page)) :where(.app-navbar__school-year-copy strong) {
        font-size: 0.98rem !important;
    }

    body:not(:has(.login-page)) :where(.app-navbar__home-link, .app-navbar__nav-link, .app-navbar__context-btn, .app-navbar__utility-btn, .app-navbar__logout-btn, .app-navbar__context-pill) {
        min-height: 2.15rem !important;
        padding: 0.44rem 0.66rem !important;
        border-radius: 11px !important;
    }

    body:not(:has(.login-page)) .app-navbar__context-btn--school-year {
        min-height: 2.65rem !important;
        min-width: 11rem !important;
        max-width: 13rem !important;
        padding: 0.4rem 0.78rem 0.4rem 0.46rem !important;
    }

    body:not(:has(.login-page)) .app-navbar__school-year-icon {
        width: 32px !important;
        height: 32px !important;
        flex-basis: 32px !important;
        border-radius: 10px !important;
    }

    body:not(:has(.login-page)) .app-navbar__contexts,
    body:not(:has(.login-page)) .app-navbar__nav-actions,
    body:not(:has(.login-page)) .app-navbar__nav-center,
    body:not(:has(.login-page)) .app-navbar__nav {
        gap: 0.32rem !important;
    }

    body:not(:has(.login-page)) :where(
        [class$="__title"],
        [class*="__title "],
        [class$="-title"],
        [class*="-title "],
        [class$="__heading"],
        [class*="__heading "],
        [class$="-heading"],
        [class*="-heading "],
        .section-title,
        .modal-title,
        .card-title
    ) {
        font-size: max(1.2rem, 1em) !important;
    }

    body:not(:has(.login-page)) :where(
        [class$="__subtitle"],
        [class*="__subtitle "],
        [class$="-subtitle"],
        [class*="-subtitle "],
        [class$="__label"],
        [class*="__label "],
        [class$="-label"],
        [class*="-label "],
        [class$="__meta"],
        [class*="__meta "],
        [class$="-meta"],
        [class*="-meta "]
    ) {
        font-size: max(0.98rem, 1em) !important;
    }

    body:not(:has(.login-page)) :where(
        [class$="__value"],
        [class*="__value "],
        [class$="-value"],
        [class*="-value "],
        [class$="__amount"],
        [class*="__amount "],
        [class$="-amount"],
        [class*="-amount "]
    ) {
        font-size: max(1.1rem, 1em) !important;
    }
}
