/* =============================================================
   Aides & Handicap Belgique — feuille de style
   Objectif : accessibilité WCAG 2.1 AA, sobre, responsive mobile-first.
   ============================================================= */

:root {
    --color-text: #1a1c1f;
    --color-text-soft: #43474d;
    --color-bg: #ffffff;
    --color-bg-alt: #f2f5f8;
    --color-primary: #0b5c8a;       /* bleu, contraste AA sur blanc */
    --color-primary-dark: #08466a;
    --color-accent: #7a2e8a;
    --color-border: #c9d2da;
    --color-danger: #a4241a;
    --color-success: #1f6b3b;
    --color-focus: #cc5500;         /* orange focus, très visible */
    --radius: 8px;
    --maxw: 1080px;
    --font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* Préférence utilisateur : réduire les animations */
@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; }
}

* { box-sizing: border-box; }

html { font-size: 100%; }        /* respecte le zoom / taille système */

body {
    margin: 0;
    font-family: var(--font);
    font-size: 1.0625rem;         /* ~17px, lisible */
    line-height: 1.6;
    color: var(--color-text);
    background: var(--color-bg);
}

.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 1rem; }

/* --- Lien d'évitement (skip link) --- */
.skip-link {
    position: absolute; left: -999px; top: 0;
    background: var(--color-primary-dark); color: #fff;
    padding: .75rem 1rem; z-index: 100;
}
.skip-link:focus { left: 0; }

.visually-hidden {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* --- Focus visible partout --- */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 2px;
}

a { color: var(--color-primary-dark); }
a:hover { text-decoration: none; }

