:root .dark {
    --bs-body-bg: #141227;
    --bs-body-bg-dark: #0C0B17;
    --bs-body-bg-light: #2c2b3c;
    --bs-body-bg-90: #2b2c3c;
    --bs-body-bg-80: #434251;
    --bs-body-bg-70: #5b5a68;
    --bs-body-bg-60: #72717d;
    --bs-body-bg-50: #898992;
    --bs-body-bg-40: #a1a1a8;
    --bs-body-bg-30: #b8b8bd;
    --bs-body-bg-20: #d0d0d4;
    --bs-body-bg-10: #e7e7e9;
    --bs-body-bg-tr: rgba(20,18,39,0.95);
    --bs-body-color: #ffffff;
    --bs-tertiary-bg: #141227;
    --bs-body-disabled-bg: #434251;
    /* narbar */
    --bs-emphasis-color: #78bd76c9;
    --v-grey-dark: #ffffff;
    --bs-white-rgb: 20 18 39;
    --bs-pagination-disabled-color: lightgray;
    --v-primary-gradient: linear-gradient(to right, var(--v-primary), var(--v-primary-light));
    --bs-btn-primary-bg: #78BD76;
    --bs-btn-primary-hover-bg: #5fa75d;
    --bs-btn-primary-focus-bg: #4d934b;
    --bs-btn-secondary-bg: #39519E;
    --bs-btn-secondary-hover-bg: #4a62ad;
    --bs-btn-secondary-focus-bg: #5870bb;
    --v-btn-primary-border: #78BD76;
    --v-btn-primary-shadow: rgba(120,189,118,0.18);
    --v-btn-secondary-border: #39519E;
    --v-btn-secondary-shadow: rgba(87,112,187,0.18);
    --v-btn-success-bg: #2f7d2d;
    --v-btn-success-hover-bg: #3a9338;
    --v-btn-success-focus-bg: #48a646;
    --v-btn-success-border: #2f7d2d;
    --v-btn-success-shadow: rgba(72,166,70,0.18);
    --v-btn-icon-hover-bg: transparent;
    --v-btn-icon-focus-bg: transparent;
    --v-btn-icon-active-bg: transparent;
    --v-btn-icon-focus-ring: rgba(120,189,118,0.16);
    --v-btn-icon-color: var(--bs-medium-white);
    --v-btn-icon-primary-color: var(--v-primary);
    --v-btn-icon-secondary-color: #87a0f4;
    --v-btn-icon-danger-color: #ff8f82;
    --v-btn-icon-danger-hover-color: #ffb2a9;
    --v-btn-icon-primary-bg: transparent;
    --v-btn-icon-primary-hover-bg: transparent;
    --v-btn-icon-primary-focus-bg: transparent;
    --v-btn-icon-primary-text: #78BD76;
    --v-btn-icon-primary-shadow: rgba(120,189,118,0.18);
    --v-btn-icon-secondary-bg: transparent;
    --v-btn-icon-secondary-hover-bg: transparent;
    --v-btn-icon-secondary-focus-bg: transparent;
    --v-btn-icon-secondary-text: #87a0f4;
    --v-btn-icon-secondary-shadow: rgba(87,112,187,0.18);
    --v-btn-icon-danger-bg: transparent;
    --v-btn-icon-danger-hover-bg: transparent;
    --v-btn-icon-danger-focus-bg: transparent;
    --v-btn-icon-danger-text: #ff8f82;
    --v-btn-icon-danger-shadow: rgba(192,58,41,0.18);
    --v-btn-close-color: var(--bs-medium-white);
    --v-btn-close-border: rgba(255,255,255,0.08);
    --v-btn-close-hover-bg: rgba(255,255,255,0.08);
    --v-btn-close-focus-ring: rgba(120,189,118,0.12);
    --v-btn-close-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23FFFFFF' d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
    --v-download-btn-bg: var(--bs-body-bg);
    --v-download-btn-border: var(--bs-medium-white);
    --v-download-btn-color: var(--bs-medium-white);
    --v-layout-login-btn-bg: var(--v-ezixio-primary);
    --v-layout-login-btn-hover-bg: #4c64b0;
    --v-layout-login-btn-focus-bg: #5a72bf;
    --fg-wizard-hightlight: #ff0000;
}

body.dark,
body.dark.layout-login,
body.dark.cke_editable {
    background: var(--bs-body-bg) !important;
    color: var(--bs-medium-white);
}

