/*
 * Surcharges RTL pour AdminLTE 3.
 *
 * Chargée UNIQUEMENT pour une locale droite-à-gauche (voir partials/rtl.blade.php),
 * après adminlte.min.css et bootstrap-rtl.min.css.
 *
 * bootstrap-rtl gère déjà les utilitaires Bootstrap (float, text-align, marges mx/ml/mr,
 * input-group, custom-control...). Ce fichier ne traite que ce qui est propre à AdminLTE.
 *
 * ─── Pourquoi `!important` sur les marges de mise en page ──────────────────────
 * AdminLTE pilote TOUTE la mise en page via `margin-left` sur .content-wrapper /
 * .main-header / .main-footer, avec des sélecteurs très spécifiques, par exemple :
 *
 *   body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper
 *
 * soit une spécificité (0,4,1), et certaines règles sont déjà en `!important`
 * (`.sidebar-mini.sidebar-collapse .content-wrapper{margin-left:4.6rem!important}`).
 * Un simple `html[dir='rtl'] .content-wrapper` (0,2,1) perd donc l'arbitrage : le
 * `margin-left` d'origine survit, s'ajoute au `margin-right` RTL, et ampute la page
 * de 250px à gauche. On neutralise explicitement `margin-left` avant de le refléter.
 *
 * ─── Points de rupture (repris tels quels d'AdminLTE) ─────────────────────────
 *   ≥ 992px      sidebar visible, le contenu est décalé (250px, ou 4.6rem replié)
 *   ≤ 991.98px   plus de gouttière : la sidebar passe AU-DESSUS du contenu
 *   ≤ 767.98px   sidebar hors écran, ramenée par la classe `sidebar-open`
 */

html[dir='rtl'] body {
    direction: rtl;
    text-align: right;
}

/* ================================================================== *
 * Mise en page : sidebar à droite, contenu sur toute la largeur restante
 * ================================================================== */

html[dir='rtl'] .main-sidebar {
    right: 0;
    left: auto;
}

@media (min-width: 992px) {
    /* Sidebar déployée. */
    html[dir='rtl'] .content-wrapper,
    html[dir='rtl'] .main-header,
    html[dir='rtl'] .main-footer {
        margin-left: 0 !important;
        margin-right: 250px !important;
    }

    /* Sidebar repliée : il ne reste que la bande d'icônes. */
    html[dir='rtl'] body.sidebar-collapse .content-wrapper,
    html[dir='rtl'] body.sidebar-collapse .main-header,
    html[dir='rtl'] body.sidebar-collapse .main-footer {
        margin-left: 0 !important;
        margin-right: 4.6rem !important;
    }

    /* Repli d'une sidebar non-« mini » : elle sort par la droite. */
    html[dir='rtl'] body.sidebar-collapse:not(.sidebar-mini) .main-sidebar,
    html[dir='rtl'] body.sidebar-collapse:not(.sidebar-mini) .main-sidebar::before {
        margin-left: 0 !important;
        margin-right: -250px;
    }
}

