/* static/css/style.css */
/* static/css/style.css */

/* Définition des variables de couleurs (optionnel, mais pratique pour personnaliser) */
:root {
    /* Couleurs inspirées de Bootstrap par défaut, mais vous pouvez les changer */
    --bs-primary: #0d6efd; /* Bleu Bootstrap */
    --bs-secondary: #6c757d; /* Gris Bootstrap */
    --bs-light: #f8f9fa;
    --bs-dark: #212529;
    --bs-info: #0dcaf0;
    --bs-success: #198754;
    --bs-warning: #ffc107;
    --bs-danger: #dc3545;

    /* Vous pouvez définir vos propres couleurs ici */
    --na-blue: #003f7d; /* Un bleu plus foncé type NA */
    --na-gold: #daa520; /* Un doré type NA */

    /* Taille de police de base */
    --bs-body-font-size: 1rem; /* 16px par défaut */
    --bs-body-line-height: 1.6;
}

/* Appliquer la police Inter à tout le corps */
body {
    font-family: 'Inter', sans-serif;
    font-size: var(--bs-body-font-size);
    line-height: var(--bs-body-line-height);
    background-color: #f8f9fa; /* Fond légèrement gris */
    display: flex; /* Pour pousser le footer en bas */
    flex-direction: column; /* Pour pousser le footer en bas */
    min-height: 100vh; /* Pour pousser le footer en bas */
}

main {
    flex: 1; /* Pour pousser le footer en bas */
}


/* --- Barre de Navigation --- */
.navbar {
    /* Utilisez une variable pour la couleur si vous voulez la changer facilement */
    background-color: var(--na-blue); /* Avoid !important by removing conflicting bg-primary class */
}

.navbar-brand {
    font-weight: 700; /* Police plus grasse pour la marque */
    font-size: 1.4rem;
}

.nav-link {
    transition: color 0.2s ease-in-out;
    font-weight: 500;
}

.nav-link:hover, .nav-link.active {
    color: var(--na-gold) !important; /* Couleur de survol/active */
}


/* --- Styles pour la carte --- */
#map {
    height: 500px; /* Hauteur de la carte */
    width: 100%;   /* Prend toute la largeur disponible */
    border-radius: 0.375rem; /* Correspond aux bordures Bootstrap */
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); /* Ombre légère Bootstrap */
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}

/* Amélioration des popups Leaflet */
.leaflet-popup-content-wrapper {
    border-radius: 0.375rem; /* Coins arrondis */
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.1);
}

.leaflet-popup-content {
    font-size: 0.9rem; /* Taille de police légèrement réduite pour popup */
    line-height: 1.5;
}

.leaflet-popup-content b, .leaflet-popup-content strong {
    font-weight: 600;
    color: var(--na-blue); /* Titre du groupe en couleur */
}
.leaflet-popup-content i.bi {
    margin-right: 5px; /* Espace avant l'icône */
    color: var(--bs-secondary); /* Icônes en gris */
}

/* Styles pour le Spiderfier */
.oms-leg-pin {
    opacity: 0.8;
    transition: opacity 0.2s;
}

.oms-leg-pin:hover {
    opacity: 1;
}

/* Style pour les marqueurs pendant le spiderfier */
.leaflet-marker-icon.spiderfied {
    transition: all 0.3s ease;
}

/* Ajuster le popup lorsqu'il est ouvert via spiderfier */
.leaflet-popup.spiderfied-popup {
    margin-top: -10px;
}

/* --- Styles pour le Calendrier --- */
#calendar {
    max-width: 1100px; /* Largeur maximale du calendrier */
    margin: 2.5rem auto; /* Centrer le calendrier avec de la marge */
    background-color: white; /* Fond blanc */
    padding: 1.5rem; /* Espace intérieur */
    border-radius: 0.375rem; /* Coins arrondis */
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1); /* Ombre plus marquée */
}

/* Personnalisation des événements FullCalendar */
.fc-event {
    border: none !important; 
    background-color: var(--na-blue) !important; 
    color: white !important; 
    padding: 4px 6px;
    font-size: 0.85rem; /* Default font size for events */
    cursor: pointer;
    line-height: 1.3; /* Adjust line height for better text fit */
    overflow: hidden; /* Hide overflow text */
    text-overflow: ellipsis; /* Add ellipsis for overflow text */
}

.fc-event:hover {
    background-color: #002f5e !important; /* Assombrir au survol */
}

/* For month view, ensure text doesn't wrap too much */
.fc-daygrid-event .fc-event-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* For timegrid views, allow a bit more flexibility but still control overflow */
.fc-timegrid-event .fc-event-main {
    overflow: hidden;
}
.fc-timegrid-event .fc-event-title {
     white-space: normal; /* Allow title to wrap if needed */
}

/* Style pour la modal (si besoin de surcharger Bootstrap) */
#eventModal .modal-header {
    background-color: var(--na-blue);
    color: white;
}
#eventModal .modal-title {
    font-weight: 600;
    color: white;
}
#eventModal .modal-body p {
    margin-bottom: 0.75rem;
}
#eventModal .modal-body i.bi {
    margin-right: 8px;
    color: var(--na-blue);
    width: 1.2em; /* Aligner les icônes */
}

/* Increase vertical size of each time slot in timeGrid view for better readability */
.fc-timegrid-slot {
    height: 4.5rem; /* Default is ~2em; increase to give more vertical space */
}

/* Allow event titles to wrap (more readable with larger slots) */
.fc-timegrid-event .fc-event-main {
    white-space: normal;
}

/* Slightly increase min-height of timegrid events so they fill the slot better */
.fc-timegrid-event {
    min-height: 2.2rem;
}


/* --- Styles pour les filtres --- */
.filter-button-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem; /* Space between buttons */
    margin-bottom: 1rem;
}

.filter-button-group .btn {
    border-radius: 20px; /* Rounded buttons */
    display: flex;
    align-items: center;
    transition: all 0.2s;
}

.filter-button-group .btn i {
    margin-right: 0.35rem;
}

.filter-button-group .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.filter-button-group .btn.active {
    background-color: var(--na-blue);
    color: white;
    border-color: var(--na-blue);
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

/* Badge pour indiquer le nombre de résultats */
.filter-badge {
    position: absolute;
    top: -5px;
    right: -5px;
    font-size: 0.7rem;
    padding: 0.2rem 0.4rem;
    border-radius: 50%;
    background: var(--bs-primary);
    color: white;
}


/* --- Styles pour les notifications --- */
.notification-bell {
    position: relative;
    top: 3px; /* Ajuster la cloche plus bas */
}

.notification-bell .bi-bell {
    font-size: 1.3rem;
}

/* Animation pulse pour nouvelles notifications */
@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}

.pulse {
    animation: pulse 2s infinite;
}

