/* style/main.css */

/* ================================================ */
/* === STRUCTURE GÉNÉRALE & LAYOUT             === */
/* ================================================ */

body {
    display: flex; /* Organise sidebar et contenu principal */
    min-height: 100vh; /* Hauteur minimale = hauteur de la fenêtre */
    /* padding-bottom pour RGPD banner est géré par .main-content si besoin */
}

/* Barre latérale */
.sidebar {
    width: var(--sidebar-width);
    background-color: var(--color-primary-dark);
    color: var(--color-text-on-dark); /* Utiliser variable pour texte sur fond sombre */
    padding: 20px;
    height: 100vh; /* Prend toute la hauteur */
    position: fixed;
    left: 0;
    top: 0;
    overflow-x: hidden; /* Masquer scroll horizontal */
    overflow-y: auto;   /* Permettre scroll vertical si contenu dépasse */
    display: flex;
    flex-direction: column; /* Organise les enfants verticalement */
    z-index: 100; /* Assurer qu'elle est au-dessus du contenu mais potentiellement sous les modales/overlays */
}

/* Titre de l'application dans la Sidebar */
.app-title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 30px;
    color: inherit; /* Hérite couleur du parent (.sidebar) */
    font-size: 1.5em;
    flex-shrink: 0; /* Empêche le titre de rétrécir */
}

.app-title img {
    width: 30px;
    height: auto;
}

/* Navigation Principale dans la Sidebar */
.main-nav {
    flex-grow: 1; /* Prend l'espace vertical disponible */
    display: flex;
    flex-direction: column;
    overflow-y: auto; /* Permet scroll si la liste est longue */
    margin-bottom: 15px; /* Espace avant le footer */
}

.main-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    flex-grow: 1; /* Pas nécessaire ici si .main-nav l'a */
    display: flex;
    flex-direction: column;
}

.main-nav li {
    margin-bottom: 5px; /* Espacement réduit entre les liens */
}

.main-nav .nav-link {
    display: flex; /* Utiliser flex pour aligner icône et texte */
    align-items: center; /* Alignement vertical */
    padding: 10px 15px;
    color: inherit; /* Hérite couleur (.sidebar) */
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.2s ease, color 0.2s ease;
    white-space: nowrap; /* Empêche retour à la ligne */
}

.main-nav .nav-link i {
    margin-right: 10px;
    width: 20px; /* Largeur fixe pour alignement */
    text-align: center;
    flex-shrink: 0; /* Empêche icône de rétrécir */
    /* vertical-align non nécessaire avec flex align-items */
}

/* Style du lien actif et au survol */
.main-nav .nav-link:hover,
.main-nav .nav-link.active {
    background-color: var(--color-primary-light);
    color: var(--color-text-on-primary); /* Utiliser variable */
}

/* Pied de page de la Sidebar */
.sidebar-footer {
    margin-top: auto;
    padding: 8px 0 0 0; /* Adjust the bottom padding here */
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    text-align: center;
    flex-shrink: 0;
    line-height: 2; /* Adjust this value for consistent line spacing */
    color: rgba(255, 255, 255, 0.75);
    font-size: 11.88px; /* Base font size for footer */
}

/* Ensure consistent spacing for all direct children */
.sidebar-footer > * {
    margin: 0;
    padding: 0;
}

/* Paragraphe de la version */
.sidebar-footer p:first-child {
    font-size: 0.95em; /* Keep slightly smaller for version */
}

/* Conteneur pour les liens Forge et Ticket */
.sidebar-footer .footer-links-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    flex-wrap: nowrap;
}

/* Liens Projet Forge et Ticket */
.sidebar-footer .footer-project-link,
.sidebar-footer .footer-ticket-link {
    font-size: 0.95em; /* Consistent with version */
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.2s ease;
    white-space: nowrap;
}

.sidebar-footer .footer-project-link:hover,
.sidebar-footer .footer-ticket-link:hover {
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.1);
}

.sidebar-footer .footer-project-link i,
.sidebar-footer .footer-ticket-link i {
    margin-right: 4px;
    font-size: 0.95em;
}