/* --- En-tête --- */
.site-header { background: var(--color-primary-dark); color: #fff; }
.header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; padding: .75rem 1rem; }
.logo { color: #fff; font-weight: 700; font-size: 1.15rem; text-decoration: none; }
.main-nav a, .admin-nav a { color: #fff; text-decoration: none; margin-left: 1rem; padding: .5rem 0; display: inline-block; }
.main-nav a:hover { text-decoration: underline; }

/* --- Bandeau d'avertissement --- */
.disclaimer { background: #fff4e5; border-bottom: 1px solid #e6c68a; color: #4a3402; font-size: .95rem; }
.disclaimer .container { padding-top: .6rem; padding-bottom: .6rem; }

/* --- Contenu --- */
.main-content { padding: 1.5rem 1rem 3rem; }
h1 { font-size: 1.9rem; line-height: 1.25; margin: .2rem 0 1rem; }
h2 { font-size: 1.35rem; margin: 1.75rem 0 .75rem; }
h3 { font-size: 1.1rem; margin: 1rem 0 .5rem; }

.hero .lead { font-size: 1.15rem; color: var(--color-text-soft); }

/* --- Cartes / sections --- */
.card {
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1.25rem;
    margin: 1.25rem 0;
}

.info-columns { display: grid; gap: 1.5rem; grid-template-columns: 1fr; margin-top: 2rem; }
@media (min-width: 720px) { .info-columns { grid-template-columns: 1fr 1fr; } }

/* --- Formulaire de filtres --- */
.form-help { color: var(--color-text-soft); margin-top: 0; }

/* Sections du formulaire de filtres */
.filter-section { border: 1px solid var(--color-border); border-radius: var(--radius); padding: 1rem 1.1rem 1.25rem; margin: 0 0 1.25rem; min-width: 0; }
.filter-section > legend { font-weight: 700; font-size: 1.05rem; padding: 0 .5rem; color: var(--color-primary-dark); }
.form-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 620px) { .form-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .form-grid { grid-template-columns: 1fr 1fr 1fr; } }
.field { display: flex; flex-direction: column; }
.field-wide { grid-column: 1 / -1; }
.field-control { display: flex; flex-direction: column; }

/* Menu déroulant à choix multiple (cases à cocher dans un panneau flottant).
   Fermé, il a l'apparence exacte d'un <select> ; ouvert, le panneau se
   superpose au contenu, donc la mise en page ne bouge pas.
   Fonctionne sans JavaScript (élément natif <details>). */
.group-label { font-weight: 600; margin-bottom: .35rem; display: block; }

.multiselect { position: relative; }
.multiselect > summary {
    display: flex; align-items: center; justify-content: space-between; gap: .5rem;
    font: inherit; cursor: pointer;
    padding: .6rem .7rem; min-height: 44px;
    border: 1px solid var(--color-border); border-radius: var(--radius);
    background: #fff; color: var(--color-text);
    list-style: none;                 /* masque le triangle par défaut */
}
.multiselect > summary::-webkit-details-marker { display: none; }
.multiselect > summary::after { content: "\25BE"; color: var(--color-text-soft); flex: none; }
.multiselect[open] > summary { border-color: var(--color-primary); }
.multiselect[open] > summary::after { content: "\25B4"; }
.multiselect-value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.multiselect-panel {
    position: absolute; z-index: 30; top: calc(100% + 4px); left: 0; right: 0;
    display: grid; gap: .1rem;
    background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .18);
    padding: .5rem; max-height: 280px; overflow-y: auto;
}
.multiselect-panel .check {
    display: flex; align-items: center; gap: .5rem;
    font-weight: 400; min-height: 40px; padding: .1rem .3rem; border-radius: 4px;
}
.multiselect-panel .check:hover { background: var(--color-bg-alt); }
.multiselect-panel input[type="checkbox"] { min-height: auto; width: 1.15rem; height: 1.15rem; flex: none; }

/* Alignement des champs sur une même ligne, même si un libellé passe sur
   deux lignes : chaque champ partage deux pistes (libellé, champ) de la
   grille parente via subgrid, ce qui aligne tous les champs par le haut.
   Repli automatique vers la disposition flex si subgrid non supporté. */
@supports (grid-template-rows: subgrid) {
    @media (min-width: 620px) {
        .form-grid > .field {
            display: grid;
            grid-template-rows: subgrid;
            grid-row: span 2;
            row-gap: .35rem;
        }
        .form-grid > .field > label,
        .form-grid > .field > .group-label { margin-bottom: 0; }
        /* Les champs gardent leur hauteur naturelle (pas d'étirement vertical
           quand un voisin de la même ligne est plus haut à cause d'un texte
           d'aide) et s'alignent en haut de leur cellule. */
        .form-grid > .field > select,
        .form-grid > .field > input,
        .form-grid > .field > .field-control,
        .form-grid > .field > .multiselect { align-self: start; }
    }
}
label { font-weight: 600; margin-bottom: .35rem; }
.hint { font-weight: 400; color: var(--color-text-soft); font-size: .9rem; }
.req { color: var(--color-danger); }

input, select, textarea {
    font: inherit;
    padding: .6rem .7rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: #fff;
    color: var(--color-text);
    min-height: 44px;             /* cible tactile confortable */
}
textarea { min-height: auto; }

/* --- Boutons --- */
.btn {
    display: inline-block;
    font: inherit; font-weight: 600;
    padding: .7rem 1.2rem;
    border-radius: var(--radius);
    border: 2px solid transparent;
    cursor: pointer; text-decoration: none;
    min-height: 44px;
}
.btn-primary { background: var(--color-primary-dark); color: #fff; }
.btn-primary:hover { background: #05304a; }
.btn-ghost { background: #fff; color: var(--color-primary-dark); border-color: var(--color-primary-dark); }
.btn-ghost:hover { background: var(--color-bg-alt); }
.btn-block { width: 100%; }
.btn-sm { padding: .4rem .8rem; min-height: auto; }
.form-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }

/* --- Résultats --- */
.results-count { font-size: 1.15rem; background: var(--color-bg-alt); padding: .75rem 1rem; border-radius: var(--radius); }
/* Encadré « faire reconnaître son handicap » */
.recognition-callout { border: 2px solid var(--color-primary); background: #eef4f8; border-radius: var(--radius); padding: 1.1rem 1.25rem; margin: 1rem 0 1.5rem; }
.recognition-callout h2 { margin-top: 0; font-size: 1.2rem; color: var(--color-primary-dark); }
.recognition-callout p { margin: .5rem 0; }
.recognition-count { font-size: 1.1rem; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); padding: .6rem .8rem; }
.recognition-callout .btn { margin-top: .5rem; }

.filter-toggle { margin: 1rem 0; }
.filter-toggle summary { cursor: pointer; font-weight: 600; padding: .5rem 0; }
.category-heading { border-bottom: 2px solid var(--color-border); padding-bottom: .3rem; }
.aide-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .aide-list { grid-template-columns: 1fr 1fr; } }
.aide-card { border: 1px solid var(--color-border); border-radius: var(--radius); padding: 1rem 1.1rem; background: #fff; }
.aide-card h3 { margin-top: 0; }
.aide-meta { margin: .25rem 0 .6rem; }
.tag { display: inline-block; background: #e6eef4; color: #08466a; border-radius: 999px; padding: .15rem .7rem; font-size: .85rem; margin-right: .35rem; }
.tag-region { background: #efe4f2; color: #5b2168; }
.aide-desc { color: var(--color-text-soft); margin: .4rem 0; }
.link-more { font-weight: 600; }
.results-disclaimer, .date-maj, .results-count[role="status"] { color: var(--color-text-soft); }
.results-disclaimer { font-size: .95rem; margin-top: 2rem; border-top: 1px solid var(--color-border); padding-top: 1rem; }
.empty-state { text-align: left; }

/* --- Fiche détail --- */
.detail-actions { display: flex; justify-content: flex-end; margin: 0 0 1rem; }
.print-only { display: none; }

.breadcrumb { font-size: .9rem; color: var(--color-text-soft); margin-bottom: 1rem; }
.aide-detail section { margin-bottom: 1.5rem; }
.contact-box { background: var(--color-bg-alt); border: 1px solid var(--color-border); border-radius: var(--radius); padding: 1.1rem; }
.org-name { font-weight: 700; margin: 0 0 .5rem; }
.contact-list { margin: 0; padding-left: 1.1rem; }
.date-maj { font-size: .95rem; background: #fff4e5; border: 1px solid #e6c68a; padding: .6rem .8rem; border-radius: var(--radius); }

/* --- Pied de page --- */
.site-footer { background: var(--color-bg-alt); border-top: 1px solid var(--color-border); margin-top: 2rem; }
.footer-inner { padding: 1.5rem 1rem; }
.footer-inner nav a { margin-right: 1.25rem; display: inline-block; padding: .35rem 0; }
.footer-note { color: var(--color-text-soft); font-size: .9rem; }

/* =============================================================
   Espace administration
   ============================================================= */
.admin-header { background: #12232f; color: #fff; }
.admin-header-inner { max-width: 1200px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; padding: .6rem 1rem; }
.admin-nav { flex: 1; }
.admin-nav a { margin-left: 0; margin-right: 1rem; }
.admin-account { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.admin-account-link { color: #fff; text-decoration: none; font-size: .95rem; padding: .35rem 0; }
.admin-account-link:hover { text-decoration: underline; }
.logout-form { display: flex; align-items: center; gap: .5rem; }
.admin-user { color: #cdd7de; font-size: .9rem; }
.admin-main { max-width: 1200px; margin: 0 auto; padding: 1.5rem 1rem 3rem; }

.page-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.page-actions { display: flex; gap: .5rem; flex-wrap: wrap; }

.stat-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 1rem 0 2rem; }
.stat { background: var(--color-bg-alt); border: 1px solid var(--color-border); border-radius: var(--radius); padding: 1rem; text-align: center; }
.stat-num { display: block; font-size: 2rem; font-weight: 700; color: var(--color-primary-dark); }
.stat-label { color: var(--color-text-soft); font-size: .9rem; }

.data-table { width: 100%; border-collapse: collapse; margin-top: 1rem; background: #fff; }
.data-table th, .data-table td { text-align: left; padding: .6rem .7rem; border-bottom: 1px solid var(--color-border); vertical-align: top; }
.data-table th { background: var(--color-bg-alt); }
.row-actions { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; }
.row-actions form { display: inline; }
.link-danger { background: none; border: none; color: var(--color-danger); cursor: pointer; font: inherit; text-decoration: underline; padding: 0; }
.badge { padding: .1rem .6rem; border-radius: 999px; font-size: .8rem; }
.badge-on { background: #dff0e4; color: var(--color-success); }
.badge-off { background: #eee; color: #555; }

/* Badges du vérificateur de liens */
.badge-ok          { background: #dff0e4; color: var(--color-success); }
.badge-mort        { background: #fbe3e1; color: var(--color-danger); font-weight: 700; }
.badge-injoignable { background: #fbe3e1; color: var(--color-danger); }
.badge-serveur     { background: #fff4e5; color: #7a4b00; }
.badge-bloque      { background: #fff4e5; color: #7a4b00; }
.badge-redirige    { background: #e6eef4; color: #08466a; }
.badge-certificat  { background: #ede7f6; color: #4a2a7a; }
.badge-timeout     { background: #fff4e5; color: #7a4b00; }
.cell-url { max-width: 320px; word-break: break-all; font-size: .9rem; }

.admin-form { max-width: 760px; }
.admin-form .field { margin-bottom: 1rem; }
.form-row { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 680px) { .form-row { grid-template-columns: repeat(3, 1fr); } }
.field-check { justify-content: flex-end; }
.field-check label { display: flex; align-items: center; gap: .5rem; font-weight: 400; }

.criteria-box { border: 1px solid var(--color-border); border-radius: var(--radius); padding: 1rem; margin: 1.5rem 0; }
.criteria-box legend { font-weight: 700; padding: 0 .4rem; }
.criteria-group { margin-bottom: 1rem; }
.criteria-group h3 { margin: .5rem 0; font-size: .95rem; text-transform: uppercase; letter-spacing: .03em; color: var(--color-text-soft); }
.criteria-checks { display: grid; gap: .4rem; grid-template-columns: 1fr; }
@media (min-width: 620px) { .criteria-checks { grid-template-columns: 1fr 1fr; } }
.check { display: flex; align-items: center; gap: .5rem; font-weight: 400; }
.check input { min-height: auto; }

/* --- Guide administrateur (rendu Markdown) --- */
.doc { max-width: 900px; }
.doc h2 { border-bottom: 2px solid var(--color-border); padding-bottom: .25rem; margin-top: 2rem; }
.doc h3 { margin-top: 1.5rem; }
.doc table { width: 100%; border-collapse: collapse; margin: 1rem 0; background: #fff; display: block; overflow-x: auto; }
.doc th, .doc td { border: 1px solid var(--color-border); padding: .5rem .6rem; text-align: left; vertical-align: top; }
.doc th { background: var(--color-bg-alt); }
.doc code { background: var(--color-bg-alt); border: 1px solid var(--color-border); border-radius: 4px; padding: .05rem .3rem; font-size: .9em; }
.doc blockquote { margin: 1rem 0; padding: .6rem 1rem; border-left: 4px solid var(--color-primary); background: #eef4f8; border-radius: 0 var(--radius) var(--radius) 0; }
.doc blockquote p { margin: 0; }
.doc ul, .doc ol { padding-left: 1.4rem; }
.doc li { margin: .25rem 0; }
.doc li.task { list-style: none; margin-left: -1.1rem; }
.doc .chk { display: inline-block; width: 1.1em; }
.doc hr { border: none; border-top: 1px solid var(--color-border); margin: 2rem 0; }

/* --- Voile d'attente (actions longues, ex. vérification des liens) --- */
.wait-overlay {
    position: fixed; inset: 0; z-index: 1000;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, .93);
    padding: 1rem;
}
.wait-box {
    background: #fff; border: 2px solid var(--color-primary); border-radius: var(--radius);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .18);
    padding: 1.5rem 2rem; text-align: center; max-width: 420px;
}
.wait-title { font-size: 1.25rem; font-weight: 700; color: var(--color-primary-dark); margin: .75rem 0 .25rem; }
.wait-detail { color: var(--color-text-soft); margin: 0; font-size: .95rem; }
.wait-spinner {
    width: 40px; height: 40px; margin: 0 auto;
    border: 4px solid var(--color-border);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: wait-spin 900ms linear infinite;
}
@keyframes wait-spin { to { transform: rotate(360deg); } }
/* Sans animation (préférence utilisateur), le texte reste le signal principal
   et le disque garde une bordure colorée visible. */
@media (prefers-reduced-motion: reduce) {
    .wait-spinner { border-top-color: var(--color-primary); }
}

/* --- Statistiques (admin) --- */
.period-nav { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin: 1rem 0 1.5rem; }
.period-label { font-weight: 600; }
.period-nav a, .period-current {
    padding: .35rem .8rem; border-radius: 999px; border: 1px solid var(--color-border);
    text-decoration: none; font-size: .95rem;
}
.period-nav a { background: #fff; color: var(--color-primary-dark); }
.period-nav a:hover { background: var(--color-bg-alt); }
.period-current { background: var(--color-primary-dark); color: #fff; border-color: var(--color-primary-dark); font-weight: 600; }

.chart {
    display: flex; align-items: flex-end; gap: 2px;
    height: 150px; padding: .5rem; margin-top: .5rem;
    background: var(--color-bg-alt); border: 1px solid var(--color-border);
    border-radius: var(--radius);
}
.chart-col { flex: 1 1 0; height: 100%; display: flex; align-items: flex-end; min-width: 2px; }
.chart-bar { width: 100%; background: var(--color-primary); border-radius: 2px 2px 0 0; min-height: 1px; }
.chart-axis {
    display: flex; justify-content: space-between;
    font-size: .85rem; color: var(--color-text-soft); margin: .3rem 0 0;
}

.cell-bar { width: 30%; min-width: 80px; }
.mini-bar {
    display: block; height: 10px; background: var(--color-primary);
    border-radius: 5px; min-width: 2px;
}

.filtres-grid { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 700px) { .filtres-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .filtres-grid { grid-template-columns: 1fr 1fr 1fr; } }
.filtre-bloc {
    border: 1px solid var(--color-border); border-radius: var(--radius);
    background: #fff; padding: .8rem 1rem;
}
.filtre-bloc h3 { margin: 0 0 .5rem; font-size: .95rem; color: var(--color-primary-dark); }
.filtre-liste { list-style: none; margin: 0; padding: 0; }
.filtre-liste li {
    display: grid; grid-template-columns: 1fr auto; gap: .1rem .5rem;
    align-items: center; margin-bottom: .5rem;
}
.filtre-nom { font-size: .92rem; }
.filtre-n { font-weight: 700; color: var(--color-primary-dark); }
.filtre-liste .mini-bar { grid-column: 1 / -1; height: 6px; }

.colonnes { columns: 2; column-gap: 2rem; }
@media (max-width: 620px) { .colonnes { columns: 1; } }
.stats-note {
    border-top: 1px solid var(--color-border); padding-top: 1rem; margin-top: 2rem;
    max-width: 900px;
}

/* --- Zone d'action irréversible (admin) --- */
.danger-zone {
    border: 1px solid #e5aaa4; border-left: 4px solid var(--color-danger);
    border-radius: var(--radius); background: #fdf6f5;
    padding: 1rem 1.25rem; margin-top: 2rem; max-width: 900px;
}
.danger-zone h2 { margin-top: 0; font-size: 1.1rem; color: var(--color-danger); }
.danger-zone p { margin: .5rem 0 1rem; }
.btn-danger { background: var(--color-danger); color: #fff; }
.btn-danger:hover { background: #841c14; }

/* --- Messages flash --- */
.flash { padding: .8rem 1rem; border-radius: var(--radius); margin-bottom: 1rem; border: 1px solid; }
.flash-success { background: #dff0e4; border-color: #a7d3b6; color: var(--color-success); }
.flash-error { background: #fbe3e1; border-color: #e5aaa4; color: var(--color-danger); }
.flash-info { background: #e6eef4; border-color: #b6cadb; color: #08466a; }

/* --- Connexion admin --- */
.admin-bare { background: var(--color-bg-alt); }
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.login-card { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); padding: 2rem; width: 100%; max-width: 400px; }
.login-card .field { margin-bottom: 1rem; }
.login-back { margin-top: 1rem; font-size: .9rem; }

/* =============================================================
   Impression d'une fiche d'aide — document propre et soigné
   ============================================================= */
@media print {
    /* On masque tout le « chrome » du site */
    .site-header, .site-footer, .disclaimer, .skip-link,
    .breadcrumb, .detail-actions, .main-nav, .no-print {
        display: none !important;
    }

    /* Éléments réservés à l'impression */
    .print-only { display: block !important; }

    html, body { background: #fff; color: #000; font-size: 11.5pt; line-height: 1.45; }
    .container, .main-content { max-width: none; margin: 0; padding: 0; width: auto; }

    @page { margin: 1.6cm; }

    /* En-tête de marque imprimé */
    .print-header {
        display: flex; justify-content: space-between; align-items: baseline;
        border-bottom: 3px solid #000; padding-bottom: .25cm; margin-bottom: .5cm;
    }
    .print-header .brand { font-size: 12pt; font-weight: 700; }
    .print-header .print-date { font-size: 9pt; color: #333; }

    .aide-detail h1 { font-size: 21pt; margin: 0 0 .2cm; }
    .aide-detail h2 {
        font-size: 13pt; margin: .55cm 0 .15cm;
        border-bottom: 1px solid #999; padding-bottom: .05cm;
    }
    .aide-detail section { break-inside: avoid; page-break-inside: avoid; }

    /* Étiquettes : bordure au lieu d'un aplat de couleur (fiable à l'impression) */
    .tag {
        background: none !important; color: #000 !important;
        border: 1px solid #555; border-radius: 999px; padding: .05cm .3cm; font-size: 9pt;
    }

    /* Encadré organisme */
    .contact-box { border: 1px solid #000; background: none !important; padding: .3cm; }

    /* Neutralise l'apparence « bouton » du lien officiel */
    .aide-detail .btn {
        display: inline; padding: 0; border: none; background: none !important;
        color: #000 !important; font-weight: 700; text-decoration: underline;
    }

    /* Liens : noir. On imprime l'URL complète après le lien officiel (dont le
       texte est un libellé) ; les liens dont le texte est déjà l'URL ne sont
       pas dupliqués. */
    .aide-detail a { color: #000; text-decoration: underline; }
    .aide-detail .btn[href^="http"]::after {
        content: " (" attr(href) ")"; font-size: 8.5pt; font-weight: 400;
        color: #333; word-break: break-all;
    }

    /* Bandeau date de vérification, version imprimée */
    .date-maj { border: 1px solid #999; background: none !important; padding: .25cm .3cm; }

    /* Pied de page imprimé */
    .print-footer {
        margin-top: .6cm; padding-top: .25cm; border-top: 1px solid #999;
        font-size: 8.5pt; color: #333;
    }

    /* --- Page de résultats à l'impression --- */
    .results-actions, .link-more { display: none !important; }
    .results-count { font-weight: 400; margin: 0 0 .3cm; background: none !important; padding: 0; }
    .result-group { break-inside: auto; }
    .category-heading {
        font-size: 13pt; margin: .5cm 0 .2cm;
        border-bottom: 1px solid #999; padding-bottom: .05cm;
    }
    .aide-list { display: block !important; }
    .aide-card {
        border: 1px solid #999; border-radius: 0;
        padding: .2cm .3cm; margin-bottom: .25cm;
        break-inside: avoid; page-break-inside: avoid;
    }
    .aide-card h3 { margin: 0 0 .05cm; font-size: 12pt; }
    .aide-card h3 a { color: #000; text-decoration: none; }
    .aide-desc { margin: .1cm 0 0; font-size: 10pt; }
    .results-disclaimer { font-size: 8.5pt; margin-top: .4cm; }
}