/* Badge de notification */
.notification-badge {
    font-size: 0.65rem !important;
    padding: 0.2rem 0.35rem !important;
    min-width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Dropdown des notifications */
.notifications-dropdown {
    min-width: 320px !important;
    max-height: 450px;
    overflow-y: auto;
}

.notification-item {
    border-bottom: 1px solid #f0f0f0;
    transition: background-color 0.2s;
    padding: 12px 16px !important;
}

.notification-item:hover {
    background-color: #f8f9fa;
}

.notification-item.unread {
    background-color: #e8f4fd;
    border-left: 3px solid #0d6efd;
}

.notification-item.read {
    opacity: 0.8;
    border-left: 3px solid transparent;
}

/* Notification message with change details */
.notification-item .notification-message {
    font-size: 0.85rem;
    color: #495057;
    white-space: pre-line;
    line-height: 1.4;
    margin-top: 4px;
}

.notification-item .notification-message .change-arrow {
    color: #0d6efd;
    font-weight: 600;
}

/* Notification type badges */
.notification-type-badge {
    font-size: 0.7rem;
    padding: 2px 6px;
    border-radius: 3px;
    margin-left: 8px;
    font-weight: 500;
}

.notification-type-badge.format {
    background-color: #e7f3ff;
    color: #0d6efd;
}

.notification-type-badge.schedule {
    background-color: #fff3cd;
    color: #856404;
}

.notification-type-badge.address {
    background-color: #d4edda;
    color: #155724;
}

.notification-type-badge.vacancy {
    background-color: #f8d7da;
    color: #721c24;
}

.notification-type-badge.anniversary {
    background-color: #fff3cd;
    color: #856404;
}

/* Icon colors by type */
.notification-item .bi-tag-fill { color: #0d6efd; }
.notification-item .bi-clock-fill { color: #ffc107; }
.notification-item .bi-geo-alt-fill { color: #28a745; }
.notification-item .bi-person-plus-fill { color: #dc3545; }
.notification-item .bi-star-fill { color: #ffc107; }
.notification-item .bi-people-fill { color: #6f42c1; }
.notification-item .bi-pencil-square { color: #17a2b8; }

/* Bouton pour voir les notifications récentes */
.show-recent-btn {
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    transition: all 0.2s;
}

.show-recent-btn:hover {
    background-color: #e9ecef;
}

/* --- Fix pour le bouton anniversaires dans Info RSG --- */
.btn-anniversaires,
.btn-anniversaires:hover,
.btn-anniversaires:focus,
.btn-anniversaires:active {
    background-color: white !important;
    color: black !important;
    border-color: white !important;
}

.btn-anniversaires i,
.btn-anniversaires span,
.btn-anniversaires:hover i,
.btn-anniversaires:hover span {
    color: black !important;
}

/* --- Info RSG: lisibilité et largeur garanties sur mobile --- */
.info-rsg-page,
.info-rsg-page * {
    min-width: 0;
}

.info-rsg-page .card {
    overflow: visible;
}

.info-rsg-page .card:hover {
    transform: none;
}

.info-rsg-page :where(h1, h2, h3, h4, h5, h6, p, li, td, th, .alert, .btn, .list-group-item) {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.info-rsg-topbar,
.info-rsg-card-header-actions,
.info-rsg-event-row {
    gap: 0.75rem;
}

.info-rsg-event-main {
    min-width: 0;
}

.info-rsg-event-status {
    flex: 0 0 auto;
}

.info-rsg-quick-links .btn {
    white-space: normal;
    text-align: left;
}

@media (max-width: 575.98px) {
    .info-rsg-page {
        margin-top: 1rem !important;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    .info-rsg-topbar,
    .info-rsg-card-header-actions {
        flex-direction: column;
        align-items: stretch !important;
    }

    .info-rsg-topbar .btn,
    .info-rsg-card-header-actions .btn {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .info-rsg-page .card-header {
        padding: 0.85rem 1rem;
    }

    .info-rsg-page .card-body {
        padding: 1rem;
    }

    .info-rsg-info-line {
        align-items: flex-start !important;
    }

    .info-rsg-info-line > i {
        flex: 0 0 auto;
        margin-top: 0.15rem;
    }

    .info-rsg-anniversaries-table,
    .info-rsg-anniversaries-table tbody,
    .info-rsg-anniversaries-table tr,
    .info-rsg-anniversaries-table td {
        display: block;
        width: 100%;
    }

    .info-rsg-anniversaries-table thead {
        display: none;
    }

    .info-rsg-anniversaries-table tr {
        margin-bottom: 0.75rem;
        padding: 0.65rem;
        border: 1px solid #dee2e6;
        border-radius: 0.75rem;
        background: #fff;
    }

    .info-rsg-anniversaries-table td {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 0.75rem;
        padding: 0.25rem 0;
        border: 0;
    }

    .info-rsg-anniversaries-table td::before {
        content: attr(data-label);
        flex: 0 0 42%;
        color: #6c757d;
        font-weight: 700;
    }

    .info-rsg-event-row {
        flex-direction: column;
        align-items: stretch !important;
    }

    .info-rsg-event-status {
        text-align: left !important;
    }
}

/* --- Pied de page --- */
footer {
    background-color: #e9ecef; /* Gris très clair Bootstrap */
    font-size: 0.9rem;
}

/* --- Utilitaires Généraux --- */
.icon-link i {
    margin-right: 0.5rem; /* Espace après l'icône dans les liens */
}

/* --- Logo styles --- */
.logo-container {
    display: inline-block;
    transition: all 0.3s ease;
    margin-bottom: 1rem;
}

.logo-container:hover {
    transform: scale(1.05);
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.3));
}

.logo-image {
    max-width: 100%;
    height: auto;
    max-height: 120px; /* Ajustez selon la taille souhaitée */
}

/* Styles pour les icônes de navigation (moved from inline) */
.nav-icon {
    font-size: 1.8rem;
    padding: 0.5rem;
    transition: all 0.3s ease;
    display: inline-block;
}

.nav-icon:hover, .nav-icon.active {
    transform: scale(1.2);
    filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.5));
}

/* Centrer les éléments de navigation */
.centered-nav {
    justify-content: center;
}

@media (max-width: 992px) {
    .navbar-nav {
        text-align: center;
    }
}

/* Garder la cloche visible sur mobile */
@media (max-width: 992px) {
/* Garder le lien Zoom toujours visible sur mobile */
.zoom-link-mobile {
    display: flex !important;
    position: fixed;
    top: 8px;
    right: 105px; /* À gauche de la cloche */
    z-index: 1050;
    background-color: #2D8CFF; /* Couleur Zoom */
    border-radius: 8px;
    width: 44px;
    height: 48px;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.zoom-link-mobile .btn {
    padding: 0 !important;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.zoom-link-mobile .bi-camera-video-fill {
    font-size: 1.1rem;
    color: white;
}

/* Garder la cloche de notification toujours visible */
.notification-bell-mobile {
display: flex !important;
position: fixed;
top: 12px;
right: 60px; /* À côté du bouton menu */
z-index: 1050;
background-color: var(--na-blue);
border-radius: 50%;
width: 40px;
height: 40px;
align-items: center;
justify-content: center;
box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.notification-bell-mobile .btn {
padding: 0 !important;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}

.notification-bell-mobile .bi-bell {
font-size: 1.2rem;
color: white;
}

.notification-bell-desktop {
display: none !important;
}

/* Ajuster le dropdown sur mobile */
.notification-bell-mobile .dropdown-menu {
position: fixed !important;
right: 10px !important;
left: 10px !important;
top: 60px !important;
width: auto !important;
max-width: none !important;
}
}

@media (min-width: 993px) {
.zoom-link-mobile {
display: none !important;
}

.notification-bell-mobile {
display: none !important;
}

.notification-bell-desktop {
display: flex !important;
}
}

/* Style pour le lien Zoom dans la navbar desktop */
.zoom-link {
    color: white !important;
    font-size: 1.1rem;
    transition: all 0.2s ease;
    text-decoration: none !important;
    padding: 0.25rem 0.5rem !important;
}

.zoom-link:hover {
    color: #2D8CFF !important;
    transform: scale(1.05);
}

.zoom-link i {
    font-size: 1.2rem;
    color: #2D8CFF;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.2));
}

.zoom-link:hover i {
    color: #1a6fd1;
}

/* Label "Zoom" pour desktop */
.zoom-label-desktop {
    font-size: 0.65rem;
    font-weight: 600;
    color: white !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 2px;
}

/* Label "Zoom" pour mobile */
.zoom-label {
    font-size: 0.55rem;
    font-weight: 600;
    color: white !important;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-top: 1px;
    line-height: 1;
}

/* Styles responsifs (Bootstrap gère beaucoup, mais on peut ajouter) */
@media (max-width: 768px) {
    #map {
        height: 400px;
    }

    h1 {
        font-size: 1.8rem; /* Taille de titre légèrement réduite sur mobile */
    }

    #calendar {
        padding: 1rem;
        margin: 1.5rem auto; /* Reduce margin on mobile */
    }
    
    .logo-image {
        max-height: 100px;
    }

    /* FullCalendar mobile improvements */
    .fc-event {
        font-size: 0.75rem !important; /* Smaller font for events on mobile */
        padding: 2px 3px !important;   /* Smaller padding */
    }

    .fc .fc-toolbar-title {
        font-size: 1.0rem !important; /* Smaller title on mobile */
    }

    .fc-toolbar-chunk .btn, .fc-toolbar-chunk .fc-button { /* Reduce button padding/size in toolbar */
        padding: 0.2rem 0.4rem !important;
        font-size: 0.8rem !important;
    }
    
    /* Make list view items more compact */
    .fc-list-event {
        font-size: 0.85rem;
    }
    .fc-list-event-time, .fc-list-event-title {
        padding-top: 0.3rem;
        padding-bottom: 0.3rem;
    }
}

/*
========================================
   STYLES D'IMPRESSION
   ======================================== */
@media print {
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    
    body {
        background: white !important;
        color: black !important;
        font-size: 11pt !important;
        line-height: 1.4 !important;
        display: block !important;
        min-height: auto !important;
    }
    
    .navbar, footer, .nav-icon, .notification-bell, .notification-bell-mobile,
    .notification-bell-desktop, .d-print-none, .dropdown-menu, .modal,
    .toast, #map, #calendar, .btn {
        display: none !important;
    }
    
    .container, .container-fluid {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 15pt !important;
        margin: 0 !important;
    }
    
    main {
        flex: none !important;
    }
    
    .card {
        box-shadow: none !important;
        border: 1px solid #999 !important;
        page-break-inside: avoid;
        margin-bottom: 12pt !important;
    }
    
    .card-header {
        background-color: #e0e0e0 !important;
        color: black !important;
        border-bottom: 1px solid #999 !important;
        padding: 8pt 10pt !important;
    }
    
    .card-header h4, .card-header h5, .card-header h6 {
        color: black !important;
        font-size: 12pt !important;
    }
    
    .card-body {
        padding: 10pt !important;
    }
    
    .table th, .table td {
        border: 1px solid #999 !important;
        padding: 5pt 8pt !important;
        font-size: 10pt !important;
    }
    
    .table thead th {
        background-color: #e8e8e8 !important;
    }
    
    .table-responsive {
        overflow: visible !important;
    }
    
    .badge {
        border: 1px solid #666 !important;
        background-color: #f0f0f0 !important;
        color: black !important;
        font-size: 9pt !important;
    }
    
    .alert {
        border: 1px solid #999 !important;
        background-color: #f5f5f5 !important;
        color: black !important;
    }
    
    a {
        color: black !important;
        text-decoration: none !important;
    }
    
    .list-group-item {
        border: none !important;
        background: transparent !important;
    }
    
    h1 { font-size: 16pt !important; color: black !important; }
    h2, h3, h4 { font-size: 13pt !important; color: black !important; }
    h5, h6 { font-size: 11pt !important; color: black !important; }
    
    .text-muted { color: #444 !important; }
    .text-primary, .text-success, .text-danger, .text-warning, .text-info,
    .text-white { color: black !important; }
    
    .row { display: block !important; }
    
    [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        padding: 0 !important;
    }
    
    .shadow, .shadow-sm, .shadow-lg {
        box-shadow: none !important;
    }
    
    .d-flex {
        display: block !important;
    }
    
    @page {
        margin: 1.5cm;
        size: A4;
    }
}

/*
 ========================================
   BANDEAU DÉFILANT D'ÉVÉNEMENTS
   ======================================== */

.events-carousel-container {
    position: relative;
    overflow: hidden;
    border-radius: 1rem;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
}

.events-carousel-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.events-carousel-track {
    width: 100%;
    position: relative;
}

.event-slide {
    display: none;
    padding: 1.5rem;
    color: white;
    animation: fadeIn 0.5s ease-in-out;
}

.event-slide.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

.event-title {
    font-size: 1.5rem;
    font-weight: 700;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.event-badges .badge {
    font-size: 0.85rem;
    padding: 0.5rem 0.75rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.event-message {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    border-left: 4px solid rgba(255, 255, 255, 0.5);
}

.event-mini-map {
    height: 180px;
    width: 100%;
    border: 3px solid rgba(255, 255, 255, 0.3);
}

.carousel-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background: rgba(255, 255, 255, 0.9);
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.carousel-nav-btn:hover {
    background: white;
    transform: translateY(-50%) scale(1.1);
}

.carousel-nav-btn i {
    font-size: 1.2rem;
    color: #333;
}

.carousel-prev { left: 10px; }
.carousel-next { right: 10px; }

.carousel-indicators {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 0.75rem;
    background: rgba(0, 0, 0, 0.1);
}

.carousel-indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.5);
    background: transparent;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 0;
}

.carousel-indicator:hover {
    background: rgba(255, 255, 255, 0.5);
}

.carousel-indicator.active {
    background: white;
    border-color: white;
    transform: scale(1.2);
}

.carousel-counter {
    position: absolute;
    bottom: 0.75rem;
    right: 1rem;
    background: rgba(0, 0, 0, 0.3);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 1rem;
    font-size: 0.85rem;
}

@media (max-width: 768px) {
    .event-slide { padding: 1rem; }
    .event-title { font-size: 1.2rem; }
    .event-badges .badge { font-size: 0.75rem; padding: 0.4rem 0.6rem; }
    .carousel-nav-btn { width: 32px; height: 32px; }
    .carousel-nav-btn i { font-size: 1rem; }
    .carousel-prev { left: 5px; }
    .carousel-next { right: 5px; }
}

.countdown-today {
    animation: pulse-badge 1.5s infinite;
}

@keyframes pulse-badge {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); box-shadow: 0 0 10px rgba(255, 255, 255, 0.5); }
}

/*
 ============================================
   CSL LIVE INDICATOR
   ============================================ */
.csl-live-link {
    background: rgba(220, 38, 38, 0.15);
    border-radius: 20px;
    padding: 0.35rem 0.85rem !important;
    transition: all 0.3s ease;
    text-decoration: none !important;
}

.csl-live-link:hover {
    background: rgba(220, 38, 38, 0.3);
    transform: scale(1.05);
}

.csl-live-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    background-color: #ef4444;
    border-radius: 50%;
    animation: csl-live-pulse 1.5s ease-in-out infinite;
    box-shadow: 0 0 6px rgba(239, 68, 68, 0.8);
}

.csl-live-text {
    font-size: 0.7rem;
    font-weight: 700;
    color: #fca5a5;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

@keyframes csl-live-pulse {
    0%, 100% {
        opacity: 1;
        box-shadow: 0 0 6px rgba(239, 68, 68, 0.8);
    }
    50% {
        opacity: 0.4;
        box-shadow: 0 0 12px rgba(239, 68, 68, 0.4);
    }
}

/* CSL Live Mobile Indicator */
.csl-live-mobile {
    position: fixed;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1060;
    display: none;
}

.csl-live-mobile .csl-live-mobile-btn {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
    color: white;
    border: none;
    border-radius: 20px;
    padding: 0.3rem 0.8rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 4px 15px rgba(220, 38, 38, 0.4);
    animation: csl-mobile-glow 2s ease-in-out infinite;
}

@keyframes csl-mobile-glow {
    0%, 100% { box-shadow: 0 4px 15px rgba(220, 38, 38, 0.4); }
    50% { box-shadow: 0 4px 25px rgba(220, 38, 38, 0.7); }
}

@media (max-width: 991.98px) {
    .csl-live-mobile {
        display: block;
    }
}
/* static/css/style-unified.css */
/* ========================================
   SYSTÈME DE DESIGN UNIFIÉ - NA CSL QUÉBEC
   ======================================== */

/* ========================================
   1. VARIABLES & FONDATIONS
   ======================================== */
:root {
    /* Couleurs principales */
    --na-primary: #003f7d;      /* Bleu NA principal */
    --na-primary-dark: #002f5e;  /* Bleu NA foncé */
    --na-primary-light: #0056b3; /* Bleu NA clair */
    --na-secondary: #daa520;     /* Or NA */
    --na-secondary-dark: #b8901a;
    
    /* Couleurs Bootstrap harmonisées */
    --bs-primary: #0d6efd;
    --bs-secondary: #6c757d;
    --bs-success: #198754;
    --bs-info: #0dcaf0;
    --bs-warning: #ffc107;
    --bs-danger: #dc3545;
    --bs-light: #f8f9fa;
    --bs-dark: #212529;
    --bs-white: #ffffff;
    
    /* Typographie standardisée */
    --font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-size-base: 1rem;
    --font-size-sm: 0.875rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    
    /* Tailles de titres uniformes */
    --h1-size: 2.5rem;
    --h2-size: 2rem;
    --h3-size: 1.75rem;
    --h4-size: 1.5rem;
    --h5-size: 1.25rem;
    --h6-size: 1rem;
    
    /* Espacements */
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-xxl: 3rem;
    
    /* Ombres standardisées */
    --shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    --shadow-md: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    --shadow-xl: 0 1rem 2rem rgba(0, 0, 0, 0.2);
    --shadow-hover: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.25);
    
    /* Transitions */
    --transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-fast: all 0.15s ease-in-out;
    
    /* Bordures */
    --border-radius: 0.5rem;
    --border-radius-sm: 0.375rem;
    --border-radius-lg: 0.75rem;
    --border-radius-xl: 1rem;
}

/* ========================================
   2. RESET & BASE
   ======================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-family-base);
    font-size: var(--font-size-base);
    line-height: 1.6;
    color: var(--bs-dark);
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

html {
    scroll-padding-top: 5rem;
}

.skip-link {
    position: fixed;
    top: 0.5rem;
    left: 0.5rem;
    z-index: 2000;
    padding: 0.65rem 1rem;
    color: #fff;
    background: var(--na-primary-dark);
    border-radius: var(--border-radius-sm);
    box-shadow: var(--shadow-md);
    transform: translateY(-150%);
}

.skip-link:focus {
    color: #fff;
    transform: translateY(0);
}

main {
    flex: 1;
    padding: var(--spacing-xl) 0;
}

.meetings-dropdown-menu {
    max-height: 300px;
    overflow-y: auto;
}

.cookie-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1080;
    background: #fff;
    border-top: 1px solid #ddd;
}

.cookie-banner-text {
    font-size: 0.95rem;
}

.cookie-banner-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.cookie-banner-actions .btn {
    margin-right: 0 !important;
}

.footer-links {
    font-size: var(--font-size-sm);
}

.footer-links li:not(:last-child)::after {
    content: "|";
    margin: 0 0.5rem;
    color: #6c757d;
}

.notification-list-host {
    padding: 0;
}

.reunion-detail-map {
    height: 300px;
}

.calendar-loading-state {
    min-height: 400px;
}

.table-scroll-x {
    overflow-x: auto;
}

.format-legend-scroll {
    max-height: 200px;
    overflow-y: auto;
}

.report-preview-scroll-sm {
    max-height: 200px;
    overflow-y: auto;
}

.form-check-input-lg {
    width: 1.25em;
    height: 1.25em;
}

.total-secret-table-scroll-lg {
    max-height: 500px;
    overflow-y: auto;
}

.total-secret-table-scroll-sm {
    max-height: 300px;
    overflow-y: auto;
}

.total-secret-pin-code {
    font-weight: 700;
}

.total-secret-pin-code.is-group {
    color: #d63384;
}

.total-secret-pin-code.is-subcommittee {
    color: #198754;
}

.user-select-all {
    user-select: all;
    cursor: pointer;
}

.copy-btn.copied {
    color: #198754 !important;
    border-color: #198754 !important;
}

.copy-btn.copied i::before {
    content: "\F26E";
}

.event-color-preview {
    height: 40px;
    border: 1px solid #dee2e6;
    border-radius: 5px;
    margin-top: 5px;
}

.event-gradient-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 60px;
    margin-top: 10px;
    border: 1px solid #dee2e6;
    border-radius: 10px;
    color: #fff;
    font-weight: 700;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

.event-map-picker {
    height: 400px;
    margin-top: 10px;
    border-radius: 10px;
}

.publication-order-page {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.publication-order-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.6rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(248, 250, 252, 0.98) 0%, rgba(239, 246, 255, 0.96) 56%, rgba(240, 253, 244, 0.94) 100%);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
}

.publication-order-hero h1 {
    margin: 0;
    color: #0f172a;
}

.publication-order-hero p {
    max-width: 760px;
    margin: 0.45rem 0 0;
    color: #475569;
}

.publication-order-eyebrow {
    margin: 0 0 0.35rem !important;
    color: #047857 !important;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.publication-order-total-card,
.publication-order-submit-bar {
    border: 1px solid rgba(37, 99, 235, 0.12);
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.publication-order-total-card {
    min-width: 190px;
    padding: 1rem 1.15rem;
    border-radius: 16px;
    text-align: right;
}

.publication-order-total-card span,
.publication-order-submit-bar span {
    display: block;
    color: #64748b;
    font-size: 0.86rem;
    font-weight: 700;
}

.publication-order-total-card strong,
.publication-order-submit-bar strong {
    display: block;
    color: #1d4ed8;
    font-size: 1.55rem;
    line-height: 1.15;
}

.publication-order-panel {
    padding: 1.25rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.06);
}

.publication-order-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.publication-order-toolbar h2 {
    margin: 0;
    color: #0f172a;
    font-size: 1.25rem;
}

.publication-order-toolbar p {
    margin: 0.15rem 0 0;
    color: #64748b;
}

.publication-order-search {
    position: relative;
    min-width: min(360px, 100%);
}

.publication-order-search i {
    position: absolute;
    top: 50%;
    left: 0.85rem;
    color: #64748b;
    transform: translateY(-50%);
    pointer-events: none;
}

.publication-order-search .form-control {
    padding-left: 2.35rem;
}

.publication-order-table-wrap {
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 16px;
    overflow: auto;
}

.publication-order-table {
    min-width: 820px;
    margin-bottom: 0;
}

.publication-order-table thead th {
    background: #0f172a;
    color: #fff;
    font-size: 0.82rem;
    letter-spacing: 0;
}

.publication-order-table tbody tr {
    transition: background-color 0.16s ease, box-shadow 0.16s ease;
}

.publication-order-table tbody tr:hover {
    background: #f8fafc;
}

.publication-order-table tbody tr.publication-row-selected {
    background: #ecfdf5;
}

.publication-order-col-no {
    width: 12%;
}

.publication-order-col-item {
    width: 44%;
}

.publication-order-col-price,
.publication-order-col-quantity,
.publication-order-col-line-total {
    width: 14%;
}

.publication-order-item-no,
.publication-order-price,
.publication-order-line-total {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    padding: 0.35rem 0.55rem;
    border-radius: 999px;
    font-weight: 700;
}

.publication-order-item-no {
    background: #f1f5f9;
    color: #334155;
}

.publication-order-price {
    background: #eff6ff;
    color: #1d4ed8;
}

.publication-order-line-total {
    min-width: 5.5rem;
    background: #f8fafc;
    color: #334155;
}

.quantity-input {
    width: 5.5rem;
    margin-left: auto;
    margin-right: auto;
}

.publication-order-submit-bar {
    position: sticky;
    bottom: 1rem;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding: 1rem;
    border-radius: 18px;
}

.publication-order-empty {
    padding: 2rem;
    border: 1px dashed rgba(148, 163, 184, 0.55);
    border-radius: 16px;
    color: #64748b;
    text-align: center;
}

@media (max-width: 767.98px) {
    .publication-order-hero,
    .publication-order-toolbar,
    .publication-order-submit-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .publication-order-total-card {
        width: 100%;
        text-align: left;
    }

    .publication-order-search {
        min-width: 100%;
    }

    .publication-order-panel {
        padding: 1rem;
    }

    .publication-order-submit-bar .btn {
        width: 100%;
    }
}

.publication-orders-page {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.publication-orders-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.6rem;
    border-radius: 18px;
    background: linear-gradient(135deg, #0f172a 0%, #1d4ed8 56%, #047857 100%);
    color: #fff;
    box-shadow: 0 22px 48px rgba(15, 23, 42, 0.18);
}

.publication-orders-hero h1,
.publication-orders-hero p {
    color: inherit !important;
    margin: 0;
}

.publication-orders-hero h1 {
    font-size: clamp(1.8rem, 3vw, 2.5rem);
}

.publication-orders-hero p:not(.publication-orders-eyebrow) {
    max-width: 680px;
    margin-top: 0.45rem;
    opacity: 0.9;
}

.publication-orders-eyebrow {
    margin-bottom: 0.35rem !important;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
    opacity: 0.82;
}

.publication-orders-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem;
}

.publication-orders-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.publication-orders-stat {
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
}

.publication-orders-stat span {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    color: #64748b;
    font-size: 0.86rem;
    font-weight: 700;
}

.publication-orders-stat strong {
    display: block;
    margin-top: 0.35rem;
    color: #0f172a;
    font-size: 1.75rem;
    line-height: 1.05;
}

.publication-orders-stat.is-pending {
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
}

.publication-orders-stat.is-processed {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
}

.publication-orders-stat.is-total {
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
}

.publication-orders-stat.is-value {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
}

.publication-orders-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
}

.publication-orders-filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.publication-orders-filter {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.8rem;
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: 999px;
    background: #f8fafc;
    color: #334155;
    font-weight: 800;
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.publication-orders-filter:hover,
.publication-orders-filter:focus {
    border-color: rgba(37, 99, 235, 0.35);
    background: #eff6ff;
    color: #1d4ed8;
}

.publication-orders-filter.is-active {
    border-color: #1d4ed8;
    background: #1d4ed8;
    color: #fff;
}

.publication-orders-filter span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.55rem;
    height: 1.55rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.86);
    color: #1d4ed8;
    font-size: 0.78rem;
}

.publication-orders-search {
    position: relative;
    width: min(420px, 100%);
}

.publication-orders-search i {
    position: absolute;
    top: 50%;
    left: 0.85rem;
    color: #64748b;
    transform: translateY(-50%);
    pointer-events: none;
}

.publication-orders-search .form-control {
    padding-left: 2.35rem;
}

.publication-orders-context-note {
    padding: 0.85rem 1rem;
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 14px;
    background: #eff6ff;
    color: #1e40af;
    font-weight: 700;
}

.publication-orders-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.publication-order-card {
    display: grid;
    grid-template-columns: 0.45rem minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.08);
}

.publication-order-card.is-archived {
    opacity: 0.72;
}

.publication-order-card-status {
    background: #f59e0b;
}

.publication-order-card.is-processed .publication-order-card-status {
    background: #16a34a;
}

.publication-order-card-main {
    min-width: 0;
    padding: 1.1rem;
}

.publication-order-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.publication-order-card-title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.publication-order-card-title h2 {
    margin: 0;
    color: #0f172a;
    font-size: 1.2rem;
}

.publication-order-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3rem;
    min-height: 2rem;
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #334155;
    font-weight: 800;
}

.publication-order-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0.9rem;
    margin-top: 0.5rem;
    color: #64748b;
    font-size: 0.9rem;
}

.publication-order-card-summary {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    gap: 0.45rem;
    text-align: right;
}

.publication-order-card-summary strong {
    color: #0f172a;
    font-size: 1.35rem;
}

.publication-order-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 800;
}

.publication-order-status-badge.is-pending {
    background: #fef3c7;
    color: #92400e;
}

.publication-order-status-badge.is-processed {
    background: #dcfce7;
    color: #166534;
}

.publication-order-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
    margin-top: 1rem;
}

.publication-order-detail-block {
    padding: 0.8rem;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 14px;
    background: #f8fafc;
}

.publication-order-detail-block > span {
    display: block;
    margin-bottom: 0.25rem;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.publication-order-detail-block p {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.75rem;
    margin: 0;
    color: #334155;
}

.publication-order-items-wrap {
    margin-top: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 14px;
    overflow: auto;
}

.publication-order-items-table {
    min-width: 720px;
    margin-bottom: 0;
}

.publication-order-items-table thead th {
    background: #f8fafc;
    color: #334155;
    font-size: 0.82rem;
    letter-spacing: 0;
    text-transform: uppercase;
}

.publication-order-items-table tfoot th {
    background: #f1f5f9;
    color: #0f172a;
}

.publication-order-item-code,
.publication-order-quantity {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.9rem;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    font-weight: 800;
}

.publication-order-item-code {
    background: #f1f5f9;
    color: #334155;
}

.publication-order-quantity {
    min-width: 2.2rem;
    background: #eff6ff;
    color: #1d4ed8;
}

.publication-order-card-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 1rem;
}

.publication-order-card-actions form {
    margin: 0;
}

.publication-orders-empty {
    padding: 2.5rem 1rem;
    border: 1px dashed rgba(148, 163, 184, 0.55);
    border-radius: 18px;
    background: #fff;
    color: #64748b;
    text-align: center;
}

.publication-orders-empty i {
    color: #1d4ed8;
    font-size: 2rem;
}

.publication-orders-empty h2 {
    margin: 0.75rem 0 0.35rem;
    color: #0f172a;
}

@media (max-width: 991.98px) {
    .publication-orders-hero,
    .publication-orders-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .publication-orders-hero-actions {
        justify-content: flex-start;
    }

    .publication-orders-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .publication-orders-search {
        width: 100%;
    }
}

@media (max-width: 767.98px) {
    .publication-orders-hero-actions .btn {
        flex: 1 1 100%;
    }

    .publication-orders-stats,
    .publication-order-details {
        grid-template-columns: 1fr;
    }

    .publication-orders-filter-group,
    .publication-orders-filter {
        width: 100%;
    }

    .publication-orders-filter {
        justify-content: space-between;
    }

    .publication-order-card-header,
    .publication-order-card-summary {
        align-items: flex-start;
        flex-direction: column;
        text-align: left;
    }

    .publication-order-card-actions,
    .publication-order-card-actions .btn,
    .publication-order-card-actions form {
        width: 100%;
    }
}

@media print {
    body.total-secret-page .btn,
    body.total-secret-page .alert,
    body.total-secret-page .card-header {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    body.total-secret-page .copy-btn,
    body.total-secret-page #copyAllBtn {
        display: none !important;
    }
}

/* ========================================
   3. TYPOGRAPHIE UNIFORMISÉE
   ======================================== */
h1, .h1 {
    font-size: var(--h1-size);
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: var(--spacing-lg);
    color: var(--na-primary);
}

h2, .h2 {
    font-size: var(--h2-size);
    font-weight: 600;
    line-height: 1.3;
    margin-bottom: var(--spacing-md);
    color: var(--na-primary);
}

h3, .h3 {
    font-size: var(--h3-size);
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: var(--spacing-md);
    color: var(--bs-dark);
}

h4, .h4 {
    font-size: var(--h4-size);
    font-weight: 500;
    line-height: 1.4;
    margin-bottom: var(--spacing-sm);
    color: var(--bs-dark);
}

h5, .h5 {
    font-size: var(--h5-size);
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: var(--spacing-sm);
    color: var(--bs-dark);
}

h6, .h6 {
    font-size: var(--h6-size);
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: var(--spacing-sm);
    color: var(--bs-dark);
}

/* ========================================
   4. CARTES UNIFORMISÉES
   ======================================== */
.card {
    background: var(--bs-white);
    border: none;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-md);
    transition: var(--transition-base);
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-hover);
}

/* En-têtes de cartes standardisés - TOUS avec le même fond bleu NA */
.card-header {
    background: linear-gradient(135deg, var(--na-primary) 0%, var(--na-primary-dark) 100%);
    color: var(--bs-white) !important;
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: none;
    font-weight: 600;
}

/* Force tous les en-têtes à utiliser la même couleur */
.card-header.bg-primary,
.card-header.bg-success,
.card-header.bg-info,
.card-header.bg-warning,
.card-header.bg-danger,
.card-header.bg-secondary,
.card-header.bg-dark,
.card-header.bg-light {
    background: linear-gradient(135deg, var(--na-primary) 0%, var(--na-primary-dark) 100%) !important;
    color: var(--bs-white) !important;
}

/* Assure que tous les titres dans les en-têtes sont blancs */
.card-header .card-title,
.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6,
.card-header .h1,
.card-header .h2,
.card-header .h3,
.card-header .h4,
.card-header .h5,
.card-header .h6 {
    margin: 0;
    font-size: var(--h5-size);
    font-weight: 600;
    color: var(--bs-white) !important;
}

/* Assure que tous les textes et icônes dans les en-têtes sont blancs */
.card-header * {
    color: var(--bs-white) !important;
}

.card-body {
    padding: var(--spacing-lg);
}

/* Cartes spéciales avec bordure colorée */
.card.border-primary {
    border-top: 4px solid var(--bs-primary);
}

.card.border-success {
    border-top: 4px solid var(--bs-success);
}

.card.border-info {
    border-top: 4px solid var(--bs-info);
}

.card.border-warning {
    border-top: 4px solid var(--bs-warning);
}

.card.border-danger {
    border-top: 4px solid var(--bs-danger);
}

/* ========================================
   CSL EDIT LAYOUT
   ======================================== */
.csl-header {
    background: linear-gradient(135deg, #1a237e 0%, #3949ab 100%);
    border-radius: 16px;
    padding: 2rem;
    margin-bottom: 2rem;
    color: #fff;
    box-shadow: 0 10px 40px rgba(26, 35, 126, 0.3);
}

.csl-header h1 {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.csl-edit-shell {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.csl-edit-shell > .csl-header,
.csl-edit-shell > .quick-nav,
.csl-edit-shell > .card,
.csl-edit-shell > .card.csl-section {
    margin-bottom: 0 !important;
}

.csl-edit-shell > .card,
.csl-edit-shell > .card.csl-section {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: visible !important;
    transform: none !important;
    position: relative;
    isolation: isolate;
}

.csl-edit-shell > .card:hover,
.csl-edit-shell > .card.csl-section:hover,
.csl-edit-shell .card:hover {
    transform: none !important;
}

.csl-edit-shell > .card > .card-body,
.csl-edit-shell > .card.csl-section > .card-body {
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
}

.csl-edit-shell .card,
.csl-edit-shell .card-body,
.csl-edit-shell .row,
.csl-edit-shell .table-responsive,
.csl-edit-shell .accordion,
.csl-edit-shell .accordion-item,
.csl-edit-shell .accordion-collapse,
.csl-edit-shell .list-group,
.csl-edit-shell .list-group-item {
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
}

.csl-edit-shell [class*="col-"] {
    min-width: 0;
}

.csl-edit-shell .csl-sc-reports {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    padding-right: 8px;
    -webkit-overflow-scrolling: touch;
}

.csl-edit-shell .csl-ce-reports {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
}

.csl-edit-shell .csl-ce-reports .card,
.csl-edit-shell .csl-ce-reports .card-body,
.csl-edit-shell .csl-ce-reports .report-content,
.csl-edit-shell .csl-ce-reports .list-group,
.csl-edit-shell .csl-ce-reports .list-group-item {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
}

.csl-edit-shell .report-content,
.csl-edit-shell .report-content * {
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.csl-edit-shell .report-content {
    white-space: pre-wrap;
    word-break: break-word;
}

.csl-section {
    border: none;
    border-radius: 16px;
    overflow: visible;
    margin-bottom: 1.5rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.csl-section:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.csl-section .card-header {
    padding: 1rem 1.5rem;
    border-bottom: none;
    font-weight: 600;
}

.csl-section .card-header h5 {
    font-size: 1.1rem;
    margin: 0;
    display: flex;
    align-items: center;
}

.csl-section .card-header .section-number {
    background: rgba(255, 255, 255, 0.2);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;
    font-weight: 700;
    font-size: 0.9rem;
}

.csl-section .card-body {
    padding: 1.5rem;
    overflow: visible;
}

.card.csl-section,
.csl-section.card,
.csl-section .card-body,
.csl-section .card {
    display: block !important;
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
}

.card.csl-section .card-body {
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
    display: block !important;
}

#section7.csl-section,
#section7.csl-section .card,
#section7.csl-section .card-body {
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
}

#section7 .row {
    display: block !important;
}

#section7 .col-12 {
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
    margin-bottom: 1rem;
}

#section7 .report-content,
#section7 .report-content * {
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
}

#section7 .report-content p,
#section7 .report-content ul,
#section7 .report-content ol,
#section7 .report-content h1,
#section7 .report-content h2,
#section7 .report-content h3 {
    margin-bottom: 0.75rem;
}

@media (max-width: 768px) {
    .csl-header {
        padding: 1.5rem;
    }

    .csl-header h1 {
        font-size: 1.5rem;
    }

    .csl-edit-shell .stat-card h3 {
        font-size: 1.5rem;
    }

    .csl-edit-shell .quick-nav {
        display: none;
    }

    .csl-edit-shell {
        gap: 1rem;
    }
}

/* ========================================
   CSL VIEW PAGE
   ======================================== */
@media print {
    body.csl-view-page .navbar,
    body.csl-view-page footer,
    body.csl-view-page .no-print,
    body.csl-view-page .btn {
        display: none !important;
    }

    body.csl-view-page .card {
        border: 1px solid #ddd !important;
        break-inside: avoid;
    }

    body.csl-view-page .card-header {
        background-color: #f8f9fa !important;
        color: #000 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    body.csl-view-page {
        font-size: 12pt;
    }

    body.csl-view-page .container {
        max-width: 100% !important;
    }
}

.csl-view-shell {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
}

.csl-view-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(12px);
}

.csl-view-toolbar h1 {
    margin: 0;
    font-size: clamp(1.6rem, 2vw, 2.2rem);
}

.csl-view-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.csl-view-hero {
    padding: 2rem 1.5rem;
    border-radius: 28px;
    background:
        radial-gradient(circle at top right, rgba(56, 189, 248, 0.18), transparent 30%),
        linear-gradient(135deg, #0f172a 0%, #1d4ed8 55%, #0ea5e9 100%);
    color: #fff;
    text-align: center;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.2);
}

.csl-view-hero h2,
.csl-view-hero h3,
.csl-view-hero h4 {
    color: inherit !important;
    margin-bottom: 0.5rem;
}

.csl-view-hero h2 {
    font-size: clamp(1.8rem, 3vw, 2.6rem);
}

.csl-view-shell > .card {
    margin-bottom: 0 !important;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    overflow: visible !important;
    transform: none !important;
    position: relative;
    isolation: isolate;
}

.csl-view-shell > .card:hover,
.csl-view-shell > .card .card:hover {
    transform: none !important;
}

.csl-view-shell > .card > .card-header {
    background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 100%) !important;
    color: #fff !important;
    padding: 1rem 1.4rem;
    border: 0;
}

.csl-view-shell > .card > .card-header * {
    color: inherit !important;
}

.csl-view-shell > .card > .card-body {
    padding: 1.4rem;
    background: #fff;
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
}

.csl-view-shell > .card,
.csl-view-shell > .card .card,
.csl-view-shell > .card .card-body,
.csl-view-shell > .card .row,
.csl-view-shell > .card .table-responsive,
.csl-view-shell > .card .accordion,
.csl-view-shell > .card .accordion-item,
.csl-view-shell > .card .accordion-collapse,
.csl-view-shell > .card .list-group,
.csl-view-shell > .card .list-group-item {
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
}

.csl-view-shell > .card [class*="col-"] {
    min-width: 0;
}

.csl-view-shell .card {
    box-shadow: none;
}

.csl-view-shell .badge-pill {
    border-radius: 999px;
    padding: 0.45rem 0.9rem;
    font-weight: 600;
}

.csl-view-shell .report-content,
.csl-view-shell .report-content * {
    overflow: visible !important;
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
}

@media (max-width: 767.98px) {
    .csl-view-toolbar {
        flex-direction: column;
        align-items: stretch;
        padding: 1rem;
    }

    .csl-view-actions {
        width: 100%;
    }

    .csl-view-actions .btn {
        flex: 1 1 100%;
    }

    .csl-view-hero {
        padding: 1.5rem 1rem;
    }

    .csl-view-shell > .card > .card-body {
        padding: 1rem;
    }
}

/* ========================================
   CSL SECTION THEMES
   ======================================== */
.section-opening {
    background: linear-gradient(135deg, #1565c0 0%, #1976d2 100%);
}

.section-mission {
    background: linear-gradient(135deg, #5e35b1 0%, #7e57c2 100%);
}

.section-welcome {
    background: linear-gradient(135deg, #00897b 0%, #26a69a 100%);
}

.section-readings {
    background: linear-gradient(135deg, #6d4c41 0%, #8d6e63 100%);
}

.section-attendance {
    background: linear-gradient(135deg, #0097a7 0%, #00bcd4 100%);
}

.section-agenda {
    background: linear-gradient(135deg, #43a047 0%, #66bb6a 100%);
}

.section-previous {
    background: linear-gradient(135deg, #7b1fa2 0%, #9c27b0 100%);
}

.section-ce-reports {
    background: linear-gradient(135deg, #f57c00 0%, #ff9800 100%);
    color: #fff;
}

.section-regional {
    background: linear-gradient(135deg, #00838f 0%, #0097a7 100%);
}

.section-elections {
    background: linear-gradient(135deg, #c62828 0%, #e53935 100%);
}

.section-subcommittee {
    background: linear-gradient(135deg, #4527a0 0%, #5e35b1 100%);
}

.section-groups {
    background: linear-gradient(135deg, #2e7d32 0%, #43a047 100%);
}

.section-discussion {
    background: linear-gradient(135deg, #ef6c00 0%, #f57c00 100%);
}

.section-followup {
    background: linear-gradient(135deg, #0277bd 0%, #0288d1 100%);
}

.section-meetings {
    background: linear-gradient(135deg, #1565c0 0%, #1e88e5 100%);
}

.section-roundtable {
    background: linear-gradient(135deg, #6a1b9a 0%, #8e24aa 100%);
}

.section-cleanup {
    background: linear-gradient(135deg, #558b2f 0%, #7cb342 100%);
}

.section-closing {
    background: linear-gradient(135deg, #37474f 0%, #546e7a 100%);
}

.section-prayer {
    background: linear-gradient(135deg, #00695c 0%, #00897b 100%);
}

.section-status {
    background: linear-gradient(135deg, #263238 0%, #37474f 100%);
}

.csl-precollapse > .card.csl-section > .card-body,
.csl-precollapse > .card.live-section > .card-body,
.csl-precollapse .subcommittee-report-card > .card-body,
.csl-precollapse .csl-live-subcommittee-item > .csl-live-subcommittee-body,
.csl-precollapse .csl-ce-report-card > .csl-ce-report-body {
    display: none;
}

.csl-compact-mode {
    --csl-compact-gap: 0.45rem;
}

.csl-compact-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
    margin: 0.5rem 0 0.75rem;
}

.csl-compact-controls .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    min-height: 2rem;
    padding: 0.25rem 0.7rem;
    font-weight: 700;
}

.csl-compact-mode > .card.csl-section,
.csl-compact-mode > .card.live-section {
    margin-bottom: var(--csl-compact-gap);
    overflow: hidden;
}

.csl-compact-mode > .card.csl-section > .card-header,
.csl-compact-mode > .card.live-section > .card-header {
    padding: 0.55rem 0.8rem;
}

.csl-compact-mode > .card.csl-section > .card-header .section-number,
.csl-compact-mode > .card.live-section > .card-header .section-number {
    width: 2rem;
    height: 2rem;
    margin-right: 0.45rem;
    font-size: 0.95rem;
}

.csl-collapsible-card.is-collapsed {
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.csl-collapsible-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    cursor: pointer;
}

.csl-collapsible-header h5,
.csl-collapsible-header h6 {
    flex: 1 1 auto;
    min-width: 0;
    margin-bottom: 0;
    line-height: 1.25;
}

.csl-collapsible-header h5 {
    font-size: 1rem;
}

.csl-collapsible-header h6 {
    font-size: 0.95rem;
}

.csl-section-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 1.8rem;
    height: 1.8rem;
    border: 1px solid rgba(255, 255, 255, 0.42);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    color: inherit;
    line-height: 1;
}

.subcommittee-report-header .csl-section-toggle,
.csl-live-subcommittee-heading .csl-section-toggle,
.csl-ce-report-header .csl-section-toggle {
    border-color: rgba(94, 53, 177, 0.2);
    background: rgba(94, 53, 177, 0.08);
    color: #5e35b1;
}

.csl-ce-report-header .csl-section-toggle {
    border-color: rgba(239, 108, 0, 0.24);
    background: rgba(239, 108, 0, 0.08);
    color: #ef6c00;
}

.csl-section-toggle:hover,
.csl-section-toggle:focus {
    background: rgba(255, 255, 255, 0.3);
    outline: 2px solid rgba(255, 255, 255, 0.35);
    outline-offset: 2px;
}

.subcommittee-report-header .csl-section-toggle:hover,
.subcommittee-report-header .csl-section-toggle:focus,
.csl-live-subcommittee-heading .csl-section-toggle:hover,
.csl-live-subcommittee-heading .csl-section-toggle:focus,
.csl-ce-report-header .csl-section-toggle:hover,
.csl-ce-report-header .csl-section-toggle:focus {
    background: rgba(94, 53, 177, 0.14);
    outline-color: rgba(94, 53, 177, 0.18);
}

.csl-ce-report-header .csl-section-toggle:hover,
.csl-ce-report-header .csl-section-toggle:focus {
    background: rgba(239, 108, 0, 0.14);
    outline-color: rgba(239, 108, 0, 0.18);
}

.csl-toggle-icon {
    transition: transform 0.18s ease;
}

.is-collapsed > .csl-collapsible-header .csl-toggle-icon {
    transform: rotate(-90deg);
}

.csl-collapsible-body[hidden] {
    display: none !important;
}

.csl-compact-mode .card.csl-section > .card-body.csl-collapsible-body[hidden],
.csl-compact-mode .card.live-section > .card-body.csl-collapsible-body[hidden],
.csl-compact-mode .subcommittee-report-card > .card-body.csl-collapsible-body[hidden],
.csl-compact-mode .csl-live-subcommittee-item > .csl-live-subcommittee-body.csl-collapsible-body[hidden],
.csl-compact-mode .csl-ce-report-card > .csl-ce-report-body.csl-collapsible-body[hidden] {
    display: none !important;
}

.csl-compact-mode .card-body {
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
}

.subcommittee-report-index {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.8rem;
    margin-right: 0.45rem;
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    background: rgba(94, 53, 177, 0.1);
    color: #5e35b1;
    font-size: 0.82rem;
    font-weight: 800;
}

.csl-live-subcommittee-item {
    padding-bottom: 0.45rem;
}

.csl-live-subcommittee-heading {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.35rem;
}

.csl-live-subcommittee-heading .badge {
    margin-left: auto;
}

@media (max-width: 767.98px) {
    .csl-compact-controls {
        justify-content: stretch;
    }

    .csl-compact-controls .btn {
        flex: 1 1 100%;
        justify-content: center;
    }
}

.csl-edit-shell .stat-card {
    border-radius: 12px;
    padding: 1.25rem;
    text-align: center;
    transition: transform 0.2s ease;
}

.csl-edit-shell .stat-card:hover {
    transform: scale(1.02);
}

.csl-edit-shell .stat-card h3 {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.csl-edit-shell .stat-card small {
    font-size: 0.85rem;
    opacity: 0.8;
}

.csl-edit-shell .stat-groups {
    background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
    color: #1565c0;
}

.csl-edit-shell .stat-subcommittees {
    background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
    color: #2e7d32;
}

.csl-edit-shell .stat-ce {
    background: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%);
    color: #ef6c00;
}

.csl-edit-shell .stat-consensus {
    background: linear-gradient(135deg, #fce4ec 0%, #f8bbd9 100%);
    color: #c2185b;
}

.csl-edit-shell .report-card {
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.2s ease;
    height: auto !important;
    max-height: none !important;
}

.csl-edit-shell .report-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.csl-edit-shell .report-card .card-header {
    padding: 0.875rem 1rem;
    font-weight: 600;
}

.csl-edit-shell .report-card.submitted {
    border: 2px solid #4caf50;
}

.csl-edit-shell .report-card.submitted .card-header {
    background: linear-gradient(135deg, #4caf50 0%, #66bb6a 100%);
    color: #fff;
}

.csl-edit-shell .report-card.pending {
    border: 2px solid #e0e0e0;
}

.csl-edit-shell .report-card.pending .card-header {
    background: #f5f5f5;
    color: #757575;
}

.csl-edit-shell .csl-table {
    border-radius: 12px;
    overflow: hidden;
}

.csl-edit-shell .csl-table thead th {
    background: linear-gradient(135deg, #f5f5f5 0%, #eeeeee 100%);
    border: none;
    padding: 1rem;
    font-weight: 600;
    color: #424242;
}

.csl-edit-shell .csl-table tbody td {
    padding: 0.875rem 1rem;
    vertical-align: middle;
}

.csl-edit-shell .csl-table tbody tr {
    transition: background-color 0.15s ease;
}

.csl-edit-shell .csl-form .form-control,
.csl-edit-shell .csl-form .form-select {
    border-radius: 10px;
    padding: 0.75rem 1rem;
    border: 2px solid #e0e0e0;
    transition: all 0.2s ease;
}

.csl-edit-shell .csl-form .form-control:focus,
.csl-edit-shell .csl-form .form-select:focus {
    border-color: #1976d2;
    box-shadow: 0 0 0 4px rgba(25, 118, 210, 0.1);
}

.csl-edit-shell .csl-form .btn {
    border-radius: 10px;
    padding: 0.75rem 1.5rem;
    font-weight: 600;
    transition: all 0.2s ease;
}

.csl-edit-shell .csl-form .btn:hover {
    transform: translateY(-2px);
}

.csl-edit-shell .csl-accordion .accordion-item {
    border: none;
    margin-bottom: 0.5rem;
    border-radius: 12px !important;
    overflow: hidden;
}

.csl-edit-shell .csl-accordion .accordion-button {
    border-radius: 12px !important;
    font-weight: 600;
    padding: 1rem 1.25rem;
}

.csl-edit-shell .csl-accordion .accordion-button:not(.collapsed) {
    background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
    color: #1565c0;
}

.csl-edit-shell .prayer-card {
    background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
    border-radius: 16px;
    padding: 2rem;
    text-align: center;
}

.csl-edit-shell .prayer-card blockquote {
    font-size: 1.1rem;
    font-style: italic;
    color: #2e7d32;
    margin: 0;
}

.csl-edit-shell .badge-pill {
    border-radius: 50px;
    padding: 0.5rem 1rem;
    font-weight: 600;
}

.csl-edit-shell .quick-nav {
    position: sticky;
    top: 80px;
    z-index: 100;
    background: #fff;
    border-radius: 12px;
    padding: 1rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    margin-bottom: 1.5rem;
}

.csl-edit-shell .quick-nav-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.8rem;
    margin: 0.25rem;
    transition: all 0.2s ease;
    text-decoration: none;
}

.csl-edit-shell .quick-nav-btn:hover {
    transform: scale(1.1);
}

.csl-edit-shell .progress-bar-animated {
    animation: progress-bar-stripes 1s linear infinite;
}

.csl-edit-shell .group-report-progress-bar {
    width: 0;
    transition: width 0.3s ease;
}

/* Keep CSL edit modals/dropdowns above Bootstrap backdrops after modals move to body. */
body.csl-edit-modal-stack .modal {
    z-index: 1160 !important;
}

body.csl-edit-modal-stack .modal-backdrop {
    z-index: 1155 !important;
}

body.csl-edit-modal-stack .modal .dropdown-menu,
body.csl-edit-modal-stack .modal .bootstrap-select .dropdown-menu,
body.csl-edit-modal-stack .select2-container--open .select2-dropdown,
body.csl-edit-modal-stack .select2-container .select2-results,
body.csl-edit-modal-stack .bs5 .dropdown-menu {
    z-index: 1170 !important;
}

body.csl-edit-modal-stack .modal .form-select,
body.csl-edit-modal-stack .modal .form-control {
    position: relative;
    z-index: 1170;
}

.empty-state-icon-lg {
    font-size: 3rem;
}

.empty-state-icon,
.prayer-icon {
    font-size: 2.5rem;
}

.empty-state-icon-md {
    font-size: 2rem;
}

.roundtable-icon-shell {
    background: rgba(106, 27, 154, 0.1);
}

.roundtable-icon {
    color: #6a1b9a;
}

.csl-agenda-switch {
    width: 3rem;
    height: 1.5rem;
}

.ce-accent-outline-btn {
    border-color: #ef6c00;
    border-style: solid;
    color: #ef6c00;
    background: transparent;
}

.ce-accent-outline-btn:hover,
.ce-accent-outline-btn:focus {
    background: #ef6c00;
    color: #fff;
}

.ce-accent-question {
    color: #ef6c00;
}

.ce-accent-modal-header {
    background: linear-gradient(135deg, #ef6c00 0%, #f57c00 100%);
    color: #fff;
}

.ce-accent-solid-btn {
    background: #ef6c00;
    color: #fff;
}

.ce-accent-solid-btn:hover,
.ce-accent-solid-btn:focus {
    background: #d95f00;
    color: #fff;
}

.subcommittee-summary-strip {
    max-height: 160px;
    overflow-y: auto;
    padding: 6px;
}

.subcommittee-report-card {
    border-color: #5e35b1 !important;
}

.csl-compact-mode .subcommittee-report-card {
    margin-bottom: 0.55rem !important;
}

.subcommittee-report-header {
    background: linear-gradient(135deg, rgba(94, 53, 177, 0.1) 0%, rgba(126, 87, 194, 0.1) 100%);
    padding: 0.55rem 0.75rem;
}

.subcommittee-report-title,
.subcommittee-accent-question {
    color: #5e35b1;
}

.subcommittee-accent-outline-btn {
    border-color: #5e35b1;
    border-style: solid;
    color: #5e35b1;
    background: transparent;
}

.subcommittee-accent-outline-btn:hover,
.subcommittee-accent-outline-btn:focus {
    background: #5e35b1;
    color: #fff;
}

.subcommittee-accent-modal-header {
    background: linear-gradient(135deg, #5e35b1 0%, #7e57c2 100%);
    color: #fff;
}

.subcommittee-accent-solid-btn {
    background: #5e35b1;
    color: #fff;
}

.subcommittee-accent-solid-btn:hover,
.subcommittee-accent-solid-btn:focus {
    background: #4f2c95;
    color: #fff;
}

.group-report-stat-card.is-submitted {
    background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
    color: #2e7d32;
}

.group-report-stat-card.is-missing {
    background: linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%);
    color: #c62828;
}

.group-report-stat-card.is-total {
    background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
    color: #1565c0;
}

.group-report-progress {
    height: 10px;
    border-radius: 5px;
}

.csl-table-col-action-sm {
    width: 80px;
}

.csl-table-col-index {
    width: 5%;
}

.csl-table-col-title {
    width: 25%;
}

.csl-table-col-description,
.csl-table-col-decision {
    width: 30%;
}

.csl-table-col-actions {
    width: 10%;
}

.preserve-line-breaks {
    white-space: pre-wrap;
}

.preserve-pre-line {
    white-space: pre-line;
}

.badge-seen {
    font-size: 0.65rem;
}

.podcast-audio-main {
    max-width: 600px;
}

.podcast-audio-radio {
    max-width: 500px;
}

.podcast-audio-home {
    max-width: 100%;
}

.pin-input-sm {
    max-width: 160px;
}

.treasury-report-page .chart-container {
    position: relative;
    margin: auto;
    height: 50vh;
    width: 100%;
    max-width: 700px;
}

.treasury-report-page .table th,
.treasury-report-page .table td {
    vertical-align: middle;
}

.tutorial-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
    height: 100%;
    opacity: 1 !important;
    transform: none !important;
}

.tutorial-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}

.tutorial-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
}

.tutorial-category {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    display: inline-block;
    margin-bottom: 1rem;
}

.hi-page .card {
    opacity: 1 !important;
    transform: none !important;
}

.hi-page .hi-script-fallback {
    display: block;
}

.hi-page .hi-map-empty {
    min-height: 420px;
    border-radius: 0.5rem;
    background: #eef5fb;
    color: #5d6c7c;
}

.hi-page .hi-map {
    height: 420px;
    border-radius: 0.5rem;
    overflow: hidden;
}

.hi-page .pdf-date-unique {
    width: 180px;
}

.hi-page .pdf-date-range {
    width: 155px;
}

.hi-page .pdf-preview-box {
    max-height: 800px;
}

.hi-page .pdf-preview-frame {
    border: 1px solid #ccc;
    border-radius: 0.5rem;
}

.ce-report-editor-page .ql-editor {
    min-height: 250px;
    font-size: 1rem;
}

.ce-report-edit-page .ql-editor {
    min-height: 350px;
}

.ce-report-editor-page .ql-toolbar.ql-snow {
    border-radius: 8px 8px 0 0;
    background: #f8f9fa;
}

.ce-report-editor-page .ql-container.ql-snow {
    border-radius: 0 0 8px 8px;
}

.ce-report-editor-page .ql-snow .ql-picker.ql-header {
    width: 110px;
}

.ce-report-edit-page .ql-snow .ql-picker.ql-header {
    width: 120px;
}

.ce-dashboard-page .ql-snow.ql-toolbar button:hover,
.ce-dashboard-page .ql-snow .ql-toolbar button:hover,
.ce-dashboard-page .ql-snow.ql-toolbar button:focus,
.ce-dashboard-page .ql-snow .ql-toolbar button:focus,
.ce-dashboard-page .ql-snow.ql-toolbar button.ql-active,
.ce-dashboard-page .ql-snow .ql-toolbar button.ql-active {
    color: #198754;
}

.ce-dashboard-page .ql-snow.ql-toolbar button:hover .ql-stroke,
.ce-dashboard-page .ql-snow .ql-toolbar button:hover .ql-stroke,
.ce-dashboard-page .ql-snow.ql-toolbar button:focus .ql-stroke,
.ce-dashboard-page .ql-snow .ql-toolbar button:focus .ql-stroke,
.ce-dashboard-page .ql-snow.ql-toolbar button.ql-active .ql-stroke,
.ce-dashboard-page .ql-snow .ql-toolbar button.ql-active .ql-stroke {
    stroke: #198754;
}

.ce-report-edit-page .ql-snow.ql-toolbar button:hover,
.ce-report-edit-page .ql-snow .ql-toolbar button:hover,
.ce-report-edit-page .ql-snow.ql-toolbar button:focus,
.ce-report-edit-page .ql-snow .ql-toolbar button:focus,
.ce-report-edit-page .ql-snow.ql-toolbar button.ql-active,
.ce-report-edit-page .ql-snow .ql-toolbar button.ql-active {
    color: #0d6efd;
}

.ce-report-edit-page .ql-snow.ql-toolbar button:hover .ql-stroke,
.ce-report-edit-page .ql-snow .ql-toolbar button:hover .ql-stroke,
.ce-report-edit-page .ql-snow.ql-toolbar button:focus .ql-stroke,
.ce-report-edit-page .ql-snow .ql-toolbar button:focus .ql-stroke,
.ce-report-edit-page .ql-snow.ql-toolbar button.ql-active .ql-stroke,
.ce-report-edit-page .ql-snow .ql-toolbar button.ql-active .ql-stroke {
    stroke: #0d6efd;
}

.ce-report-content-field {
    display: none;
}

.ce-report-list-body {
    max-height: 600px;
    overflow-y: auto;
}

.report-preview {
    max-height: 150px;
    overflow-y: auto;
    padding: 0.75rem;
    background: #f8f9fa;
    border-radius: 8px;
    font-size: 0.85rem;
}

.report-preview h1,
.report-preview h2,
.report-preview h3 {
    font-size: 1rem;
    font-weight: 700;
    margin-top: 0.5rem;
}

.report-preview p {
    margin-bottom: 0.5rem;
}

@media print {
    body.ce-admin-report-page .navbar,
    body.ce-admin-report-page footer,
    body.ce-admin-report-page .btn,
    body.ce-admin-report-page .breadcrumb,
    body.ce-admin-report-page .col-lg-4 {
        display: none !important;
    }

    body.ce-admin-report-page .col-lg-8 {
        width: 100% !important;
        max-width: 100% !important;
    }
}

.section-stats {
    background: linear-gradient(135deg, #0d47a1 0%, #1565c0 100%);
    color: #fff;
}

.csl-month-stat-card {
    min-height: 100%;
    padding: 1rem;
    border-radius: var(--border-radius);
    text-align: center;
}

.csl-month-stat-card.is-meetings {
    background: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%);
}

.csl-month-stat-card.is-attendance {
    background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
}

.csl-month-stat-card.is-newcomers {
    background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
}

.csl-stat-icon {
    font-size: 2rem;
}

.consensus-icon-circle {
    width: 50px;
    height: 50px;
}

.csl-ce-report-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.csl-ce-report-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    font-size: 0.9rem;
    font-weight: 600;
}

.csl-ce-report-pill.is-submitted {
    background: #e8f5e9;
    color: #2e7d32;
}

.csl-ce-report-pill.is-missing {
    background: #eceff1;
    color: #455a64;
}

.csl-ce-report-list {
    display: grid;
    gap: 1rem;
}

.csl-ce-report-card {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-left-width: 4px;
    border-radius: var(--border-radius);
    overflow: hidden;
    min-width: 0;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.csl-ce-report-card.is-submitted {
    border-left-color: #2e7d32;
}

.csl-ce-report-card.is-missing {
    border-left-color: #90a4ae;
}

.csl-ce-report-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
}

.csl-ce-report-card.is-submitted .csl-ce-report-header {
    background: linear-gradient(135deg, rgba(76, 175, 80, 0.12) 0%, rgba(129, 199, 132, 0.18) 100%);
}

.csl-ce-report-card.is-missing .csl-ce-report-header {
    background: linear-gradient(135deg, rgba(144, 164, 174, 0.12) 0%, rgba(207, 216, 220, 0.18) 100%);
}

.csl-ce-report-role {
    margin: 0;
    color: #1f2937;
    font-size: 1rem;
    font-weight: 700;
}

.csl-ce-report-meta {
    margin-top: 0.35rem;
    color: #5f6b7a;
    font-size: 0.9rem;
}

.csl-ce-report-status {
    flex: 0 0 auto;
    white-space: nowrap;
}

.csl-ce-report-body {
    padding: 1rem 1.25rem 1.25rem;
}

.csl-ce-report-content {
    color: #273142;
    line-height: 1.7;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.csl-ce-report-content p,
.csl-ce-report-content ul,
.csl-ce-report-content ol,
.csl-ce-report-content h1,
.csl-ce-report-content h2,
.csl-ce-report-content h3,
.csl-ce-report-content h4 {
    margin-bottom: 0.75rem;
}

.csl-ce-report-content > *:last-child,
.csl-ce-report-question > *:last-child {
    margin-bottom: 0;
}

.csl-ce-report-empty {
    margin: 0;
    color: #607080;
}

.csl-ce-report-questions {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.csl-ce-report-questions-title {
    margin-bottom: 0.75rem;
    color: #334155;
    font-size: 0.95rem;
    font-weight: 700;
}

.csl-ce-report-question {
    padding: 0.75rem 0.9rem;
    border-radius: var(--border-radius);
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.18);
    color: #334155;
}

.csl-ce-report-question + .csl-ce-report-question {
    margin-top: 0.6rem;
}

.csl-ce-report-answer {
    margin-top: 0.35rem;
    color: #5f6b7a;
}

/* ========================================
   REPORT PDF ATTACHMENTS
   ======================================== */
.report-attachment {
    margin-top: 1rem;
    padding: clamp(0.75rem, 2vw, 1rem);
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 8px;
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
    max-width: 100%;
    overflow: hidden;
    break-inside: avoid;
}

.report-attachment-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
    color: #334155;
    font-size: 0.9rem;
    font-weight: 700;
}

.report-attachment-filename {
    color: #64748b;
    font-weight: 500;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.report-attachment-pages {
    display: grid;
    gap: 1rem;
    justify-items: center;
}

.report-attachment-page {
    margin: 0;
    width: min(100%, 920px);
    padding: clamp(0.45rem, 1.5vw, 0.85rem);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 6px;
    background: #e2e8f0;
    max-width: 100%;
    break-inside: avoid;
    page-break-inside: avoid;
}

.report-attachment-page img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: min(82vh, 1120px);
    height: auto;
    margin: 0 auto;
    border: 1px solid rgba(15, 23, 42, 0.18);
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 12px 26px rgba(15, 23, 42, 0.12);
    object-fit: contain;
}

.report-attachment-page-cropped img,
.report-attachment-page-trimmed img {
    max-height: none;
}

.report-attachment-page figcaption {
    margin-top: 0.35rem;
    color: #64748b;
    font-size: 0.78rem;
    text-align: center;
}

@media (max-width: 767.98px) {
    .csl-ce-report-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.7rem;
    }

    .csl-ce-report-status {
        white-space: normal;
    }

    .report-attachment {
        padding: 0.65rem;
    }

    .report-attachment-heading {
        align-items: flex-start;
        font-size: 0.85rem;
    }
}

/* ========================================
   5. BOUTONS UNIFORMISÉS
   ======================================== */
.btn {
    font-weight: 500;
    padding: var(--spacing-sm) var(--spacing-lg);
    border-radius: var(--border-radius-sm);
    transition: var(--transition-base);
    text-transform: none;
    letter-spacing: 0;
    border: 1px solid transparent;
    box-shadow: var(--shadow-sm);
    position: relative;
    overflow: hidden;
}

.btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn:active {
    transform: translateY(0);
    box-shadow: var(--shadow-sm);
}

/* Boutons primaires avec gradient */
.btn-primary {
    background: linear-gradient(135deg, var(--bs-primary) 0%, #0056b3 100%);
    color: white;
}

.btn-primary:hover {
    background: linear-gradient(135deg, #0056b3 0%, #004094 100%);
}

.btn-success {
    background: linear-gradient(135deg, var(--bs-success) 0%, #146c43 100%);
}

.btn-info {
    background: linear-gradient(135deg, var(--bs-info) 0%, #0aa2c0 100%);
}

.btn-warning {
    background: linear-gradient(135deg, var(--bs-warning) 0%, #cc9a06 100%);
}

.btn-danger {
    background: linear-gradient(135deg, var(--bs-danger) 0%, #b02a37 100%);
}

/* Boutons outline améliorés */
.btn-outline-primary {
    color: var(--bs-primary);
    border: 2px solid var(--bs-primary);
    background: transparent;
}

.btn-outline-primary:hover {
    background: var(--bs-primary);
    color: white;
    border-color: var(--bs-primary);
}

.btn-outline-secondary {
    color: #495057;
    border: 2px solid #6c757d;
    background: transparent;
}

.btn-outline-secondary:hover {
    color: #fff;
    background: #5c636a;
    border-color: #565e64;
}

.btn-outline-success {
    color: #146c43;
    border: 2px solid #198754;
    background: transparent;
}

.btn-outline-success:hover {
    color: #fff;
    background: #146c43;
    border-color: #146c43;
}

.btn-outline-info {
    color: #087990;
    border: 2px solid #087990;
    background: transparent;
}

.btn-outline-info:hover {
    color: #fff;
    background: #087990;
    border-color: #087990;
}

.btn-outline-warning {
    color: #765500;
    border: 2px solid #8a6500;
    background: transparent;
}

.btn-outline-warning:hover {
    color: #fff;
    background: #765500;
    border-color: #765500;
}

.btn-outline-danger {
    color: #b02a37;
    border: 2px solid #dc3545;
    background: transparent;
}

.btn-outline-danger:hover {
    color: #fff;
    background: #b02a37;
    border-color: #b02a37;
}

.btn-outline-dark {
    color: #212529;
    border: 2px solid #343a40;
    background: transparent;
}

.btn-outline-dark:hover {
    color: #fff;
    background: #212529;
    border-color: #212529;
}

.btn-outline-light {
    color: #fff;
    border: 2px solid rgba(255, 255, 255, 0.85);
    background: transparent;
}

.ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transform: scale(0);
    animation: ripple-animation 0.6s ease-out;
    pointer-events: none;
}

@keyframes ripple-animation {
    to {
        transform: scale(4);
        opacity: 0;
    }
}

.will-animate {
    opacity: 0;
    transform: translateY(20px);
}

.fade-in {
    animation: fadeInUp 0.6s ease-out forwards;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ========================================
   6. NAVIGATION AMÉLIORÉE
   ======================================== */
.navbar {
    background: linear-gradient(135deg, var(--na-primary) 0%, var(--na-primary-dark) 100%);
    box-shadow: var(--shadow-md);
    padding: var(--spacing-sm) 0;
}

.navbar-brand {
    font-weight: 700;
    font-size: var(--font-size-xl);
    color: var(--bs-white) !important;
    transition: var(--transition-base);
}

.navbar-brand:hover {
    transform: scale(1.05);
}

.nav-link {
    color: rgba(255, 255, 255, 0.9) !important;
    font-weight: 500;
    transition: var(--transition-base);
    padding: var(--spacing-sm) var(--spacing-md) !important;
    border-radius: var(--border-radius-sm);
}

.nav-link:hover {
    color: var(--na-secondary) !important;
    background: rgba(255, 255, 255, 0.1);
    transform: translateY(-2px);
}

.nav-link.active {
    color: var(--na-secondary) !important;
    background: rgba(255, 255, 255, 0.15);
}

/* Icônes de navigation */
.nav-icon {
    font-size: 1.6rem;
    transition: var(--transition-base);
}

.nav-icon-label {
    display: none;
}

.notification-item[role="link"] {
    cursor: pointer;
}

@media (max-width: 991.98px) {
    .navbar-toggler {
        min-width: 44px;
        min-height: 44px;
    }

    .navbar-collapse {
        padding-top: 0.75rem;
    }

    .navbar .zoom-link {
        display: none !important;
    }

    .nav-icon {
        display: flex;
        min-height: 44px;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        font-size: 1rem;
    }

    .nav-icon i {
        font-size: 1.35rem;
    }

    .nav-icon-label {
        display: inline;
    }

    .notification-bell-mobile {
        top: 10px;
        width: 44px;
        height: 44px;
    }
}

/* Notification bell enhanced */
#notifDropdown .bi-bell {
    font-size: 1.7rem;
    color: #fff;
    filter: drop-shadow(0 2px 2px rgba(0,0,0,0.25));
}
#notifDropdown .bi-bell:hover {
    color: var(--na-secondary);
    transform: scale(1.15);
}
#notif-badge {
    transform: translate(-20%, -20%);
    border: 2px solid #fff;
    box-shadow: var(--shadow-sm);
}

.nav-icon:hover {
    transform: scale(1.2) rotate(5deg);
    color: var(--na-secondary) !important;
}

/* ========================================
   7. LOGO & BRANDING
   ======================================== */
.logo-container {
    display: inline-block;
    transition: var(--transition-base);
    filter: drop-shadow(var(--shadow-md));
}

.logo-container:hover {
    transform: scale(1.08) rotate(-2deg);
    filter: drop-shadow(var(--shadow-lg));
}

.logo-image {
    max-width: 100%;
    height: auto;
    max-height: 120px;
}

/* ========================================
   8. TABLEAUX UNIFORMISÉS
   ======================================== */
.table {
    background: var(--bs-white);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.table thead {
    background: linear-gradient(135deg, var(--na-primary) 0%, var(--na-primary-dark) 100%);
    color: var(--bs-white);
}

.table thead th {
    border: none;
    padding: var(--spacing-md);
    font-weight: 600;
    text-transform: uppercase;
    font-size: var(--font-size-sm);
    letter-spacing: 0;
}

.table tbody tr {
    transition: var(--transition-fast);
}

.table tbody tr:hover {
    background: rgba(0, 63, 125, 0.05);
}

.table-striped tbody tr:nth-of-type(odd) {
    background: rgba(0, 0, 0, 0.02);
}

/* ========================================
   9. FORMULAIRES UNIFORMISÉS
   ======================================== */
.form-control, .form-select {
    border: 2px solid #e0e0e0;
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    transition: var(--transition-base);
    font-size: var(--font-size-base);
}

.form-control:focus, .form-select:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
    transform: translateY(-2px);
}

.form-label {
    font-weight: 500;
    color: var(--bs-dark);
    margin-bottom: var(--spacing-xs);
}

/* ========================================
   10. ALERTES AMÉLIORÉES
   ======================================== */
.alert {
    border: none;
    border-radius: var(--border-radius);
    padding: var(--spacing-md) var(--spacing-lg);
    box-shadow: var(--shadow-sm);
    border-left: 4px solid;
    animation: slideInRight 0.3s ease-out;
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.alert-primary {
    background: rgba(13, 110, 253, 0.1);
    border-left-color: var(--bs-primary);
}

.alert-success {
    background: rgba(25, 135, 84, 0.1);
    border-left-color: var(--bs-success);
}

.alert-info {
    background: rgba(13, 202, 240, 0.1);
    border-left-color: var(--bs-info);
}

.alert-warning {
    background: rgba(255, 193, 7, 0.1);
    border-left-color: var(--bs-warning);
}

.alert-danger {
    background: rgba(220, 53, 69, 0.1);
    border-left-color: var(--bs-danger);
}

/* ========================================
   11. BADGES AMÉLIORÉS
   ======================================== */
.badge {
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--border-radius-sm);
    font-weight: 500;
    font-size: var(--font-size-sm);
    letter-spacing: 0;
    box-shadow: var(--shadow-sm);
}

/* ========================================
   12. LISTES AMÉLIORÉES
   ======================================== */
.list-group {
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.list-group-item {
    border: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    transition: var(--transition-base);
}

.list-group-item:hover {
    background: rgba(0, 63, 125, 0.05);
    transform: translateX(5px);
}

.list-group-item:last-child {
    border-bottom: none;
}

.list-group-item-action {
    cursor: pointer;
}

/* ========================================
   13. MODALES AMÉLIORÉES
   ======================================== */
.modal-content {
    border: none;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-xl);
    overflow: hidden;
}

.modal-header {
    background: linear-gradient(135deg, var(--na-primary) 0%, var(--na-primary-dark) 100%);
    color: var(--bs-white);
    border-bottom: none;
    padding: var(--spacing-lg);
}

.modal-title {
    font-weight: 600;
    font-size: var(--h4-size);
}

.modal-body {
    padding: var(--spacing-lg);
}

.modal-footer {
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding: var(--spacing-md) var(--spacing-lg);
}

/* ========================================
   14. CARTE INTERACTIVE (MAP)
   ======================================== */
#map {
    height: 500px;
    width: 100%;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-lg);
    margin: var(--spacing-lg) 0;
    transition: var(--transition-base);
}

#map:hover {
    box-shadow: var(--shadow-xl);
}

.leaflet-popup-content-wrapper {
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-md);
}

.leaflet-popup-content {
    font-size: var(--font-size-sm);
    line-height: 1.5;
}

/* ========================================
   15. CALENDRIER AMÉLIORÉ
   ======================================== */
#calendar {
    max-width: 1200px;
    margin: var(--spacing-xl) auto;
    background: var(--bs-white);
    padding: var(--spacing-lg);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-lg);
}

.fc-event {
    border: none !important;
    background: linear-gradient(135deg, var(--na-primary) 0%, var(--na-primary-dark) 100%) !important;
    color: white !important;
    padding: 4px 8px;
    font-size: var(--font-size-sm);
    cursor: pointer;
    transition: var(--transition-fast);
    border-radius: var(--border-radius-sm);
}

.fc-event:hover {
    transform: scale(1.05);
    box-shadow: var(--shadow-md);
}

/* Événements spéciaux */
.fc-event.business-meeting {
    background: linear-gradient(135deg, var(--bs-danger) 0%, #b02a37 100%) !important;
}

.fc-event.subcommittee-meeting {
    background: linear-gradient(135deg, var(--bs-success) 0%, #146c43 100%) !important;
}

.fc-event.anniversary-occurrence {
    background: linear-gradient(135deg, var(--na-secondary) 0%, var(--na-secondary-dark) 100%) !important;
    color: var(--bs-dark) !important;
}

/* ========================================
   16. SECTIONS PODCAST
   ======================================== */
.podcast-episode {
    background: var(--bs-white);
    border-radius: var(--border-radius);
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-md);
    box-shadow: var(--shadow-sm);
    transition: var(--transition-base);
}

.podcast-episode:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}

audio {
    width: 100%;
    border-radius: var(--border-radius-sm);
    margin: var(--spacing-sm) 0;
}

/* ========================================
   17. FOOTER AMÉLIORÉ
   ======================================== */
footer {
    background: linear-gradient(135deg, #2c3e50 0%, #1a252f 100%);
    color: rgba(255, 255, 255, 0.8);
    padding: var(--spacing-xl) 0;
    margin-top: var(--spacing-xxl);
    box-shadow: 0 -5px 20px rgba(0, 0, 0, 0.1);
}

footer a {
    color: var(--na-secondary);
    text-decoration: none;
    transition: var(--transition-base);
}

footer a:hover {
    color: var(--bs-white);
    transform: translateY(-2px);
}

/* ========================================
   18. ANIMATIONS & EFFETS
   ======================================== */
.fade-in {
    animation: fadeIn 0.5s ease-in;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.slide-up {
    animation: slideUp 0.5s ease-out;
}

@keyframes slideUp {
    from {
        transform: translateY(30px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* Effet de pulsation pour les éléments importants */
.pulse {
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

/* ========================================
   19. UTILITAIRES PERSONNALISÉS
   ======================================== */
.shadow-hover:hover {
    box-shadow: var(--shadow-hover) !important;
}

.rounded-lg {
    border-radius: var(--border-radius-lg) !important;
}

.rounded-xl {
    border-radius: var(--border-radius-xl) !important;
}

.bg-gradient-primary {
    background: linear-gradient(135deg, var(--bs-primary) 0%, #0056b3 100%) !important;
}

.bg-gradient-success {
    background: linear-gradient(135deg, var(--bs-success) 0%, #146c43 100%) !important;
}

.text-gradient {
    background: linear-gradient(135deg, var(--na-primary) 0%, var(--na-secondary) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ========================================
   20. PAGE CONGRES
   ======================================== */
.congress-page {
    background: #000;
}

.congress-page .navbar-brand {
    display: none !important;
}

.congress-page .navbar {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
    min-height: auto !important;
}

.congress-page .navbar,
.congress-page .navbar::before,
.congress-page .navbar::after {
    background: #000 !important;
    background-image: none !important;
    box-shadow: none !important;
    border: 0 !important;
}

.congress-page .navbar .navbar-brand,
.congress-page .navbar .nav-link,
.congress-page .navbar .nav-link i {
    color: #d4af37 !important;
}

.congress-page .navbar .nav-link:hover,
.congress-page .navbar .nav-link i:hover {
    color: #e7c96c !important;
}

.congress-page .navbar .navbar-toggler {
    border-color: #d4af37 !important;
}

.congress-page .navbar .navbar-toggler-icon {
    background-image: none !important;
    position: relative;
    width: 1.5em;
    height: 1.5em;
}

.congress-page .navbar .navbar-toggler-icon::before,
.congress-page .navbar .navbar-toggler-icon::after {
    content: '';
    position: absolute;
    left: 0.2em;
    right: 0.2em;
    height: 2px;
    background-color: #d4af37;
}

.congress-page .navbar .navbar-toggler-icon::before {
    top: 0.45em;
}

.congress-page .navbar .navbar-toggler-icon::after {
    bottom: 0.45em;
}

.congress-page .dropdown-menu {
    background-color: #111;
    border-color: #333;
}

.congress-page .dropdown-menu .dropdown-item {
    color: #d4af37;
}

.congress-page .dropdown-menu .dropdown-item:hover {
    background: #1a1a1a;
    color: #e7c96c;
}

.congress-page .navbar .container,
.congress-page .navbar .container-fluid {
    padding-left: 0 !important;
    padding-right: 0 !important;
    min-height: 0 !important;
}

.congress-page .navbar .navbar-collapse {
    margin-left: 0 !important;
}

.congress-page .logo-container,
.congress-page .logo-image,
.congress-page img[src$="CSLQNA.svg"],
.congress-page img[src*="CSLQNA.svg"] {
    display: none !important;
}

.congress-logo-container {
    display: inline-block;
    position: relative;
    padding: 10px;
}

.congress-logo {
    transition: transform 0.3s ease;
    cursor: pointer;
    border-radius: 10px;
    display: block;
    max-height: clamp(150px, 24vw, 230px);
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.congress-logo:hover {
    transform: scale(1.04);
}

.congress-panel {
    background: linear-gradient(145deg, #0b0b0b 0%, #151007 100%);
    border: 1px solid rgba(212, 175, 55, 0.78);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.38), 0 4px 16px rgba(212, 175, 55, 0.12);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    border-radius: 12px;
}

.congress-panel:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.46), 0 6px 20px rgba(212, 175, 55, 0.18);
    border-color: #e7c96c;
}

.congress-shell {
    background: linear-gradient(180deg, #030303 0%, #0c0904 48%, #000 100%);
    color: #d4af37;
}

.congress-title,
.congress-text,
.congress-form-label {
    color: #d4af37;
}

.congress-muted {
    color: #c8a74a;
}

.congress-page-header {
    gap: 1rem;
}

.congress-manage-btn {
    flex: 0 0 auto;
}

.congress-outline-btn {
    border: 1px solid #d4af37;
    color: #d4af37;
    background: transparent;
}

.congress-outline-btn:hover,
.congress-outline-btn:focus {
    border-color: #e7c96c;
    color: #e7c96c;
    background: #111;
}

.congress-primary-btn {
    background: #d4af37;
    color: #000;
    border: 0;
}

.congress-primary-btn:hover,
.congress-primary-btn:focus {
    background: #e7c96c;
    color: #000;
}

.congress-badge {
    background: #1a1a1a;
    border: 1px solid #d4af37;
    color: #e7c96c;
}

.congress-modal-content {
    background: #1a1a1a;
    border: 1px solid #d4af37;
}

.congress-modal-header {
    border-bottom: 1px solid #d4af37;
}

.congress-modal-footer {
    border-top: 1px solid #d4af37;
}

.congress-close {
    filter: invert(1);
}

.congress-form-control {
    background: #111;
    border: 1px solid #d4af37;
    color: #e7c96c;
}

.congress-form-control:focus {
    background: #111;
    border-color: #e7c96c;
    color: #e7c96c;
    box-shadow: 0 0 0 0.25rem rgba(212, 175, 55, 0.2);
}

.congress-event-card {
    background: #111;
    border-left: 3px solid #d4af37;
    border-radius: 5px;
}

.congress-event-title,
.congress-event-support-text {
    color: #e7c96c;
}

.congress-countdown-badge {
    background: #d4af37;
    color: #000;
}

.congress-kicker {
    color: #e7c96c;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.congress-schedule-panel {
    overflow: hidden;
}

.congress-schedule-panel:hover {
    transform: none;
}

.congress-schedule-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.congress-schedule-status {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    max-width: min(420px, 100%);
    padding: 0.45rem 0.75rem;
    border: 1px solid rgba(212, 175, 55, 0.5);
    border-radius: 999px;
    background: #111;
    color: #e7c96c;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.25;
}

.congress-schedule-status.is-live {
    border-color: #ff6b6b;
    background: #b91c1c;
    color: #fff;
    animation: congressSchedulePulse 1s ease-in-out infinite;
}

.congress-schedule {
    display: grid;
    gap: 1rem;
}

.congress-schedule-day {
    border: 1px solid rgba(212, 175, 55, 0.35);
    border-radius: 10px;
    overflow: visible;
    background: #050505;
    box-shadow: inset 0 0 0 1px rgba(255, 217, 94, 0.05);
}

.congress-schedule-day-title {
    margin: 0;
    padding: 0.55rem 0.9rem;
    background: #d4af37;
    color: #000;
    font-size: 1rem;
    font-weight: 900;
    text-align: center;
}

.congress-schedule-table-wrap {
    border-top: 1px solid rgba(212, 175, 55, 0.35);
    overflow: visible;
    padding: 0.25rem;
    background: #050505;
    perspective: 1200px;
}

.congress-schedule-table {
    min-width: 760px;
    color: #f8e7a4;
    --bs-table-bg: transparent;
    --bs-table-color: #f8e7a4;
    --bs-table-border-color: rgba(212, 175, 55, 0.22);
    background: #050505 !important;
    border-color: rgba(212, 175, 55, 0.28);
    border-collapse: separate;
    border-spacing: 0 0.22rem;
    box-shadow: none;
}

.congress-schedule-table thead,
.congress-schedule-table tbody,
.congress-schedule-table tr {
    background: transparent !important;
}

.congress-schedule-table thead th {
    padding: 0.45rem 0.7rem;
    background: #101010;
    color: #e7c96c;
    border-color: rgba(212, 175, 55, 0.28);
    font-size: 0.85rem;
    font-style: italic;
}

.congress-schedule-row {
    --schedule-row-bg: #0f0d08;
    --schedule-row-bg-mid: #0f0d08;
    --schedule-row-bg-end: #090806;
    --schedule-row-accent: #d4af37;
    --schedule-time-bg: #1b1506;
    --schedule-room-bg: #151107;
    position: relative;
    background: var(--schedule-row-bg);
    border-left: 7px solid var(--schedule-row-accent);
    cursor: pointer;
    transform: translateZ(0);
    transform-origin: center;
    transform-style: preserve-3d;
    transition: background 0.2s ease, box-shadow 0.24s ease, filter 0.24s ease, transform 0.24s ease;
    will-change: transform;
}

.congress-schedule-row td {
    position: relative;
    padding: 0.42rem 0.7rem;
    vertical-align: middle;
    background: linear-gradient(90deg, var(--schedule-row-bg) 0%, var(--schedule-row-bg-mid) 52%, var(--schedule-row-bg-end) 100%) !important;
    color: #f8e7a4;
    border-color: rgba(212, 175, 55, 0.18);
    transition: background 0.24s ease, color 0.24s ease, text-shadow 0.24s ease;
}

.congress-schedule-row.is-next {
    box-shadow: inset 0 0 0 999px rgba(212, 175, 55, 0.1);
}

.congress-schedule-row.is-live {
    --schedule-row-bg: #b91c1c;
    --schedule-row-accent: #fff;
    position: relative;
    color: #fff;
    transform-origin: center;
    animation: congressSchedulePulse 1s ease-in-out infinite;
}

.congress-schedule-row.is-live td {
    background: linear-gradient(135deg, #991b1b 0%, #dc2626 55%, #ef4444 100%) !important;
    color: #fff;
    font-weight: 900;
}

.congress-schedule-room-blizzard {
    --schedule-row-bg: #563604;
    --schedule-row-bg-mid: #342205;
    --schedule-row-bg-end: #171006;
    --schedule-row-accent: #ffd95e;
    --schedule-time-bg: #6b4605;
    --schedule-room-bg: #432d07;
}

.congress-schedule-room-suroit {
    --schedule-row-bg: #202020;
    --schedule-row-bg-mid: #111111;
    --schedule-row-bg-end: #070707;
    --schedule-row-accent: #d4af37;
    --schedule-time-bg: #2d2815;
    --schedule-room-bg: #1b1b1b;
}

.congress-schedule-room-7e-ciel-a {
    --schedule-row-bg: #4a1d07;
    --schedule-row-bg-mid: #2a1207;
    --schedule-row-bg-end: #120904;
    --schedule-row-accent: #ffad4a;
    --schedule-time-bg: #5c2508;
    --schedule-room-bg: #341607;
}

.congress-schedule-room-7e-ciel-b {
    --schedule-row-bg: #383205;
    --schedule-row-bg-mid: #211e05;
    --schedule-row-bg-end: #0d0b04;
    --schedule-row-accent: #f4e06d;
    --schedule-time-bg: #4b4308;
    --schedule-room-bg: #2a2607;
}

.congress-schedule-room-7e-ciel-c {
    --schedule-row-bg: #252317;
    --schedule-row-bg-mid: #14130d;
    --schedule-row-bg-end: #070707;
    --schedule-row-accent: #b7a66a;
    --schedule-time-bg: #34301d;
    --schedule-room-bg: #1d1b11;
}

.congress-schedule-time {
    width: 8.5rem;
    color: #fff6d6;
    font-weight: 900;
    white-space: nowrap;
}

.congress-schedule-activity {
    min-width: 24rem;
    color: #f8e7a4;
    font-weight: 700;
}

.congress-schedule-room {
    width: 9rem;
    color: #fff6d6;
    font-weight: 900;
    text-align: center;
    white-space: nowrap;
}

.congress-schedule-row .congress-schedule-time {
    background: var(--schedule-time-bg) !important;
}

.congress-schedule-row .congress-schedule-room {
    background: var(--schedule-room-bg) !important;
    color: #fff6d6;
    box-shadow: inset 4px 0 0 var(--schedule-row-accent);
}

.congress-schedule-row .congress-schedule-activity {
    overflow: hidden;
}

.congress-schedule-row .congress-schedule-activity::after {
    content: '';
    position: absolute;
    top: -35%;
    bottom: -35%;
    left: -35%;
    width: 5rem;
    background: linear-gradient(90deg, transparent, rgba(255, 246, 214, 0.32), transparent);
    opacity: 0;
    pointer-events: none;
    transform: skewX(-18deg) translateX(0);
}

.congress-schedule-row:focus {
    outline: none;
}

.congress-schedule-row:focus-visible {
    outline: 2px solid var(--schedule-row-accent);
    outline-offset: 3px;
    z-index: 4;
    filter: saturate(1.28) brightness(1.14);
    transform: translate3d(0, -4px, 22px) rotateX(2deg) scale(1.018);
    box-shadow: 0 22px 40px rgba(0, 0, 0, 0.55), 0 0 0 1px var(--schedule-row-accent), 0 0 26px rgba(255, 217, 94, 0.24);
}

.congress-schedule-row:focus-visible td {
    color: #fffbe8;
    text-shadow: 0 0 14px rgba(255, 246, 214, 0.38);
}

@media (hover: hover) and (pointer: fine) {
    .congress-schedule-row:hover {
        z-index: 4;
        filter: saturate(1.28) brightness(1.14);
        transform: translate3d(0, -4px, 22px) rotateX(2deg) scale(1.018);
        box-shadow: 0 22px 40px rgba(0, 0, 0, 0.55), 0 0 0 1px var(--schedule-row-accent), 0 0 26px rgba(255, 217, 94, 0.24);
    }

    .congress-schedule-row:hover td {
        color: #fffbe8;
        text-shadow: 0 0 14px rgba(255, 246, 214, 0.38);
    }

    .congress-schedule-row:hover .congress-schedule-activity::after {
        opacity: 1;
        animation: congressScheduleSweep 0.95s ease;
    }
}

@media (max-width: 767.98px), (hover: none), (pointer: coarse) {
    .congress-schedule-row.is-centered {
        z-index: 5;
        filter: saturate(1.35) brightness(1.17);
        transform: translate3d(0, -3px, 28px) scale(1.045);
        box-shadow: 0 18px 38px rgba(0, 0, 0, 0.6), 0 0 0 1px var(--schedule-row-accent), 0 0 30px rgba(255, 217, 94, 0.28);
    }

    .congress-schedule-row.is-centered td {
        color: #fffbe8;
        text-shadow: 0 0 14px rgba(255, 246, 214, 0.38);
    }

    .congress-schedule-row.is-centered .congress-schedule-activity::after {
        opacity: 1;
        animation: congressScheduleSweep 1.15s ease;
    }
}

.congress-schedule-row:active {
    transform: translateY(1px) scale(0.985);
    filter: saturate(1.35) brightness(1.08);
}

.congress-schedule-live-pill {
    display: none;
    align-items: center;
    margin-right: 0.5rem;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: #fff;
    color: #b91c1c;
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.congress-schedule-row.is-live .congress-schedule-live-pill {
    display: inline-flex;
}

@keyframes congressSchedulePulse {
    0%,
    100% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(255, 70, 70, 0);
    }

    50% {
        transform: scale(1.025);
        box-shadow: 0 0 28px rgba(255, 70, 70, 0.9), inset 0 0 0 999px rgba(255, 255, 255, 0.08);
    }
}

@keyframes congressScheduleSweep {
    0% {
        transform: skewX(-18deg) translateX(0);
    }

    100% {
        transform: skewX(-18deg) translateX(56rem);
    }
}

@media (max-width: 767.98px) {
    .congress-schedule-heading {
        display: block;
    }

    .congress-page-header {
        display: block !important;
    }

    .congress-page-header .me-3 {
        margin-right: 0 !important;
    }

    .congress-manage-btn {
        margin-top: 0.85rem;
    }

    .congress-schedule-status {
        width: 100%;
        margin-top: 0.85rem;
        justify-content: flex-start;
        border-radius: 10px;
    }

    .congress-schedule-table {
        min-width: 0;
        width: 100%;
        border-collapse: separate;
        border-spacing: 0 0.5rem;
    }

    .congress-schedule-table thead {
        display: none;
    }

    .congress-schedule-row {
        display: grid;
        grid-template-columns: 5.8rem minmax(0, 1fr);
        border-left-width: 6px;
        border-radius: 11px;
        overflow: hidden;
    }

    .congress-schedule-row td {
        display: block;
        border: 0;
    }

    .congress-schedule-time {
        grid-row: 1 / span 2;
        width: auto;
        min-height: 100%;
        padding: 0.6rem 0.45rem;
        background: rgba(0, 0, 0, 0.28);
        text-align: center;
    }

    .congress-schedule-activity {
        min-width: 0;
        padding: 0.6rem 0.65rem 0.2rem;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }

    .congress-schedule-room {
        width: auto;
        padding: 0 0.65rem 0.6rem;
        color: #fff6d6;
        font-size: 0.82rem;
        text-align: left;
    }

    .congress-schedule-room::before {
        content: 'Salle ';
        color: #c8a74a;
        font-weight: 700;
    }
}

@media (prefers-reduced-motion: reduce) {
    .congress-schedule-row,
    .congress-schedule-row td,
    .congress-schedule-row .congress-schedule-activity::after {
        transition: none;
    }

    .congress-schedule-row:hover,
    .congress-schedule-row:focus-visible,
    .congress-schedule-row.is-centered,
    .congress-schedule-row:active {
        transform: none;
    }

    .congress-schedule-row:hover .congress-schedule-activity::after {
        animation: none;
    }

    .congress-schedule-row.is-live,
    .congress-schedule-status.is-live {
        animation: none;
    }
}

.congress-calendar-surface {
    background: #111;
    color: #d4af37;
}

.congress-map {
    height: 420px;
    background: #111;
}

.congress-location-panel {
    border-color: rgba(231, 201, 108, 0.86);
}

.congress-location-copy {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.congress-map-feature {
    min-height: 380px;
    border: 1px solid rgba(212, 175, 55, 0.32);
    overflow: hidden;
}

.congress-page #congress-calendar .fc {
    --fc-page-bg-color: #0b0b0b;
    --fc-neutral-bg-color: #0b0b0b;
    --fc-today-bg-color: #0d0d0d;
    --fc-border-color: #333;
    --fc-button-text-color: #d4af37;
    --fc-button-bg-color: #111;
    --fc-button-border-color: #d4af37;
    --fc-button-hover-bg-color: #1a1a1a;
    --fc-button-hover-border-color: #e7c96c;
    --fc-button-active-bg-color: #1f1f1f;
    --fc-button-active-border-color: #e7c96c;
    --fc-event-bg-color: #141414;
    --fc-event-border-color: #d4af37;
    --fc-event-text-color: #e7c96c;
    --fc-now-indicator-color: #d4af37;
    --fc-list-event-hover-bg-color: #141414;
}

.congress-page #congress-calendar .fc .fc-toolbar-title,
.congress-page #congress-calendar .fc .fc-list-day-text,
.congress-page #congress-calendar .fc .fc-list-day-side-text {
    color: #d4af37 !important;
}

.congress-page #congress-calendar .fc .fc-button,
.congress-page #congress-calendar .fc .fc-button-primary,
.congress-page #congress-calendar .fc .btn,
.congress-page #congress-calendar .fc .btn-primary,
.congress-page #congress-calendar .fc .btn:focus,
.congress-page #congress-calendar .fc .btn-primary:focus {
    background: #111 !important;
    color: #d4af37 !important;
    border: 1px solid #d4af37 !important;
    box-shadow: none !important;
}

.congress-page #congress-calendar .fc .fc-button:hover,
.congress-page #congress-calendar .fc .fc-button-primary:hover {
    background: #1a1a1a !important;
    color: #e7c96c !important;
    border-color: #e7c96c !important;
}

.congress-page #congress-calendar .fc .fc-button.fc-button-active {
    background: #1f1f1f !important;
    color: #e7c96c !important;
    border-color: #e7c96c !important;
}

.congress-page #congress-calendar .fc-theme-standard .fc-scrollgrid,
.congress-page #congress-calendar .fc-theme-standard td,
.congress-page #congress-calendar .fc-theme-standard th,
.congress-page #congress-calendar .fc .fc-list-day,
.congress-page #congress-calendar .fc .fc-list-table td,
.congress-page #congress-calendar .fc .fc-list-table th {
    border-color: #333 !important;
}

.congress-page #congress-calendar .fc a,
.congress-page #congress-calendar .fc .fc-list-event-title a,
.congress-page #congress-calendar .fc .fc-list-event-title a:link,
.congress-page #congress-calendar .fc .fc-list-event-title a:visited,
.congress-page #congress-calendar .fc .fc-list-event-title a:hover,
.congress-page #congress-calendar .fc .fc-list-event-title a:active {
    color: #e7c96c !important;
    text-decoration: none !important;
}

.congress-page #congress-calendar .fc .fc-list,
.congress-page #congress-calendar .fc .fc-list-table,
.congress-page #congress-calendar .fc .fc-list-table tbody tr td {
    background: #0b0b0b !important;
}

.congress-page #congress-calendar .fc .fc-list-table tbody tr td {
    color: #e7c96c !important;
    border-color: #333 !important;
}

.congress-page #congress-calendar .fc .fc-list-day-cushion,
.congress-page #congress-calendar .fc .fc-list-sticky .fc-list-day > * {
    background: #111 !important;
    color: #d4af37 !important;
    border-color: #333 !important;
}

.congress-page #congress-calendar .fc .fc-list-event-graphic,
.congress-page #congress-calendar .fc .fc-list-event-dot {
    border-color: #d4af37 !important;
}

.congress-page #congress-calendar .fc .fc-list-event:hover td {
    background: #141414 !important;
}

.congress-page #congress-calendar .fc .fc-list-event-time {
    color: #d4af37 !important;
}

.congress-page #congress-calendar .fc .fc-list-day-cushion a {
    color: #d4af37 !important;
}

.congress-archive-page #halloween-calendar .fc .fc-toolbar-title {
    color: #ff6b35;
    font-weight: bold;
}

.archive-halloween-panel {
    background: #1a0d2e;
    border: 2px solid #ff6b35;
}

.archive-halloween-card {
    background: #0b0b0b;
    border: 1px solid #ff6b35;
}

.archive-halloween-accent {
    color: #ff6b35;
}

.archive-halloween-title {
    color: #ff9f1c;
}

.archive-halloween-text,
.archive-halloween-prize-list {
    color: #d4af37;
}

.archive-halloween-prize-list {
    list-style: none;
    padding-left: 0;
}

.archive-halloween-ticket-box,
.archive-halloween-prize-box,
.archive-halloween-qr-box {
    background: #1a1a1a;
}

.archive-halloween-ticket-box {
    border-left: 3px solid #2ecc71;
}

.archive-halloween-prize-box {
    border-left: 3px solid #e74c3c;
}

.archive-halloween-success {
    color: #2ecc71;
}

.archive-halloween-danger {
    color: #e74c3c;
}

.archive-halloween-primary-btn {
    background: #ff6b35;
    color: #fff;
    border: 0;
}

.archive-halloween-primary-btn:hover,
.archive-halloween-primary-btn:focus {
    background: #ff8557;
    color: #fff;
}

.archive-halloween-outline-btn {
    border: 1px solid #ff6b35;
    color: #ff6b35;
    background: transparent;
}

.archive-halloween-outline-btn:hover,
.archive-halloween-outline-btn:focus {
    border-color: #ff9f1c;
    color: #ff9f1c;
    background: #1a0d2e;
}

.archive-halloween-map {
    height: 400px;
    background: #111;
}

.archive-halloween-calendar {
    background: #111;
    color: #d4af37;
}

.archive-halloween-qr {
    max-width: 120px;
    border: 2px solid #ff6b35;
}

.archive-halloween-modal-content {
    background: #1a0d2e;
    border: 2px solid #ff6b35;
}

.archive-halloween-modal-header {
    border-bottom: 1px solid #ff6b35;
}

.archive-halloween-modal-footer {
    border-top: 1px solid #ff6b35;
}

.archive-halloween-form-label {
    color: #ff9f1c;
}

.archive-halloween-form-control {
    background: #0b0b0b;
    border: 1px solid #ff6b35;
    color: #d4af37;
}

.archive-halloween-form-control:focus {
    background: #0b0b0b;
    border-color: #ff9f1c;
    color: #d4af37;
    box-shadow: 0 0 0 0.25rem rgba(255, 107, 53, 0.2);
}

.archive-halloween-success-alert {
    z-index: 9999;
    background: #2a5a2a;
    color: #90ee90;
    border: 1px solid #4a7c4a;
}

.halloween-marker-icon {
    font-size: 30px;
}

.congress-archive-page #halloween-calendar .fc .fc-button {
    background: #1a0d2e;
    color: #ff9f1c;
    border: 1px solid #ff6b35;
}

.congress-archive-page #halloween-calendar .fc .fc-button:hover {
    background: #2a1d3e;
    border-color: #ff9f1c;
}

.congress-archive-page #halloween-calendar .fc .fc-button-active {
    background: #ff6b35 !important;
    color: #000 !important;
}

.congress-archive-page #halloween-calendar .fc-theme-standard .fc-scrollgrid,
.congress-archive-page #halloween-calendar .fc-theme-standard td,
.congress-archive-page #halloween-calendar .fc-theme-standard th {
    border-color: #444;
}

.congress-archive-page #halloween-calendar .fc .fc-daygrid-day-number,
.congress-archive-page #halloween-calendar .fc .fc-list-event-time {
    color: #ff9f1c;
}

.congress-archive-page #halloween-calendar .fc .fc-col-header-cell-cushion {
    color: #ff6b35;
    font-weight: 600;
}

.congress-archive-page #halloween-calendar .fc .fc-daygrid-day.fc-day-today,
.congress-archive-page #halloween-calendar .fc .fc-list-day-cushion {
    background: #1a0d2e !important;
}

.congress-archive-page #halloween-calendar .fc .fc-list {
    border-color: #444;
}

.congress-archive-page #halloween-calendar .fc .fc-list-day-cushion {
    color: #ff6b35;
}

.congress-archive-page #halloween-calendar .fc .fc-list-event:hover {
    background: #2a1d3e;
}