/* Lien de contact (Auteur) */
.sidebar-footer .footer-contact-link {
    font-size: 0.95em; /* Consistent with others */
    color: rgba(255, 255, 255, 0.7); /* Consistent with project links */
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.2s ease;
    white-space: nowrap; /* Consistent with project links */
    display: inline-flex; /* Use inline-flex for tighter wrapping */
    align-items: center; /* Vertically align items */
}

.sidebar-footer .footer-contact-link i {
    margin-right: 6px;
    /* vertical-align: middle; */ /* Not needed with flexbox */
}

.sidebar-footer .footer-contact-link span {
    /* vertical-align: middle; */ /* Not needed with flexbox */
}

.sidebar-footer .footer-contact-link:hover {
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.1);
}

/* Style général pour `strong` dans le footer */
.sidebar-footer strong {
    color: rgba(255, 255, 255, 0.95);
    font-weight: 600;
}

/* Contenu Principal (droite) */
.main-content {
    flex-grow: 1;
    padding: 30px;
    margin-left: var(--sidebar-width);
    background-color: var(--color-background);
    /* Ajouter padding bas si RGPD Banner est DANS main-content et sticky */
    padding-bottom: calc(var(--privacy-notice-height) + 30px);
}

/* Règle pour pousser le dernier élément en bas */
#theme-toggle-list-item {
    margin-top: auto; /* La clé pour pousser en bas */
    /* margin-bottom: 0; /* Assurer qu'il n'y a pas de marge basse superflue */
    /* Peut nécessiter un peu de padding-top si trop collé au footer */
    /* padding-top: 10px; */
}

/* Règle pour aligner l'icône (optionnel, ajuster la valeur) */
#theme-toggle-link i {
    vertical-align: middle; /* Ou bottom, text-bottom... */
    /* Vérifier les autres styles pour l'icône si besoin */
    margin-right: 10px;
    width: 20px;
    text-align: center;
}



/* Sections de Contenu */
.content-section {
    display: none;
    animation: fadeIn 0.5s ease-in-out;
}
.content-section.active {
    display: block;
}

/* Titres H2 des sections */
.content-section h2 {
    color: var(--color-primary-dark);
    margin-top: 0; /* Retirer marge par défaut */
    margin-bottom: 25px; /* Augmenter espace après titre */
    padding-bottom: 10px;
    border-bottom: 2px solid var(--color-border);
    font-size: 1.6em; /* Titre un peu plus grand */
    display: flex; /* Pour aligner icône */
    align-items: center;
}
.content-section h2 i {
    margin-right: 10px; /* Espace icône/titre */
    color: var(--color-primary-light); /* Icône dans couleur claire */
    font-size: 0.9em; /* Icône légèrement plus petite que texte */
}

/* En-tête de Section (utilisé dans Résultats & Stats) */
.section-header {
     display: flex;
     justify-content: space-between;
     align-items: center;
     flex-wrap: wrap;
     gap: 15px;
     margin-bottom: 20px;
     padding-bottom: 15px;
     border-bottom: 1px solid var(--color-border);
}
.section-header h2 { /* Style du H2 DANS l'en-tête */
     margin: 0;
     padding: 0;
     border: none;
     font-size: 1.6em; /* Garder cohérent */
     flex-grow: 1; /* Prend espace à gauche */
}


/* Bandeau RGPD */
/* Positionné par rapport au viewport, à droite de la sidebar */
.privacy-notice {
    position: fixed;
    bottom: 0;
    left: var(--sidebar-width);
    width: calc(100% - var(--sidebar-width));
    background-color: var(--color-grey-note);
    color: var(--color-text-muted);
    padding: 10px 20px;
    text-align: center;
    font-size: 0.8em;
    height: var(--privacy-notice-height);
    border-top: 1px solid var(--color-border);
    z-index: 1000; /* Au-dessus de la plupart des éléments */
    box-sizing: border-box;
}
.privacy-notice p { margin: 0; }
.privacy-notice i { margin-right: 5px; color: var(--color-primary-light); }

/* Animation */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}


