/* Jory - Thème sombre propre et lisible */
:root[data-theme="dark"] {
    /* Base couleurs (inspiré slate) */
    --bs-body-bg: #0f172a; /* fond global */
    --bs-body-color: #e5e7eb; /* texte global */
    --bs-heading-color: #ffffff;
    --bs-border-color: #2f3949;
    --bs-secondary-bg: #0b1220;
    /* Couleurs de marque */
    --bs-primary: #4f46e5;
    --bs-primary-rgb: 79,70,229;
    /* Etats survol/focus */
    --j-focus-ring: rgba(79,70,229,.25);
    /* Champs (adoucis) */
    --j-ctrl-bg: #1d2432; /* fond champs */
    --j-ctrl-bg-focus: #242c3b; /* fond focus */
    --j-ctrl-text: #e7ecf4; /* texte */
    --j-ctrl-border: #2f3949; /* bordure */
    --j-ctrl-ph: #9aa4b2; /* placeholder */
}

    /* Corps, titres, liens */
    :root[data-theme="dark"] body {
        background-color: var(--bs-body-bg);
        color: var(--bs-body-color);
    }

    :root[data-theme="dark"] h1,
    :root[data-theme="dark"] h2,
    :root[data-theme="dark"] h3,
    :root[data-theme="dark"] h4,
    :root[data-theme="dark"] h5,
    :root[data-theme="dark"] h6 {
        color: var(--bs-heading-color);
    }

    :root[data-theme="dark"] a {
        color: #9ab9ff;
    }

        :root[data-theme="dark"] a:hover {
            color: #b7caff;
        }

    /* Sidebar */
    :root[data-theme="dark"] .sidebar {
        background: var(--bs-secondary-bg);
        border-right: 1px solid var(--bs-border-color);
    }

        :root[data-theme="dark"] .sidebar .nav-link {
            color: #cbd5e1;
        }

            :root[data-theme="dark"] .sidebar .nav-link:hover,
            :root[data-theme="dark"] .sidebar .nav-link.active {
                background: rgba(var(--bs-primary-rgb), .12);
                color: #fff;
                border-left: 3px solid var(--bs-primary);
            }

    /* Panels / Cards */
    :root[data-theme="dark"] .panel,
    :root[data-theme="dark"] .card {
        background: #0f182b;
        color: var(--bs-body-color);
        border: 1px solid var(--bs-border-color);
        border-radius: 12px;
    }

    :root[data-theme="dark"] .panel-header,
    :root[data-theme="dark"] .card-header {
        background: #0f182b;
        border-bottom: 1px solid var(--bs-border-color);
    }

    /* Listes / tableaux */
    :root[data-theme="dark"] .list-group-item,
    :root[data-theme="dark"] .table {
        background: #0f182b;
        color: var(--bs-body-color);
        border-color: var(--bs-border-color);
    }

    /* Modales */
    :root[data-theme="dark"] .modal-content {
        background-color: var(--bs-body-bg);
        color: var(--bs-body-color);
        border: 1px solid rgba(128,128,128,.2);
    }

    :root[data-theme="dark"] .modal-header,
    :root[data-theme="dark"] .modal-footer {
        border-color: rgba(128,128,128,.2);
    }

    :root[data-theme="dark"] .btn-close {
        filter: invert(1) grayscale(100%);
        opacity: .7;
    }

        :root[data-theme="dark"] .btn-close:hover {
            opacity: .95;
        }

    /* Boutons */
    :root[data-theme="dark"] .btn-primary {
        background-color: var(--bs-primary);
        border-color: var(--bs-primary);
    }

        :root[data-theme="dark"] .btn-primary:focus,
        :root[data-theme="dark"] .btn-primary:hover {
            filter: brightness(1.05);
            box-shadow: 0 0 0 .25rem var(--j-focus-ring);
        }

    :root[data-theme="dark"] .btn-outline-secondary {
        color: #e2e8f0;
        border-color: var(--bs-border-color);
    }

        :root[data-theme="dark"] .btn-outline-secondary:hover {
            background: #1d2432;
            border-color: var(--bs-border-color);
        }

    /* Champs de formulaire (inputs/textarea/select) */
    :root[data-theme="dark"] .form-control,
    :root[data-theme="dark"] textarea.form-control,
    :root[data-theme="dark"] select.form-select {
        background-color: var(--j-ctrl-bg) !important;
        color: var(--j-ctrl-text) !important;
        border-color: var(--j-ctrl-border) !important;
    }

        :root[data-theme="dark"] .form-control:focus,
        :root[data-theme="dark"] select.form-select:focus,
        :root[data-theme="dark"] textarea.form-control:focus {
            background-color: var(--j-ctrl-bg-focus) !important;
            color: var(--j-ctrl-text) !important;
            border-color: var(--bs-primary) !important;
            box-shadow: 0 0 0 .25rem var(--j-focus-ring) !important;
        }

        :root[data-theme="dark"] .form-control::placeholder,
        :root[data-theme="dark"] textarea.form-control::placeholder {
            color: var(--j-ctrl-ph) !important;
            opacity: 1;
        }

    /* Groupes d'inputs */
    :root[data-theme="dark"] .input-group-text {
        background-color: var(--j-ctrl-bg-focus) !important;
        color: var(--j-ctrl-text) !important;
        border-color: var(--j-ctrl-border) !important;
    }

    /* File input (bouton + zone) */
    :root[data-theme="dark"] input[type="file"].form-control {
        background-color: var(--j-ctrl-bg) !important;
        color: var(--j-ctrl-text) !important;
        border-color: var(--j-ctrl-border) !important;
    }

        :root[data-theme="dark"] input[type="file"].form-control::file-selector-button {
            color: var(--j-ctrl-text);
            background-color: var(--j-ctrl-bg-focus);
            border: 1px solid var(--j-ctrl-border);
            margin-right: .75rem;
            border-radius: .375rem;
            padding: .375rem .75rem;
        }

        :root[data-theme="dark"] input[type="file"].form-control:hover::file-selector-button {
            background-color: #2b3545;
        }

    /* Cases à cocher / radios */
    :root[data-theme="dark"] .form-check-input {
        background-color: var(--j-ctrl-bg);
        border-color: var(--j-ctrl-border);
    }

        :root[data-theme="dark"] .form-check-input:checked {
            background-color: var(--bs-primary);
            border-color: var(--bs-primary);
        }

        :root[data-theme="dark"] .form-check-input:focus {
            box-shadow: 0 0 0 .25rem var(--j-focus-ring);
            border-color: var(--bs-primary);
        }

    /* Sélecteurs multiples (Tom Select) */
    :root[data-theme="dark"] .ts-control,
    :root[data-theme="dark"] .ts-dropdown {
        background: var(--j-ctrl-bg);
        color: var(--j-ctrl-text);
        border-color: var(--j-ctrl-border);
    }

        :root[data-theme="dark"] .ts-dropdown .option:hover,
        :root[data-theme="dark"] .ts-dropdown .active {
            background: var(--j-ctrl-bg-focus);
        }

    /* Alerts */
    :root[data-theme="dark"] .alert {
        background-color: #0f182b;
        color: var(--bs-body-color);
        border: 1px solid var(--bs-border-color);
    }

    :root[data-theme="dark"] .alert-info {
        border-color: #2563eb33;
        background: #0f182b;
    }

    :root[data-theme="dark"] .alert-success {
        border-color: #16a34a33;
    }

    :root[data-theme="dark"] .alert-danger {
        border-color: #ef444433;
    }

    :root[data-theme="dark"] .alert-warning {
        border-color: #f59e0b33;
    }

    /* Barre de recherche (emails) */
    :root[data-theme="dark"] .input-group .form-control {
        background: var(--j-ctrl-bg);
        border-color: var(--j-ctrl-border);
    }

    /* Editeur (composer “Nouveau mail”) */
    :root[data-theme="dark"] .compose-modal .toolbar {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        padding: 8px;
        background: rgba(127,127,127,.06);
        border: 1px solid var(--j-ctrl-border);
        border-radius: 8px;
    }

        :root[data-theme="dark"] .compose-modal .toolbar .btn {
            color: var(--j-ctrl-text);
            border-color: var(--j-ctrl-border);
            border-radius: 8px;
            padding: 6px 10px;
        }

            :root[data-theme="dark"] .compose-modal .toolbar .btn:hover {
                background: var(--j-ctrl-bg-focus);
            }

    :root[data-theme="dark"] .compose-modal .editor {
        min-height: 260px;
        padding: 12px 14px;
        background: var(--j-ctrl-bg);
        color: var(--j-ctrl-text);
        border: 1px solid var(--j-ctrl-border);
        border-radius: 10px;
        line-height: 1.5;
        outline: none;
        transition: border-color .15s ease, box-shadow .15s ease;
    }

        :root[data-theme="dark"] .compose-modal .editor:focus {
            border-color: var(--bs-primary);
            box-shadow: 0 0 0 3px var(--j-focus-ring);
        }

        :root[data-theme="dark"] .compose-modal .editor:empty:before {
            content: attr(data-placeholder);
            color: var(--j-ctrl-ph);
        }

    /* Autofill (Chrome) sur fond sombre */
    :root[data-theme="dark"] input:-webkit-autofill,
    :root[data-theme="dark"] textarea:-webkit-autofill,
    :root[data-theme="dark"] select:-webkit-autofill {
        -webkit-text-fill-color: var(--j-ctrl-text);
        -webkit-box-shadow: 0 0 0px 1000px var(--j-ctrl-bg) inset;
        transition: background-color 5000s ease-in-out 0s;
    }
