:root {
    /* Couleurs */
    --couleur-fond-page: #f8f9fa;
    --couleur-fond-carte: #fff;
    --couleur-fond-bouton: #f0f0f0;
    --couleur-fond-bouton-hover: #e0e0e0;
    --couleur-bandeau-uqam: #A0206C;
/* --couleur-bandeau-uqam: #D6D5D5;*/

    --couleur-texte-principal: #555;
    --couleur-texte-secondaire: #6c757d;
    --couleur-texte-sombre: #333;
    --couleur-texte-inverse: white;

    --couleur-bordure-legere: #eee;
    --couleur-bordure-standard: #e0e0e0;
    --couleur-bordure-bouton: #ccc;
    --couleur-bordure-bouton-hover: #bbb;

    /* Rayons de bordure */
    --rayon-bordure-principal: 8px;
    --rayon-bordure-secondaire: 5px;

    /* Tailles de police */
    --taille-h1: 1.2em;
    --taille-h2: 1.4rem;
    --taille-h3-bloc: 1.2em;
    --taille-h3-carte: 1.1em;
    --taille-texte-normal: 1em;
    --taille-texte-petit: 0.9em;
    --taille-texte-tres-petit: 0.8em;
    --taille-texte-secondaire: 0.85em;

    /* Espacements */
    --marge-bloc-principal: 2.5rem;
    --marge-standard: 1rem;
    --marge-demi: 0.5rem;
    --espacement-double: 20px;
    --espacement-intermediaire: 15px;
    --espacement-standard: 10px;
    --espacement-petit: 5px;

    /* Variable pour l'espacement entre les sections */
    --espacement-vertical-section: 1.5rem;
}

body {
    background-color: var(--couleur-fond-page);
}

.top-banner {
    background-color: var(--couleur-bandeau-uqam);
    padding: 22px 0;
    width: 100%;
}

.container-logo {
    max-width: 1300px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.logo {
    height: 28px;
    width: auto;
    display: block;
    max-width: 100%;
}

/* Règle pour le contenu principal de la page */
.container-fluid {
    max-width: 1300px;
    margin-left: auto;
    margin-right: auto;
    margin-top: var(--espacement-vertical-section);
}

/* Applique l'espacement uniforme en bas des sections */
#all-filters-container,
.summary-container {
    margin-bottom: var(--espacement-vertical-section);
}

.title-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--espacement-vertical-section);
}

h1 {
    font-weight: bold;
    color: var(--couleur-texte-principal);
    margin: 0;
    font-size: var(--taille-h1);
}

.title-container .btn {
    font-size: inherit;
    font-weight: bold;
    text-transform: none;
}

/* MODIFIÉ : Retour à la taille de police originale */
#session-year-btn {
    font-size: 1.2em !important;
    font-weight: bold !important;
}

.time-block {
    margin-bottom: var(--marge-bloc-principal);
}

.time-block h2 {
    font-weight: bold;
    color: var(--couleur-texte-principal);
    margin-bottom: var(--marge-standard);
    padding-bottom: var(--marge-demi);
    border-bottom: 2px solid var(--couleur-bordure-legere);
}

.schedule-row {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--espacement-standard);
}

.schedule-row.day-view {
    grid-template-columns: repeat(3, 1fr);
}

.day-slot {
    background-color: var(--couleur-fond-carte);
    border: 1px solid var(--couleur-bordure-standard);
    border-radius: var(--rayon-bordure-principal);
    padding: var(--espacement-double) var(--espacement-standard);
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.day-slot h3 {
    font-weight: bold;
    color: var(--couleur-texte-principal);
    font-size: var(--taille-h3-bloc);
    margin-top: 0;
    margin-bottom: var(--espacement-intermediaire);
}

.course {
    position: relative;
    margin-bottom: var(--espacement-intermediaire);
    padding: var(--espacement-intermediaire);
    border-radius: var(--rayon-bordure-principal);
    color: var(--couleur-texte-inverse);
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    border: 2px solid transparent;
}

.course-top-line {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--marge-demi);
    margin-bottom: var(--espacement-petit);
}

.time-label {
    display: inline-block;
    padding: 4px var(--espacement-standard);
    background-color: rgba(255, 255, 255, 0.2);
    border-radius: var(--rayon-bordure-secondaire);
    font-size: var(--taille-texte-petit);
    font-weight: bold;
    white-space: nowrap;
}

.course-label {
    background-color: var(--couleur-texte-principal);
    color: var(--couleur-texte-inverse);
    padding: 3px 8px;
    border-radius: var(--rayon-bordure-secondaire);
    font-size: var(--taille-texte-tres-petit);
    font-weight: bold;
    margin-left: auto;
}

.course h3, .course p {
    margin: 0;
    padding: 0;
    text-shadow: 0 1px 2px rgba(0,0,0,0.2);
}

.course h3 {
    margin-bottom: 3px;
    font-size: var(--taille-h3-carte);
    color: var(--couleur-texte-inverse);
    font-weight: bold;
}