/* ================================================ */
/* === RESPONSIVE DESIGN                        === */
/* ================================================ */
@media (max-width: 768px) {
    body {
        flex-direction: column; /* Contenu sous la sidebar */
        padding-bottom: 0; /* Retirer padding pour banner car layout change */
        min-height: 100vh; /* Assurer hauteur minimale */
    }

    .sidebar {
        width: 100%;
        height: auto; /* Hauteur s'adapte au contenu */
        position: static; /* Revient dans le flux normal */
        border-bottom: 2px solid var(--color-primary-light);
        display: flex; /* Reset flex pour mobile */
        flex-direction: column;
        overflow-y: visible; /* Reset scroll */
        /* padding: 15px; /* Padding réduit */
    }
    .sidebar-footer {
        margin-top: 15px; /* Espace avant footer en mobile */
        padding-top: 10px;
        text-align: center; /* Assurer centrage */
    }
    .main-nav { flex-grow: 1; display: flex; flex-direction: column;/* Reset flex-grow */ } /* Nav ne s'étend plus */
    /* Optionnel: Cacher menu dans un burger ? Pour l'instant, il reste visible */

    .main-content {
        margin-left: 0;
        padding: 20px;
        /* Espace pour le banner fixe en bas sur mobile */
        padding-bottom: calc(var(--privacy-notice-height) + 20px);
    }
     .content-section h2 { font-size: 1.4em; }

    .privacy-notice {
        left: 0; /* Prend toute la largeur en bas */
        width: 100%;
    }
    /* Styles pour les tuiles/grilles en mobile si besoin */
    .import-tiles-container,
    .stats-tiles-container,
    .competency-grid,
    .ressources-tiles-container {
        grid-template-columns: 1fr; /* Une seule colonne */
    }
}


/* ================================================ */
/* === ONGLET AIDE                              === */
/* ================================================ */
.aide-tabs {
    margin-bottom: 20px;
    border-bottom: 2px solid var(--color-border);
}
.aide-tabs ul {
    list-style: none; padding: 0; margin: 0; display: flex; gap: 5px;
}
.aide-tabs li { margin-bottom: -2px; }
.aide-tab-button {
    padding: 10px 15px; cursor: pointer; border: 1px solid transparent;
    border-bottom: none; background-color: transparent;
    color: var(--color-text-muted); font-family: var(--font-main); font-size: 1em;
    border-radius: 5px 5px 0 0; transition: background-color 0.2s ease, color 0.2s ease;
}
.aide-tab-button:hover { background-color: var(--color-grey-note); color: var(--color-text); }
.aide-tab-button.active {
    background-color: var(--color-background); color: var(--color-primary-dark);
    border-color: var(--color-border); border-bottom-color: var(--color-background);
    font-weight: bold;
}
.aide-content-panel { display: none; padding-top: 20px; animation: fadeIn 0.3s ease-in-out; }
.aide-content-panel.active { display: block; }

/* Styles Aide Tutoriel */
#aide .tutorial-disabled { opacity: 0.85; pointer-events: none; cursor: default; }
#aide .tutorial-disabled .drop-zone,
#aide .tutorial-disabled .file-drop-zone { cursor: default; background-color: var(--color-background); }
#aide .tutorial-disabled .drop-zone i,
#aide .tutorial-disabled .file-drop-zone i { opacity: 0.5; }
#aide .tutorial-disabled .file-input-label { text-decoration: none; cursor: default; font-weight: normal; }
#aide .import-summary { border-top: 1px dashed var(--color-border); padding-top: 10px; margin-top: 10px; }
#aide .import-summary ul { font-size: 0.9em; margin-bottom: 5px; list-style-type: disc; padding-left: 20px; }
#aide .import-summary .import-time { margin-bottom: 10px; font-size: 0.85em; color: var(--color-text-muted); }
#aide .import-summary h4 { font-size: 0.95em; margin-bottom: 5px; }
#aide .results-table th .sort-indicator { display: none; }
#aide .results-table th[title]:hover { background-color: inherit; }
#aide .aide-chart-placeholder { border: 1px dashed #ccc; padding: 30px 15px; text-align: center; background-color: #f0f0f0; color: #777; font-style: italic; font-size: 0.9em; min-height: 100px; display: flex; align-items: center; justify-content: center; margin-top: 10px; border-radius: 4px; }
#aide .chart-context-info { display: block !important; margin-top: 5px !important; font-size: 0.8em !important; text-align: center !important; }
#aide .competency-tiles-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; }
#aide .competency-tile { min-height: 50px; padding: 6px 8px; }
#aide .competency-name { font-size: 0.75em; }
#aide .competency-average { font-size: 1em; }
#aide .results-table th.aide-th-hovered {background-color: #e9ecef;}