.congress-archive-page #halloween-calendar .fc .fc-list-event-title {
    color: #d4af37;
}

.congress-archive-page .halloween-marker {
    animation: bounce 2s infinite;
}

.congress-archive-page #congress-calendar .fc .fc-toolbar-title {
    color: #d4af37;
}

.congress-archive-page #congress-calendar .fc .fc-button {
    background: #111;
    color: #d4af37;
    border: 1px solid #d4af37;
}

.congress-archive-page #congress-calendar .fc .fc-button:hover {
    background: #1a1a1a;
}

.congress-archive-page #congress-calendar .fc-theme-standard .fc-scrollgrid,
.congress-archive-page #congress-calendar .fc-theme-standard td,
.congress-archive-page #congress-calendar .fc-theme-standard th {
    border-color: #333;
}

.congress-archive-page #congress-calendar .fc .fc-daygrid-day-number {
    color: #d4af37;
}

.congress-archive-page #congress-calendar .fc .fc-col-header-cell-cushion {
    color: #c8a74a;
}

.congress-archive-page #congress-calendar .fc .fc-daygrid-event {
    background: #1a1a1a;
    border-color: #d4af37;
    color: #e7c96c;
}

.congress-archive-page #congress-calendar .fc .fc-list {
    border-color: #333;
}