.course > p {
    margin-bottom: 6px;
}

.course p {
    font-size: var(--taille-texte-petit);
    line-height: 1.3;
}

.course p a {
    color: inherit;
    text-decoration: none;
}

.course p a:hover {
    text-decoration: underline;
}

.course-local {
    font-weight: bold;
    margin-top: 6px;
}

.course .excursion-label {
    background-color: var(--couleur-fond-carte);
    display: inline-block;
    padding: 4px var(--espacement-standard);
    border-radius: var(--rayon-bordure-secondaire);
    margin-top: 4px;
    margin-bottom: 6px;
    font-weight: bold;
    text-shadow: none;
    font-size: var(--taille-texte-secondaire);
}

#selection-summary {
    font-size: var(--taille-texte-petit);
    color: var(--couleur-texte-secondaire);
    margin-bottom: 0.25rem;
    font-style: normal !important;
}

#selection-summary a {
    color: var(--couleur-texte-principal);
    text-decoration: none;
    font-weight: 500;
}
#selection-summary a:hover {
    text-decoration: underline;
}

#legend-container {
    margin-top: var(--marge-standard);
}

#legend-container .badge {
    font-size: var(--taille-texte-tres-petit);
    font-weight: 500;
    padding: 0.5em 0.75em;
    text-shadow: 0 1px 2px rgba(0,0,0,0.2);
    margin-right: var(--espacement-petit);
    margin-bottom: var(--espacement-petit);
}

#legend-container a.badge {
    color: var(--couleur-texte-inverse);
    text-decoration: none;
}

#legend-container a.badge:hover {
    text-decoration: underline;
}

.app-footer {
    text-align: center;
    padding: var(--espacement-double) 0;
    margin-top: 40px;
    font-size: var(--taille-texte-secondaire);
    color: var(--couleur-texte-secondaire);
}

.app-footer p { margin: 0; }
.app-footer a { color: inherit; text-decoration: underline; }
.app-footer a:hover { text-decoration: none; }

#desktop-filters .btn.btn-light,
#mobile-filter .btn.btn-light {
    font-weight: normal;
    background-color: var(--couleur-fond-bouton);
    color: var(--couleur-texte-sombre);
    border-color: var(--couleur-bordure-bouton);
}

#desktop-filters .btn.btn-light:hover,
#mobile-filter .btn.light:hover {
    background-color: var(--couleur-fond-bouton-hover);
    border-color: var(--couleur-bordure-bouton-hover);
}

.dropdown-menu .form-check-label {
    font-weight: normal;
}


@media (max-width: 767px) {
    .schedule-row {
        grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
        gap: var(--espacement-petit);
    }
    .day-slot { padding: var(--espacement-petit); }
    .course { padding: var(--espacement-petit); margin-bottom: var(--espacement-petit); }
    .course-top-line { margin-bottom: var(--espacement-petit); }
    .course > p { margin-bottom: 3px; }
    .course p { font-size: var(--taille-texte-tres-petit); line-height: 1.2; }
    .course .excursion-label { font-size: var(--taille-texte-tres-petit); }
    
    .time-label { font-size: 0.75em; padding: 3px 6px; }
    .course-label { font-size: 0.7em; padding: 2px 5px; width: fit-content; }

    .course h3 {
        font-size: 1em;
        margin-bottom: 4px;
    }

    .top-banner .container-logo {
        display: flex;
        justify-content: center;
    }

    .top-banner .logo {
        max-width: 95%;
        height: auto;
    }
}

/* ======================================= */
/* STYLES POUR L'EXPORT PDF                */
/* ======================================= */
.pdf-export #schedule-container { font-size: 8pt; }
.pdf-export .schedule-row { grid-template-columns: repeat(5, 1fr) !important; gap: 3px; }
.pdf-export .time-block { padding-top: var(--marge-demi); page-break-inside: avoid; }
.pdf-export .time-block h2 { font-size: var(--taille-h2); margin-bottom: var(--marge-demi); border-bottom: none; }
.pdf-export .day-slot > h3 { font-size: 1.4em; margin-bottom: var(--espacement-standard); text-align: center; }
.pdf-export .day-slot { border: none; padding: var(--espacement-petit); }
.pdf-export .course { padding: 6px; margin-bottom: var(--espacement-petit); border-radius: 4px; }
.pdf-export .course-top-line { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.pdf-export .course-top-line h3 { flex-grow: 1; text-align: left; margin: 0 var(--marge-demi); }
.pdf-export .course p { font-size: var(--taille-texte-normal); line-height: 1.2; }
.pdf-export .course .excursion-label { margin-top: 3px; margin-bottom: 3px; }

.pdf-export .time-label,
.pdf-export .course-label,
.pdf-export .excursion-label { 
    font-size: var(--taille-texte-petit); 
    padding: 2px 4px; 
    border-radius: 3px; 
}

.pdf-export .course-local {
    font-weight: bold;
}

.pdf-export .time-block:last-child { page-break-after: avoid; }