@media (max-width: 991.98px) {
    /* Tablette : le contenu prend toute la largeur, la sidebar le recouvre. */
    html[dir='rtl'] .content-wrapper,
    html[dir='rtl'] .main-header,
    html[dir='rtl'] .main-footer {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

@media (max-width: 767.98px) {
    /* Mobile : sidebar hors écran à droite. */
    html[dir='rtl'] .main-sidebar,
    html[dir='rtl'] .main-sidebar::before {
        margin-left: 0 !important;
        margin-right: -250px;
    }

    html[dir='rtl'] body.sidebar-open .main-sidebar,
    html[dir='rtl'] body.sidebar-open .main-sidebar::before {
        margin-right: 0;
    }
}

/* ================================================================== *
 * Navigation de la sidebar
 * ================================================================== */

html[dir='rtl'] .brand-link .brand-image {
    margin-left: .5rem;
    margin-right: .8rem;
}

html[dir='rtl'] .nav-sidebar .nav-link p {
    margin-right: 0;
}

html[dir='rtl'] .nav-sidebar > .nav-item .nav-icon {
    margin-left: .2rem;
    margin-right: 0;
}

/* Chevron des sous-menus : à gauche, pointant dans le sens de lecture. */
html[dir='rtl'] .nav-sidebar .nav-link > .right,
html[dir='rtl'] .nav-sidebar .nav-link > p > .right {
    left: 1rem;
    right: auto;
    transform: rotate(180deg);
}

html[dir='rtl'] .nav-sidebar .menu-open > .nav-link > .right,
html[dir='rtl'] .nav-sidebar .menu-open > .nav-link > p > .right {
    transform: rotate(-90deg);
}

html[dir='rtl'] .nav-treeview {
    padding-right: 1rem;
    padding-left: 0;
}

/* Liseré de sélection (app-custom.css) : le bord d'attaque passe à droite. */
html[dir='rtl'] .main-sidebar[class*='sidebar-dark-'] .nav-sidebar > .nav-item > .nav-link.active {
    box-shadow: inset -3px 0 0 rgba(255, 255, 255, .55);
}

/* `inset -3px` peint la bande sur le bord DROIT (l'offset décale le rectangle
 * d'ombre vers la gauche, la bande apparaît du côté opposé). */
html[dir='rtl'] .main-sidebar[class*='sidebar-dark-'] .nav-sidebar .nav-treeview > .nav-item > .nav-link.active,
html[dir='rtl'] .main-sidebar[class*='sidebar-dark-'] .nav-sidebar .nav-treeview > .nav-item > .nav-link.active:hover,
html[dir='rtl'] .main-sidebar[class*='sidebar-dark-'] .nav-sidebar .nav-treeview > .nav-item > .nav-link.active:focus {
    box-shadow: inset -3px 0 0 #007bff !important;
}

html[dir='rtl'] .user-panel .info {
    padding-right: 5px;
    padding-left: 0;
}

/* ================================================================== *
 * Composants AdminLTE
 * ================================================================== */

/* small-box : l'icône décorative passe à gauche. */
html[dir='rtl'] .small-box .icon {
    left: 10px;
    right: auto;
}

html[dir='rtl'] .small-box:hover .icon {
    left: 5px;
    right: auto;
}

html[dir='rtl'] .small-box > .small-box-footer {
    text-align: center;
}

html[dir='rtl'] .info-box .info-box-icon {
    border-radius: 0 .25rem .25rem 0;
}

html[dir='rtl'] .info-box .info-box-content {
    margin-right: 0;
    padding: 0 10px 0 0;
}

/* Cartes : titre à droite, outils (replier/fermer) à gauche.
 * Uniquement sur les en-têtes NON flex — en flex, c'est l'ordre des items qui
 * décide, et un float y serait ignoré (cf. app-custom.css). */
html[dir='rtl'] .card-header:not(.d-flex) .card-title {
    float: right;
}

html[dir='rtl'] .card-tools {
    float: left;
    margin-left: -.625rem;
    margin-right: 0;
}

/* Fil d'Ariane */
html[dir='rtl'] .breadcrumb-item + .breadcrumb-item {
    padding-right: .5rem;
    padding-left: 0;
}

html[dir='rtl'] .breadcrumb-item + .breadcrumb-item::before {
    padding-right: 0;
    padding-left: .5rem;
}

/* Menus déroulants de la navbar. */
html[dir='rtl'] .navbar-nav .dropdown-menu {
    right: 0;
    left: auto;
    text-align: right;
}

html[dir='rtl'] .navbar-nav .dropdown-menu-right {
    right: auto;
    left: 0;
}

/* ================================================================== *
 * DataTables
 * ================================================================== */

html[dir='rtl'] .dataTables_wrapper .dataTables_length,
html[dir='rtl'] .dataTables_wrapper .dataTables_info {
    float: right;
}

html[dir='rtl'] .dataTables_wrapper .dataTables_filter,
html[dir='rtl'] .dataTables_wrapper .dataTables_paginate {
    float: left;
}

html[dir='rtl'] .dataTables_wrapper .dataTables_filter {
    text-align: left;
}

html[dir='rtl'] .dataTables_wrapper .dataTables_filter input {
    margin-right: .5em;
    margin-left: 0;
}

html[dir='rtl'] table.dataTable thead th {
    text-align: right;
}

/* Flèches de tri : positionnées en `right` par dataTables.bootstrap4. */
html[dir='rtl'] table.dataTable thead .sorting::before,
html[dir='rtl'] table.dataTable thead .sorting::after,
html[dir='rtl'] table.dataTable thead .sorting_asc::before,
html[dir='rtl'] table.dataTable thead .sorting_asc::after,
html[dir='rtl'] table.dataTable thead .sorting_desc::before,
html[dir='rtl'] table.dataTable thead .sorting_desc::after {
    left: .5em;
    right: auto;
}
