/* ====================================
    VARIABLES & COULEURS
    ==================================== */
:root {
    /* Couleurs du logo/Accent */
    --color-lime: #8BC34A;
    --color-lime-dark: #689F38;
    --color-teal-dark: #004D40;
    
    /* Couleurs de l'environnement */
    --color-bg-body: #294F51;
    --color-card-bg: #FFFFFF;
    --color-header-footer: #F1F4F0;
    --color-item-bg: #E3E7E1;
    --color-text-dark: #111111;
    --color-text-subtle: #666666;
    --color-delete: #F44336;
    
    /* Géométrie & Effets */
    --radius: 15px; /* MODIFIÉ : 15px pour un arrondi visible sur le logo et les blocs */
    --transition-fast: 0.25s;
    --shadow-pop: 0 10px 40px rgba(0,0,0,0.7);
}

/* ====================================
    0. GLOBAL & WRAPPER
    ==================================== */
body {
    font-family: 'Poppins', sans-serif;
    background: var(--color-bg-body);
    color: var(--color-text-dark);
    line-height: 1.6;
    margin: 0;
}

#site-wrapper {
    max-width: 1000px;
    margin: 0 auto;
    background: var(--color-card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow-pop);
    overflow: hidden;
    padding: 0;
}

#appContent {
    padding: 0px 30px 30px 30px;
}

/* ====================================
    1. HEADER & NAVIGATION
    ==================================== */
header {
    background: var(--color-header-footer);
    /* Maintien du padding réduit */
    padding: 10px 0 10px 0; 
    border-bottom: 3px solid var(--color-lime);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header-compact-inner {
    padding-left: 30px; 
}

.header-compact-inner .logo-img {
    /* CONSERVÉ : Taille d'origine */
    width: auto;
    height: auto;
    /* CORRIGÉ AVEC PRIORITÉ MAXIMALE : Arrondi désormais à 15px */
    border-radius: var(--radius) !important; 
    object-fit: initial;
    /* Rétablissement de l'ombre légère */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
							  display: block;
}

h1 {
    font-size: 2.2rem;
    color: var(--color-teal-dark);
    font-weight: 700;
}

/* --- STYLES DE NAVIGATION --- */
#mainNav ul {
    list-style: none;
    padding: 0 30px 0 0; 
    margin: 0;
    display: flex;
    gap: 10px;
    align-items: center;
}

#mainNav a {
    color: var(--color-teal-dark);
    text-decoration: none;
    font-weight: 600;
    padding: 8px 12px;
    border-radius: 6px;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

#mainNav a:hover {
    background-color: var(--color-item-bg);
    color: var(--color-teal-dark);
}

/* BOUTON DÉCONNEXION STYLISÉ */
.logout a {
    background: var(--color-delete);
    color: #FFFFFF !important;
    font-weight: 700 !important;
    padding: 8px 15px !important;
    border-radius: 50px !important;
    box-shadow: 0 4px 6px rgba(244, 67, 54, 0.4);
}

.logout a:hover {
    background: #D32F2F;
    transform: translateY(-1px);
    box-shadow: 0 6px 8px rgba(244, 67, 54, 0.5);
}