body.dark {
    color: var(--bs-medium-white);
}

    body.dark.layout-login .white-input {
        border: none;
        border-radius: 20px;
        margin-bottom: 10px;
    }

    body.dark.layout-login input:checked + .checkbox-box {
        background: var(--v-ezixio-primary);
    }

    body.dark.layout-login .welcome-title {
        padding-left: 30px;
    }

    body.dark.layout-login a,
    body.dark.layout-login .checkbox-label {
        color: white;
    }

.dark .card-vireo {
    background-color: var(--bs-body-bg-tr);
    border: 1px solid var(--v-ezixio-primary);
}


.dark .select2-container--bootstrap-5 .select2-selection {
    color: #ffffff;
    background-color: var(--bs-body-bg);
}

.dark .select2-container--bootstrap-5 .select2-dropdown {
    color: #ffffff;
    background-color: var(--bs-body-bg);
}

    .dark .select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field {
        color: #ffffff;
        background-color: var(--bs-body-bg);
    }

.dark .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered {
    color: #ffffff;
}


.dark div.ceRule,
.dark div.ceToolBar {
    color: #ffffff !important;
    background-color: var(--bs-body-bg) !important;
}

.dark input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not(:disabled),
.dark textarea:not(:disabled),
.dark .custom-form-input {
    color: #ffffff !important;
    background-color: var(--bs-body-bg-dark) !important;
    border: none;
}

.dark section.wizard-section input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not(:disabled),
.dark section.wizard-section textarea:not(:disabled),
.dark .custom-form-input {
    color: #ffffff !important;
    background-color: var(--bs-body-bg) !important;
    border: none;
}

.dark div.ceHelp {
    background-color: var(--bs-body-bg);
}

.dark .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice {
    color: #ffffff;
    background-color: var(--bs-body-bg);
}

.dark .tooltip-icon {
    background-color: #ffffff;
    border: 2px solid var(--v-primary);
    color: var(--v-primary) !important;
}

.dark .tooltip-icon > i,
.dark .tooltip-icon > .fa,
.dark .tooltip-icon > .fas,
.dark .tooltip-icon > .far {
    color: var(--v-primary) !important;
}

.dark .vireo-link {
    color: #ffffff;
    font-weight: bold;
}

.dark input::placeholder,
.white-input::placeholder {
    color: gray;
}

.dark .upload-dropzone {
    background-color: rgba(255,255,255,0.25);
}

    .dark .upload-dropzone:hover,
    .dark .upload-dropzone.dragover {
        color: black;
    }

.dark .grey-input {
    color: black;
}

.dark .nav-tabs .nav-item.show .nav-link,
.dark .nav-tabs .nav-link {
    color: #fff !important;
}

    .dark .nav-tabs .nav-item.show .nav-link,
    .dark .nav-tabs .nav-link.active {
        color: var(--v-primary-dark) !important;
    }

.dark .welcome-image {
    height: 32px;
    margin-bottom: 7px;
}

.dark .flyout-panel {
    background: var(--bs-body-bg) !important;
}

.dark .boldUppercaseTitle {
    color: white;
}

.dark .wizard-section,
.dark .bg-vireo-black {
    background: var(--bs-body-bg-light);
    box-shadow: 0 0 2px rgba(0,0,0,0.75);
}

.dark .border-vireo-black,
.dark .right-border,
.dark .left-border, .top-border,
.dark .bottom-border,
.dark .bordered {
    border-color: rgba(255,255,255,0.12) !important;
}

.dark .custom-form-input {
    color: black;
}

.dark span.ceFlow,
.dark div.ceToolBar,
.dark span.ceClause,
.dark span.ceOperator,
.dark span.ceParenthesis,
.dark span.ceNewLine,
.dark span.ceBrace,
.dark span.ceSaveButton,
.dark span:hover.ceDeleteButton,
.dark table.ceHeader,
.dark td.ceRollover {
    color: #aFafaf !important;
}

.dark .ceMenu {
    color: black;
    background: var(--v-ezixio-primary) !important;
}

    .dark .ceMenu div:hover,
    .dark .ceField.ceCurrent,
    .dark .ceFlow, ceOperator ceCurrent,
    .dark .ceMethod.ceCurrent {
        color: black;
    }