.congress-archive-page #congress-calendar .fc .fc-list-day-cushion {
    background: #111;
    color: #d4af37;
}

.congress-archive-page #congress-calendar .fc .fc-list-event-graphic {
    border-color: #d4af37;
}

@keyframes bounce {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

/* ========================================
   21. RESPONSIVE DESIGN
   ======================================== */
@media (max-width: 768px) {
    :root {
        --h1-size: 2rem;
        --h2-size: 1.75rem;
        --h3-size: 1.5rem;
        --h4-size: 1.25rem;
        --h5-size: 1.125rem;
        --h6-size: 1rem;
    }
    
    .card {
        margin-bottom: var(--spacing-md);
    }
    
    .btn {
        min-height: 44px;
        padding: 0.55rem var(--spacing-md);
        font-size: var(--font-size-sm);
    }

    .btn-group > .btn {
        min-height: 44px;
    }

    .form-control,
    .form-select {
        min-height: 44px;
    }

    .meeting-filter-option {
        display: inline-flex;
        min-height: 44px;
        align-items: center;
        margin-right: 0;
        padding: 0.45rem 0.65rem 0.45rem 2rem;
        border: 1px solid #d5dce3;
        border-radius: var(--border-radius-sm);
        background: #fff;
    }

    .meeting-filter-option .form-check-input {
        width: 1.15rem;
        height: 1.15rem;
        margin-top: 0;
    }

    .fc .fc-button {
        min-width: 44px;
        min-height: 44px;
    }
    
    #map {
        height: 400px;
    }
    
    #calendar {
        padding: var(--spacing-md);
        margin: var(--spacing-md) auto;
    }
    
    .logo-image {
        max-height: 80px;
    }
    
    .navbar-nav {
        text-align: center;
    }

    .nav-link {
        margin: var(--spacing-xs) 0;
    }
    
    footer {
        padding: var(--spacing-lg) 0;
    }

    .cookie-banner-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 576px) {
    .container {
        padding-right: 0.75rem;
        padding-left: 0.75rem;
    }
    
    .card-body {
        padding: var(--spacing-md);
    }
    
    .table {
        font-size: var(--font-size-sm);
    }
    
    .modal-dialog {
        margin: var(--spacing-sm);
    }

    .footer-links ul {
        flex-direction: column;
        gap: 0.4rem;
    }

    .footer-links li::after {
        display: none;
    }
}