/* BOUTON INSCRIPTION STYLISÉ */
.action-button a {
    background: var(--color-lime);
    color: var(--color-teal-dark) !important;
    font-weight: 700 !important;
    padding: 8px 15px !important;
    border-radius: 50px !important;
    box-shadow: 0 4px 6px rgba(139, 195, 74, 0.4);
}
.action-button a:hover {
    background: var(--color-lime-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 8px rgba(139, 195, 74, 0.5);
}

.menu-toggle {
    display: none; /* Masqué sur PC */
}

/* ====================================
    2. CELLULES DE CONTENU INTERNES
    ==================================== */
.app-section {
    background: var(--color-header-footer);
    padding: 25px;
    margin-bottom: 25px;
    border-radius: var(--radius);
    box-shadow: 0 5px 15px rgba(0,0,0,0.08);
}

.lime-section {
    background: var(--color-lime);
    color: var(--color-teal-dark);
    padding: 25px;
    margin-bottom: 25px;
    border-radius: var(--radius);
    box-shadow: 0 5px 15px rgba(139, 195, 74, 0.5);
    border: 2px solid var(--color-teal-dark);
}
.lime-section h2, .lime-section h3, .lime-section p, .lime-section li, .lime-section a {
    color: var(--color-teal-dark) !important;
}
.lime-section h2 {
    border-bottom-color: var(--color-teal-dark) !important;
}

/* ====================================
    3. TYPOGRAPHIE & ÉLÉMENTS SPÉCIFIQUES
    ==================================== */
h2 {
    color: var(--color-teal-dark);
    font-weight: 700;
    font-size: 1.6rem;
    border-bottom: 2px solid var(--color-lime);
    padding-bottom: 5px;
    margin-bottom: 25px;
}

/* Mise en forme des groupes d'items de la checklist */
.checklist-section {
    background: var(--color-item-bg);
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 15px;
    border: 1px solid #D0D0D0;
}
.checklist-section h3 {
    color: var(--color-teal-dark);
    font-weight: 600;
    font-size: 1.3rem;
    border-left: 5px solid var(--color-lime);
    padding-left: 10px;
    margin-top: 0;
}

/* Ligne d'item (utilise flexbox pour l'alignement) */
.checklist-item-full {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    border-top: 1px solid #D0D0D0;
}
.checklist-item-full:first-child { border-top: none; }

/* Correction pour le bouton "Modifier" qui doit être lisible sur fond vert */
.checklist-item-full a, .checklist-item-full button, .btn-edit {
    background-color: var(--color-lime);
    color: var(--color-teal-dark) !important;
    padding: 8px 12px;
    border-radius: 5px;
    font-weight: 600;
    border: none;
    text-decoration: none;
    transition: background-color 0.2s;
}
.checklist-item-full a:hover, .checklist-item-full button:hover, .btn-edit:hover {
    background-color: var(--color-lime-dark);
}

/* Checkbox (Personnalisé) */
input[type="checkbox"] {
    width: 24px; height: 24px; border: 2px solid var(--color-teal-dark); background: var(--color-card-bg); border-radius: 6px; cursor: pointer; position: relative; appearance: none; -webkit-appearance: none; margin-right: 15px;
}
input[type="checkbox"]:checked { background: var(--color-lime); border-color: var(--color-lime); }
input[type="checkbox"]:checked::after { content: ""; position: absolute; left: 7px; top: 3px; width: 6px; height: 12px; border: solid var(--color-teal-dark); border-width: 0 3px 3px 0; transform: rotate(45deg); }

/* Bouton Supprimer */
.btn-remove {
    background: var(--color-delete);
    color: #fff;
    padding: 8px 12px;
    border-radius: 5px;
    font-weight: 600;
    border: none;
    cursor: pointer;
}

/* Correction des boutons verts qui restent blancs */
/* Exclusion de la classe .delete-link pour garantir que son texte reste blanc */
#appContent a.btn-primary,
#appContent a.btn-edit,
#appContent button.btn-edit,
#appContent a:not(.menu a):not(.delete-link) {
    color: var(--color-teal-dark) !important;
}

/* ====================================
    3.1. STYLES SPÉCIFIQUES À L'INDEX (Cartes Sportives)
    ==================================== */
.sport-list-container {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-top: 15px;
}

.btn-primary {
    background-color: var(--color-lime);
    color: var(--color-teal-dark) !important;
    display: inline-block;
    padding: 15px 30px;
    text-decoration: none;
    border-radius: var(--radius);
    font-size: 1.2em;
    font-weight: 700;
    transition: all var(--transition-fast);
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.btn-primary:hover {
    background-color: var(--color-lime-dark);
    transform: translateY(-2px);
}

.sport-card {
    border: 1px solid var(--color-item-bg);
    background: var(--color-card-bg);
    padding: 15px;
    text-align: center;
    text-decoration: none;
    color: var(--color-text-dark);
    border-radius: var(--radius);
    transition: all var(--transition-fast);
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    flex-grow: 1;
    min-width: 100px;
}
.sport-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    border-color: var(--color-lime);
}

.sport-card img {
    display: block;
    margin: 0 auto;
    filter: drop-shadow(0 2px 2px rgba(0,0,0,0.1));
}

.sport-card p {
    margin-top: 10px;
    font-size: 1em;
    font-weight: 600;
    color: var(--color-teal-dark);
}

.sport-card.popular {
    width: calc(33.33% - 15px);
    max-width: 230px;
    padding: 20px;
}
.sport-card.popular img {
    width: 50px;  height: 50px;
}
.sport-card.all {
    width: calc(20% - 15px);
    max-width: 130px;
    padding: 10px;
}
.sport-card.all img {
    width: 40px;  height: 40px;
}

/* ====================================
    4. FOOTER
    ==================================== */
#mainFooter {
    background: var(--color-header-footer);
    color: var(--color-teal-dark);
    padding: 20px 30px;
    border-top: 2px solid var(--color-lime);
    text-align: center;
    border-radius: 0 0 var(--radius) var(--radius);
    font-size: 0.9rem;
}
.footer-links a {
    color: var(--color-teal-dark);
    text-decoration: none;
}
.footer-links a:hover {
    color: var(--color-lime) !important;
}

/* ====================================
    8. STYLES SPÉCIFIQUES AUX ÉVÉNEMENTS (EVENTS.PHP)
    ==================================== */
