/* ================================================================
 * Page Glossaire — design sobre, cohérent avec Iktisar
 * Le contenu (recherche, alphabet, liste) est rendu par
 * renderGlossaryPanel() (common-layout.js) avec les classes .gl-*
 * (glossaire-sidebar.css) — partagées avec la sidebar native et la
 * popup mobile, pour un rendu strictement identique partout.
 * ================================================================ */

/* Contexte livre sur /glossaire/:ref */
.glossaire-livre-context {
    font-size: 0.95rem;
    color: var(--text-secondary, #4A5568);
    margin: 4px 0 20px;
}

.glossaire-livre-context a {
    color: var(--brand-green, #1A5238);
    font-weight: 600;
    text-decoration: none;
}

.glossaire-livre-context a:hover {
    text-decoration: underline;
}

.glossaire-loading {
    color: var(--text-secondary, #4A5568);
    font-size: 0.95rem;
    padding: 24px 0;
    font-style: italic;
}

/* Pleine largeur : recherche + liste .gl-* exploitent tout l'espace
   disponible, comme dans la sidebar. */
.glossaire-page-panel {
    width: 100%;
}

/* Sur la page dédiée (contrairement à la sidebar/popup, où le fond +
   bordure + sticky délimitent un panneau flottant), la recherche et
   l'alphabet doivent s'intégrer nature dans la page plutôt que ressembler
   à un encart rectangulaire : pas de fond, pas de bordure, pas de sticky,
   et un alignement horizontal avec le reste du contenu (h1, intro). */
.glossaire-page-panel .gl-toolbar {
    background: none;
    border-bottom: none;
    position: static;
}

.glossaire-page-panel .gl-search-wrap,
.glossaire-page-panel .gl-alphabet {
    border-bottom: none;
    padding-left: 0;
    padding-right: 0;
}

/* Popups mobiles (glossaire/références, public/legacy/*.html) : .wrap grandit
   normalement avec son contenu (height:auto) et c'est le document qui scrolle
   — position:sticky sur .gl-toolbar/.rf-toolbar ne peut alors pas fonctionner
   (il se calcule par rapport à .wrap, qui ne scrolle jamais lui-même car ce
   n'est pas lui qui déborde). On contraint donc .wrap à la hauteur du
   viewport pour que <main> (déjà prévu comme zone de scroll interne, cf.
   common-styles.css : flex:1; overflow-y:auto) devienne le vrai conteneur de
   scroll, et que le sticky s'y calcule correctement. */
.popup-scroll-shell {
    height: 100vh;
    /* Neutralise min-height:100dvh (common-mobile.css, breakpoint téléphone) —
       min-height l'emporterait sinon sur height dès qu'il dépasse cette valeur. */
    min-height: 0;
}

/* !important nécessaire : .is-popup .wrap (common-styles.css, générique à
   toutes les popups iframe) impose déjà min-height:100vh + padding
   20px 28px !important — sans ce contre-poids plus spécifique, .wrap grandit
   avec son contenu (cassant le sticky, cf. ci-dessus) et une marge inutile
   entoure le contenu au lieu de laisser le sticky occuper toute la largeur
   et remonter en haut du conteneur. */
html.is-popup .wrap.popup-scroll-shell {
    height: 100vh !important;
    min-height: 0 !important;
    padding: 0 !important;
}
