/**
 * Correctifs globaux pour les problèmes d'interface
 * - Modals Bootstrap/Livewire
 * - Sidebar mobile
 * - Z-index conflicts
 */

/* ==========================================
   CORRECTIF: Modals Livewire avec Bootstrap
   ========================================== */

/* S'assurer que les modals Livewire sont au-dessus de tout */
.modal.fade.show {
    z-index: 1055 !important;
}

/* Backdrop des modals */
.modal-backdrop {
    z-index: 1050 !important;
}

/* S'assurer que le contenu du modal est cliquable */
.modal-content {
    pointer-events: auto !important;
}

/* Fix pour les modals imbriqués */
.modal .modal {
    z-index: 1060 !important;
}

/* ==========================================
   CORRECTIF: Sidebar Mobile AdminLTE
   ========================================== */

/* S'assurer que le sidebar-overlay ne bloque pas les clics sur le sidebar */
.sidebar-overlay {
    z-index: 999 !important;
}

/* Le sidebar doit être au-dessus de son overlay */
.main-sidebar {
    z-index: 1000 !important;
}

/* Sur mobile, s'assurer que les liens du sidebar sont cliquables */
@media (max-width: 991.98px) {
    /* Quand le sidebar est ouvert */
    .sidebar-open .main-sidebar {
        z-index: 1040 !important;
        pointer-events: auto !important;
    }
    
    .sidebar-open .main-sidebar .nav-link,
    .sidebar-open .main-sidebar .nav-treeview .nav-link,
    .sidebar-open .main-sidebar a {
        pointer-events: auto !important;
        cursor: pointer !important;
    }
    
    /* S'assurer que l'overlay est derrière le sidebar mais au-dessus du contenu */
    .sidebar-open .sidebar-overlay {
        z-index: 1030 !important;
        pointer-events: auto !important;
    }
    
    /* S'assurer que le wrapper ne bloque pas les clics */
    .sidebar-open .wrapper {
        overflow: visible !important;
    }
    
    /* Fix pour les sous-menus sur mobile */
    .sidebar-open .nav-treeview {
        pointer-events: auto !important;
    }
    
    /* Fix pour les dropdowns dans le sidebar */
    .sidebar-open .dropdown-menu {
        z-index: 1045 !important;
    }
}

/* ==========================================
   CORRECTIF: Boutons de fermeture modals
   ========================================== */

/* Style unifié pour les boutons close */
.btn-close,
button[class*="close"],
.modal-header button[type="button"] {
    cursor: pointer !important;
    pointer-events: auto !important;
}

/* Fix pour les boutons dans les footers de modal */
.modal-footer button,
.modal-footer .btn {
    pointer-events: auto !important;
    cursor: pointer !important;
}

/* ==========================================
   CORRECTIF: Wire loading states
   ========================================== */

/* Pendant le chargement Livewire, garder les modals visibles */
[wire\:loading] .modal {
    display: block !important;
}

/* Indicateur de chargement sur les boutons */
[wire\:loading][wire\:target] {
    pointer-events: none;
    opacity: 0.7;
}

/* ==========================================
   CORRECTIF: Z-index hierarchy
   ========================================== */

/* Hiérarchie claire des z-index */
:root {
    --z-sidebar-overlay: 1030;
    --z-sidebar: 1040;
    --z-modal-backdrop: 1050;
    --z-modal: 1055;
    --z-modal-nested: 1060;
    --z-tooltip: 1070;
    --z-popover: 1080;
}

/* ==========================================
   CORRECTIF: Scroll body quand modal ouvert
   ========================================== */

/* Empêcher le scroll du body quand un modal est ouvert */
body.modal-open {
    overflow: hidden !important;
    padding-right: 0 !important;
}

/* Mais permettre le scroll dans le modal */
.modal {
    overflow-y: auto !important;
}

.modal-body {
    overflow-y: auto;
    max-height: calc(100vh - 200px);
}

/* ==========================================
   CORRECTIF: Focus trap
   ========================================== */

/* S'assurer que les éléments focusables dans les modals fonctionnent */
.modal input,
.modal select,
.modal textarea,
.modal button,
.modal a {
    pointer-events: auto !important;
}

/* ==========================================
   CORRECTIF: AdminLTE specific
   ========================================== */

/* Fix pour le control-sidebar d'AdminLTE */
.control-sidebar {
    z-index: 1035 !important;
}

/* Fix pour le pushmenu */
.sidebar-mini.sidebar-collapse .main-sidebar:hover {
    z-index: 1040 !important;
}

/* ==========================================
   CORRECTIF: Transitions
   ========================================== */

/* Désactiver les transitions problématiques sur mobile */
@media (max-width: 767.98px) {
    .modal.fade {
        transition: none !important;
    }
    
    .modal.fade .modal-dialog {
        transition: none !important;
        transform: none !important;
    }
}