.country-selection {
    text-align: center !important;
    margin-bottom: 40px !important;
    padding: 20px !important;
    border-bottom: 1px solid #eee !important;
    
    /* RÈGLES CRITIQUES POUR L'ALIGNEMENT CÔTE À CÔTE */
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 50px !important;
}

.flag-button {
    flex: 0 0 auto !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 10px !important;
    border: 2px solid transparent !important;
    border-radius: 8px !important;
    transition: border-color 0.2s, box-shadow 0.2s;
    text-align: center !important;
}
.flag-button:hover {
    border-color: var(--color-lime) !important;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.1) !important;
}

.flag-button img {
    width: 80px !important;
    height: 60px !important;
    display: block !important;
    margin: 0 auto 5px auto !important;
    border: 1px solid #ddd !important;
    box-sizing: content-box !important;
}
.flag-button p {
    margin: 0 !important;
    font-weight: bold !important;
    color: #333 !important;
    font-size: 0.9em !important;
}

.events-content-container {
    min-height: 500px;
    padding: 20px;
    border: 1px solid #e0e0e0;
    border-radius: var(--radius);
    background-color: #f9f9f9;
}


/* ====================================
    5. RÉPONSIVITÉ (AGRESSIVE)
    ==================================== */
@media (max-width: 768px) {
    #site-wrapper {
        margin: 0;
        border-radius: 0;
        max-width: 100%;
    }
    
    /* Les paddings des autres blocs sont conservés */
    #appContent, #mainFooter {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    
    /* Le HEADER doit gérer l'alignement de son contenu (logo + burger) */
    header {
        /* FORCE le comportement mobile: tout en colonne */
        flex-direction: column !important; 
        align-items: flex-start !important;
        /* Maintien du padding réduit pour mobile */
        padding: 5px 15px 5px 15px !important; 
        width: 100% !important;
    }
    
    /* Le header-compact-inner contient le logo et le burger côte à côte */
    .header-compact-inner {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        padding: 0 !important;  
    }

    /* CORRECTION 1 : Le logo avec style forcé en mobile */
    .header-compact-inner .logo-img {
        /* CONSERVÉ : Taille d'origine */
        width: auto !important;
        height: auto !important;
        /* CORRIGÉ AVEC PRIORITÉ MAXIMALE : Arrondi désormais à 15px */
        border-radius: var(--radius) !important;
        object-fit: initial !important;
        /* Rétablissement de l'ombre légère */
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
    }

    /* CORRECTION 2 : Forcer l'affichage et le style du menu burger */
    .menu-toggle {
        display: block !important;
        font-size: 2.2rem !important;  
        cursor: pointer !important;
        line-height: 1 !important;
        color: var(--color-teal-dark) !important;
        z-index: 1000 !important;
        padding: 5px !important;  
        background: none !important;
        border: none !important;
    }
    
    /* CORRECTION 3 : Cacher la navigation par défaut et la positionner */
    #mainNav {
        display: none !important; /* FORCER le masquage de la navigation */
        position: absolute !important;
        /* Maintien de la position ajustée pour mobile */
        top: 40px !important; 
        left: 0 !important;
        width: 100% !important;
        background: var(--color-header-footer) !important;
        box-shadow: 0 10px 15px rgba(0,0,0,0.1) !important;
        z-index: 999 !important;
        padding: 10px 0 !important;  
    }

    /* Règle essentielle : Afficher la navigation lorsque le JavaScript ajoute la classe 'active' */
    #mainNav.active {
        display: block !important;
    }
    
    /* Le menu en colonnes sur mobile */
    #mainNav ul {
        flex-direction: column !important;
        width: 100% !important;
        margin-top: 5px !important;
        gap: 0 !important;
        padding: 0 15px 10px 15px !important;  
    }
    #mainNav li {
        width: 100% !important;
        text-align: left !important;  
        border-bottom: 1px solid #E0E0E0 !important;  
        padding: 5px 0 !important;
    }
    #mainNav li:last-child {
        border-bottom: none !important;
    }
    #mainNav a {
        padding: 12px 10px !important;  
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    /* Style pour les boutons d'action sur mobile */
    .action-button, .logout {
          text-align: left !important;
    }
    .action-button a, .logout a {
        text-align: center !important;  
        display: inline-block !important;  
        width: auto !important;  
        margin: 10px 0 !important;  
    }

    /* Autres règles responsive */
    .menu {
        flex-direction: column !important;
        width: 100% !important;
        margin-top: 10px !important;
    }
    .menu button {
        width: 100% !important;
    }
    .sport-card.popular, .sport-card.all {
        width: calc(50% - 10px) !important;
        max-width: 100% !important;
    }

    /* Réduit l'espace entre les drapeaux sur petit écran */
    .country-selection {
        gap: 20px !important;
    }
}