/* =========================================
   MODULE ADMIN (BACKOFFICE)
   ========================================= */

/* --- CARTES STATISTIQUES (WIDGETS) --- */
.stat-card {
    background: #fff;
    border-radius: var(--card-radius);
    padding: 25px 20px;
    border: 1px solid #f0f0f0;
    box-shadow: var(--shadow-sm);
    transition: transform 0.2s;
    position: relative;
    overflow: hidden;
    height: 100%;
}

.stat-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}

.stat-card h3 {
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 5px;
    color: var(--dark-text);
}

.stat-card h6 {
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 1px;
    color: #6c757d;
    margin-bottom: 0;
}

.stat-icon {
    position: absolute;
    right: 20px;
    top: 20px;
    opacity: 0.1;
    font-size: 3rem;
    transform: rotate(-15deg);
}

/* Variantes de couleurs */
.stat-primary { border-left: 5px solid var(--primary-color); }
.stat-primary .stat-icon { color: var(--primary-color); }

.stat-success { border-left: 5px solid var(--success-color); }
.stat-success .stat-icon { color: var(--success-color); }

.stat-warning { border-left: 5px solid var(--warning-color); }
.stat-warning .stat-icon { color: var(--warning-color); }

.stat-dark { border-left: 5px solid #212529; }
.stat-dark .stat-icon { color: #212529; }

/* --- TABLEAUX ADMIN SPECIFIQUES --- */
.admin-actions .btn {
    padding: 5px 10px;
    font-size: 0.85rem;
}

/* Badges Statuts */
.badge-pending { background: #fff3cd; color: #856404; border: 1px solid #ffeeba; }
.badge-active { background: #d1e7dd; color: #0f5132; border: 1px solid #badbcc; }
.badge-banned { background: #f8d7da; color: #842029; border: 1px solid #f5c2c7; }

/* --- SIDEBAR ADMIN (RESPONSIVE) --- */
.sidebar-onepay {
    background: #fff;
    /* Sur mobile, on enlève le padding par défaut car géré par offcanvas-body */
    padding: 0; 
}

/* Style des liens (inchangé pour le look) */
.sidebar-onepay .nav-link {
    color: #6c757d;
    font-weight: 500;
    padding: 12px 15px;
    border-radius: 10px;
    margin-bottom: 5px;
    transition: all 0.2s;
}

.sidebar-onepay .nav-link:hover {
    background-color: #f8f9fa;
    color: var(--primary-color);
}

.sidebar-onepay .nav-link.active {
    background-color: rgba(13, 110, 253, 0.1);
    color: var(--primary-color);
    font-weight: 700;
}

.sidebar-onepay .nav-link i {
    width: 25px;
    text-align: center;
}

/* === LOGIQUE RESPONSIVE IMPORTANTE === */
/* Uniquement sur Grand Écran (PC) */
@media (min-width: 992px) {
    .sidebar-onepay {
        width: 280px;            /* Largeur fixe sur PC */
        height: 100vh;           /* Hauteur totale */
        position: sticky;        /* Reste collé en haut */
        top: 0;
        border-right: 1px solid #eee;
        display: block !important; /* Force l'affichage sur PC */
        overflow-y: auto;        /* Scroll si le menu est trop long */
    }
}

/* --- FILTRE DASHBOARD --- */
.dashboard-filter {
    background: #fff;
    padding: 10px 15px;
    border-radius: 50px;
    border: 1px solid #e0e0e0;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: var(--shadow-sm);
}

.dashboard-filter input[type="date"] {
    border: none;
    background: transparent;
    font-weight: 600;
    color: var(--primary-color);
    font-size: 0.9rem;
}
.dashboard-filter input[type="date"]:focus { outline: none; }

/* Nouvelle couleur pour remplacer le Noir/Dark */
.stat-info { border-left: 5px solid #0dcaf0; } /* Cyan / Bleu ciel */
.stat-info .stat-icon { color: #0dcaf0; }

/* ... (votre code actuel reste ici) ... */

/* =========================================
   NOUVEAU : MODULE PUBLICITÉ (MAPS)
   ========================================= */

/* Conteneur de la carte Leaflet */
#map {
    height: 350px;
    width: 100%;
    z-index: 1; /* Important pour que le menu ne passe pas dessous */
    background-color: #f8f9fa; /* Fond gris pendant le chargement */
}

/* Petit effet de survol sur les boutons d'action */
.hover-scale:hover { 
    transform: translateY(-2px); 
    transition: transform 0.2s; 
}

/* Style spécifique pour le slider de rayon */
.form-range::-webkit-slider-thumb {
    background: var(--primary-color);
}

/* =======================================================
   PATCH LAYOUT ADMIN : FORCE LE PLEIN ÉCRAN
   ======================================================= */

/* 1. Force le contenu (et le menu) à prendre toute la largeur */
.container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 2. Supprime l'espace blanc en haut de l'écran */
html, body {
    padding-top: 0 !important;
    margin-top: 0 !important;
    overflow-x: hidden;
}

/* 3. Colle la barre de navigation si nécessaire */
.navbar {
    margin-bottom: 0 !important;
}

/* =========================================
   NOUVEAU : MODULE PUBLICITÉ (MAPS)
   ========================================= */

/* Conteneur de la carte Leaflet */
#map {
    height: 350px;
    width: 100%;
    z-index: 1; 
    background-color: #f8f9fa;
}

/* Style spécifique pour le slider de rayon */
.form-range::-webkit-slider-thumb {
    background: var(--primary-color);
}

/* Effet sur le bouton */
.hover-scale:hover { 
    transform: translateY(-2px); 
    transition: transform 0.2s; 
}

/* --- FIX POUR LE MENU LATÉRAL (SIDEBAR) --- */

/* Sur ordinateur (écran large) */
@media (min-width: 992px) {
    /* On décale le contenu principal vers la droite pour laisser la place au menu */
    body.logged-in {
        padding-left: 280px;
    }

    /* On fixe le menu à gauche pour qu'il ne bouge pas */
    .sidebar-onepay {
        width: 280px;
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        z-index: 100;
        overflow-y: auto; /* Permet de scroller dans le menu si trop long */
    }
}

/* Sur mobile (écran petit) : Le menu est géré par le bouton (Offcanvas), pas de décalage */
@media (max-width: 991.98px) {
    body.logged-in {
        padding-left: 0;
    }
}