/* ========================================
   22. PRINT STYLES
   ======================================== */
@media print {
    body {
        background: white;
    }
    
    .navbar, footer, .btn, .nav-icon {
        display: none !important;
    }
    
    .card {
        box-shadow: none;
        border: 1px solid #ddd;
    }
    
    a {
        color: inherit;
        text-decoration: none;
    }

    .report-attachment {
        padding: 0;
        border: 0;
        background: transparent;
        overflow: visible;
    }

    .report-attachment-heading {
        color: #111;
        break-after: avoid;
        page-break-after: avoid;
    }

    .report-attachment-page {
        break-inside: avoid;
        page-break-inside: avoid;
        width: 100%;
        padding: 0;
        border: 0;
        background: transparent;
    }

    .report-attachment-page img {
        width: auto;
        max-width: 100%;
        max-height: none;
        border-color: #999;
        box-shadow: none;
    }
}

@media (hover: none), (pointer: coarse) {
    .card:hover,
    .btn:hover,
    .nav-link:hover,
    .logo-container:hover,
    .nav-icon:hover,
    .list-group-item:hover {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .card:hover,
    .btn:hover,
    .nav-link:hover,
    .logo-container:hover,
    .nav-icon:hover,
    .list-group-item:hover {
        transform: none;
    }
}

/* ========================================
   23. ACCESSIBILITÉ
   ======================================== */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Keep the standard Leaflet pin artwork while providing a larger touch area. */
.meeting-map-marker {
    box-sizing: content-box;
    padding: 2px;
    margin-left: -14px !important;
    margin-top: -43px !important;
}

/* Focus visible pour l'accessibilité */
*:focus-visible {
    outline: 3px solid var(--na-primary);
    outline-offset: 2px;
}

.navbar *:focus-visible,
.zoom-link-mobile *:focus-visible,
.notification-bell-mobile *:focus-visible {
    outline-color: #ffd24a;
}

fieldset > .form-label {
    width: auto;
    margin-bottom: 0.5rem;
    font-size: 1rem;
    font-weight: 600;
}

/* Amélioration du contraste pour les liens */
a {
    color: var(--na-primary);
    text-decoration: none;
    transition: var(--transition-base);
}

a:hover {
    color: var(--na-primary-dark);
    text-decoration: underline;
}

/* Mode sombre (optionnel) */
@media (prefers-color-scheme: dark) {
    /* Vous pouvez ajouter des styles pour le mode sombre ici */
}
/* static/css/experience.css */
/* ==========================================================================
   POINT 5 — EXPÉRIENCE VISUELLE ET MOBILE
   Couche isolée, chargée après les styles historiques pour rester réversible.
   ========================================================================== */

:root {
    --experience-ink: #172033;
    --experience-muted: #526071;
    --experience-surface: #ffffff;
    --experience-surface-soft: #f4f7fb;
    --experience-line: rgba(30, 58, 95, 0.14);
    --experience-shadow: 0 10px 28px rgba(31, 54, 86, 0.09);
    --experience-shadow-raised: 0 16px 38px rgba(31, 54, 86, 0.13);
}

body {
    color: var(--experience-ink);
    background:
        radial-gradient(circle at 12% 0%, rgba(255, 255, 255, 0.94), transparent 32rem),
        linear-gradient(145deg, #f4f7fb 0%, #e3eaf4 100%);
}

.site-main {
    padding-top: 1rem;
}

/* The shared layout is already a Bootstrap container. Avoid a second layer of
   horizontal padding in older templates that add another direct container. */
.site-main > .container {
    max-width: 100%;
    padding-right: 0;
    padding-left: 0;
}

.site-logo-block {
    margin: 0.5rem 0 1.5rem;
}

.site-logo-block .logo-container {
    margin-bottom: 0;
}

@media screen {
    .site-logo-block--compact .logo-image {
        max-height: 82px;
    }
}

/* Stable surfaces: content no longer moves when the pointer passes over it. */
body:not(.congress-page):not(.congress-archive-page) .card {
    border: 1px solid var(--experience-line);
    box-shadow: var(--experience-shadow);
}

body:not(.congress-page):not(.congress-archive-page) .card:hover {
    transform: none;
    box-shadow: var(--experience-shadow-raised);
}

/* Never hide content while waiting for a decorative intersection animation. */
.will-animate {
    opacity: 1;
    transform: none;
}

.fade-in {
    animation-duration: 0.3s;
}

.page-intro {
    max-width: 880px;
    margin: 0 auto 1.5rem;
}

.page-intro h1 {
    margin-bottom: 0.55rem;
    font-size: clamp(2rem, 4vw, 2.65rem);
    text-wrap: balance;
}

.page-intro .lead {
    max-width: 680px;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: auto;
    color: var(--experience-muted) !important;
}

/* Navigation: the three principal destinations keep their icons and gain labels. */
.navbar .nav-icon {
    display: flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    font-size: 0.95rem;
}

.navbar .nav-icon i {
    font-size: 1.15rem;
}

.navbar .nav-icon-label {
    display: inline;
}

.navbar .nav-link:hover,
.navbar .nav-icon:hover {
    transform: none;
}

/* Meeting filters */
.meeting-filters {
    overflow: hidden;
}

.meeting-filters .card-header {
    min-height: 54px;
    padding: 0.8rem 1.25rem;
}

.meeting-filters .card-body {
    padding: 1rem 1.25rem 0.75rem;
}

.meeting-filters fieldset {
    margin: 0 0 0.85rem;
}

.meeting-filters fieldset:last-child {
    margin-bottom: 0;
}

.meeting-filters .row.g-2 {
    --bs-gutter-y: 0.45rem;
}

.meeting-filters-hint {
    margin: 0 0 0.8rem;
    color: var(--experience-muted);
    font-size: 0.88rem;
}

.meeting-filters-toggle {
    display: none;
    min-height: 38px;
    padding: 0.35rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.7);
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: none;
    white-space: nowrap;
}

.meeting-filters-toggle:hover,
.meeting-filters-toggle:focus {
    border-color: #fff;
    color: #fff;
    background: rgba(255, 255, 255, 0.16);
}

/* Footer: remove the former dark-background/dark-text conflict. */
.site-footer {
    border-color: rgba(255, 255, 255, 0.12) !important;
    color: #e7edf5;
    background-color: #172536 !important;
    background-image: linear-gradient(135deg, #21364d 0%, #142333 100%) !important;
}

.site-footer .site-footer-copy {
    color: #e7edf5 !important;
}

.site-footer .footer-links li:not(:last-child)::after {
    color: #91a6bc;
}

.site-footer a {
    color: #f2cf67;
    text-underline-offset: 0.18em;
}

.site-footer a:hover,
.site-footer a:focus-visible {
    color: #ffffff;
}

/* Publication ordering stays tabular on wide screens and becomes card-based
   on phones, without changing any field name or submitted value. */
.publication-order-page {
    width: 100%;
}

.homepage-primary-actions .card-body {
    display: flex;
    flex-direction: column;
}

.homepage-primary-actions .card-text {
    flex: 1;
}

.homepage-primary-actions .btn {
    align-self: center;
}

/* Administrative toolbars keep their existing actions but stop squeezing the
   page title on narrow screens. */
.dashboard-toolbar {
    gap: 1rem;
}

.dashboard-toolbar h1 {
    min-width: 0;
    margin-bottom: 0;
    font-size: clamp(1.9rem, 4vw, 2.5rem);
    line-height: 1.15;
    text-wrap: balance;
}

.dashboard-actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.55rem;
}

.dashboard-actions .btn {
    margin-right: 0 !important;
}

.dashboard-toolbar--stacked {
    flex-direction: column;
    align-items: stretch !important;
}

.dashboard-toolbar--stacked h1,
.dashboard-toolbar--stacked .dashboard-actions {
    width: 100%;
}

.dashboard-toolbar--stacked .dashboard-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dashboard-toolbar--stacked .dashboard-actions .btn {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
}

@media screen and (max-width: 1199.98px) {
    .dashboard-toolbar--stacked .dashboard-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (min-width: 992px) {
    .meeting-filters-body.collapse {
        display: block !important;
    }
}

@media screen and (max-width: 991.98px) {
    .meeting-filters-toggle {
        display: inline-flex;
        min-width: 96px;
        align-items: center;
        justify-content: center;
        font-size: 0.82rem;
    }

    /* These controls remain in the header but scroll away with it instead of
       masking page controls throughout the visit. */
    .zoom-link-mobile,
    .notification-bell-mobile,
    .csl-live-mobile {
        position: absolute;
    }

    .navbar .nav-link {
        width: min(100%, 320px);
        margin-right: auto;
        margin-left: auto;
    }
}

@media screen and (max-width: 767.98px) {
    .site-main {
        padding-top: 0.75rem;
    }

    .site-logo-block {
        margin: 0.25rem 0 1rem;
    }

    .site-logo-block--compact .logo-image {
        max-height: 68px;
    }

    .page-intro {
        margin-bottom: 1.15rem;
    }

    .page-intro h1 {
        font-size: clamp(1.8rem, 8vw, 2.15rem);
        line-height: 1.15;
    }

    .page-intro .lead {
        font-size: 1.05rem;
        line-height: 1.5;
    }

    .dashboard-toolbar {
        flex-direction: column;
        align-items: stretch !important;
    }

    .dashboard-toolbar h1 {
        width: 100%;
        font-size: clamp(1.8rem, 9vw, 2.25rem);
    }

    .dashboard-actions {
        display: grid;
        width: 100%;
        grid-template-columns: 1fr;
    }

    .dashboard-toolbar--stacked .dashboard-actions {
        grid-template-columns: 1fr;
    }

    .dashboard-actions .btn {
        width: 100%;
        min-height: 48px;
    }

    .meeting-filters .card-header {
        min-height: 58px;
        padding: 0.7rem 0.85rem;
    }

    .meeting-filters .card-header .card-title {
        font-size: 1rem;
    }

    .meeting-filters .card-body {
        padding: 0.85rem;
    }

    .meeting-filters-hint {
        padding: 0.7rem 0.75rem;
        border-radius: 0.5rem;
        background: var(--experience-surface-soft);
        line-height: 1.45;
    }

    .meeting-filters fieldset {
        margin-bottom: 1rem;
    }

    .meeting-filters fieldset > .form-label {
        margin-bottom: 0.6rem;
    }

    .meeting-filters .meeting-filter-option {
        min-height: 42px;
        padding-top: 0.38rem;
        padding-bottom: 0.38rem;
    }

    .publication-order-page {
        gap: 1rem;
        margin-top: 1rem !important;
    }

    .publication-order-hero,
    .publication-order-panel {
        border-radius: 14px;
    }

    .publication-order-hero {
        padding: 1.1rem;
    }

    .publication-order-hero h1 {
        font-size: clamp(1.8rem, 9vw, 2.2rem);
    }

    .publication-order-total-card {
        display: none;
    }

    .publication-order-panel {
        padding: 0.9rem;
    }

    .publication-order-table-wrap {
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
    }

    .publication-order-table {
        display: block;
        min-width: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .publication-order-table thead {
        display: none;
    }

    .publication-order-table tbody {
        display: grid;
        gap: 0.75rem;
    }

    .publication-order-table tbody tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 0.7rem 0.9rem;
        padding: 0.9rem;
        border: 1px solid var(--experience-line);
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 6px 18px rgba(31, 54, 86, 0.07);
    }

    .publication-order-table tbody tr:hover {
        background: #fff;
    }

    .publication-order-table tbody tr.publication-row-selected {
        border-color: rgba(25, 135, 84, 0.45);
        background: #f1fbf5;
    }

    .publication-order-table tbody td {
        display: flex;
        min-width: 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 0.3rem;
        padding: 0;
        border: 0;
        text-align: left !important;
    }

    .publication-order-table tbody td::before {
        content: attr(data-label);
        color: var(--experience-muted);
        font-size: 0.7rem;
        font-weight: 800;
        letter-spacing: 0.04em;
        line-height: 1;
        text-transform: uppercase;
    }

    .publication-order-table .publication-order-cell-item {
        grid-column: 1 / -1;
        padding-bottom: 0.7rem;
        border-bottom: 1px solid var(--experience-line);
    }

    .publication-order-table .publication-order-cell-item strong {
        overflow-wrap: anywhere;
        font-size: 1rem;
        line-height: 1.35;
    }

    .publication-order-table .publication-order-cell-price,
    .publication-order-table .publication-order-cell-total {
        align-items: flex-end;
    }

    .publication-order-table .quantity-input {
        width: 100%;
        margin: 0;
    }

    .publication-order-table .publication-order-item-no,
    .publication-order-table .publication-order-price,
    .publication-order-table .publication-order-line-total {
        min-height: 1.9rem;
        padding: 0.25rem 0.5rem;
    }

    .publication-order-submit-bar {
        bottom: 0.5rem;
        flex-direction: row;
        align-items: center;
        gap: 0.7rem;
        padding: 0.7rem;
        border-radius: 14px;
    }

    .publication-order-submit-bar > div {
        flex: 0 0 auto;
    }

    .publication-order-submit-bar strong {
        font-size: 1.25rem;
    }

    .publication-order-submit-bar .btn {
        width: auto;
        min-height: 48px;
        flex: 1 1 auto;
        padding-right: 0.8rem;
        padding-left: 0.8rem;
    }

    .cookie-banner .container {
        padding-top: 0.75rem !important;
        padding-bottom: 0.75rem !important;
    }

    .cookie-banner-text {
        font-size: 0.84rem;
        line-height: 1.45;
    }

    .cookie-banner-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.45rem;
    }

    .cookie-banner-actions .btn {
        width: 100%;
        min-width: 0;
        padding-right: 0.35rem;
        padding-left: 0.35rem;
    }
}

@media screen and (max-width: 359.98px) {
    .cookie-banner-actions {
        grid-template-columns: 1fr 1fr;
    }

    .cookie-banner-actions #cc-accept-all {
        grid-column: 1 / -1;
    }

    .publication-order-submit-bar .btn {
        font-size: 0.78rem;
    }
}