.dark .pagination,
.dark .pagination .paginate_button,
.dark .page-item {
    color: white !important;
}

    .dark .pagination .paginate_button.active a,
    .dark .pagination .page-item.active a {
        color: black !important;
    }

.dark .disabled > .page-link, .page-link.disabled {
    color: var(--bs-medium-white);
}

.dark .accordion-button:not(.collapsed) {
    background-color: var(--bs-body-bg-80);
    color: var(--bs-medium-white);
}


.dark .breadcrumb-item.active {
    color: var(--bs-medium-white) !important;
}

.dark .paginate_button.page-item {
    background: var(--bs-body-bg) !important;
    color: var(--v-ezixio-primary);
}

.dark a.page-link,
.dark a.page-link,
.dark .pagination .paginate_button a,
.dark .pagination .page-item.next.disabled a,
.dark .pagination .page-item.previous.disabled a {
    background: transparent !important;
    color: var(--v-ezixio-primary) !important;
}

.dark .pagination .page-item.next a,
.dark .pagination .page-item.previous a {
    color: var(--bs-medium-white) !important;
}

.dark .paginate_button.page-item.active,
.dark .pagination .paginate_button.active a,
.dark .pagination .page-item.active a {
    color: var(--v-primary) !important;
}

.dark .chapter-recap-link {
    color: var(--v-ezixio-primary) !important;
}

.dark p,
.dark span, label,
.dark .form-control,
.dark li,
.dark td,
.dark th,
.dark h1,
.dark h2,
.dark h3 {
    color: inherit;
}

/* Vireo custom switch (red variant) -------------------------------------------------- */
.dark .vireo-switch .form-check-input {
    height: 16px !important;
    -webkit-appearance: none;
    appearance: none;
    height: 16px;
    background: gray; /* off: red with 0.25 transparency */
    border-radius: 999px;
    position: relative;
    border: 1px solid rgba(211,211,211,0.6); /* light gray ring to indicate off */
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease;
}

    .dark .vireo-switch .form-check-input::after {
        height: 12px !important;
        width: 12px !important;
        content: "";
        width: 20px;
        height: 20px;
        background: #ffffff; /* off knob */
        border-radius: 50%;
        position: absolute;
        top: 1px;
        left: 1px;
        transition: transform .15s ease, background .15s ease, left .15s ease, right .15s ease;
        box-shadow: 0 0 0 3px rgba(211,211,211,0.25); /* subtle light ring around the knob */
    }

/* Checked (on) state for red variant */
.dark .vireo-switch.vireo-switch-red .form-check-input:checked {
    background: rgba(192,58,41,0.25) !important; /* on: red with 0.5 transparency */
    border-color: rgba(192,58,41,0.6);
}

.dark .vireo-switch.vireo-switch-red .form-check-input:not(:checked) {
    background: #333 !important; /* on: red with 0.5 transparency */
    border-color: #555;
}

.dark .vireo-switch .form-check-input:focus {
    outline: none;
    box-shadow: 0 0 0 0.15rem rgba(192,58,41,0.15);
}

.dark .grey-input {
    background-color: var(--bs-body-bg);
    background: var(--bs-body-bg);
}

.dark .wizard-section input[type="date"]::-webkit-calendar-picker-indicator {
    filter: brightness(0) saturate(100%) invert(97%) sepia(7%) saturate(209%) hue-rotate(182deg) brightness(104%) contrast(95%);
    opacity: 1;
    cursor: pointer;
}

/* Make native select arrow white by hiding the default arrow and using an inline SVG as background */
.dark select.grey-input {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-color: var(--bs-body-bg);
    color: var(--bs-medium-white);
    padding-right: 2rem; /* space for custom arrow */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23FFFFFF' d='M6 8L0 0h12L6 8z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 8px;
}

    /* Hide default dropdown arrow in IE/Edge */
    .dark select.grey-input::-ms-expand {
        display: none;
    }

.dark .validation-summary-errors {
    background: #fbb !important;
    border: 1px solid var(--v-valiadation-color);
    border-radius: 5px;
    margin-top: 10px;
    padding: 10px;
    color: var(--v-valiadation-color);
    margin-bottom: 10px;
    font-weight: bold;
}

.dark .consent-item[data-is-required="true"]::after {
    content: "*";
    display: inline;
    color: red;
    font-size: 1.5em;
    font-weight: bold;
    height: 0;
    margin-top: -40px;
}

