    /* CAN 2025 Calendar - Namespace pour éviter les conflits Bootstrap */
    #calendar {
        overflow: hidden;
        width: 100%;
        max-width: 1024px;
        margin: auto;
        margin-bottom: 100px;
        margin-top: 50px;
        border-radius: 8px;
    }

    #calendar.view_group {
        box-shadow: -10px 10px 10px #aaa;
    }
    #calendar.view_stage {
        box-shadow: 10px 10px 10px #aaa;
    }

    #calendar * {
        transition: all .1s;
    }

    #calendar_header {
        display: flex;
        justify-content: center;
        text-align: center;
        background-color: #ecf0f1;
        color: #7E0000;
        font-size: 24px;
        font-weight: bold;
    }

    #calendar_header div {
        padding-top: 10px;
        padding-bottom: 10px;
        flex: 50%;
        border: 3px solid #ecf0f1;
        border-bottom: none;
        border-radius: 8px 8px 0 0;
    }

    #calendar_header div.selected {
        color: white;
        background-color: #7E0000;
        border-color: #7E0000;
    }

    #calendar_content {
        background-color: white;
        display: flex;
        justify-content: center;
        border-top: 3px solid #7E0000;
        overflow: hidden;
        border-radius: 0px 0px 8px 8px;
    }


    #calendar_body {
        flex: auto;
        text-align: center;
    }

    .groups:last-of-type .standing .country,
    .stages:last-of-type .standing .stage {
        flex-direction: row-reverse;
        text-align: right;
    }

    .groups,
    .stages {
        display: flex;
        flex-direction: column;
        background: linear-gradient(0deg, rgba(126,0,0, 1) 0%, rgba(139,24,26,1) 50%);
        color: white;
        /* flex: auto; */
    }

    .groups:last-of-type .standing:hover .country,
    .stages:last-of-type .standing:hover .stage {
        flex-direction: row;
    }


    .standing {
        width: fit-content;
        display: flex;
        flex-direction: column;
        width: 200px;
        overflow: hidden;
        cursor: pointer;
        border-radius: 4px 0px 0 4px;
    }

    .standing .country_stats {
        display: none;
        color: white
    }

    .standing:hover .country_stats {
        color: black
    }

    .standing:hover {
        width: 200px;
    }

    .country {
        display: flex;
        align-items: center;
        justify-content: left;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: "----";
        padding: 2px 4px;
        border-radius: 4px 0px 0 4px;
    }

    .stage {
        display: flex;
        align-items: center;
        justify-content: left;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: "----";
        padding: 2px 4px;
        border-radius: 4px 0px 0 4px;
    }

    /*
        .country:hover {
            background-color: white;
            color: #7E0000
        }*/

    .country_flag {
        display: none;
    }

    .country .country_flag img {
        width: 30px;
        height: 20px;
    }

    .country .country_name,
    .stage .stage_name {
        width: 150px;
    }

    .group {
        display: flex;
        justify-items: center;
        margin-left: 10px;
        border: 1px solid white;
        padding: 0;
        border-radius: 8px 0px 0 8px;
    }

    .group_name {
        text-align: center;
        font-size: 40px;
        width: 40px;
        padding-top: 20px;
        cursor: pointer;
        font-weight: bold;
    }

    .country_name {
        font-weight: bold;
    }
    .stage_name {
        font-weight: bold;
    }

    /* Matchs */
    #mobile_match_list div.modal-container h1,
    #calendar .container h1 {
        color: #8A1538;
        text-align: center;
    }

    .match {
        /* background-color: red; */
        margin: 20px auto;
        border-radius: 8px;
        width: 95%;
        overflow: hidden;
        /* box-shadow: 0 0 10px #aaa; */
        background-color: #f1f1f1;
    }

    .match .info {
        background-color: #eaeaea;
        padding: 6px 15px;
        display: flex;
        justify-content: space-between;
        color: #666;
    }

    .match .info span {
        flex: 10%;
        height: 20px;
        overflow: hidden;
        font-size: 9pt;
    }
    .match .info #date {
        flex: 18%;
     }
    .match .info #ville {
        flex: 18%;
     }   
    .match .info #groupe {
        flex: 14%;
     }        

    .match .info span:first-of-type {
        text-align: left;
    }

    .match .info span:last-of-type {
        text-align: right;
    }

    .match .score {
        padding: 4px;
        display: flex;
        justify-content: space-between;
        padding: 5px 10px;
        font-size: 8pt;
        width: 90%;
        margin: auto;
        font-size: 24px;
        font-weight: bold;
    }

    .score .away {
        text-align: right;
        flex: 60%;
    }

    .score .home {
        text-align: left;
        flex: 60%;
    }

    .score .result {
        flex: 40%;
    }

    /* Effects */
    .hovered {
        background-color: white !important;
        color: #7E0000 !important;
    }

    /* Dates */
    #dates {
        display: flex;
        flex-direction: column;
         background: linear-gradient(0deg, rgba(126,0,0, 1) 0%, rgba(139,24,26,1) 50%);
        padding: 0;
        margin: 0;
    }
    .stage_date,
    .date {
        flex: auto;
        text-decoration: none;
        color: white;
        padding: 4px 4px 4px 12px;
        text-align: right;
        margin-right: 4px;
        border-radius: 0px 4px 4px 0px;
        cursor: pointer;
    }
    #stades {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        background: linear-gradient(0deg, rgba(126,0,0, 1) 0%, rgba(139,24,26,1) 50%);
        padding: 15px 20px;
        margin: 0;
        border-radius: 0 0 8px 8px;
        box-shadow: inset 0 5px 10px rgba(0, 0, 0, 0.2);
    }   
        .stade_filter{
        display: flex;
        align-items: center;
        justify-content: center;
        text-decoration: none;
        color: white;
        margin: 8px 0;
        padding: 8px 5px;
        border-radius: 20px;
        cursor: pointer;
        background-color: rgba(255, 255, 255, 0.1);
        transition: all 0.3s ease;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
        width: calc(33.33% - 10px);
        text-align: center;
        flex-grow: 0;
        flex-shrink: 0;
    }
    
    .stade_filter:hover {
        background-color: rgba(255, 255, 255, 0.2);
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    }
    
    .stade_filter.hovered {
        background-color: white !important;
        color: #7E0000 !important;
        transform: translateY(-2px);
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    }
    
    .stade_filter span {
        font-weight: bold;
        font-size: 14px;
    }


    .stage_date span,
    .date span {
        display: block;
        font-weight: bold;
    }

    .stage_date span.day,
    .date span.day {
        font-size: 20px;
    }

    .stage_date.hovered,.date.hovered {
        background-color: white !important;
        color: #7E0000 !important;
        text-decoration: none;
    }

    #group_view,
    #stage_view {
        display: none;
    }

    #group_view.show,
    #stage_view.show {
        display: block;
    }

    #mobile_match_list {
        display: none;
        visibility: hidden;
        width: 100%;
        height: 100% !important;
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 999999;
        background-color: rgba(0, 0, 0, .5)
    }

    .show_list_mobile {
        display: none;
    }

    #mobile_match_list div.modal-container {
        margin-top: 120px;
        width: 95%;
        height: 400px;
        overflow-y: auto;
        max-width: 1204px;
        background-color: white;
        border-radius: 8px;
        visibility: hidden;
    }

    .match_is_live {
        /* color: #7E0000; */
        margin-right: 4px;
        animation-name: live_animation;
        animation-duration: 1s;
        animation-iteration-count: infinite;
        transition: all .5s;
    }

    @keyframes live_animation {
        0% {
            color: #9B0000;
        }

        50% {
            color: transparent;
        }

        100% {
            color: #9B0000;
        }
    }

    #calendar a {
        text-decoration: none;
        color: inherit;
    }

    #mobile_match_list .modal-container .fa-times-circle {
        position: absolute;
        top: 10px;
        right: 10px;
        color: #7E0000;
        font-size: 26px;
    }

    @media only screen and (max-width: 600px) {
        #calendar_body {
            display: none;
        }

        #calendar {
            width: 100%;
            max-width: 600px;
        }

            
        #calendar.view_group {
            box-shadow: 0px 0px 10px #aaa;
        }
        #calendar.view_stage {
            box-shadow: 0px 0px 10px #aaa;
        }

        .match .score {
            font-size: 18px;
        }

        #calendar_header {
            display: block;
        }

        .show_list_mobile {
            display: block !important;
        }

        #mobile_match_list {
            visibility: visible;
        }

        #mobile_match_list div.modal-container {
            visibility: visible;
            margin-top: 100px;
        }
        
        .stade_filter {
            width: calc(50% - 10px);
        }
    }
    
    @media only screen and (max-width: 400px) {
        .stade_filter {
            width: 100%;
        }
    }
    
    .group_view {
        display: none;
    }