/* ============================================== */
/* 1. Variables et Styles de Base                 */
/* ============================================== */
:root {
    --couleur-primaire: #007bff; /* Bleu Agence Dahabi */
    --couleur-secondaire: #f8f9fa; /* Gris clair */
    --couleur-texte: #333;
    --couleur-titre: #1f2d3d;
    --largeur-menu: 250px;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    margin: 0;
    padding: 0;
    background-color: var(--couleur-secondaire);
    color: var(--couleur-texte);
}

h1, h2, h3 {
    color: var(--couleur-titre);
    font-weight: 600;
}

/* ============================================== */
/* 2. Mise en page Principale (Wrapper & Content) */
/* ============================================== */
.wrapper {
    display: flex; /* Active Flexbox pour la mise en page principale */
    min-height: 100vh;
}

.main-content {
    flex-grow: 1; /* Prend l'espace restant */
    padding: 30px;
    background-color: white; /* Fond blanc pour le contenu pour contraster avec le body */
}

/* ============================================== */
/* 3. Menu de Navigation (Sidebar)                */
/* ============================================== */
.sidebar {
    width: var(--largeur-menu);
    background-color: var(--couleur-primaire);
    color: white;
    padding: 20px 0;
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.15);
    flex-shrink: 0;
}

.sidebar h2 {
    text-align: center;
    margin-bottom: 30px;
    font-size: 1.8rem;
    color: white;
    padding: 0 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    padding-bottom: 15px;
}

.sidebar ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sidebar ul li a {
    display: flex;
    align-items: center;
    padding: 15px 20px;
    text-decoration: none;
    color: white;
    transition: background-color 0.3s, border-left 0.3s;
    border-left: 5px solid transparent;
}

.sidebar ul li a:hover, 
.sidebar ul li a.active {
    background-color: #0056b3; /* Bleu plus foncé au survol/actif */
    border-left: 5px solid #ffc107; /* Bande jaune pour l'élément actif */
}

/* ============================================== */
/* 4. Cartes et Widgets (Dashboard)               */
/* ============================================== */
.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 25px;
    margin-top: 20px;
}

.card {
    background-color: white;
    padding: 25px;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s;
    border-top: 5px solid var(--couleur-primaire);
}

.card:hover {
    transform: translateY(-5px);
}

.card-title {
    font-size: 1.2rem;
    color: var(--couleur-titre);
    margin-top: 0;
}

.card-value {
    font-size: 2.5rem;
    font-weight: bold;
    color: var(--couleur-primaire);
    margin: 10px 0 0;
}

/* ============================================== */
/* 5. Messages et Alertes                         */
/* ============================================== */
.alert-danger { 
    color: #721c24; 
    background-color: #f8d7da; 
    border: 1px solid #f5c6cb; 
    padding: 15px; 
    border-radius: 4px; 
    margin-bottom: 20px; 
}
.alert-info { 
    color: #0c5460; 
    background-color: #d1ecf1; 
    border: 1px solid #bee5eb; 
    padding: 15px; 
    border-radius: 4px; 
    margin-bottom: 20px; 
}

/* ============================================== */
/* 6. Responsive pour Mobile                      */
/* ============================================== */
@media (max-width: 768px) {
    .wrapper {
        flex-direction: column; /* Empile les éléments en colonne */
    }

    .sidebar {
        width: 100%; /* Le menu prend toute la largeur en haut */
        padding: 10px 0;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
        position: static; 
        z-index: 1000;
    }

    .sidebar h2 {
        display: none; /* Cache le titre sur mobile */
    }

    .sidebar ul {
        display: flex; /* Met les liens en ligne */
        flex-wrap: wrap; 
        justify-content: space-around;
    }

    .sidebar ul li {
        flex-basis: 45%; /* Environ la moitié de la largeur */
        text-align: center;
        margin: 5px 0;
    }
    
    .sidebar ul li a {
        padding: 10px 5px;
        border-left: none;
        border-bottom: 3px solid transparent;
        justify-content: center; /* Centre le texte */
    }
    .sidebar ul li a:hover, .sidebar ul li a.active {
        border-left: none;
        border-bottom: 3px solid #ffc107;
    }
    
    .main-content {
        padding: 20px 15px;
    }
    
    .dashboard-grid {
        grid-template-columns: 1fr; /* Une seule colonne sur mobile */
    }
}