/* ========================================
   OPTIMISATIONS MENU MOBILE
   Corrections pour améliorer le comportement tactile
   ======================================== */

/* Prévenir le zoom sur double-tap pour tous les éléments interactifs du menu */
.sidebar .nav-link,
.btn-menu,
.btn-close-sidebar,
.sidebar-overlay {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

/* Optimisations tactiles pour les liens de navigation */
.sidebar .nav-link {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

/* Amélioration de la zone de clic sur mobile */
@media (max-width: 768px) {
    .sidebar .nav-link {
        min-height: 48px; /* Minimum recommandé pour le tactile */
        display: flex;
        align-items: center;
    }
    
    .btn-menu {
        min-height: 44px;
        min-width: 44px;
    }
    
    .btn-close-sidebar {
        min-height: 48px;
        min-width: 48px;
    }
}

@media (max-width: 576px) {
    .sidebar .nav-link {
        min-height: 44px;
    }
    
    .btn-menu {
        min-height: 40px;
        min-width: 40px;
    }
    
    .btn-close-sidebar {
        min-height: 44px;
        min-width: 44px;
    }
}

/* Désactiver les effets hover sur les appareils tactiles */
@media (hover: none) and (pointer: coarse) {
    /* Remplacer hover par active sur tactile */
    .sidebar .nav-link:hover {
        transform: none;
        background: linear-gradient(90deg, 
            rgba(255, 255, 255, 0.05) 0%,
            rgba(255, 255, 255, 0.02) 100%
        );
    }
    
    .sidebar .nav-link:active {
        transform: translateX(6px) scale(0.98);
        background: linear-gradient(90deg, 
            rgba(255, 255, 255, 0.25) 0%,
            rgba(255, 255, 255, 0.18) 100%
        ) !important;
        transition: all 0.1s ease;
    }
    
    .sidebar .nav-link.active:active {
        transform: translateX(8px) scale(0.98);
    }
    
    /* Bouton menu tactile */
    .btn-menu:hover {
        transform: none;
    }
    
    .btn-menu:active {
        transform: scale(0.95);
        transition: all 0.1s ease;
    }
    
    /* Overlay - désactiver le curseur pointer */
    .sidebar-overlay {
        cursor: default;
    }
    
    /* Bouton fermeture tactile */
    .btn-close-sidebar:hover {
        transform: none;
    }
    
    .btn-close-sidebar:active {
        transform: scale(0.9) rotate(90deg);
        transition: all 0.1s ease;
    }
    
    /* Icônes - simplifier les effets sur mobile */
    .sidebar .nav-link:hover .bi {
        transform: none;
    }
    
    .sidebar .nav-link:active .bi {
        transform: scale(1.05);
    }
    
    /* Catégories - simplifier sur tactile */
    .sidebar .list-group-item:hover {
        transform: none;
    }
    
    .sidebar .list-group-item:active {
        transform: translateX(4px) scale(0.99);
        transition: all 0.1s ease;
    }
}

/* Empêcher le scroll du body de manière plus robuste */
body.menu-open {
    overflow: hidden !important;
    position: fixed !important;
    width: 100% !important;
    height: 100vh !important;
}

/* Support spécifique pour iOS Safari */
@supports (-webkit-touch-callout: none) {
    body.menu-open {
        position: fixed !important;
        overflow: hidden !important;
        width: 100% !important;
        height: 100vh !important;
        -webkit-overflow-scrolling: touch;
    }
    
    .sidebar .nav-scrollable {
        -webkit-overflow-scrolling: touch;
        overflow-y: auto;
        overscroll-behavior: contain;
    }
}

/* Améliorer le scrolling sur mobile */
.sidebar .nav-scrollable {
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
}

/* Éviter les problèmes de sélection de texte sur mobile */
.sidebar * {
    -webkit-touch-callout: none;
}

/* Permettre la sélection uniquement pour le texte des liens */
.sidebar .nav-link span:not(.bi) {
    -webkit-touch-callout: default;
}

/* Feedback visuel instantané sur tactile */
@media (hover: none) {
    .sidebar .nav-link:active {
        opacity: 0.8;
    }
    
    .btn-menu:active {
        opacity: 0.9;
    }
    
    .btn-close-sidebar:active {
        opacity: 0.8;
    }
}

/* Prévenir les problèmes de double-tap to zoom */
button, a {
    touch-action: manipulation;
}

/* Amélioration de la performance sur mobile */
.sidebar,
.sidebar-overlay,
.btn-close-sidebar {
    will-change: transform, opacity;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* Optimisation de la transition pour mobile */
@media (max-width: 768px) {
    .sidebar {
        transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }
    
    .sidebar-overlay {
        animation-duration: 0.3s;
    }
}

/* Fix pour le gap entre overlay et sidebar sur certains mobiles */
@media (max-width: 768px) {
    .sidebar-overlay {
        left: 0 !important;
        width: 100% !important;
    }
}

/* Amélioration du bouton de fermeture sur petits écrans */
@media (max-width: 400px) {
    .btn-close-sidebar {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
}

/* Garantir que les clics fonctionnent bien */
.sidebar .nav-link,
.btn-menu,
.btn-close-sidebar,
.sidebar-overlay {
    pointer-events: auto;
    cursor: pointer;
}

/* Fix pour les appareils avec notch (iPhone X+) */
@supports (padding: max(0px)) {
    .sidebar {
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
    }
    
    .sidebar .nav-scrollable {
        padding-bottom: calc(1rem + env(safe-area-inset-bottom));
    }
}