@media print {
    .meeting-filters-toggle,
    .meeting-filters-hint {
        display: none !important;
    }

    .meeting-filters-body.collapse {
        display: block !important;
    }
}
/* static/css/visual-system.css */
/* ==========================================================================
   SYSTÈME VISUEL TRANSVERSAL — CSLQNA
   Cette couche modernise toutes les pages qui utilisent layout.html sans
   modifier leurs données, leurs formulaires, leurs routes ou leurs actions.
   ========================================================================== */

:root {
    --brand-red: #ed1c24;
    --brand-blue: #2e3192;
    --brand-green: #00a651;
    --brand-yellow: #fff200;
    --brand-light-blue: #1e77bc;
    --brand-black: #000000;
    --visual-navy-950: #090a20;
    --visual-navy-900: #17194a;
    --visual-navy-800: #242773;
    --visual-blue-700: var(--brand-blue);
    --visual-blue-600: var(--brand-light-blue);
    --visual-blue-500: #4b91c8;
    --visual-blue-100: #e8f2f8;
    --visual-blue-50: #f4f8fb;
    --visual-gold-500: #b8ae00;
    --visual-gold-300: #fff766;
    --visual-green-700: #007c3d;
    --visual-red-700: #b5151b;
    --visual-cyan-700: #155a8d;
    --visual-ink: #17182f;
    --visual-muted: #5b5c70;
    --visual-line: rgba(46, 49, 146, 0.14);
    --visual-line-strong: rgba(46, 49, 146, 0.24);
    --visual-surface: rgba(255, 255, 255, 0.97);
    --visual-surface-soft: #f6f9fc;
    --visual-radius-sm: 10px;
    --visual-radius-md: 16px;
    --visual-radius-lg: 22px;
    --visual-radius-xl: 30px;
    --visual-shadow-sm: 0 6px 18px rgba(23, 25, 74, 0.08);
    --visual-shadow-md: 0 14px 34px rgba(23, 25, 74, 0.12);
    --visual-shadow-lg: 0 24px 60px rgba(23, 25, 74, 0.16);
    --visual-focus: 0 0 0 0.24rem rgba(30, 119, 188, 0.24);
}

/* Foundations ------------------------------------------------------------ */

.site-app {
    color: var(--visual-ink);
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 100vh;
    background:
        radial-gradient(circle at 8% 2%, rgba(255, 255, 255, 0.98) 0, rgba(255, 255, 255, 0) 26rem),
        radial-gradient(circle at 92% 22%, rgba(30, 119, 188, 0.10) 0, rgba(30, 119, 188, 0) 30rem),
        linear-gradient(145deg, #f8f9fc 0%, #edf1f8 52%, #e4e9f4 100%);
    background-attachment: fixed;
}

.site-app .site-main {
    width: min(100% - 1.5rem, 1320px);
    padding-top: 0.5rem;
}

.site-app .site-main > .container,
.site-app .site-main > .container-fluid {
    width: 100%;
}

.site-app p,
.site-app li,
.site-app dd {
    text-wrap: pretty;
}

.site-app:not(.congress-page):not(.congress-archive-page) h1,
.site-app:not(.congress-page):not(.congress-archive-page) h2,
.site-app:not(.congress-page):not(.congress-archive-page) h3,
.site-app:not(.congress-page):not(.congress-archive-page) h4,
.site-app:not(.congress-page):not(.congress-archive-page) h5,
.site-app:not(.congress-page):not(.congress-archive-page) h6 {
    color: var(--visual-navy-900);
    letter-spacing: -0.018em;
}

.site-app:not(.congress-page):not(.congress-archive-page) h1 {
    font-size: clamp(2rem, 4vw, 2.75rem);
    line-height: 1.08;
}

.site-app:not(.congress-page):not(.congress-archive-page) h2 {
    line-height: 1.16;
}

.site-app:not(.congress-page):not(.congress-archive-page) .lead {
    color: #47586d;
    font-size: clamp(1.05rem, 1.8vw, 1.2rem);
    line-height: 1.65;
}

.site-app .text-muted {
    color: var(--visual-muted) !important;
}

.site-app a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item) {
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

.site-app hr {
    height: 1px;
    border: 0;
    background: linear-gradient(90deg, transparent, var(--visual-line-strong), transparent);
    opacity: 1;
}

.site-app :focus-visible {
    outline: 3px solid rgba(30, 119, 188, 0.48);
    outline-offset: 3px;
}

/* Content must be readable immediately; decorative entrance animations must
   never leave a page washed out while scripts or network requests finish. */
.site-app .fade-in,
.site-app .will-animate {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
}

/* Navigation and identity ------------------------------------------------ */

.site-app .navbar {
    min-height: 68px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    background:
        linear-gradient(110deg, rgba(255, 255, 255, 0.06), transparent 35%),
        linear-gradient(135deg, var(--visual-navy-800) 0%, var(--visual-navy-900) 58%, var(--visual-navy-950) 100%) !important;
    box-shadow: 0 10px 30px rgba(8, 26, 45, 0.18) !important;
}

.site-app .navbar .container {
    max-width: 1380px;
}

.site-app .navbar .nav-link {
    min-height: 44px;
    padding: 0.58rem 0.68rem;
    border: 1px solid transparent;
    border-radius: 12px;
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.2;
}

.site-app .navbar .nav-link:hover,
.site-app .navbar .nav-link:focus-visible {
    border-color: rgba(255, 255, 255, 0.16);
    color: #fff !important;
    background: rgba(255, 255, 255, 0.09);
}

.site-app .navbar .nav-link.active,
.site-app .navbar .nav-item.show > .nav-link {
    border-color: rgba(240, 207, 115, 0.35);
    color: #ffe59d !important;
    background: rgba(255, 242, 0, 0.13);
    box-shadow: inset 0 0 0 1px rgba(255, 229, 157, 0.08);
}

.site-app .navbar-toggler {
    width: 48px;
    height: 44px;
    border-color: rgba(255, 255, 255, 0.24);
    border-radius: 12px;
}

.site-app .dropdown-menu {
    padding: 0.55rem;
    border: 1px solid var(--visual-line);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: var(--visual-shadow-lg);
}

.site-app .dropdown-item {
    padding: 0.62rem 0.75rem;
    border-radius: 10px;
    color: var(--visual-ink);
    font-weight: 550;
}

.site-app .dropdown-item:hover,
.site-app .dropdown-item:focus {
    color: var(--visual-navy-900);
    background: var(--visual-blue-100);
}

.site-app .site-logo-block {
    margin-top: 0.7rem;
    margin-bottom: 1.7rem;
}

.site-app .site-logo-block .logo-container {
    display: inline-grid;
    width: 132px;
    height: 132px;
    place-items: center;
    padding: 0.75rem;
    border: 1px solid rgba(18, 58, 99, 0.13);
    border-radius: 34px;
    background:
        radial-gradient(circle at 30% 18%, #fff 0%, rgba(255, 255, 255, 0.94) 38%, #edf4fb 100%);
    box-shadow: var(--visual-shadow-md), inset 0 1px 0 #fff;
}

.site-app .site-logo-block--compact .logo-container {
    width: 88px;
    height: 88px;
    padding: 0.55rem;
    border-radius: 25px;
}

.site-app .site-logo-block .logo-image {
    width: auto;
    max-width: 100%;
    max-height: 100%;
    filter: drop-shadow(0 4px 5px rgba(8, 26, 45, 0.10));
}

/* Page headings ---------------------------------------------------------- */

.site-app .site-page-title {
    margin-bottom: 0;
    color: var(--visual-navy-900);
    font-weight: 800;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

.site-app .site-page-title > i,
.site-app .site-page-heading h1 > i {
    color: var(--visual-blue-600);
}

.site-app .site-page-heading {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    gap: 1rem;
    margin-bottom: 1.5rem !important;
    padding: clamp(1.15rem, 2.5vw, 1.8rem);
    border: 1px solid var(--visual-line);
    border-radius: var(--visual-radius-lg);
    background:
        linear-gradient(115deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 253, 0.94));
    box-shadow: var(--visual-shadow-md);
}

.site-app .site-page-heading > * {
    min-width: 0;
}

.site-app .site-page-heading::before {
    position: absolute;
    z-index: -1;
    top: -80px;
    right: -60px;
    width: 230px;
    height: 230px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(30, 119, 188, 0.16), rgba(30, 119, 188, 0));
    content: "";
}

.site-app .site-page-heading::after {
    position: absolute;
    bottom: 0;
    left: clamp(1.15rem, 2.5vw, 1.8rem);
    width: 74px;
    height: 4px;
    border-radius: 99px 99px 0 0;
    background: linear-gradient(90deg, var(--visual-gold-500), var(--visual-gold-300));
    content: "";
}

.site-app .site-page-heading p:last-child {
    margin-bottom: 0;
}

.site-app .breadcrumb {
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--visual-line);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.76);
}

/* Cards and content surfaces -------------------------------------------- */

.site-app:not(.congress-page):not(.congress-archive-page) .card {
    border: 1px solid var(--visual-line);
    border-radius: var(--visual-radius-md);
    background: var(--visual-surface);
    box-shadow: var(--visual-shadow-sm);
}

.site-app:not(.congress-page):not(.congress-archive-page) .card:hover {
    border-color: var(--visual-line-strong);
    box-shadow: var(--visual-shadow-md);
}