body[data-theme="dark"] #aide .results-table th.aide-th-hovered {background-color: #3a3a3a;}

/* ================================================ */
/* === STYLES IMPRESSION                        === */
/* ================================================ */
@media print {
    @page { size: A4; margin: 1cm; }
    body {
        padding: 0 !important; margin: 0 !important; width: 100% !important;
        background-color: #fff !important; color: #000 !important;
        font-family: sans-serif; font-size: 9pt !important;
        -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important;
    }
    /* Éléments à masquer */
    .sidebar, .privacy-notice, .aide-tabs,
    #statistiques .stats-filters,
    .filters-container, /* Masque conteneur filtres résultats si visible */
    .chart-context-info, .competency-tiles-container .chart-context-info,
    .competency-tile-placeholder, .info-note, .file-list-area,
    .import-timestamp, .drop-zone, .file-drop-zone, .btn-import, .error-message,
    .pagination-controls {
        display: none !important;
    }

    .main-content { margin: 0 !important; padding: 0 !important; width: 100% !important; }
    .main-content > section:not(.active) { display: none !important; }
    .main-content > section.active { display: block !important; width: 100% !important; margin: 0 !important; padding: 0 !important;}
    a, a:visited { text-decoration: none !important; color: inherit !important; }
    a[href]:after { content: none !important; }
    .content-section h2 { font-size: 14pt !important; text-align: center !important; margin-bottom: 1cm !important; border: none !important; color: #000 !important;}
    .content-section h2 i { display: none !important; }

    /* --- Impression Section Résultats --- */
    #resultats .results-population-info { text-align: center !important; margin-bottom: 0.5cm !important; border: none !important; padding: 0 !important;}
    #resultats .results-population-info .population-title {font-size: 11pt !important; font-weight: bold !important; color: #000 !important; margin: 0 0 2px 0 !important; }
    #resultats .results-population-info .population-subtitle {font-size: 9pt !important; color: #333 !important; margin: 0 !important;}
    #resultats .table-container { border: none !important; box-shadow: none !important; margin: 0 !important; }
    #resultats .results-table { width: 100% !important; font-size: 7pt !important; border: 1px solid #ccc !important; border-collapse: collapse !important; margin: 0 !important; table-layout: auto !important;}
    #resultats .results-table th,
    #resultats .results-table td { padding: 3px 4px !important; border: 1px solid #ccc !important; color: #000 !important; background-color: #fff !important; word-wrap: break-word; white-space: normal !important;}
    #resultats .results-table th { background-color: #eee !important; font-weight: bold; }
    #resultats .results-table tr { page-break-inside: avoid; }
    #resultats .status-badge { font-size: 7pt !important; padding: 1px 3px !important; min-width: 60px !important;} /* Adapter taille badge */

    /* --- Impression Section Statistiques --- */
    #statistiques .stats-population-info { display: block !important; text-align: center !important; border-bottom: 1px solid #eee !important; margin: 0 0 15px 0 !important; padding: 0 0 10px 0 !important; page-break-after: avoid !important; }
    #statistiques .stats-population-info .population-title { font-size: 11pt !important; font-weight: bold !important; color: #000 !important; margin: 0 0 3px 0 !important; padding: 0 !important; }
    #statistiques .stats-population-info .population-subtitle { font-size: 9pt !important; font-weight: normal !important; color: #333 !important; margin: 0 !important; padding: 0 !important; }
    #statistiques .stats-tiles-container,
    #statistiques .chart-container,
    #statistiques .competency-tiles-container { display: block !important; border: 1px solid #ccc !important; padding: 10px !important; margin: 0 0 15px 0 !important; page-break-inside: avoid !important; box-shadow: none !important; background-color: #fff !important; }
    #statistiques .stats-tiles-container { grid-template-columns: 1fr 1fr !important; gap: 10px !important;}
    #statistiques .stat-tile { border: 1px solid #ccc !important; padding: 5px !important; background: #fff !important; }
    #statistiques .stat-tile .tile-icon { display: none !important; }
    #statistiques .stat-value { font-size: 12pt !important; margin-bottom: 2px !important; color: #000 !important; display: block !important;}
    #statistiques .stat-label { font-size: 8pt !important; color: #333 !important; display: block !important; }
    #statistiques .chart-container h3,
    #statistiques .competency-tiles-container h3 { display: block !important; font-size: 11pt !important; font-weight: bold !important; text-align: center !important; margin: 0 0 10px 0 !important; color: #000 !important; }
     #statistiques .competency-tiles-container h3 { text-align: left !important;}
     #statistiques .competency-tiles-container h3 span { display: none !important; }
    #statistiques .chart-container > div[style*="position: relative"] { height: auto !important; max-height: 6cm !important; width: 98% !important; margin: 0 auto !important; }
    #statistiques canvas { border: 1px solid #eee !important; background-color: #fff !important; max-width: 100% !important; height: auto !important; display: block !important;}
    #statistiques .competency-tiles-grid { display: grid !important; grid-template-columns: 1fr 1fr 1fr !important; gap: 5px !important;}
    #statistiques .competency-tile { display: block !important; width: auto !important; border: 1px solid #ccc !important; border-left-width: 3px !important; padding: 4px 6px !important; margin-bottom: 3px !important; page-break-inside: avoid !important; background-color: #fff !important; color: #000 !important; overflow: hidden; }
    #statistiques .competency-tile.domain-1 { border-left-color: #F17642 !important; } #statistiques .competency-tile.domain-2 { border-left-color: #32AD88 !important; } #statistiques .competency-tile.domain-3 { border-left-color: #2985FF !important; } #statistiques .competency-tile.domain-4 { border-left-color: #D62091 !important; } #statistiques .competency-tile.domain-5 { border-left-color: #5A3A87 !important; }
    #statistiques .competency-name { font-size: 7pt !important; display: block !important; margin-bottom: 2px !important; color: #000 !important;}
    #statistiques .competency-average { font-size: 8pt !important; font-weight: bold !important; display: block !important; text-align: right !important; color: #000 !important;}
    #statistiques .competency-domain { display: none !important; }
}

@media print {

    /* ================================================ */
    /* === STYLES IMPRESSION - SECTION COMPARAISON  === */
    /* ================================================ */

    body.print-comparison .sidebar,
    body.print-comparison .main-nav,
    body.print-comparison .sidebar-footer,
    body.print-comparison .main-content > section:not(#comparaison), /* Masque les autres sections */
    body.print-comparison #comparaison .stats-filters, /* Masque la zone de filtres globale de la comparaison */
    body.print-comparison #custom-groups-selection-area, /* Masque la sélection des groupes personnalisés */
    body.print-comparison #comparison-mode-toggle, /* Masque le sélecteur de mode Auto/Groupes */
    body.print-comparison footer.privacy-notice {
        display: none !important;
    }

    body.print-comparison .main-content {
        margin-left: 0 !important;
        padding: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    body.print-comparison #comparaison {
        padding-top: 0 !important;
        box-sizing: border-box;
    }

    /* En-tête de la section Comparaison */
    body.print-comparison #comparaison .section-header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        border-bottom: 1px solid #666 !important;
        padding-bottom: 10px !important;
        margin-bottom: 15px !important;
        page-break-after: avoid !important;
    }

    body.print-comparison #comparaison .section-header h2 {
        font-size: 1.5em !important;
        color: #000 !important;
        margin: 0 !important;
    }

    body.print-comparison #comparaison .section-header h2 i {
        display: none !important;
    }

    /* Boutons d'action dans l'en-tête */
    body.print-comparison #comparaison .section-header .stats-actions {
        display: flex !important;
        gap: 8px !important;
    }

    body.print-comparison #comparaison .section-header .stats-actions button {
        display: inline-flex !important;
        align-items: center;
        font-size: 0.85em !important;
        padding: 5px 10px !important;
        border-radius: 5px !important;
        border-width: 1px !important;
        border-style: solid !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    body.print-comparison #comparaison .section-header .stats-actions button.btn-export {
        background-color: #6c757d !important;
        color: white !important;
        border-color: #6c757d !important;
    }
    body.print-comparison #comparaison .section-header .stats-actions button.btn-export i {
        color: white !important;
        margin-right: 5px;
    }

    body.print-comparison #comparaison .section-header .stats-actions button.btn-toggle-filters {
        background-color: #f0f0f0 !important;
        color: #555 !important;
        border-color: #ccc !important;
    }
    body.print-comparison #comparaison .section-header .stats-actions button.btn-toggle-filters i {
        color: #555 !important;
        margin-right: 5px;
    }
    body.print-comparison #comparaison .section-header .stats-actions button.btn-toggle-filters .toggle-icon {
        display: none !important;
    }

    /* Infos sur la population (titre/sous-titre) */
    body.print-comparison #comparaison .stats-population-info {
        text-align: center;
        padding-bottom: 8px;
        margin-bottom: 15px;
        border-bottom: 1px dashed #ccc !important;
        page-break-after: avoid !important;
    }
    body.print-comparison #comparaison .population-title {
        font-size: 1.2em !important;
        color: #000 !important;
        margin-bottom: 3px !important;
    }
    body.print-comparison #comparaison .population-subtitle {
        font-size: 0.9em !important;
        color: #333 !important;
    }

    /* Conteneurs généraux pour tuiles et graphiques dans la zone de résultats */
    body.print-comparison #comparison-results-area .tile,
    body.print-comparison #comparison-results-area .chart-container {
        display: block !important;
        padding: 10px !important;
        border: 1px solid #bbb !important;
        box-shadow: none !important;
        page-break-inside: avoid !important;
        margin-bottom: 15px !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        background-color: #ffffff !important;
    }

    /* Correction pour le cadre vide des graphiques CRCN */
    body.print-comparison #comparison-crcn-stacked-chart-container,
    body.print-comparison #comparison-groups-crcn-BAR-chart-container {
        min-height: auto !important;
    }
    /* Si vous avez des ID spécifiques pour les conteneurs des graphiques "par Niveau CRCN"
       et qu'ils ont aussi un min-height en style inline, ajoutez-les ici, par exemple :
       body.print-comparison #ID_CONTENEUR_CRCN_BY_LEVEL_AUTO { min-height: auto !important; }
       body.print-comparison #ID_CONTENEUR_CRCN_BY_LEVEL_GROUPES { min-height: auto !important; }
    */

    /* Titres H4 dans la zone de résultats */
    body.print-comparison #comparison-results-area h4 {
        font-size: 1.0em !important;
        margin-top: 0 !important;
        margin-bottom: 8px !important;
        color: #000 !important;
        text-align: left !important;
        font-weight: bold !important;
    }

    /* Contrôles au-dessus des graphiques (bouton de bascule, checkbox moyenne) */
    body.print-comparison #comparison-results-area .chart-controls {
        display: flex !important;
        justify-content: flex-end !important;
        align-items: center !important;
        margin-bottom: 8px !important;
        gap: 10px !important;
        page-break-inside: avoid !important;
    }
    body.print-comparison #comparison-results-area .chart-controls button,
    body.print-comparison #comparison-results-area .chart-controls .filter-checkbox-item {
        font-size: 0.75em !important;
        padding: 3px 6px !important;
    }
    body.print-comparison #comparison-results-area .chart-controls .filter-checkbox-item label {
        font-size: 1em !important; /* relatif à 0.75em du parent */
        color: #333 !important;
    }
    body.print-comparison #comparison-results-area .chart-controls button i {
        margin-right: 4px !important;
    }

    /* Tableaux dans la comparaison */
    body.print-comparison #comparison-results-area .results-table {
        width: 100% !important;
        font-size: 7pt !important;
        border: 1px solid #ccc !important;
        border-collapse: collapse !important;
        margin: 0 0 10px 0 !important;
        table-layout: auto !important;
        color: #000 !important;
    }
    body.print-comparison #comparison-results-area .results-table th,
    body.print-comparison #comparison-results-area .results-table td {
        padding: 3px 4px !important;
        border: 1px solid #ccc !important;
        color: #000 !important;
        background-color: #fff !important;
        word-wrap: break-word;
        white-space: normal !important;
        vertical-align: middle !important;
    }
    body.print-comparison #comparison-results-area .results-table th {
        background-color: #e0e0e0 !important;
        font-weight: bold !important;
        color: #000 !important;
        text-align: center !important;
    }
    body.print-comparison #comparison-results-area .results-table td:first-child,
    body.print-comparison #comparison-results-area .results-table th:first-child {
        text-align: left !important;
    }
    body.print-comparison #comparison-results-area .results-table tr[style*="font-weight: bold"] td { /* Lignes de moyenne */
        background-color: #e6f3ff !important;
        font-weight: bold !important;
    }

    /* Graphiques (canvas) */
    body.print-comparison #comparison-results-area canvas {
        border: 1px solid #ddd !important;
        background-color: #fff !important;
        max-width: 100% !important;
        height: auto !important;
        display: block !important;
        margin: 0 auto 10px auto !important;
        page-break-inside: avoid !important;
    }

    /* Tuiles "Points forts et faibles" */
    body.print-comparison #comparison-topflop-tiles-container,
    body.print-comparison #comparison-groups-topflop-tiles-container {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
        page-break-inside: avoid !important;
    }
    body.print-comparison .comparison-topflop-tile {
        border: 1px solid #bbb !important;
        padding: 6px !important;
        box-shadow: none !important;
        page-break-inside: avoid !important;
        background-color: #fff !important;
        color: #000 !important;
        font-size: 0.8em !important;
    }
    body.print-comparison .comparison-topflop-tile h5 {
        font-size: 0.95em !important;
        margin-top: 0 !important;
        margin-bottom: 5px !important;
        padding-bottom: 4px !important;
        color: #000 !important;
        border-bottom: 1px solid #ddd !important;
    }
    body.print-comparison .comparison-topflop-tile span[style*="color: var(--color-text-muted)"] {
        color: #444 !important;
        font-size: 0.9em !important;
    }
    body.print-comparison .comparison-topflop-tile .fas {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        margin-top: 2px !important;
    }
    body.print-comparison .comparison-topflop-tile .fa-check-circle { color: green !important; }
    body.print-comparison .comparison-topflop-tile .fa-exclamation-triangle { color: red !important; }
    body.print-comparison .comparison-topflop-tile p {
        line-height: 1.3 !important;
        margin-bottom: 4px !important;
    }
    body.print-comparison .comparison-topflop-tile strong {
        color: #000 !important;
    }

    /* Heatmap des compétences (tableau) */
    body.print-comparison .competency-heatmap-table {
        font-size: 6.5pt !important;
        margin-bottom: 0 !important;
    }
    body.print-comparison .competency-heatmap-table th,
    body.print-comparison .competency-heatmap-table td {
        padding: 2px 3px !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    body.print-comparison .competency-heatmap-table th {
        background-color: #e0e0e0 !important;
        color: #000 !important;
        font-weight: bold !important;
    }
    /* Couleurs du texte pour la heatmap */
    body.print-comparison .competency-heatmap-table td[style*="background-color"] {
        color: #000 !important; /* Noir par défaut */
    }
    body.print-comparison .competency-heatmap-table td[style*="background-color: #003049"],
    body.print-comparison .competency-heatmap-table td[style*="background-color: #004a72"],
    body.print-comparison .competency-heatmap-table td[style*="background-color: #00649b"],
    body.print-comparison .competency-heatmap-table td[style*="background-color: #007cb3"],
    body.print-comparison .competency-heatmap-table td[style*="background-color: #0096c7"] {
        color: white !important; /* Blanc pour les fonds très foncés de la heatmap */
    }

} /* Fin du bloc @media print */