/* Styles généraux du corps pour une meilleure visualisation */
main {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Conteneur principal du calendrier */
.calendrier {
    width: 100%;
    max-width: 1200px; /* Limite la largeur pour les grands écrans */
    border-collapse: collapse; /* Supprime l'espace entre les cellules */
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden; /* Assure que le border-radius s'applique */
}

/* Titre du calendrier (Mois Année) */
.calendrier__titre {
    font-size: 1.8em;
    font-weight: bold;
    text-align: center;
    padding: 20px;
    background-color: #007bff; /* Bleu primaire */
    color: #fff;
    border-bottom: 1px solid #dee2e6;
    caption-side: top; /* Positionne la légende en haut */
}

/* En-tête du calendrier (jours de la semaine) */
.calendrier__entete {
    background-color: #e9ecef; /* Gris clair */
}

.calendrier__jour {
    text-align: center;
    padding: 15px 10px;
    font-weight: bold;
    color: #495057;
    text-transform: uppercase;
    font-size: 0.9em;
    border: 1px solid #dee2e6;
}

/* Corps du calendrier (les jours du mois) */
.calendrier__corps {
    background-color: #fff;
}

.calendrier__semaine {
    display: table-row; /* Assure que les lignes se comportent comme des lignes de tableau */
}

.calendrier__case {
    text-align: center;
    padding: 10px;
    height: 100px; /* Hauteur fixe pour chaque case */
    vertical-align: top; /* Aligne le contenu en haut de la case */
    border: 1px solid #dee2e6;
    position: relative; /* Pour positionner le numéro et le contenu */
    box-sizing: border-box; /* Inclure le padding et la bordure dans la hauteur */
}

/* Numéro du jour */
.calendrier__numero {
    font-size: 1.2em;
    font-weight: bold;
    color: #343a40;
    text-align: right; /* Aligne le numéro en haut à droite */
    padding-right: 5px;
    padding-top: 5px;
}

/* Contenu de la case (pour les événements, etc.) */
.calendrier__contenu {
    font-size: 0.85em;
    color: #6c757d;
    margin-top: 5px;
    text-align: left; /* Aligne le contenu à gauche */
    padding-left: 5px;
    overflow: hidden; /* Masque le contenu qui dépasse */
    text-overflow: ellipsis; /* Ajoute des points de suspension si le texte est trop long */
    max-height: 50px; /* Limite la hauteur du contenu */
}

/* Style pour la case du jour actuel */
.calendrier__case--aujourdhui {
    background-color: #d1ecf1; /* Bleu clair pour le jour actuel */
    border: 2px solid #007bff;
    box-shadow: 0 0 8px rgba(0, 123, 255, 0.3);
}

.calendrier__case--aujourdhui .calendrier__numero {
    color: #007bff;
}

/* Style pour les jours vides (hors mois) */
.calendrier__case:has(.calendrier__numero:empty) {
    background-color: #f8f9fa; /* Gris très clair pour les cases vides */
    color: #ced4da;
}

/* Media Queries pour la responsivité */
@media (max-width: 768px) {
    .calendrier {
        border-radius: 0;
        box-shadow: none;
    }

    .calendrier__titre {
        font-size: 1.5em;
        padding: 15px;
    }

    .calendrier__jour {
        font-size: 0.8em;
        padding: 10px 5px;
    }

    .calendrier__case {
        height: 80px; /* Réduit la hauteur des cases sur mobile */
        padding: 5px;
    }

    .calendrier__numero {
        font-size: 1em;
        padding-right: 3px;
        padding-top: 3px;
    }

    .calendrier__contenu {
        font-size: 0.75em;
        max-height: 40px;
    }
}

@media (max-width: 480px) {
    .calendrier__jour {
        font-size: 0.7em;
        padding: 8px 3px;
    }

    .calendrier__case {
        height: 60px; /* Encore plus petit sur les très petits écrans */
        padding: 3px;
    }

    .calendrier__numero {
        font-size: 0.9em;
    }

    .calendrier__contenu {
        font-size: 0.7em;
        max-height: 30px;
    }
}