.dark .form-check-label a {
    margin-right: 5px;
}

.dark .consent-item a {
    text-decoration: underline;
    margin: 0;
}

.dark .new-user .title-bloc p {
    width: 65%;
    margin: 0 auto;
}


.dark .existing-user .title-bloc p {
    white-space: break-spaces;
    margin: 0 auto;
}
/*
.normalText,
    .labelBig,
    .labelSmall {
    color: var(--bs-medium-white) !important;
}
*/
.dark .rowHighlight .labelBig {
    color: #333 !important;
}


@media (max-width: 992px) {
    .dark .flyout-toggles-inline {
        display: flex;
        position: sticky;
        top: 80px;
        z-index: 149;
    }
}

.dark .normalText,
.dark .labelSmall,
.dark .labelBig,
.dark .section-subtitle,
.dark .step-title,
.dark .valueSmall,
.dark .valueBig {
    color: var(--bs-medium-white);
}

/* =========================================================
    BASE
    ========================================================= */

.dark .normalText {
    font-size: 14px;
    line-height: 1.4;
}

.dark .responsive-stack {
    width: 100%;
}

    .dark .responsive-stack td {
        vertical-align: top;
        text-align: center;
    }

/* =========================================================
    LABELS
    ========================================================= */

.dark .label {
    font-size: 14px;
    margin-bottom: 6px;
}

.dark .label-muted {
    font-size: 13px;
    margin-bottom: 6px;
}

.dark .labelBig {
    font-size: 18px;
    font-weight: 700;
}

.dark .labelSmall {
    font-size: 11px;
}

/* =========================================================
    VALUES
    ========================================================= */

.dark .value-top {
    font-size: 30px;
    font-weight: 700;
    white-space: nowrap;
}

.dark .value-main {
    font-size: 26px;
    font-weight: 700;
    white-space: nowrap;
}

.dark .value-secondary {
    font-size: 22px;
    font-weight: 700;
    white-space: nowrap;
}

.dark .valueBig {
    font-size: 18px;
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}

.dark .valueSmall {
    font-size: 11px;
    text-align: right;
    white-space: nowrap;
}

/* =========================================================
    ACCENTS / COULEURS
    ========================================================= */

.dark .value-highlight {
    color: #1c8a9e;
}

.dark .value-positive {
    color: #2c7;
}

.dark .accentText {
    color: #1c8a9e;
}

/* =========================================================
    TITRES
    ========================================================= */

.dark .section-title {
    font-size: 32px;
    color: #1c8a9e;
    margin-bottom: 18px;
}

.dark .section-subtitle {
    font-size: 14px;
    margin-bottom: 12px;
}

.dark .step-title {
    font-size: 20px;
    margin: 18px 0 22px;
}

.dark .step-spaced {
    margin-top: 42px;
}

/* =========================================================
    TABLE REPORT
    ========================================================= */

.dark .reportTable {
    width: 100%;
    border-collapse: collapse;
}

    .dark .reportTable td {
        padding: 6px 8px;
        vertical-align: middle;
    }

.dark .reportTitle {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2px;
}

/* =========================================================
    LIGNES GRISEES (IMPORTANT)
    ========================================================= */

.dark .rowHighlight td {
    background: #eee;
}

/* ?? RESTAURATION DU BLEU DANS LES LIGNES GRISEES */
.dark .rowHighlight .labelBig,
.dark .rowHighlight .valueBig {
    color: #1c8a9e;
}

/* =========================================================
    SPACING
    ========================================================= */

.dark .spacer td {
    padding: 10px 8px;
}

.dark .footnote {
    margin-top: 56px;
    text-align: center;
    font-size: 12px;
}

/* =========================================================
    RESPONSIVE
    ========================================================= */

@media (max-width: 768px) {

    .dark .responsive-stack td {
        display: block;
        width: 100%;
        margin-bottom: 22px;
    }

    .dark .value-top {
        font-size: 30px;
    }

    .dark .value-main {
        font-size: 26px;
    }

    .dark .value-secondary {
        font-size: 22px;
    }

    .dark .valueBig,
    .dark .valueSmall {
        text-align: left;
    }

    .dark .step-title {
        margin: 16px 0;
    }

    .dark .step-spaced {
        margin-top: 32px;
    }

    .dark .footnote {
        margin-top: 44px;
    }
}