.site-app:not(.congress-page):not(.congress-archive-page) .card > .card-header:first-child {
    border-radius: calc(var(--visual-radius-md) - 1px) calc(var(--visual-radius-md) - 1px) 0 0;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header {
    min-height: 58px;
    padding: 0.95rem 1.2rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
    color: #fff;
    background:
        linear-gradient(105deg, rgba(255, 255, 255, 0.05), transparent 48%),
        linear-gradient(135deg, var(--visual-navy-800), var(--visual-navy-900));
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header h1,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h2,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h3,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h4,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h5,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h6,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header .card-title {
    color: inherit !important;
    letter-spacing: -0.015em;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-light {
    border-bottom-color: var(--visual-line);
    color: var(--visual-navy-900) !important;
    background: linear-gradient(135deg, #f7faff, #e9f2fb) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-primary {
    background: linear-gradient(135deg, var(--visual-blue-700), var(--visual-navy-800)) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-info {
    background: linear-gradient(135deg, #16829a, #0f6278) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-success {
    background: linear-gradient(135deg, var(--brand-green), var(--visual-green-700)) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-danger {
    background: linear-gradient(135deg, #bd4050, #8e2938) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header.bg-warning {
    border-bottom-color: rgba(111, 78, 0, 0.14);
    color: #352600 !important;
    background: linear-gradient(135deg, #f0c95d, #dfa92e) !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-body {
    padding: clamp(1rem, 2vw, 1.35rem);
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-footer {
    padding: 0.9rem 1.2rem;
    border-top: 1px solid var(--visual-line);
    border-radius: 0 0 calc(var(--visual-radius-md) - 1px) calc(var(--visual-radius-md) - 1px);
    background: var(--visual-surface-soft);
}

.site-app:not(.congress-page):not(.congress-archive-page) .card.border-primary,
.site-app:not(.congress-page):not(.congress-archive-page) .card.border-info,
.site-app:not(.congress-page):not(.congress-archive-page) .card.border-success,
.site-app:not(.congress-page):not(.congress-archive-page) .card.border-warning,
.site-app:not(.congress-page):not(.congress-archive-page) .card.border-danger {
    border-width: 1px !important;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card .card {
    border-radius: 14px;
    background: linear-gradient(145deg, #fff, #f7f9fc);
    box-shadow: 0 5px 16px rgba(17, 45, 78, 0.06);
}

.site-app .card-body > p.text-muted:only-child,
.site-app .card-body > div > p.text-muted:only-child {
    padding: 1rem;
    border: 1px dashed rgba(18, 58, 99, 0.24);
    border-radius: 12px;
    background: var(--visual-surface-soft);
}

/* Buttons ---------------------------------------------------------------- */

.site-app .btn {
    border-radius: 11px;
    font-weight: 700;
    letter-spacing: -0.01em;
    box-shadow: 0 4px 10px rgba(23, 25, 74, 0.09);
    transition: color 0.16s ease, background-color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.site-app .btn:not(.btn-sm):not(.btn-link) {
    min-height: 44px;
    padding: 0.6rem 1rem;
}

.site-app .btn-sm:not(.btn-link) {
    min-height: 36px;
    padding: 0.4rem 0.68rem;
    border-radius: 9px;
}

.site-app .btn:hover,
.site-app .btn:focus-visible {
    transform: none;
    box-shadow: 0 8px 18px rgba(23, 25, 74, 0.16);
}

.site-app .btn-primary {
    border-color: var(--visual-blue-700);
    background: linear-gradient(135deg, var(--visual-blue-600), var(--visual-blue-700));
}

.site-app .btn-primary:hover,
.site-app .btn-primary:focus-visible {
    border-color: var(--visual-navy-800);
    background: linear-gradient(135deg, var(--visual-blue-700), var(--visual-navy-800));
}

.site-app .btn-success {
    border-color: var(--visual-green-700);
    background: linear-gradient(135deg, var(--brand-green), var(--visual-green-700));
}

.site-app .btn-info {
    border-color: var(--brand-light-blue);
    color: #fff;
    background: linear-gradient(135deg, #3890c9, var(--brand-light-blue));
}

.site-app .btn-warning {
    border-color: #c9bf00;
    color: var(--brand-black);
    background: linear-gradient(135deg, var(--brand-yellow), #d9ce00);
}

.site-app .btn-danger {
    border-color: var(--visual-red-700);
    background: linear-gradient(135deg, var(--brand-red), var(--visual-red-700));
}

.site-app .btn-secondary {
    border-color: #505168;
    background: linear-gradient(135deg, #696a7d, #3d3e52);
}

.site-app .btn-outline-primary,
.site-app .btn-outline-secondary,
.site-app .btn-outline-success,
.site-app .btn-outline-info,
.site-app .btn-outline-danger {
    background-color: rgba(255, 255, 255, 0.86);
}

.site-app .btn-link {
    box-shadow: none;
}

.site-app .btn-group {
    gap: 0.15rem;
}

/* Forms ------------------------------------------------------------------ */

.site-app .form-label,
.site-app legend {
    margin-bottom: 0.42rem;
    color: #26364b;
    font-weight: 700;
}

.site-app .form-control,
.site-app .form-select,
.site-app .input-group-text {
    min-height: 46px;
    border-color: rgba(18, 58, 99, 0.21);
    border-radius: 11px;
    color: var(--visual-ink);
    background-color: rgba(255, 255, 255, 0.96);
}

.site-app .form-control-sm,
.site-app .form-select-sm,
.site-app .input-group-sm > .form-control,
.site-app .input-group-sm > .form-select,
.site-app .input-group-sm > .input-group-text {
    min-height: 38px;
    border-radius: 9px;
}

.site-app textarea.form-control {
    min-height: 110px;
    line-height: 1.5;
}

.site-app .form-control::placeholder {
    color: #8491a3;
}

.site-app .form-control:focus,
.site-app .form-select:focus,
.site-app .form-check-input:focus {
    border-color: var(--visual-blue-500);
    box-shadow: var(--visual-focus);
}

.site-app .input-group > .form-control:not(:last-child),
.site-app .input-group > .form-select:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.site-app .input-group > .input-group-text:first-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    background: var(--visual-blue-50);
}

.site-app .input-group > .input-group-text:last-child {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    background: var(--visual-blue-50);
}

.site-app .form-check {
    min-height: 38px;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

.site-app .form-check-input {
    border-color: rgba(18, 58, 99, 0.35);
}

.site-app .form-check-input:checked {
    border-color: var(--visual-blue-700);
    background-color: var(--visual-blue-700);
}

.site-app .form-text {
    color: var(--visual-muted);
    line-height: 1.4;
}

.site-app fieldset {
    min-width: 0;
}

/* Alerts, badges and status --------------------------------------------- */

.site-app .alert {
    padding: 1rem 1.1rem;
    border-width: 1px;
    border-left-width: 4px;
    border-radius: 13px;
    box-shadow: 0 4px 14px rgba(17, 45, 78, 0.05);
}

.site-app .alert-info {
    border-color: rgba(20, 117, 141, 0.32);
    border-left-color: var(--visual-cyan-700);
    color: #174d5a;
    background: #edf9fc;
}

.site-app .alert-success {
    border-color: rgba(40, 118, 77, 0.28);
    border-left-color: var(--visual-green-700);
    color: #235b3d;
    background: #eff9f3;
}

.site-app .alert-warning {
    border-color: rgba(187, 133, 14, 0.30);
    border-left-color: #bb850e;
    color: #624b13;
    background: #fff9e9;
}

.site-app .alert-danger {
    border-color: rgba(170, 51, 68, 0.28);
    border-left-color: var(--visual-red-700);
    color: #762a36;
    background: #fff1f3;
}

.site-app .badge {
    padding: 0.42em 0.62em;
    border-radius: 999px;
    font-weight: 750;
    letter-spacing: 0.01em;
}

.site-app .progress {
    height: 0.75rem;
    border-radius: 999px;
    background: #e6edf5;
}

/* Tables ----------------------------------------------------------------- */

.site-app:not(.congress-page):not(.congress-archive-page) .table-responsive {
    width: 100%;
    max-width: 100%;
    border: 1px solid var(--visual-line);
    border-radius: 14px;
    background: #fff;
    scrollbar-color: var(--visual-blue-500) #e8eef5;
    scrollbar-width: thin;
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-body.p-0 > .table-responsive {
    border: 0;
    border-radius: 0 0 calc(var(--visual-radius-md) - 1px) calc(var(--visual-radius-md) - 1px);
}

.site-app:not(.congress-page):not(.congress-archive-page) .table-responsive:focus-visible {
    outline-offset: 2px;
}

.site-app:not(.congress-page):not(.congress-archive-page) .table {
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(234, 243, 252, 0.52);
    --bs-table-hover-bg: rgba(30, 119, 188, 0.08);
    margin-bottom: 0;
    color: var(--visual-ink);
}

.site-app:not(.congress-page):not(.congress-archive-page) .table > :not(caption) > * > * {
    padding: 0.9rem 0.85rem;
    border-bottom-color: rgba(18, 58, 99, 0.10);
    vertical-align: middle;
}

.site-app:not(.congress-page):not(.congress-archive-page) .table thead th,
.site-app:not(.congress-page):not(.congress-archive-page) .table .table-light th {
    border-bottom: 1px solid rgba(18, 58, 99, 0.18);
    color: #33465d;
    background: linear-gradient(180deg, #f5f9fd, #e9f1f9);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.045em;
    text-transform: uppercase;
    white-space: nowrap;
}

.site-app:not(.congress-page):not(.congress-archive-page) .table tbody tr:last-child > * {
    border-bottom: 0;
}

.site-app:not(.congress-page):not(.congress-archive-page) .table caption {
    padding: 0.75rem;
    color: var(--visual-muted);
}

/* Lists, tabs, accordions and modals ------------------------------------ */

.site-app .list-group {
    border-radius: 13px;
}

.site-app .list-group-item {
    padding: 0.85rem 1rem;
    border-color: rgba(18, 58, 99, 0.11);
    background: rgba(255, 255, 255, 0.82);
}

.site-app .list-group-item-action:hover,
.site-app .list-group-item-action:focus {
    color: var(--visual-navy-900);
    background: var(--visual-blue-50);
}

.site-app .nav-tabs {
    gap: 0.35rem;
    padding: 0.35rem;
    border: 1px solid var(--visual-line);
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.72);
}

.site-app .nav-tabs .nav-link {
    min-height: 42px;
    border: 0;
    border-radius: 9px;
    color: var(--visual-muted);
    font-weight: 700;
}

.site-app .nav-tabs .nav-link.active {
    color: var(--visual-navy-900);
    background: #fff;
    box-shadow: var(--visual-shadow-sm);
}

.site-app .accordion-item {
    overflow: hidden;
    border-color: var(--visual-line);
    border-radius: 13px !important;
    background: rgba(255, 255, 255, 0.9);
}

.site-app .accordion-item + .accordion-item {
    margin-top: 0.65rem;
}

.site-app .accordion-button {
    min-height: 54px;
    color: var(--visual-navy-900);
    font-weight: 750;
    background: var(--visual-blue-50);
}

.site-app .accordion-button:not(.collapsed) {
    color: var(--visual-navy-900);
    background: var(--visual-blue-100);
    box-shadow: none;
}

.site-app .modal-content {
    overflow: hidden;
    border: 1px solid var(--visual-line);
    border-radius: 20px;
    box-shadow: var(--visual-shadow-lg);
}

.site-app .modal-header {
    padding: 1rem 1.2rem;
    border-bottom-color: var(--visual-line);
    background: linear-gradient(135deg, var(--visual-blue-50), #fff);
}

.site-app .modal-title {
    color: var(--visual-navy-900);
    font-weight: 800;
}

.site-app .modal-body,
.site-app .modal-footer {
    padding: 1.2rem;
}

/* Authentication pages -------------------------------------------------- */

.site-auth-page .site-main {
    width: min(100% - 1.5rem, 720px);
}

.site-auth-page .site-logo-block {
    margin-bottom: 1.25rem;
}

.site-auth-page .site-main > .row,
.site-auth-page .site-main > .container > .row {
    margin-right: 0;
    margin-left: 0;
}

.site-auth-page .site-main > .row > [class*="col-"],
.site-auth-page .site-main > .container > .row > [class*="col-"] {
    width: 100%;
    max-width: 610px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
}

.site-auth-page .card {
    position: relative;
    overflow: hidden;
    border-radius: 22px !important;
    box-shadow: var(--visual-shadow-lg) !important;
}

.site-auth-page .card::before {
    position: absolute;
    z-index: 4;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--visual-gold-500), var(--visual-blue-500));
    content: "";
}

.site-auth-page .card-header {
    min-height: 72px !important;
    padding: 1.25rem 1.4rem !important;
}

.site-auth-page .card-header .card-title {
    font-size: 1.2rem !important;
}

.site-auth-page .card-body {
    padding: clamp(1.25rem, 4vw, 2rem) !important;
}

.site-auth-page .d-grid .btn {
    min-height: 50px;
}

/* Workspaces and management pages -------------------------------------- */

.site-workspace-page:not(.site-auth-page) .site-main {
    width: min(100% - 1.5rem, 1380px);
}

.site-workspace-page:not(.site-auth-page) .site-page-heading,
.site-workspace-page:not(.site-auth-page) .dashboard-toolbar {
    border-color: rgba(30, 119, 188, 0.20);
    background:
        radial-gradient(circle at 92% 10%, rgba(30, 119, 188, 0.18), transparent 14rem),
        linear-gradient(135deg, #fff, #edf5fd);
}

.site-workspace-page .dashboard-actions .btn {
    box-shadow: 0 7px 16px rgba(17, 45, 78, 0.12);
}

.site-workspace-page .card + .card,
.site-workspace-page .row + .card,
.site-workspace-page .card + .row {
    margin-top: 1.25rem;
}

/* High-value page refinements ------------------------------------------ */

.page-main-index .homepage-primary-actions .card {
    position: relative;
    overflow: hidden;
    border-top: 4px solid var(--visual-blue-600) !important;
}

.page-main-index .homepage-primary-actions > div:nth-child(1) .card {
    border-top-color: var(--brand-green) !important;
}

.page-main-index .homepage-primary-actions > div:nth-child(2) .card {
    border-top-color: var(--brand-light-blue) !important;
}

.page-main-index .homepage-primary-actions > div:nth-child(3) .card {
    border-top-color: var(--brand-blue) !important;
}

.page-main-index .homepage-primary-actions .card-body {
    padding: 1.35rem;
}

.page-main-index .homepage-primary-actions .card-title i {
    display: inline-grid;
    width: 38px;
    height: 38px;
    place-items: center;
    margin-right: 0.35rem !important;
    border-radius: 11px;
    background: var(--visual-blue-50);
}

.page-main-map-page #map,
.page-main-calendar-page #calendar,
.page-main-reunion-detail .reunion-detail-map {
    overflow: hidden;
    border: 1px solid var(--visual-line);
    border-radius: 18px;
    box-shadow: var(--visual-shadow-md);
}

.page-main-calendar-page #calendar {
    padding: clamp(0.7rem, 2vw, 1.25rem);
}

.page-info-info-rsg .info-rsg-shortcuts .btn {
    justify-content: flex-start;
    text-align: left;
}

.page-main-reunion-detail .reunion-detail-page > div > .card {
    box-shadow: var(--visual-shadow-lg);
}

.page-main-postes-a-combler .card,
.page-info-anniversaries .card {
    box-shadow: var(--visual-shadow-md);
}

.site-app .fc .fc-toolbar-title {
    color: var(--visual-navy-900);
    font-weight: 800;
}

.site-app .fc .fc-button-primary {
    border-color: var(--visual-navy-800) !important;
    border-radius: 9px !important;
    background: var(--visual-navy-800) !important;
    box-shadow: none !important;
}

.site-app .leaflet-control-zoom a {
    color: var(--visual-navy-900);
}

.site-app .leaflet-container {
    max-width: 100%;
    contain: layout paint;
}

/* Footer ----------------------------------------------------------------- */

.site-app .site-footer {
    position: relative;
    overflow: hidden;
    padding-top: 0.25rem;
    background:
        radial-gradient(circle at 15% 0%, rgba(30, 119, 188, 0.18), transparent 24rem),
        linear-gradient(135deg, var(--visual-navy-900), var(--visual-navy-950)) !important;
}

.site-app .site-footer::before {
    display: block;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--visual-gold-500), transparent);
    content: "";
}

.site-app .site-footer .container {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important;
}

.site-app .site-footer a {
    color: var(--brand-yellow);
    font-weight: 650;
}

.site-app .site-footer a:hover,
.site-app .site-footer a:focus-visible {
    color: #fff;
}

.site-app .text-primary {
    color: var(--brand-light-blue) !important;
}

.site-app .text-success {
    color: var(--visual-green-700) !important;
}

.site-app .text-danger {
    color: var(--brand-red) !important;
}

.site-app .badge.bg-primary {
    background-color: var(--brand-blue) !important;
}

.site-app .badge.bg-success {
    background-color: var(--brand-green) !important;
}

.site-app .badge.bg-danger {
    background-color: var(--brand-red) !important;
}

.site-app .badge.bg-warning {
    color: var(--brand-black) !important;
    background-color: var(--brand-yellow) !important;
}

/* Phase 3 — stronger identity and richer page composition ---------------- */

.site-app .site-nav-brand {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.65rem;
    margin-right: 1.15rem;
    padding: 0.25rem 0.35rem 0.25rem 0;
    color: #fff;
    text-decoration: none;
}

.site-app .site-nav-brand:hover,
.site-app .site-nav-brand:focus-visible {
    color: #fff;
}

.site-app .site-nav-brand-mark {
    display: inline-grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    padding: 0.32rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 8px 22px rgba(4, 15, 28, 0.24);
}

.site-app .site-nav-brand-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.site-app .site-nav-brand-copy {
    display: grid;
    line-height: 1.02;
}

.site-app .site-nav-brand-copy strong {
    color: #fff;
    font-size: 0.92rem;
    letter-spacing: 0.055em;
}

.site-app .site-nav-brand-copy small {
    margin-top: 0.22rem;
    color: rgba(255, 255, 255, 0.64);
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.site-app .navbar .nav-link.site-nav-current,
.site-app .navbar .nav-link.site-section-current {
    border-color: rgba(240, 207, 115, 0.34);
    color: #ffe59d !important;
    background: rgba(255, 242, 0, 0.13);
}

.site-app .navbar .nav-link.site-nav-current {
    position: relative;
}

.site-app .navbar .nav-link.site-nav-current::after {
    position: absolute;
    right: 0.7rem;
    bottom: 0.18rem;
    left: 0.7rem;
    height: 2px;
    border-radius: 99px;
    background: linear-gradient(90deg, transparent, var(--visual-gold-300), transparent);
    content: "";
}

.page-main-index .site-logo-block {
    position: relative;
    z-index: 3;
    margin-bottom: -3.8rem;
}

.page-main-index .site-logo-block .logo-container {
    width: 116px;
    height: 116px;
    border-color: rgba(255, 255, 255, 0.66);
    box-shadow: 0 20px 48px rgba(8, 26, 45, 0.20), inset 0 1px 0 #fff;
}

.page-main-index .home-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    min-height: 348px;
    grid-template-columns: minmax(0, 1fr) minmax(235px, 310px);
    align-items: end;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    margin-bottom: 1.5rem;
    padding: clamp(5.6rem, 8vw, 7rem) clamp(1.4rem, 4vw, 3.4rem) clamp(1.6rem, 4vw, 2.8rem);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--visual-radius-xl);
    color: #fff;
    background:
        radial-gradient(circle at 82% 16%, rgba(30, 119, 188, 0.34), transparent 20rem),
        linear-gradient(128deg, var(--visual-navy-950) 0%, var(--visual-navy-800) 64%, var(--brand-light-blue) 100%);
    box-shadow: var(--visual-shadow-lg);
}

.page-main-index .home-hero::before,
.page-main-index .home-hero::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 50%;
    content: "";
}

.page-main-index .home-hero::before {
    top: -9rem;
    right: -4rem;
    width: 27rem;
    height: 27rem;
}

.page-main-index .home-hero::after {
    right: 12rem;
    bottom: -15rem;
    width: 31rem;
    height: 31rem;
}

.page-main-index .home-hero-copy {
    max-width: 760px;
}

.page-main-index .home-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
    padding: 0.42rem 0.72rem;
    border: 1px solid rgba(255, 229, 157, 0.24);
    border-radius: 999px;
    color: #ffe8a8;
    background: rgba(255, 242, 0, 0.10);
    font-size: 0.77rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.site-app.page-main-index .home-hero h1.site-page-title {
    max-width: 770px;
    margin-bottom: 1rem;
    color: #fff;
    font-size: clamp(2.25rem, 5vw, 4.15rem);
    line-height: 0.98;
    letter-spacing: -0.052em;
    text-shadow: 0 8px 30px rgba(4, 15, 28, 0.22);
}

.page-main-index .home-hero-intro {
    max-width: 660px;
    margin-bottom: 1.3rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(1rem, 1.8vw, 1.15rem);
    line-height: 1.62;
}

.page-main-index .home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
}

.page-main-index .home-hero-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 48px;
    padding-inline: 1.05rem;
}

.page-main-index .home-hero-actions .btn-light {
    color: var(--visual-navy-900);
    background: #fff;
    box-shadow: 0 10px 26px rgba(4, 15, 28, 0.18);
}

.page-main-index .home-hero-actions .btn-outline-light {
    border-color: rgba(255, 255, 255, 0.45);
    color: #fff;
    background: rgba(255, 255, 255, 0.06);
}

.page-main-index .home-hero-note {
    display: grid;
    align-self: end;
    gap: 0.75rem;
    margin: 0;
    padding: 1.2rem;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 20px;
    color: rgba(255, 255, 255, 0.86);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
    font-size: 0.94rem;
    line-height: 1.55;
    backdrop-filter: blur(12px);
}

.page-main-index .home-hero-note > i {
    display: inline-grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 12px;
    color: #ffe59d;
    background: rgba(255, 242, 0, 0.15);
}

.site-app:not(.congress-page):not(.congress-archive-page) .card-header h1 > .bi:first-child,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h2 > .bi:first-child,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h3 > .bi:first-child,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h4 > .bi:first-child,
.site-app:not(.congress-page):not(.congress-archive-page) .card-header h5 > .bi:first-child {
    display: inline-grid;
    width: 34px;
    height: 34px;
    place-items: center;
    margin: -0.25rem 0.45rem -0.25rem -0.25rem !important;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.14);
}

.site-app .site-card-action {
    isolation: isolate;
}

.site-app .site-card-action::after {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 22%;
    left: 22%;
    height: 3px;
    border-radius: 0 0 99px 99px;
    background: linear-gradient(90deg, transparent, rgba(30, 119, 188, 0.65), transparent);
    opacity: 0;
    content: "";
    transition: opacity 180ms ease, right 180ms ease, left 180ms ease;
}

.site-app .site-card-action:hover::after,
.site-app .site-card-action:focus-within::after {
    right: 8%;
    left: 8%;
    opacity: 1;
}

.site-app .site-empty-state {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 58px;
    padding: 0.8rem 0.95rem;
    border: 1px dashed var(--visual-line-strong);
    border-radius: 13px;
    color: var(--visual-muted) !important;
    background: linear-gradient(110deg, rgba(244, 248, 253, 0.92), rgba(255, 255, 255, 0.92));
}

.site-app .site-empty-state > .site-empty-icon {
    display: inline-grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 10px;
    color: var(--visual-blue-600);
    background: var(--visual-blue-100);
}

.site-app .site-table-scroll-hint {
    display: none;
}

.site-app .site-reading-progress {
    position: fixed;
    z-index: 1095;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    pointer-events: none;
}

.site-app .site-reading-progress::after {
    display: block;
    width: 100%;
    height: 100%;
    transform: scaleX(var(--site-reading-progress, 0));
    transform-origin: left center;
    background: linear-gradient(90deg, var(--visual-gold-300), var(--visual-gold-500), #fff0b6);
    box-shadow: 0 0 12px rgba(255, 242, 0, 0.46);
    content: "";
    transition: transform 80ms linear;
}

/* Phase 4 — official palette, meeting profiles and subcommittee identity - */

.page-main-reunion-detail .reunion-detail-page {
    --meeting-accent: var(--brand-light-blue);
    --meeting-deep: var(--brand-blue);
}

.page-main-reunion-detail .meeting-profile-card {
    overflow: hidden;
    border: 1px solid rgba(46, 49, 146, 0.18);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 24px 64px rgba(23, 25, 74, 0.17) !important;
}

.page-main-reunion-detail .meeting-profile-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    min-height: 218px;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(30, 119, 188, 0.62), transparent 20rem),
        linear-gradient(132deg, var(--visual-navy-950), var(--meeting-deep) 72%, var(--meeting-accent));
}

.page-main-reunion-detail .meeting-profile-hero::after {
    position: absolute;
    z-index: -1;
    top: -9rem;
    right: -5rem;
    width: 25rem;
    height: 25rem;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    content: "";
}

.page-main-reunion-detail .meeting-profile-hero--closed {
    background:
        radial-gradient(circle at 88% 12%, rgba(237, 28, 36, 0.44), transparent 20rem),
        linear-gradient(132deg, #260405, #7b0f13 70%, var(--brand-red));
}

.page-main-reunion-detail .meeting-profile-title {
    max-width: 690px;
}

.page-main-reunion-detail .meeting-profile-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.76rem;
    font-weight: 750;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.page-main-reunion-detail .meeting-profile-hero h1.card-title {
    color: #fff !important;
    font-size: clamp(2rem, 5vw, 3.6rem);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -0.045em;
    text-wrap: balance;
}

.page-main-reunion-detail .meeting-profile-badges {
    display: flex;
    max-width: 330px;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.page-main-reunion-detail .meeting-status-badge {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    gap: 0.38rem;
    padding: 0.4rem 0.68rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, 0.11);
    font-size: 0.78rem;
    font-weight: 750;
    backdrop-filter: blur(10px);
}

.page-main-reunion-detail .meeting-status-badge--accessible {
    border-color: rgba(255, 255, 255, 0.35);
    background: rgba(30, 119, 188, 0.36);
}

.page-main-reunion-detail .meeting-status-badge--danger {
    border-color: rgba(255, 255, 255, 0.42);
    background: rgba(237, 28, 36, 0.34);
}

.page-main-reunion-detail .meeting-status-badge--blue {
    background: rgba(30, 119, 188, 0.32);
}

.page-main-reunion-detail .meeting-status-badge--deep-blue {
    background: rgba(46, 49, 146, 0.36);
}

.page-main-reunion-detail .meeting-profile-body {
    padding: clamp(1.1rem, 3vw, 2rem) !important;
}

.page-main-reunion-detail .meeting-facts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.page-main-reunion-detail .meeting-fact {
    position: relative;
    display: grid;
    min-height: 156px;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 0.9rem;
    padding: 1.2rem;
    border: 1px solid rgba(46, 49, 146, 0.14);
    border-radius: 17px;
    background: linear-gradient(130deg, #fff, rgba(232, 242, 248, 0.7));
}

.page-main-reunion-detail .meeting-fact--schedule {
    border-top: 4px solid var(--brand-light-blue);
}

.page-main-reunion-detail .meeting-fact--location {
    border-top: 4px solid var(--brand-blue);
}

.page-main-reunion-detail .meeting-fact-icon {
    display: inline-grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-light-blue), var(--brand-blue));
    box-shadow: 0 9px 22px rgba(46, 49, 146, 0.18);
}

.page-main-reunion-detail .meeting-fact--location .meeting-fact-icon {
    background: linear-gradient(135deg, var(--brand-light-blue), var(--brand-blue));
}

.page-main-reunion-detail .meeting-fact h2 {
    margin: 0.12rem 0 0.45rem;
    color: var(--visual-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.page-main-reunion-detail .meeting-fact-primary {
    margin-bottom: 0.18rem;
    color: var(--visual-navy-900);
    font-size: clamp(1.15rem, 2.4vw, 1.45rem);
    font-weight: 800;
    line-height: 1.25;
}

.page-main-reunion-detail .meeting-fact-secondary {
    margin-bottom: 0;
    color: var(--visual-muted);
    font-size: 0.94rem;
}

.page-main-reunion-detail .meeting-missing-info {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(201, 191, 0, 0.48);
    border-radius: 11px;
    color: #4c4800;
    background: rgba(255, 242, 0, 0.17);
    font-weight: 700;
}

.page-main-reunion-detail .meeting-detail-notes {
    display: grid;
    gap: 0.8rem;
    margin-top: 1rem;
}

.page-main-reunion-detail .meeting-format-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.page-main-reunion-detail .meeting-format-chip {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    padding: 0.35rem 0.62rem;
    border: 1px solid rgba(46, 49, 146, 0.2);
    border-radius: 999px;
    color: var(--brand-blue);
    background: rgba(46, 49, 146, 0.07);
    font-size: 0.76rem;
    font-weight: 750;
}

.page-main-reunion-detail .meeting-note {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.9rem 1rem;
    border-left: 4px solid var(--brand-light-blue);
    border-radius: 0 13px 13px 0;
    color: var(--visual-ink);
    background: var(--visual-blue-50);
}

.page-main-reunion-detail .meeting-note > i {
    color: var(--brand-light-blue);
}

.page-main-reunion-detail .meeting-note strong {
    display: block;
    margin-bottom: 0.15rem;
    color: var(--brand-blue);
}

.page-main-reunion-detail .meeting-public-actions,
.page-main-reunion-detail .meeting-member-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.page-main-reunion-detail .meeting-public-actions {
    margin-top: 1.1rem;
    padding: 1rem;
    border: 1px solid rgba(30, 119, 188, 0.15);
    border-radius: 15px;
    background: rgba(232, 242, 248, 0.56);
}

.page-main-reunion-detail .meeting-public-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
}

.page-main-reunion-detail .meeting-member-services {
    margin-top: 1.25rem;
    padding-top: 1.15rem;
    border-top: 1px solid var(--visual-line);
}

.page-main-reunion-detail .meeting-member-services-label {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
    color: var(--visual-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.page-main-reunion-detail .meeting-map-card {
    overflow: hidden;
    border-top: 4px solid var(--brand-blue) !important;
    border-radius: 22px !important;
}

.page-main-reunion-detail .meeting-map-card .card-header {
    background: linear-gradient(135deg, var(--visual-navy-900), var(--brand-blue));
}

.page-main-reunion-detail .meeting-member-actions .btn:not(.btn-outline-danger) {
    border-color: rgba(46, 49, 146, 0.3);
    color: var(--brand-blue);
    background: #fff;
}

.page-main-reunion-detail .meeting-member-actions .btn:not(.btn-outline-danger):hover,
.page-main-reunion-detail .meeting-member-actions .btn:not(.btn-outline-danger):focus-visible {
    border-color: var(--brand-blue);
    color: #fff;
    background: var(--brand-blue);
}

.page-main-reunion-detail .tradition-payment-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(1.25rem, 4vw, 3rem);
    margin-bottom: 1.5rem;
    padding: clamp(1.3rem, 4vw, 2.4rem);
    border: 1px solid rgba(46, 49, 146, 0.2);
    border-radius: 26px;
    color: #fff;
    background:
        radial-gradient(circle at 5% 0%, rgba(30, 119, 188, 0.5), transparent 18rem),
        linear-gradient(135deg, var(--visual-navy-950), var(--brand-blue));
    box-shadow: var(--visual-shadow-lg);
}

.page-main-reunion-detail .tradition-payment-card::after {
    position: absolute;
    z-index: -1;
    right: -7rem;
    bottom: -9rem;
    width: 22rem;
    height: 22rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    content: "";
}

.page-main-reunion-detail .tradition-payment-intro {
    align-self: center;
}

.page-main-reunion-detail .tradition-payment-symbol {
    display: inline-grid;
    width: 50px;
    height: 50px;
    place-items: center;
    margin-bottom: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 16px;
    color: #fff;
    background: rgba(30, 119, 188, 0.32);
    font-size: 1.25rem;
}

.page-main-reunion-detail .tradition-payment-kicker {
    margin-bottom: 0.35rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.page-main-reunion-detail .tradition-payment-card h2 {
    margin-bottom: 0.75rem;
    color: #fff !important;
    font-size: clamp(1.8rem, 4vw, 2.7rem);
}

.page-main-reunion-detail .tradition-payment-intro > p:last-of-type {
    color: rgba(255, 255, 255, 0.78);
    line-height: 1.6;
}

.page-main-reunion-detail .tradition-wallets {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 1rem;
}

.page-main-reunion-detail .tradition-wallets span {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    gap: 0.35rem;
    padding: 0.36rem 0.62rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.78rem;
    font-weight: 700;
}

.page-main-reunion-detail .tradition-payment-action {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(1rem, 3vw, 1.5rem);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 19px;
    color: var(--visual-ink);
    background: linear-gradient(145deg, #fff, var(--visual-blue-100));
    box-shadow: 0 18px 40px rgba(4, 15, 28, 0.22);
}

.page-main-reunion-detail .tradition-amount-form,
.page-main-reunion-detail .tradition-embedded-checkout {
    width: 100%;
}

.page-main-reunion-detail .tradition-amount-options {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.8rem;
}

.page-main-reunion-detail .tradition-amount-option {
    position: relative;
    cursor: pointer;
}

.page-main-reunion-detail .tradition-amount-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.page-main-reunion-detail .tradition-amount-option span {
    display: grid;
    min-height: 48px;
    place-items: center;
    border: 1px solid rgba(46, 49, 146, 0.24);
    border-radius: 12px;
    color: var(--brand-blue);
    background: #fff;
    font-weight: 850;
    transition: border-color 160ms ease, background-color 160ms ease,
        box-shadow 160ms ease;
}

.page-main-reunion-detail .tradition-amount-option input:checked + span {
    border-color: var(--brand-blue);
    color: #fff;
    background: var(--brand-blue);
    box-shadow: 0 7px 16px rgba(46, 49, 146, 0.2);
}

.page-main-reunion-detail .tradition-amount-option input:focus-visible + span {
    outline: 3px solid rgba(30, 119, 188, 0.45);
    outline-offset: 2px;
}

.page-main-reunion-detail .tradition-custom-amount {
    margin-bottom: 0.85rem;
}

.page-main-reunion-detail .tradition-custom-amount label {
    margin-bottom: 0.35rem;
    color: var(--visual-navy-900);
    font-weight: 750;
}

.page-main-reunion-detail .tradition-payment-status {
    min-height: 1.4rem;
    margin-top: 0.6rem;
    color: var(--brand-blue);
    font-size: 0.85rem;
    font-weight: 700;
}

.page-main-reunion-detail .tradition-embedded-checkout {
    overflow: hidden;
    margin-top: 0.9rem;
    border: 1px solid rgba(30, 119, 188, 0.2);
    border-radius: 14px;
    background: #fff;
}

.page-main-reunion-detail .tradition-payment-action-title {
    margin-bottom: 0.45rem;
    color: var(--visual-navy-900);
    font-size: 1.08rem;
    font-weight: 850;
}

.page-main-reunion-detail .tradition-payment-action > p:not(.tradition-payment-note) {
    margin-bottom: 1rem;
    color: var(--visual-muted);
    line-height: 1.55;
}

.page-main-reunion-detail .tradition-payment-action .btn {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border-color: var(--brand-blue);
    background: linear-gradient(135deg, var(--brand-light-blue), var(--brand-blue));
    box-shadow: 0 10px 22px rgba(46, 49, 146, 0.2);
}

.page-main-reunion-detail .tradition-stripe-widget {
    width: 100%;
    min-height: 50px;
}

.page-main-reunion-detail .tradition-stripe-widget stripe-buy-button {
    display: block;
    width: 100%;
}

.page-main-reunion-detail .tradition-payment-fallback {
    margin-top: 0.55rem;
    font-size: 0.82rem;
    font-weight: 700;
}

.page-main-reunion-detail .tradition-payment-note {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.8rem;
    color: var(--visual-muted);
    font-size: 0.75rem;
}

/* Meeting editing uses the same restrained NA blue and powder-blue system. */
.meeting-editor-page .meeting-editor-shell {
    overflow: hidden;
    border: 1px solid rgba(46, 49, 146, 0.18);
    border-radius: 24px;
    box-shadow: var(--visual-shadow-lg) !important;
}

.meeting-access-page .meeting-access-card {
    overflow: hidden;
    border: 1px solid rgba(46, 49, 146, 0.18);
    border-radius: 22px;
    box-shadow: var(--visual-shadow-lg) !important;
}

.meeting-access-page .meeting-editor-header {
    padding: 1rem 1.2rem;
    color: #fff;
    background: linear-gradient(135deg, var(--visual-navy-900), var(--brand-blue));
}

.meeting-access-page .meeting-editor-header h3 {
    color: #fff !important;
}

.meeting-access-page .meeting-access-intro {
    padding: 1rem;
    border: 1px solid rgba(30, 119, 188, 0.18);
    border-radius: 15px;
    background: linear-gradient(135deg, #fff, var(--visual-blue-100));
}

.meeting-editor-page .meeting-editor-header {
    padding: 1.2rem 1.4rem;
    color: #fff;
    background: linear-gradient(135deg, var(--visual-navy-900), var(--brand-blue));
}

.meeting-editor-page .meeting-editor-header h2 {
    color: #fff !important;
}

.meeting-editor-page .meeting-editor-shell > .card-body {
    padding: clamp(1rem, 3vw, 1.65rem);
}

.meeting-editor-page .meeting-editor-shell form > .card:not(.stripe-payment-link-card) {
    border: 1px solid var(--visual-line);
    border-radius: 17px;
    box-shadow: var(--visual-shadow-sm) !important;
}

.meeting-editor-page .meeting-editor-shell form > .card:not(.stripe-payment-link-card) > .card-header {
    border-bottom: 1px solid rgba(30, 119, 188, 0.14);
    color: var(--visual-navy-900) !important;
    background: var(--visual-blue-100) !important;
}

.meeting-editor-page .stripe-payment-link-card {
    overflow: hidden;
    border: 1px solid rgba(46, 49, 146, 0.22);
    border-radius: 19px;
    box-shadow: var(--visual-shadow-md) !important;
}

.meeting-editor-page .stripe-payment-link-card > .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 0;
    color: #fff !important;
    background: linear-gradient(135deg, var(--visual-navy-900), var(--brand-blue)) !important;
}

.meeting-editor-page .stripe-payment-link-heading {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.meeting-editor-page .stripe-payment-link-icon {
    display: inline-grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border-radius: 13px;
    background: rgba(30, 119, 188, 0.42);
}

.meeting-editor-page .stripe-payment-link-kicker {
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.meeting-editor-page .stripe-payment-link-card h3 {
    color: #fff !important;
}

.meeting-editor-page .stripe-payment-link-status {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.58rem;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
    font-size: 0.73rem;
    font-weight: 750;
    white-space: nowrap;
}

.meeting-editor-page .stripe-payment-link-status--active {
    background: rgba(30, 119, 188, 0.46);
}

.meeting-editor-page .stripe-payment-link-steps {
    display: grid;
    gap: 0.45rem;
    margin-bottom: 1rem;
    padding: 0.9rem 1rem 0.9rem 2.4rem;
    border-radius: 13px;
    background: var(--visual-blue-50);
}

.meeting-editor-page .stripe-payment-link-steps li::marker {
    color: var(--brand-blue);
    font-weight: 850;
}

.meeting-editor-page .stripe-payment-link-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.meeting-editor-page .stripe-payment-link-fields .form-control {
    min-height: 46px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.82rem;
}

.meeting-editor-page .stripe-payment-link-fallback {
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--visual-line);
    border-radius: 12px;
    background: #fff;
}

.meeting-editor-page .stripe-payment-link-fallback summary {
    color: var(--brand-blue);
    cursor: pointer;
    font-weight: 750;
}

.meeting-editor-page .stripe-payment-link-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.meeting-editor-page .stripe-payment-link-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
}

.meeting-editor-page .stripe-payment-link-preview,
.meeting-editor-page .stripe-payment-link-security {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
}

.meeting-editor-page .stripe-credentials-locked,
.meeting-editor-page .stripe-admin-notice {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-bottom: 1rem;
    padding: 0.85rem;
    border: 1px solid rgba(30, 119, 188, 0.2);
    border-radius: 13px;
    background: var(--visual-blue-50);
}

.meeting-editor-page .stripe-credentials-locked-icon {
    display: inline-grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 10px;
    color: #fff;
    background: var(--brand-blue);
}

.meeting-editor-page .stripe-credentials-locked code {
    color: var(--brand-blue);
    font-weight: 800;
}

.meeting-editor-page .stripe-admin-notice i {
    color: var(--brand-light-blue);
}

.meeting-editor-page .stripe-credentials-remove {
    margin-top: 1rem;
    padding: 0.85rem 0.85rem 0.85rem 2.35rem;
    border: 1px solid rgba(46, 49, 146, 0.2);
    border-radius: 12px;
    background: rgba(30, 119, 188, 0.07);
}

.tradition-return-page .card {
    overflow: hidden;
    border: 1px solid rgba(46, 49, 146, 0.2);
    border-top: 5px solid var(--brand-blue);
    border-radius: 22px;
}

.tradition-return-icon {
    display: inline-grid;
    width: 64px;
    height: 64px;
    place-items: center;
    border-radius: 20px;
    color: var(--brand-blue);
    background: var(--visual-blue-100);
    font-size: 1.6rem;
}

.tradition-return-icon--success {
    color: #fff;
    background: linear-gradient(135deg, var(--brand-light-blue), var(--brand-blue));
}

.meeting-editor-page .stripe-payment-link-preview {
    margin-top: 0.8rem;
    font-weight: 700;
}

.meeting-editor-page .stripe-payment-link-security {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--visual-line);
    color: var(--visual-muted);
    font-size: 0.8rem;
}

/* Subcommittee theme variables use only the approved brand colors or
   darker/lighter variants produced from those anchors. */
.site-subcommittee-page,
.subcommittee-identity {
    --subcommittee-accent: var(--brand-blue);
    --subcommittee-deep: var(--visual-navy-900);
    --subcommittee-soft: rgba(46, 49, 146, 0.08);
    --subcommittee-contrast: #fff;
}

.page-subcommittees-radio,
.page-subcommittees-comportements-derangeants,
.subcommittee-theme-red {
    --subcommittee-accent: var(--brand-red);
    --subcommittee-deep: #8f1116;
    --subcommittee-soft: rgba(237, 28, 36, 0.08);
    --subcommittee-contrast: #fff;
}

.page-subcommittees-relations-publiques,
.subcommittee-theme-light-blue {
    --subcommittee-accent: var(--brand-light-blue);
    --subcommittee-deep: #155a8d;
    --subcommittee-soft: rgba(30, 119, 188, 0.09);
    --subcommittee-contrast: #fff;
}

.page-subcommittees-hopitaux-institutions,
.subcommittee-theme-green {
    --subcommittee-accent: var(--brand-green);
    --subcommittee-deep: var(--visual-green-700);
    --subcommittee-soft: rgba(0, 166, 81, 0.08);
    --subcommittee-contrast: #fff;
}

.page-subcommittees-journee-gratitude,
.subcommittee-theme-yellow {
    --subcommittee-accent: var(--brand-yellow);
    --subcommittee-deep: #c9bf00;
    --subcommittee-soft: rgba(255, 242, 0, 0.12);
    --subcommittee-contrast: var(--brand-black);
}

.page-subcommittees-publications,
.subcommittee-theme-deep-blue {
    --subcommittee-accent: var(--brand-blue);
    --subcommittee-deep: var(--visual-navy-900);
    --subcommittee-soft: rgba(46, 49, 146, 0.08);
    --subcommittee-contrast: #fff;
}

.subcommittee-theme-blue {
    --subcommittee-accent: var(--brand-light-blue);
    --subcommittee-deep: var(--brand-blue);
    --subcommittee-soft: rgba(30, 119, 188, 0.08);
    --subcommittee-contrast: #fff;
}

.site-subcommittee-page .site-page-heading {
    border-left: 5px solid var(--subcommittee-accent);
}

.site-subcommittee-page .site-page-heading::after {
    background: var(--subcommittee-accent);
}

.site-subcommittee-page .site-page-title > i,
.site-subcommittee-page .site-page-heading h1 > i {
    color: var(--subcommittee-accent);
}

.subcommittee-identity .subcommittee-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.15rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border-radius: 24px;
    color: var(--subcommittee-contrast);
    background:
        radial-gradient(circle at 88% 15%, color-mix(in srgb, var(--subcommittee-accent) 55%, transparent), transparent 18rem),
        linear-gradient(130deg, var(--subcommittee-deep), color-mix(in srgb, var(--subcommittee-deep) 72%, var(--subcommittee-accent)));
    box-shadow: 0 20px 50px color-mix(in srgb, var(--subcommittee-deep) 22%, transparent);
}

.subcommittee-identity .subcommittee-hero::after {
    position: absolute;
    z-index: -1;
    top: -8rem;
    right: -3rem;
    width: 22rem;
    height: 22rem;
    border: 1px solid color-mix(in srgb, var(--subcommittee-contrast) 18%, transparent);
    border-radius: 50%;
    content: "";
}

.subcommittee-identity .subcommittee-hero-icon {
    display: inline-grid;
    width: 66px;
    height: 66px;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--subcommittee-contrast) 25%, transparent);
    border-radius: 19px;
    color: var(--subcommittee-contrast);
    background: color-mix(in srgb, var(--subcommittee-contrast) 13%, transparent);
    font-size: 1.65rem;
}

.subcommittee-identity .subcommittee-hero h1 {
    color: var(--subcommittee-contrast) !important;
    font-size: clamp(2rem, 4vw, 3.15rem);
    line-height: 1.02;
}

.subcommittee-identity .subcommittee-hero-copy > p:last-child {
    color: color-mix(in srgb, var(--subcommittee-contrast) 78%, transparent);
}

.subcommittee-identity .subcommittee-kicker {
    color: color-mix(in srgb, var(--subcommittee-contrast) 72%, transparent);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.subcommittee-identity .subcommittee-hero .btn {
    border-color: color-mix(in srgb, var(--subcommittee-contrast) 48%, transparent);
    color: var(--subcommittee-contrast);
    background: color-mix(in srgb, var(--subcommittee-contrast) 9%, transparent);
}

.subcommittee-identity .subcommittee-definition-card {
    border-left: 5px solid var(--subcommittee-accent) !important;
}

.site-subcommittee-page .subcommittee-summary-card,
.subcommittee-identity .subcommittee-summary-card {
    overflow: hidden;
    border-top: 4px solid var(--subcommittee-accent) !important;
    background: linear-gradient(140deg, #fff, var(--subcommittee-soft));
    box-shadow: 0 12px 28px color-mix(in srgb, var(--subcommittee-deep) 11%, transparent) !important;
}

.site-subcommittee-page .subcommittee-summary-card--meeting .card-header,
.subcommittee-identity .subcommittee-summary-card--meeting .card-header {
    color: var(--subcommittee-contrast) !important;
    background: linear-gradient(135deg, var(--subcommittee-deep), var(--subcommittee-accent)) !important;
}

.site-subcommittee-page .subcommittee-summary-card--contact,
.subcommittee-identity .subcommittee-summary-card--contact {
    border-top-color: var(--brand-light-blue) !important;
}

.site-subcommittee-page .subcommittee-summary-card--contact .card-header,
.subcommittee-identity .subcommittee-summary-card--contact .card-header {
    background: linear-gradient(135deg, #155a8d, var(--brand-light-blue)) !important;
}

.site-subcommittee-page .subcommittee-summary-card--announcement,
.subcommittee-identity .subcommittee-summary-card--announcement {
    border-top-color: var(--brand-yellow) !important;
}

.site-subcommittee-page .subcommittee-summary-card--announcement .card-header,
.subcommittee-identity .subcommittee-summary-card--announcement .card-header {
    color: var(--brand-black) !important;
    background: linear-gradient(135deg, var(--brand-yellow), #d9ce00) !important;
}

.site-app.site-subcommittee-page .subcommittee-identity .subcommittee-summary-card--contact .card-header.bg-info {
    color: #fff !important;
    background: linear-gradient(135deg, #155a8d, var(--brand-light-blue)) !important;
}

.site-app.site-subcommittee-page .subcommittee-identity .subcommittee-summary-card--announcement .card-header.bg-info {
    color: var(--brand-black) !important;
    background: linear-gradient(135deg, var(--brand-yellow), #d9ce00) !important;
}

.site-app.site-subcommittee-page .subcommittee-identity .subcommittee-summary-card--announcement .card-header.bg-info .bi {
    color: var(--brand-black) !important;
}

.site-subcommittee-page .subcommittee-overview-strip > h2 {
    color: var(--subcommittee-deep);
    font-weight: 800;
}

.site-subcommittee-page .subcommittee-overview-strip > h2 .bi {
    color: var(--subcommittee-accent);
}

.site-subcommittee-page .subcommittee-overview-strip .card-header {
    padding: 0.78rem 1rem;
    border-bottom: 0;
}

.site-subcommittee-page .subcommittee-overview-strip .card-body {
    padding: 1rem;
}

.site-subcommittee-page .subcommittee-overview-strip .subcommittee-summary-highlight {
    color: var(--subcommittee-deep);
    font-size: 1.18rem;
    font-weight: 800;
}

.site-subcommittee-page .subcommittee-overview-strip .subcommittee-summary-highlight span {
    display: block;
    margin-top: 0.2rem;
    color: var(--visual-ink-700);
    font-size: 0.9rem;
    font-weight: 700;
}

.site-app .card-header.bg-light h1 > .bi:first-child,
.site-app .card-header.bg-light h2 > .bi:first-child,
.site-app .card-header.bg-light h3 > .bi:first-child,
.site-app .card-header.bg-light h4 > .bi:first-child,
.site-app .card-header.bg-light h5 > .bi:first-child {
    color: var(--brand-light-blue);
    background: rgba(30, 119, 188, 0.1);
}

.subcommittee-identity .subcommittee-summary-grid + .row {
    margin-top: 1rem !important;
}

/* Responsive ------------------------------------------------------------- */

@media screen and (max-width: 1199.98px) and (min-width: 992px) {
    .site-app .site-nav-brand-copy {
        display: none;
    }

    .site-app .site-nav-brand {
        margin-right: 0.55rem;
    }

    .site-app .navbar .nav-link {
        padding-right: 0.4rem !important;
        padding-left: 0.4rem !important;
        font-size: 0.82rem;
    }

    .site-app .navbar .nav-link .me-1 {
        margin-right: 0.2rem !important;
    }
}

@media screen and (max-width: 991.98px) {
    .site-app .navbar {
        min-height: 60px;
    }

    .site-app .site-nav-brand {
        margin-right: auto;
    }

    .site-app .site-nav-brand-mark {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
        border-radius: 12px;
    }

    .page-main-reunion-detail .meeting-profile-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .page-main-reunion-detail .meeting-profile-badges {
        max-width: none;
        justify-content: flex-start;
    }

    .subcommittee-identity .subcommittee-hero {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .subcommittee-identity .subcommittee-hero > .btn {
        grid-column: 1 / -1;
        justify-self: stretch;
    }

    .site-app .navbar-collapse {
        margin-top: 0.65rem;
        padding: 0.75rem;
        border: 1px solid rgba(255, 255, 255, 0.10);
        border-radius: 16px;
        background: rgba(8, 26, 45, 0.96);
        box-shadow: 0 18px 40px rgba(8, 26, 45, 0.24);
    }

    .site-app .navbar .nav-link {
        width: 100%;
        max-width: none;
        justify-content: flex-start;
    }

    .page-main-index .home-hero {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .page-main-index .home-hero-note {
        grid-template-columns: auto 1fr;
        align-items: center;
    }

    .site-app .site-table-scrollable > .site-table-scroll-hint {
        position: sticky;
        left: 0;
        display: flex;
        width: max-content;
        align-items: center;
        gap: 0.35rem;
        margin: 0.55rem 0.65rem 0.2rem;
        padding: 0.3rem 0.55rem;
        border-radius: 999px;
        color: var(--visual-muted);
        background: var(--visual-blue-50);
        font-size: 0.72rem;
        font-weight: 700;
    }

    .site-app .navbar-nav.ms-auto {
        align-items: stretch !important;
        margin-top: 0.4rem;
        padding-top: 0.5rem;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
    }

    .site-app .site-page-heading {
        align-items: flex-start !important;
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .table-responsive {
        background:
            linear-gradient(90deg, #fff 30%, rgba(255, 255, 255, 0)) left center,
            linear-gradient(270deg, #fff 30%, rgba(255, 255, 255, 0)) right center,
            linear-gradient(90deg, rgba(18, 58, 99, 0.12), rgba(18, 58, 99, 0)) left center,
            linear-gradient(270deg, rgba(18, 58, 99, 0.12), rgba(18, 58, 99, 0)) right center;
        background-attachment: local, local, scroll, scroll;
        background-repeat: no-repeat;
        background-size: 36px 100%, 36px 100%, 14px 100%, 14px 100%;
    }
}

@media screen and (max-width: 767.98px) {
    .site-app .site-main,
    .site-auth-page .site-main,
    .site-workspace-page:not(.site-auth-page) .site-main {
        width: min(100% - 1rem, 100%);
    }

    .site-app .site-logo-block {
        margin-top: 0.35rem;
        margin-bottom: 1.15rem;
    }

    .site-app .site-logo-block .logo-container {
        width: 104px;
        height: 104px;
        border-radius: 28px;
    }

    .site-app .site-logo-block--compact .logo-container {
        width: 76px;
        height: 76px;
        border-radius: 22px;
    }

    .site-app .site-page-heading {
        flex-direction: column !important;
        align-items: stretch !important;
        padding: 1.05rem;
        border-radius: 17px;
    }

    .page-main-reunion-detail .meeting-profile-card {
        border-radius: 19px;
    }

    .page-main-reunion-detail .meeting-profile-hero {
        min-height: 0;
        padding: 1.2rem;
    }

    .page-main-reunion-detail .meeting-profile-hero h1.card-title {
        font-size: clamp(2rem, 11vw, 2.75rem);
    }

    .page-main-reunion-detail .meeting-facts-grid {
        grid-template-columns: 1fr;
    }

    .page-main-reunion-detail .meeting-fact {
        min-height: 0;
        padding: 1rem;
    }

    .page-main-reunion-detail .tradition-payment-card {
        grid-template-columns: 1fr;
        padding: 1.1rem;
        border-radius: 20px;
    }

    .page-main-reunion-detail .tradition-payment-action {
        padding: 1rem;
    }

    .page-main-reunion-detail .tradition-payment-action .btn {
        width: 100%;
    }

    .page-main-reunion-detail .tradition-amount-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .meeting-editor-page .stripe-payment-link-card > .card-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .meeting-editor-page .stripe-payment-link-actions,
    .meeting-editor-page .stripe-payment-link-actions .btn {
        width: 100%;
    }

    .meeting-editor-page .stripe-payment-link-fields {
        grid-template-columns: 1fr;
    }

    .page-main-reunion-detail .meeting-public-actions,
    .page-main-reunion-detail .meeting-member-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .page-main-reunion-detail .meeting-public-actions .btn,
    .page-main-reunion-detail .meeting-public-actions .dropdown,
    .page-main-reunion-detail .meeting-public-actions .dropdown > .btn,
    .page-main-reunion-detail .meeting-member-actions .btn,
    .page-main-reunion-detail .meeting-member-actions form {
        width: 100%;
    }

    .subcommittee-identity {
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    .subcommittee-identity .subcommittee-hero {
        grid-template-columns: 1fr;
        padding: 1.15rem;
        border-radius: 19px;
    }

    .subcommittee-identity .subcommittee-hero-icon {
        width: 54px;
        height: 54px;
        border-radius: 16px;
        font-size: 1.35rem;
    }

    .subcommittee-identity .subcommittee-hero > .btn {
        grid-column: auto;
        width: 100%;
    }

    .page-main-index .site-logo-block {
        margin-bottom: -3.2rem;
    }

    .page-main-index .site-logo-block .logo-container {
        width: 98px;
        height: 98px;
        border-radius: 28px;
    }

    .page-main-index .home-hero {
        min-height: 0;
        gap: 1.2rem;
        padding: 5rem 1.05rem 1.15rem;
        border-radius: 23px;
    }

    .site-app.page-main-index .home-hero h1.site-page-title {
        font-size: clamp(2rem, 10vw, 2.65rem);
        line-height: 1.02;
    }

    .page-main-index .home-hero-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .page-main-index .home-hero-actions .btn {
        width: 100%;
    }

    .page-main-index .home-hero-note {
        padding: 0.9rem;
        font-size: 0.86rem;
    }

    .site-app .site-page-heading::after {
        left: 1.05rem;
    }

    .site-app .site-page-heading .btn,
    .site-app .site-page-heading > a.btn {
        width: 100%;
    }

    .site-app .site-page-title {
        font-size: clamp(1.8rem, 9vw, 2.25rem);
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .card {
        border-radius: 14px;
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .card-header {
        min-height: 54px;
        padding: 0.85rem 0.95rem;
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .card-body {
        padding: 1rem;
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .table > :not(caption) > * > * {
        padding: 0.78rem 0.7rem;
    }

    .site-app:not(.congress-page):not(.congress-archive-page) .table thead th,
    .site-app:not(.congress-page):not(.congress-archive-page) .table .table-light th {
        font-size: 0.72rem;
    }

    .site-app .publication-order-table tbody td {
        padding: 0 !important;
    }

    .site-app .modal-dialog {
        margin: 0.6rem;
    }

    .site-auth-page .card-body {
        padding: 1.15rem !important;
    }

    .site-app .footer-links ul {
        flex-direction: column;
        gap: 0.45rem;
    }

    .site-app .footer-links li::after {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-app *,
    .site-app *::before,
    .site-app *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }

    .site-app .site-reading-progress::after {
        transition: none;
    }
}

@media print {
    .site-app {
        color: #000;
        background: #fff !important;
    }

    .site-app .site-page-heading,
    .site-app .card,
    .site-app .table-responsive {
        border-color: #bbb !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .site-app .site-page-heading::before,
    .site-app .site-page-heading::after {
        display: none;
    }

    .site-app .site-reading-progress,
    .site-app .site-table-scroll-hint,
    .page-main-index .home-hero-actions {
        display: none !important;
    }
}


.calendar-event-action { border: 0; background: transparent; color: inherit; font: inherit; text-align: left; padding: .25rem; min-height: 44px; width: 100%; }
.calendar-event-action:focus-visible { outline: 3px solid #004b87; outline-offset: 2px; }

/* Keep event text readable independently of an editor's chosen gradient. */
.event-slide-content { background: #fff; color: #172b4d; padding: 1rem 2rem; border-radius: .75rem; }
.event-slide .event-title { color: #172b4d; text-shadow: none; overflow-wrap: anywhere; }
.event-slide .event-message { background: #eef3f8; border-color: #004b87; }
.events-carousel-container .carousel-indicators { position: static; margin: 0; background: #eef3f8; }
.events-carousel-container .carousel-indicator { width: 28px; height: 28px; border-color: #004b87; background: #fff; }
.events-carousel-container .carousel-indicator.active { background: #004b87; }
.events-carousel-container .carousel-nav-btn { width: 44px; height: 44px; }
@media (prefers-reduced-motion: reduce) { .event-slide { animation: none; } }

.meeting-map-results { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.meeting-map-results li { margin-block: .5rem; }
