/* ==========================================================================
   Mneseek — thème graphique (Bootstrap 5)
   Clair : version « blanche » (crème, Archivo, labels mono en rail gauche)
   Sombre : version « noire » (anthracite, IBM Plex Sans, badges encadrés)
   Bascule : [data-theme="light"|"dark"] sur <html> ; sinon suit le système.
   ========================================================================== */

/* ---- 0. Polices locales (WOFF2, sous-ensemble latin, aucun appel externe) --
   Archivo → thème clair · IBM Plex Sans → thème sombre · IBM Plex Mono → labels
   Poids chargés : 400 / 500 / 600 / 700 (mono : 400 / 500)
   -------------------------------------------------------------------------- */
@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Archivo";
  src: url("../fonts/archivo-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans";
  src: url("../fonts/ibm-plex-sans-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans";
  src: url("../fonts/ibm-plex-sans-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans";
  src: url("../fonts/ibm-plex-sans-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Sans";
  src: url("../fonts/ibm-plex-sans-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/ibm-plex-mono-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("../fonts/ibm-plex-mono-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* ---- 1. Jetons ---------------------------------------------------------- */
:root,
[data-theme="light"] {
  --mne-bg: #F1EEE6;
  --mne-bg-2: #E9E5DA;
  --mne-surface: #F8F6F0;
  --mne-ink: #141414;
  --mne-ink-2: #3b3833;
  --mne-muted: #66615a; /* 1.4.3 : ≥ 4,5:1 aussi sur --mne-bg-2 (#6f6a61 : 4,27:1) */
  --mne-line: #d4cfc4;
  --mne-line-2: #141414;
  --mne-accent: #3a7035;
  --mne-accent-ink: #ffffff;
  --bs-code-color: #b02a6b; /* 1.4.3 : ≥ 4,5:1 sur les fonds clairs (le rose Bootstrap #d63384 faisait 3,9:1) */
  --mne-danger: #b42318; --bs-danger-rgb: 180, 35, 24;   /* Bootstrap #dc3545 : 3,9:1 */
  --mne-warning: #7a5200; --bs-warning-rgb: 122, 82, 0;  /* Bootstrap #ffc107 : 1,4:1 */
  --mne-accent-soft: #e4ebd8;
  --mne-btn-bg: #141414;
  --mne-btn-ink: #F1EEE6;
  --mne-badge-bg: transparent;
  --mne-badge-bd: transparent;
  --mne-radius: 2px;
  --mne-font-head: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --mne-font-body: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --mne-font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --mne-ls: -0.035em;
  --mne-hw: 700;
  --mne-stripe: repeating-linear-gradient(135deg, #e4dfd2 0 10px, #ebe7dc 10px 20px);
  --mne-page-width: 1360px;
  --mne-page-pad: 40px;
  color-scheme: light;
}

[data-theme="dark"] {
  --mne-bg: #15171b;
  --mne-bg-2: #101215;
  --mne-surface: #1c1f25;
  --mne-ink: #f1f1ec;
  --mne-ink-2: #e4e6e1;
  --mne-muted: #c9d0d8;
  --mne-line: #2a2f37;
  --mne-line-2: #3b414b;
  --mne-accent: #8fc27a;
  --mne-accent-ink: #14200f;
  --bs-code-color: #e8789f;
  --mne-danger: #ff7b72; --bs-danger-rgb: 255, 123, 114;
  --mne-warning: #f5c451; --bs-warning-rgb: 245, 196, 81;
  --mne-accent-soft: #233020;
  --mne-btn-bg: #8fc27a;
  --mne-btn-ink: #14200f;
  --mne-badge-bg: #22262d;
  --mne-badge-bd: #353b45;
  --mne-radius: 3px;
  --mne-font-head: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --mne-font-body: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --mne-ls: -0.015em;
  --mne-hw: 600;
  --mne-stripe: repeating-linear-gradient(135deg, #1d2025 0 10px, #232730 10px 20px);
  color-scheme: dark;
}

/* Suit le système quand aucun choix n'est mémorisé */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --mne-bg: #15171b;
    --mne-bg-2: #101215;
    --mne-surface: #1c1f25;
    --mne-ink: #f1f1ec;
    --mne-ink-2: #e4e6e1;
    --mne-muted: #c9d0d8;
    --mne-line: #2a2f37;
    --mne-line-2: #3b414b;
    --mne-accent: #8fc27a;
    --mne-accent-ink: #14200f;
    --bs-code-color: #e8789f;
    --mne-danger: #ff7b72; --bs-danger-rgb: 255, 123, 114;
    --mne-warning: #f5c451; --bs-warning-rgb: 245, 196, 81;
    --mne-accent-soft: #233020;
    --mne-btn-bg: #8fc27a;
    --mne-btn-ink: #14200f;
    --mne-badge-bg: #22262d;
    --mne-badge-bd: #353b45;
    --mne-radius: 3px;
    --mne-font-head: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
    --mne-font-body: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
    --mne-ls: -0.015em;
    --mne-hw: 600;
    --mne-stripe: repeating-linear-gradient(135deg, #1d2025 0 10px, #232730 10px 20px);
    color-scheme: dark;
  }
}

/* ---- 2. Pont vers Bootstrap ------------------------------------------- */
:root {
  --bs-body-bg: var(--mne-bg);
  --bs-body-color: var(--mne-ink);
  --bs-body-font-family: var(--mne-font-body);
  --bs-body-font-size: 0.9375rem;
  --bs-border-color: var(--mne-line);
  --bs-border-radius: var(--mne-radius);
  --bs-link-color: var(--mne-accent);
  --bs-link-hover-color: var(--mne-ink);
  --bs-secondary-color: var(--mne-muted);
  --bs-tertiary-bg: var(--mne-surface);
  --bs-emphasis-color: var(--mne-ink);
  --bs-heading-color: var(--mne-ink);
}
body {
  background: var(--mne-bg);
  color: var(--mne-ink);
  font-family: var(--mne-font-body);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--mne-accent); text-decoration: none; }
a:hover { color: var(--mne-ink); }
h1, h2, h3, h4, .mne-title {
  font-family: var(--mne-font-head);
  font-weight: var(--mne-hw);
  letter-spacing: var(--mne-ls);
  line-height: 1.1;
  text-wrap: pretty;
}
.text-muted, .text-secondary { color: var(--mne-muted) !important; }
.text-muted a, a.text-muted { color: var(--mne-accent) !important; }
.text-muted a:hover, a.text-muted:hover { color: var(--mne-ink) !important; }
.form-control, .form-select, .form-check-input {
  background-color: var(--mne-surface);
  color: var(--mne-ink);
  border-color: var(--mne-line-2);
  border-radius: var(--mne-radius);
}
.form-control:focus, .form-select:focus {
  background-color: var(--mne-surface);
  color: var(--mne-ink);
  border-color: var(--mne-accent);
  box-shadow: 0 0 0 .2rem var(--mne-accent-soft);
}
.form-control::placeholder { color: var(--mne-muted); }
.form-check-input:checked { background-color: var(--mne-accent); border-color: var(--mne-accent); }
.alert { border-radius: var(--mne-radius); }
.container-mne {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding-left: var(--mne-page-pad);
  padding-right: var(--mne-page-pad);
}
@media (max-width: 767.98px) {
  :root, [data-theme="light"], [data-theme="dark"] { --mne-page-pad: 16px; }
}

/* ---- 3. Utilitaires typographiques ------------------------------------ */
.mne-mono {
  font-family: var(--mne-font-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--mne-muted);
  line-height: 1.9;
}
.mne-mono-sm { font-family: var(--mne-font-mono); font-size: 12px; color: var(--mne-muted); }
/* URL longues : toujours coupables, quel que soit le contexte */
.mne-url, .mne-entry__url, .mne-url a { overflow-wrap: anywhere; word-break: break-word; }
.mne-accent { color: var(--mne-accent) !important; }
.mne-ink { color: var(--mne-ink) !important; }
.mne-ink-2 { color: var(--mne-ink-2) !important; }
.mne-lead { font-size: 1.0625rem; line-height: 1.6; color: var(--mne-ink-2); text-wrap: pretty; }
.mne-lien-desc { text-align: justify; }
.mne-display { font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: 1; }
.mne-h1 { font-size: clamp(2rem, 4vw, 2.75rem); }
.mne-h2.mne-enonce-titre,
.mne-h1.mne-enonce-titre { font-size: clamp(2.25rem, 4.6vw, 3.5rem); line-height: 1.15; margin: 0.15em 0 0.35em; }
.mne-h1.mne-enonce-titre,
.mne-h1.mne-titre-liste { margin-bottom: 1.5cm; }
.mne-h1.mne-article-titre { text-align: center; margin-bottom: 1.5cm; }
.mne-articles-section { margin: 1.35rem 0 0.4rem; font-size: 1.15rem; }
.mne-articles .list-group-item { padding-top: 0.28rem; padding-bottom: 0.28rem; }
.mne-articles-item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
}
.mne-articles-item__titre {
  flex: 1 1 12rem;
  color: inherit;
  text-decoration: none;
}
.mne-articles-item__titre:hover,
.mne-articles-item__titre:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.mne-articles-langues {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.mne-articles-langues--fiche { margin: -0.85rem 0 1.1rem; }
.mne-articles-langues__lien {
  display: inline-flex;
  line-height: 0;
  border: 1px solid transparent;
  border-radius: 2px;
}
.mne-articles-langues__lien:hover,
.mne-articles-langues__lien:focus-visible { border-color: var(--mne-line-2); }
.mne-articles-langues__lien.is-current { border-color: var(--mne-ink); }
.mne-articles-langues img { display: block; width: 24px; height: 14px; object-fit: cover; }
.mne-prose .mne-article-embed { margin-left: auto; margin-right: auto; }
/* Titres de livres (ex. article 036 : blocs #responsable). */
.mne-article-responsable {
  font-weight: 700;
  text-transform: uppercase;
  margin: 1.35rem 0 0.65rem;
  letter-spacing: 0.02em;
}
.mne-prose p.mne-article-sous-titre,
.mne-article-sous-titre {
  font-weight: 700;
  margin-top: 1.5cm;
  margin-bottom: 1.5cm;
}
.mne-prose .mne-article-signature,
.mne-article-signature {
  font-weight: 700;
  color: #000;
  margin-top: 2.5cm;
  margin-bottom: 1em;
}
.mne-prose p.mne-article-slam-debut,
.mne-article-slam-debut { margin-top: 1cm; }
.mne-prose p.mne-article-slam-recueil,
.mne-article-slam-recueil { margin-top: 1em; }
.mne-article-slam-derniere-image { margin-top: 1cm; }
.mne-prose p.mne-article-slam-signature,
.mne-article-slam-signature {
  margin-top: 1.5cm;
  margin-bottom: 3cm;
  font-weight: 700;
  color: #000;
}
/* Paroles / textes bilingues (ancien fruit_gauche | fruit_droite). */
.mne-article-bicolonnes {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 0;
  align-items: start;
  margin: 1.5rem 0;
}
.mne-article-bicolonnes__col {
  min-width: 0;
  text-align: justify;
  line-height: 1.55;
}
.mne-article-bicolonnes__col--gauche {
  margin-left: 3cm;
  padding-right: 1.25rem;
}
/* Barre verticale uniquement pour une vraie paire gauche|droite (pas une colonne seule). */
.mne-article-bicolonnes > .mne-article-bicolonnes__col--gauche {
  border-right: 1px solid var(--mne-line-2);
}
.mne-article-bicolonnes__col--droite {
  margin-left: 2cm;
  padding-left: 1.25rem;
}
@media (max-width: 767.98px) {
  .mne-article-bicolonnes { grid-template-columns: minmax(0, 1fr); row-gap: 1rem; }
  .mne-article-bicolonnes__col--gauche {
    margin-left: 0;
    padding-right: 0;
  }
  .mne-article-bicolonnes > .mne-article-bicolonnes__col--gauche {
    border-right: 0;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--mne-line-2);
  }
  .mne-article-bicolonnes__col--droite {
    margin-left: 0;
    padding-left: 0;
  }
}
/* Tapisserie de Bayeux : texte | portrait, ou deux portraits. Pas les marges des paroles. */
.mne-article-bicolonnes--suite,
.mne-article-bicolonnes--portraits {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  column-gap: 1.25rem;
  margin: 1.25rem 0 1.5rem;
}
.mne-article-bicolonnes--portraits { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.mne-article-bicolonnes--suite .mne-article-bicolonnes__col--gauche,
.mne-article-bicolonnes--suite .mne-article-bicolonnes__col--droite,
.mne-article-bicolonnes--portraits .mne-article-bicolonnes__col--gauche,
.mne-article-bicolonnes--portraits .mne-article-bicolonnes__col--droite {
  margin-left: 0;
  padding-left: 0;
  padding-right: 0;
}
.mne-article-bicolonnes--suite > .mne-article-bicolonnes__col--gauche,
.mne-article-bicolonnes--portraits > .mne-article-bicolonnes__col--gauche { border-right: 0; }
@media (max-width: 767.98px) {
  .mne-article-bicolonnes--suite,
  .mne-article-bicolonnes--portraits { grid-template-columns: minmax(0, 1fr); }
}
.mne-article-intertitre {
  font-family: var(--mne-font-head);
  font-size: 1.45rem;
  margin: 2rem 0 1rem;
  text-align: start;
}
.mne-article-encart {
  margin: 1.25rem 0;
  padding: 0.75rem 1rem;
  border-left: 3px solid var(--mne-line-2);
}
.mne-article-vertus {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.9rem;
  margin: 0 0 2rem;
  line-height: 1.55;
}
.mne-article-vertus a { color: inherit; text-decoration: none; }
.mne-article-vertus a:hover,
.mne-article-vertus a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.mne-article-vertu { margin: 1.75rem 0; }
.mne-article-vertu h2 { font-size: 1.2rem; margin: 0 0 0.35rem; text-align: start; }
.mne-article-vertu ul { margin: 0; padding-left: 1.2rem; }
.mne-h1.mne-titre-liste:has(+ .mne-sous-menu) { margin-bottom: calc(.35rem + 1cm); }
.mne-h1.mne-titre-liste:has(+ .mne-projet-onglets) { margin-bottom: 1rem; }
.mne-projet-onglets { margin: 0 0 1.5cm; }
.mne-projet-onglets .mne-chip {
  max-width: 100%;
  white-space: normal;
  line-height: 1.45;
  text-align: center;
}
.mne-projet-onglets .mne-chip :is(strong, b, em, i, u, span) { color: inherit; }
.mne-sous-menu {
  display: block;
  text-align: justify;
  text-align-last: left;
  margin: 0 0 1.5cm;
  /* Compense la marge gauche de chaque item (emplacement du |). */
  margin-left: -0.75em;
  width: calc(100% + 0.75em);
  font-family: var(--mne-font-head);
  font-size: 1.05rem;
  line-height: 1.6;
}
/* | collé au libellé (pas d’orphelin en fin de ligne) ; masqué en début de ligne via JS. */
.mne-sous-menu__item {
  display: inline-block;
  white-space: nowrap;
  margin-left: 0.75em;
  vertical-align: baseline;
}
.mne-sous-menu__item::before {
  content: "|";
  display: inline-block;
  width: 0.75em;
  margin-left: -0.75em;
  color: var(--mne-muted);
  text-align: center;
  font-weight: 400;
}
/* Masquer seulement le glyphe : garder largeur/marge pour ne pas relancer le wrapping. */
.mne-sous-menu__item--debut::before {
  visibility: hidden;
}
.mne-sous-menu a { display: inline; color: inherit; text-decoration: none; }
.mne-sous-menu a:hover { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.mne-sous-menu a[aria-current="page"] { font-weight: 700; }
.mne-sous-menu__sep { display: none; }
.mne-page-ligne {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  column-gap: 1.5rem;
  row-gap: .35rem;
}
.mne-page-ligne > a { margin-left: auto; }
.mne-hr { border: 0; border-top: 2px solid var(--mne-line-2); opacity: 1; margin: 0; }
.mne-hr-thin { border: 0; border-top: 1px solid var(--mne-line); opacity: 1; margin: 0; }

/* ---- 4. En-tête -------------------------------------------------------- */
.mne-header { background: var(--mne-bg); border-bottom: 1px solid var(--mne-line-2); }
.mne-brand { display: flex; align-items: center; gap: 12px; color: var(--mne-ink); }
.mne-brand__home { display: flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.mne-brand__home:hover { color: var(--mne-ink); }
.mne-brand:hover { color: var(--mne-ink); }
.mne-brand__dot { width: 12px; height: 12px; background: var(--mne-accent); display: inline-block; }
.mne-brand__name { font-family: var(--mne-font-head); font-weight: 700; font-size: 20px; letter-spacing: var(--mne-ls); }
.mne-brand__sep { width: 1px; height: 16px; background: var(--mne-line); }
.mne-brand__tag { font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--mne-muted); }
.mne-topbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; padding-top: 18px; padding-bottom: 18px; }
.mne-topbar__right { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 22px; min-width: 0; }
.mne-topbar__right a { color: var(--mne-ink-2); }
.mne-topbar__right a:hover { color: var(--mne-ink); }
.mne-topbar__cta { color: var(--mne-ink) !important; border-bottom: 2px solid var(--mne-accent); padding-bottom: 2px; }
.mne-topbar__panel {
  padding: .35rem .8rem;
  line-height: 1.2;
  text-decoration: none;
  color: var(--mne-btn-ink) !important;
}
.mne-topbar__panel:hover,
.mne-topbar__panel:focus-visible {
  color: var(--mne-accent-ink) !important;
}
.mne-avatar {
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--mne-accent-soft); color: var(--mne-accent);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--mne-font-mono); font-size: 9px; letter-spacing: 0;
}
.mne-avatar--lg { width: 40px; height: 40px; font-size: 12px; }
.mne-theme-toggle {
  width: 30px; height: 30px; padding: 0;
  border: 1px solid var(--mne-line-2); background: var(--mne-surface); color: var(--mne-ink);
  border-radius: var(--mne-radius); font-family: var(--mne-font-mono); font-size: 13px; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
}
.mne-theme-toggle .mne-icon-sun { display: none; }
[data-theme="dark"] .mne-theme-toggle .mne-icon-sun { display: inline; }
[data-theme="dark"] .mne-theme-toggle .mne-icon-moon { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mne-theme-toggle .mne-icon-sun { display: inline; }
  :root:not([data-theme="light"]) .mne-theme-toggle .mne-icon-moon { display: none; }
}

.mne-navbar { border-top: 1px solid var(--mne-line); }
.mne-navbar__inner { display: block; }
.mne-search-set { display: flex; flex-direction: column; justify-content: center; gap: 12px; min-width: 0; padding: 14px 16px 14px 20px; border-left: 1px solid var(--mne-line); }
.mne-nav { display: flex; align-items: stretch; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; width: 100%; }
.mne-nav > li { flex: 1 1 0; min-width: 0; }
.mne-nav a {
  display: flex; align-items: center; justify-content: center; padding: 16px 10px;
  font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--mne-ink-2); text-align: center; white-space: nowrap;
}
.mne-nav a:hover { color: var(--mne-ink); background: var(--mne-bg-2); }
.mne-nav .active a, .mne-nav a.active { background: var(--mne-ink); color: var(--mne-bg); }
/* Champs de recherche de l'en-tête : sans fond, simple filet vert en bas */
.mne-search {
  display: flex; align-items: center; gap: 8px; min-width: 0; padding: 0 2px 0 12px;
  background: transparent;
  border: 1px solid transparent;
  border-bottom-color: color-mix(in srgb, var(--mne-accent) 45%, transparent);
  transition: border-color .15s ease;
}
.mne-search:hover { border-bottom-color: color-mix(in srgb, var(--mne-accent) 70%, transparent); }
.mne-search:focus-within { border-bottom-color: var(--mne-accent); box-shadow: inset 0 -1px 0 var(--mne-accent); }
.mne-search input {
  flex: 1 1 auto; min-width: 0; width: 100%; border: 0; background: transparent; color: var(--mne-ink);
  font-family: var(--mne-font-mono); font-size: 12px; padding: 5px 0; outline: none;
}
.mne-search input::placeholder { color: var(--mne-muted); opacity: 1; white-space: nowrap; }
.mne-search__ring { width: 11px; height: 11px; border: 1.5px solid var(--mne-accent); border-radius: 50%; flex: none; }
.mne-search__icon { color: var(--mne-accent); font-size: 12px; flex: none; }
.mne-search__submit {
  flex: none; width: 32px; height: 30px; margin: 0; padding: 0;
  border: 0; background: transparent; color: var(--mne-accent);
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
  line-height: 1;
}
.mne-search__submit:hover { color: var(--mne-ink); }
/* Font Awesome : icônes alignées sur la typo mono */
.mne-mono i, .mne-entry__meta i, .mne-comment__actions i, .btn-mne i, .btn-mne-outline i { color: inherit; }
.mne-entry__meta i, .mne-comment__actions i { color: var(--mne-muted); }
.mne-entry__meta .mne-accent i { color: var(--mne-accent); }
@media (max-width: 1199.98px) {
  .mne-navbar__inner { grid-template-columns: minmax(0, 1fr); }
  .mne-search-set { border-left: 0; border-top: 1px solid var(--mne-line); padding: 12px 0; }
  .mne-nav a { padding: 12px 14px; }
}

/* ---- 5. Grille éditoriale : rail · contenu · latérale ------------------ */
.mne-grid {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr) 280px;
  column-gap: 40px;
  row-gap: 28px;
}
.mne-grid--2 { grid-template-columns: 140px minmax(0, 1fr); }
.mne-grid--wide { grid-template-columns: 140px minmax(0, 1fr) 220px; }
.mne-sorts { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; white-space: nowrap; }
/* Bureau : liens de tri sans rectangle (colonne de droite). */
.mne-sorts .mne-chip {
  border-color: transparent;
  background: transparent;
  padding: 0;
  color: inherit;
  min-height: 0;
}
.mne-sorts .mne-chip:hover { border-color: transparent; color: var(--mne-ink); }
.mne-sorts .mne-chip.active {
  background: transparent;
  color: var(--mne-accent);
  border-color: transparent;
}
.mne-entry__comment-count { display: inline-block; font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--mne-accent); margin-bottom: 6px; }
.mne-entry__notes { margin: 0 0 12px; }
.mne-entry__notes a { font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em; color: var(--mne-accent); text-decoration: none; }
.mne-entry__notes a:hover { text-decoration: underline; text-underline-offset: 3px; }
.mne-rail { padding-top: 10px; }
.mne-rail--sticky { position: sticky; top: 20px; align-self: start; }
@media (max-width: 1199.98px) {
  .mne-grid, .mne-grid--2, .mne-grid--wide { grid-template-columns: minmax(0, 1fr); row-gap: 20px; }
  .mne-rail { padding-top: 0; }
  .mne-rail--sticky { position: static; }
  /* Sommaire : liens en ligne plutôt qu'en colonne */
  .mne-toc { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 16px; row-gap: 4px; }
  .mne-toc a { display: inline; }
  /* Contributions : tris en rectangles comme Tous / Musique. */
  .mne-sorts {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 8px;
    white-space: normal;
  }
  .mne-sorts .mne-chip {
    padding: 6px 12px;
    border: 1px solid var(--mne-line);
    color: var(--mne-ink-2);
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .mne-sorts .mne-chip:hover { border-color: var(--mne-line-2); color: var(--mne-ink); }
  .mne-sorts .mne-chip.active {
    background: var(--mne-ink);
    color: var(--mne-bg);
    border-color: var(--mne-ink);
  }
}
.mne-section { padding-top: 36px; padding-bottom: 48px; }
.mne-section--tight { padding-top: 24px; padding-bottom: 32px; }

/* ---- 6. Composants ----------------------------------------------------- */
/* Badge thème : texte vert en clair, encadré en sombre */
.mne-badge {
  display: inline-block;
  font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--mne-accent); background: var(--mne-badge-bg); border: 1px solid var(--mne-badge-bd);
  padding: 1px 7px; border-radius: var(--mne-radius); line-height: 1.6; white-space: nowrap;
}
.mne-badge--outline { border-color: var(--mne-accent); font-size: 10px; }
.mne-badge--ink { color: var(--mne-ink-2); }
/* Tag / mot-clé */
.mne-tag,
a.mne-tag,
.mne-entry__tags a {
  display: inline-block; font-family: var(--mne-font-mono); font-size: 11px; color: var(--mne-ink-2);
  background: var(--mne-badge-bg); border: 1px solid var(--mne-badge-bd); padding: 2px 7px; border-radius: var(--mne-radius);
  text-decoration: none !important;
}
.mne-tag:hover, a.mne-tag:hover, .mne-entry__tags a:hover { color: var(--mne-accent); text-decoration: none !important; }
.mne-tag--box { font-size: 12px; padding: 6px 12px; border-color: var(--mne-line-2); text-decoration: none !important; color: var(--mne-ink); }
.mne-tag--add { border-style: dashed; color: var(--mne-muted); }
/* Filtres / chips */
.mne-alpha { display: flex; flex-wrap: wrap; gap: .7rem 1.4rem; }
.mne-alpha a { font-family: var(--mne-font-mono); font-size: 26px; letter-spacing: .06em; color: var(--mne-ink-2); text-decoration: none; }
.mne-alpha a:hover, .mne-alpha a.active { color: var(--mne-ink); text-decoration: underline; text-underline-offset: 3px; }
.mne-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.mne-periode { align-items: center; gap: 8px 16px; }
.mne-periode__titre { font-family: var(--mne-font-head); font-weight: var(--mne-hw); }
.mne-periode__choix { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.mne-periode select {
  font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em;
  color: var(--mne-ink); background: var(--mne-bg); border: 1px solid var(--mne-line);
  border-radius: var(--mne-radius); padding: 6px 10px;
}
.mne-chip {
  display: inline-block; padding: 6px 12px; border: 1px solid var(--mne-line); color: var(--mne-ink-2);
  font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; border-radius: var(--mne-radius);
}
button.mne-chip { background: transparent; cursor: pointer; }
.mne-chip:hover { border-color: var(--mne-line-2); color: var(--mne-ink); }
.mne-chip.active { background: var(--mne-ink); color: var(--mne-bg); border-color: var(--mne-ink); }
.mne-catalogue-liste { scroll-margin-top: 1.25rem; }
.mne-chip--more { color: var(--mne-accent); cursor: pointer; background: transparent; }
.mne-chips-extra { display: none; }
.mne-chips-extra[data-open="1"] { display: contents; }
/* Boutons */
.btn-mne {
  --bs-btn-bg: var(--mne-btn-bg); --bs-btn-color: var(--mne-btn-ink); --bs-btn-border-color: var(--mne-btn-bg);
  --bs-btn-hover-bg: var(--mne-accent); --bs-btn-hover-color: var(--mne-accent-ink); --bs-btn-hover-border-color: var(--mne-accent);
  --bs-btn-active-bg: var(--mne-accent); --bs-btn-active-color: var(--mne-accent-ink); --bs-btn-active-border-color: var(--mne-accent);
  --bs-btn-border-radius: var(--mne-radius);
  font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; padding: .7rem 1.4rem;
}
.btn-mne-strong { font-family: var(--mne-font-body); font-size: 14px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.btn-mne-outline {
  --bs-btn-bg: transparent; --bs-btn-color: var(--mne-ink); --bs-btn-border-color: var(--mne-line-2);
  --bs-btn-hover-bg: var(--mne-ink); --bs-btn-hover-color: var(--mne-bg); --bs-btn-hover-border-color: var(--mne-ink);
  --bs-btn-active-bg: var(--mne-ink); --bs-btn-active-color: var(--mne-bg); --bs-btn-active-border-color: var(--mne-ink);
  --bs-btn-border-radius: var(--mne-radius);
  font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; padding: .6rem 1rem;
}
.mne-images-series { display: inline; }
.mne-images-series > summary {
  display: inline-block;
  list-style: none;
  cursor: pointer;
}
.mne-images-series > summary::-webkit-details-marker { display: none; }
.mne-images-series > summary::marker { content: ""; }
.mne-images-series:not([open]) > .mne-images-series__liste { display: none; }
.mne-images-series__liste {
  display: block;
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
}
.mne-images-series__liste li { margin: 0 0 .45rem; }
/* Entrée de la liste des contributions */
.mne-list { border-top: 2px solid var(--mne-line-2); }
.mne-list:has(> .mne-entry--compact) { padding-top: 2em; }
.mne-entry {
  display: grid; grid-template-columns: 140px minmax(0, 1fr) 150px; column-gap: 40px;
  padding: 26px 0; border-bottom: 1px solid var(--mne-line);
}
.mne-entry--latest {
  grid-template-areas:
    "rail head meta"
    "rail body body";
}
.mne-entry--latest.mne-entry--compact {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "head"
    "body";
  padding: 0.35rem 0;
  border-bottom: none;
}
.mne-entry--latest.mne-entry--compact .mne-entry__title { font-size: 1.05rem; margin: 0 0 2px; }
.mne-entry--latest.mne-entry--compact .mne-entry__url { margin-bottom: 0; }
.mne-entry--latest .mne-entry__rail { grid-area: rail; }
.mne-entry--latest .mne-entry__head { grid-area: head; min-width: 0; }
.mne-entry--latest .mne-entry__meta { grid-area: meta; }
.mne-entry--latest .mne-entry__body { grid-area: body; }
.mne-entry__rail { font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; line-height: 1.9; color: var(--mne-muted); }
.mne-entry__rail .mne-badge { margin-left: -8px; }
.mne-entry__body { min-width: 0; }
.mne-entry__title { font-size: 22px; margin: 0 0 6px; line-height: 1.2; }
.mne-entry__title a { color: var(--mne-ink); }
.mne-entry__title a:hover { color: var(--mne-accent); }
.mne-entry__url { font-family: var(--mne-font-mono); font-size: 12px; color: var(--mne-muted); margin-bottom: 10px; }
.mne-entry__url a { color: var(--mne-accent); overflow-wrap: anywhere; word-break: break-word; }
.mne-entry__desc { margin: 0 0 12px; line-height: 1.55; color: var(--mne-ink-2); text-align: justify; text-wrap: pretty; max-width: none; width: 100%; }
.mne-entry--home { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
.mne-entry__tags {
  display: flex; flex-wrap: wrap; gap: 6px; align-items: center; align-content: flex-start;
  max-height: calc(5 * 28px); overflow: hidden; /* 5 lignes de mots-clés */
}
.mne-kw-lines {
  max-height: calc(5 * 36px); overflow: hidden; /* 5 lignes, pastilles plus hautes de la fiche */
}
.mne-entry__meta { font-family: var(--mne-font-mono); font-size: 11px; text-align: right; line-height: 1.9; color: var(--mne-muted); }
.mne-entry__meta strong { color: var(--mne-ink); font-weight: 500; }
.mne-entry__comments { display: flex; flex-direction: column; gap: 6px; margin: 0 0 12px; }
.mne-entry__comment {
  display: block; font-size: 13px; line-height: 1.45; color: var(--mne-ink-2);
  padding: 4px 0 4px 12px; border-left: 2px solid var(--mne-line-2);
}
.mne-entry__comment:hover { color: var(--mne-ink); border-left-color: var(--mne-accent); }
.mne-entry__comment-author { font-weight: 600; margin-right: 8px; color: var(--mne-ink); }
.mne-thumb {
  width: 168px; height: 104px; background: var(--mne-stripe); border: 1px solid var(--mne-line);
  display: flex; align-items: center; justify-content: center; text-align: center;
  font-family: var(--mne-font-mono); font-size: 10px; color: var(--mne-muted); line-height: 1.5; overflow: hidden;
}
.mne-thumb img { width: 100%; height: 100%; object-fit: cover; }
.mne-cover { width: 100%; height: 260px; }
@media (max-width: 1199.98px) {
  .mne-entry { grid-template-columns: minmax(0, 1fr); row-gap: 12px; }
  .mne-entry--latest {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "rail"
      "head"
      "meta"
      "body";
  }
  .mne-entry__rail { display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; row-gap: 4px; }
  .mne-entry__rail br { display: none; }
  .mne-entry__rail .mne-badge { margin-left: 0; }
  .mne-entry__meta { text-align: left; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 14px; row-gap: 2px; }
  .mne-entry--latest .mne-entry__illu { order: 1; align-self: flex-start; }
  .mne-entry__meta br { display: none; }
  .mne-entry__body { display: block; }
}
/* Pagination */
.mne-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-top: 22px; }
.mne-pagination .pagination { flex-wrap: nowrap; }
.mne-pagination .pagination { --bs-pagination-border-radius: var(--mne-radius); gap: 6px; margin: 0; }
.mne-pagination .page-link {
  font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em;
  color: var(--mne-ink); background: transparent; border: 1px solid var(--mne-line); padding: 6px 11px;
}
.mne-pagination .page-link:hover { border-color: var(--mne-line-2); background: transparent; color: var(--mne-ink); }
.mne-pagination .active > .page-link { background: var(--mne-ink); color: var(--mne-bg); border-color: var(--mne-ink); }
.mne-page-jump { display: inline-flex; align-items: center; gap: 8px; }
.mne-page-jump label { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.mne-page-jump input[type=number] {
  /* chiffres (mono : 1ch + interlettrage) + marges + flèches du champ */
  width: calc(var(--digits, 3) * 1.1em + 30px); box-sizing: content-box; font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em;
  color: var(--mne-ink); background: var(--mne-bg); border: 1px solid var(--mne-line);
  border-radius: var(--mne-radius); padding: 6px 8px;
}
.mne-page-jump button.page-link { cursor: pointer; }
.mne-pagination .disabled > .page-link { color: var(--mne-muted); background: transparent; border-color: var(--mne-line); opacity: .55; }
.mne-pagination .mne-pagination__gap > .page-link { border-color: transparent; background: transparent; opacity: 1; padding-inline: 4px; }
@media (max-width: 575.98px) { .mne-pagination .is-far { display: none; } }
.mne-page-jump select {
  font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em;
  color: var(--mne-ink); background: var(--mne-bg); border: 1px solid var(--mne-line);
  border-radius: var(--mne-radius); padding: 6px 10px;
}
@media (max-width: 575.98px) { .mne-pagination .pagination { flex-wrap: wrap; } }
/* Latérale */
.mne-sidebar { border-top: 2px solid var(--mne-line-2); padding-top: 22px; display: flex; flex-direction: column; gap: 28px; }
.mne-sidebar__title { font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--mne-muted); margin-bottom: 14px; }
.mne-sidebar__more { display: inline-block; margin-top: 12px; font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.mne-stack { list-style: none; margin: 0; padding: 0; }
.mne-auteurs-lettres { display: flex; justify-content: center; align-items: flex-start; gap: 3.5rem; width: min(100%, 56rem); margin-inline: auto; }
.mne-auteurs-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 1.25rem; }
.mne-auteurs-lettre { font-family: var(--mne-font-mono); font-size: 1.5rem; letter-spacing: .08em; margin: 0 0 .6rem; }
.mne-auteurs-noms { list-style: none; margin: 0; padding: 0; font-size: calc(1.125rem - 1px); }
.mne-auteurs-noms li { margin: 0 0 .35rem; }
.mne-auteurs-noms a { overflow-wrap: anywhere; color: var(--mne-ink); }
.mne-auteurs-noms a:hover,
.mne-auteurs-noms a:focus-visible { color: #1a4fa8; }
.mne-auteurs-textes { margin: 2.25rem auto 0; width: min(100%, 56rem); text-align: center; font-size: 1.125rem; }
.mne-auteurs-textes a { color: var(--mne-ink); }
.mne-auteurs-textes a,
.mne-auteurs-textes a:hover,
.mne-auteurs-textes a:focus-visible { text-decoration: none; }
.mne-auteurs-textes a:hover,
.mne-auteurs-textes a:focus-visible { color: #1a4fa8; }
#corps .mne-citations { padding-top: 1.5cm; }
#corps .mne-citations > .list-group-item:first-child { border-top-width: 0; }
#corps .mne-citations-compact .list-group-item {
  border: 0;
  padding: 4px 0;
}
[data-theme="dark"] .mne-auteurs-noms a:hover,
[data-theme="dark"] .mne-auteurs-noms a:focus-visible,
[data-theme="dark"] .mne-auteurs-textes a:hover,
[data-theme="dark"] .mne-auteurs-textes a:focus-visible { color: #9ec1ff; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mne-auteurs-noms a:hover,
  :root:not([data-theme="light"]) .mne-auteurs-noms a:focus-visible,
  :root:not([data-theme="light"]) .mne-auteurs-textes a:hover,
  :root:not([data-theme="light"]) .mne-auteurs-textes a:focus-visible { color: #9ec1ff; }
}
@media (max-width: 575.98px) {
  .mne-auteurs-lettres { flex-direction: column; gap: 1.25rem; width: auto; margin-inline: 0; }
  .mne-auteurs-col { display: contents; }
  .mne-auteurs-lettres section { order: var(--mne-ordre); }
  .mne-auteurs-textes { width: auto; }
}
.mne-stack.mne-enonce-liste { padding-top: 1.5cm; font-size: calc(0.9375rem + 2px); }
.mne-enonce-liste .mne-stack__title { font-size: 17px; }
.mne-enonce-liste .mne-eav-hit__pairs { font-size: calc(0.9rem + 2px); }
/* Page d’un élément de catégorie ou de sous-catégorie : +1 px. Les énoncés y étaient déjà à +2 px. */
.mne-stack.mne-element-categorie { font-size: calc(0.9375rem + 1px); }
.mne-element-categorie .mne-stack__title { font-size: 16px; }
.mne-element-categorie .mne-eav-hit__pairs { font-size: calc(0.9rem + 1px); }
.mne-element-categorie .mne-enonce-liste .mne-eav-hit__pairs { font-size: calc(0.9rem + 3px); }
.mne-stack.mne-enonce-liste > li { padding: 1.5rem 0; }
.mne-stack.mne-enonce-liste > li:first-child { padding-top: 0; }
.mne-enonce-liste .mne-url { margin-bottom: 1.25rem; }
.mne-enonce-commentaire { margin: 8px 0 0; line-height: 1.5; color: var(--mne-accent); text-align: justify; text-wrap: pretty; }
.mne-enonce-liste .mne-enonce-justifie { color: var(--mne-accent); text-align: justify; overflow-wrap: break-word; margin-left: 1.5cm; }
.mne-enonce-liste dd.mne-enonce-sous { text-align: justify; }
.mne-enonce-liste .mne-enonce-sous a { color: #1a4fa8; text-decoration: none; }
.mne-enonce-liste .mne-enonce-sous a:hover { color: #1a4fa8; text-decoration: underline; text-underline-offset: 3px; }
[data-theme="dark"] .mne-enonce-liste .mne-enonce-sous a,
[data-theme="dark"] .mne-enonce-liste .mne-enonce-sous a:hover { color: #9ec1ff; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mne-enonce-liste .mne-enonce-sous a,
  :root:not([data-theme="light"]) .mne-enonce-liste .mne-enonce-sous a:hover { color: #9ec1ff; }
}
/* Fiche d’un énoncé : le texte et ses catégories sont noirs. Les catégories sont en retrait. */
.mne-enonce-liste .mne-enonce-sous:not(.mne-enonce-justifie) a,
.mne-enonce-liste .mne-enonce-sous:not(.mne-enonce-justifie) a:visited,
.mne-enonce-liste .mne-enonce-sous:not(.mne-enonce-justifie) a:hover {
  color: var(--mne-ink);
}
[data-theme="dark"] .mne-enonce-liste .mne-enonce-sous:not(.mne-enonce-justifie) a,
[data-theme="dark"] .mne-enonce-liste .mne-enonce-sous:not(.mne-enonce-justifie) a:visited,
[data-theme="dark"] .mne-enonce-liste .mne-enonce-sous:not(.mne-enonce-justifie) a:hover {
  color: var(--mne-ink);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mne-enonce-liste .mne-enonce-sous:not(.mne-enonce-justifie) a,
  :root:not([data-theme="light"]) .mne-enonce-liste .mne-enonce-sous:not(.mne-enonce-justifie) a:visited,
  :root:not([data-theme="light"]) .mne-enonce-liste .mne-enonce-sous:not(.mne-enonce-justifie) a:hover {
    color: var(--mne-ink);
  }
}
/* Page d’une valeur (Livre, Film…) : les énoncés sont noirs, soulignés au survol. */
.mne-item-enonces .mne-enonce-sous:not(.mne-enonce-justifie) a,
.mne-item-enonces .mne-enonce-sous:not(.mne-enonce-justifie) a:visited,
.mne-item-enonces .mne-enonce-sous:not(.mne-enonce-justifie) a:hover {
  color: var(--mne-ink);
  text-decoration: none;
}
.mne-item-enonces .mne-enonce-sous:not(.mne-enonce-justifie) a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}
[data-theme="dark"] .mne-item-enonces .mne-enonce-sous:not(.mne-enonce-justifie) a,
[data-theme="dark"] .mne-item-enonces .mne-enonce-sous:not(.mne-enonce-justifie) a:visited,
[data-theme="dark"] .mne-item-enonces .mne-enonce-sous:not(.mne-enonce-justifie) a:hover {
  color: var(--mne-ink);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mne-item-enonces .mne-enonce-sous:not(.mne-enonce-justifie) a,
  :root:not([data-theme="light"]) .mne-item-enonces .mne-enonce-sous:not(.mne-enonce-justifie) a:visited,
  :root:not([data-theme="light"]) .mne-item-enonces .mne-enonce-sous:not(.mne-enonce-justifie) a:hover {
    color: var(--mne-ink);
  }
}
.mne-enonce-liste .mne-enonce-image-titre { display: block; text-align: center; }
.mne-enonce-image { margin: 2rem 0 2.25rem; text-align: center; max-width: 100%; }
.mne-enonce-image a { display: inline-block; max-width: min(100%, 800px); }
.mne-enonce-image img { display: block; width: auto; max-width: 100%; height: auto; }
.mne-enonce-liste .mne-enonce-youtube { width: 600px; max-width: 100%; margin: 2rem auto 2.25rem; }
.mne-stack:not(.mne-enonce-liste) .mne-embed--list { width: 600px; max-width: 100%; }
@media (max-width: 575.98px) {
  .mne-enonce-image { margin: 1.25rem 0 1.5rem; }
  .mne-enonce-image a { max-width: 100%; }
  .mne-enonce-image img { max-width: 100%; width: auto; height: auto; }
  .mne-enonce-liste .mne-enonce-youtube,
  .mne-stack:not(.mne-enonce-liste) .mne-embed--list { width: 100%; }
}
.mne-stack > li { padding: 10px 0; border-bottom: 1px solid var(--mne-line); }
.mne-stack--dense { padding-top: 1.5cm; }
.mne-stack--dense > li { padding: 6px 0; border-bottom: 0; text-align: justify; }
.mne-stack--dense .mne-stack__title { display: inline; padding-top: 2px; font-size: 17px; text-decoration: none; }
.mne-stack--dense a.mne-stack__title:hover { text-decoration: underline; text-underline-offset: 3px; }
.mne-enonce-lignes a.list-group-item:hover .mne-enonce-lignes__titre { text-decoration: underline; text-underline-offset: 3px; }
.mne-stack--dense a.mne-enonce-fort,
.mne-stack--dense a.mne-enonce-fort:hover { color: #1a4fa8; }
[data-theme="dark"] .mne-stack--dense a.mne-enonce-fort,
[data-theme="dark"] .mne-stack--dense a.mne-enonce-fort:hover { color: #9ec1ff; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mne-stack--dense a.mne-enonce-fort,
  :root:not([data-theme="light"]) .mne-stack--dense a.mne-enonce-fort:hover { color: #9ec1ff; }
}
.mne-stack__title { font-family: var(--mne-font-head); font-weight: var(--mne-hw); font-size: 15px; letter-spacing: var(--mne-ls); color: var(--mne-ink); }
.mne-elements-traites .mne-traite-enonce { font-weight: 400; font-size: 17px; color: #1a4fa8; text-decoration: none; }
.mne-elements-traites .mne-traite-ciel { font-weight: 400; font-size: 17px; color: #1a6d96; text-decoration: none; }
.mne-elements-traites a.mne-traite-enonce:hover,
.mne-elements-traites a.mne-traite-ciel:hover { text-decoration: underline; text-underline-offset: 3px; }
[data-theme="dark"] .mne-elements-traites .mne-traite-enonce { color: #9ec1ff; }
[data-theme="dark"] .mne-elements-traites .mne-traite-ciel { color: #7ec8ea; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mne-elements-traites .mne-traite-enonce { color: #9ec1ff; }
  :root:not([data-theme="light"]) .mne-elements-traites .mne-traite-ciel { color: #7ec8ea; }
}
span.mne-stack__title a { color: inherit; text-decoration: none; }
span.mne-stack__title a:hover { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.mne-stack__meta { font-family: var(--mne-font-mono); font-size: 11px; color: var(--mne-muted); margin-top: 2px; }
.mne-people { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.mne-people > li { display: flex; align-items: center; gap: 10px; }
.mne-people__name { flex: 1; font-weight: 500; font-size: 14px; color: var(--mne-ink); }
.mne-people__n { font-family: var(--mne-font-mono); font-size: 11px; color: var(--mne-muted); }
.mne-cloud {
  display: block; text-align: justify; text-align-last: justify; word-spacing: 8px; line-height: 36px;
  font-family: var(--mne-font-head); letter-spacing: var(--mne-ls);
  overflow: hidden;
  min-height: calc(5 * 28px + 4 * 8px);
  max-height: calc(5 * 28px + 4 * 8px);
}
.mne-cloud a { display: inline-block; vertical-align: top; color: var(--mne-ink); line-height: 1.25; }
.mne-cloud .is-1 { font-size: 13px; color: var(--mne-muted); font-weight: 400; }
.mne-cloud .is-2 { font-size: 15px; font-weight: 500; }
.mne-cloud .is-3 { font-size: 20px; font-weight: var(--mne-hw); }
.mne-cloud .is-4 { font-size: 22px; font-weight: var(--mne-hw); color: var(--mne-accent); }
.mne-callout { border: 1px dashed var(--mne-line-2); padding: 18px; text-align: center; border-radius: var(--mne-radius); }
.mne-card { border: 1px solid var(--mne-line); background: var(--mne-surface); padding: 20px; border-radius: var(--mne-radius); }
.mne-contrib > .mne-h2 { margin-top: 0; }
.mne-contrib-voir { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.75rem; }
.mne-contrib-voir a { font-weight: 400; font-size: 1rem; letter-spacing: 0; }
button.mne-cloud-reload {
  background: none; border: 0; padding: 0; cursor: pointer;
  text-align: left; font: inherit;
}
.mne-dossier-row { display: flex; gap: 14px; align-items: flex-start; }
.mne-dossier-row__body { min-width: 0; flex: 1; }
.mne-illus {
  object-fit: cover; background: var(--mne-stripe);
  border: 1px solid var(--mne-line); border-radius: var(--mne-radius);
}
.mne-illus--sm { width: 72px; height: 72px; flex: none; }
.mne-illus--lg { max-width: 280px; max-height: 220px; width: auto; height: auto; object-fit: contain; display: block; }
.mne-illus-card { padding: 8px; border: 1px solid var(--mne-line); background: var(--mne-surface); min-height: 140px; }
.mne-illus-card img { width: 100%; height: 140px; object-fit: cover; display: block; }
/* Fiche : tableau clé/valeur */
.mne-kv { border-top: 1px solid var(--mne-line-2); }
.mne-kv > div { display: grid; grid-template-columns: 200px 1fr; padding: 10px 0; border-bottom: 1px solid var(--mne-line); align-items: baseline; }
.mne-kv dt { font-family: var(--mne-font-mono); font-size: 12px; color: var(--mne-muted); font-weight: 400; margin: 0; }
.mne-kv dd { margin: 0; }
@media (max-width: 575.98px) { .mne-kv > div { grid-template-columns: 1fr; row-gap: 2px; } }
/* Commentaires */
.mne-comments { border-top: 1px solid var(--mne-line-2); }
.mne-comment { padding: 20px 0; border-bottom: 1px solid var(--mne-line); }
.mne-comment__head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.mne-comment__author { font-weight: 600; font-size: 14px; }
.mne-comment__date { font-family: var(--mne-font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--mne-muted); }
.mne-comment p { margin: 0 0 10px; line-height: 1.55; color: var(--mne-ink-2); }
.mne-comment__actions { display: flex; gap: 16px; font-family: var(--mne-font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.mne-comment__actions a { color: var(--mne-muted); }
.mne-comment-form { display: flex; gap: 16px; align-items: flex-end; padding-top: 20px; }
.mne-comment-form .form-control { border: 0; border-bottom: 1px solid var(--mne-line-2); border-radius: 0; background: transparent; padding-left: 0; padding-right: 0; box-shadow: none; }
/* Formulaires « filet » (connexion, inscription) */
.mne-field { display: flex; flex-direction: column; gap: 6px; }
.mne-field label { font-family: var(--mne-font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--mne-muted); display: flex; justify-content: space-between; }
.mne-field .form-control { border: 0; border-bottom: 1px solid var(--mne-line-2); border-radius: 0; background: transparent; padding: 8px 0; font-size: 16px; box-shadow: none; }
.mne-field .form-control:focus { border-bottom-color: var(--mne-accent); box-shadow: inset 0 -1px 0 var(--mne-accent); }
.mne-or { display: flex; align-items: center; gap: 12px; font-family: var(--mne-font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--mne-muted); }
.mne-or::before, .mne-or::after { content: ""; flex: 1; height: 1px; background: var(--mne-line); }
.mne-pwd-rules { display: flex; flex-wrap: wrap; gap: 6px 14px; font-family: var(--mne-font-mono); font-size: 11px; color: var(--mne-muted); list-style: none; padding: 0; margin: 0; }
.mne-pwd-rules .is-ok { color: var(--mne-accent); }
/* Statistiques (accueil) */
.mne-stats-section { border-top: 1px solid var(--mne-line-2); border-bottom: 1px solid var(--mne-line-2); }
.mne-stats { display: grid; grid-template-columns: repeat(6, 1fr); padding-left: 0; padding-right: 0; }
.mne-stats--home { width: min(100%, 960px); margin-inline: auto; text-align: center; }
.mne-stats > a, .mne-stats > div { padding: 24px 18px; border-right: 1px solid var(--mne-line); color: inherit; text-decoration: none; display: block; }
.mne-stats > a:last-child, .mne-stats > div:last-child { border-right: 0; }
.mne-stats > a:hover .mne-stats__n { color: var(--mne-accent); }
.mne-stats__n { font-family: var(--mne-font-head); font-weight: var(--mne-hw); font-size: 30px; letter-spacing: var(--mne-ls); }
.mne-stats__l { font-family: var(--mne-font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--mne-muted); margin-top: 4px; }
@media (max-width: 991.98px) { .mne-stats { grid-template-columns: repeat(3, 1fr); } .mne-stats > a:nth-child(3n), .mne-stats > div:nth-child(3n) { border-right: 0; } }
@media (max-width: 767.98px) { .mne-stats { grid-template-columns: 1fr 1fr; } .mne-stats > a, .mne-stats > div { padding: 18px 20px; border-bottom: 1px solid var(--mne-line); } .mne-stats > a:nth-child(3n), .mne-stats > div:nth-child(3n) { border-right: 1px solid var(--mne-line); } .mne-stats > a:nth-child(2n), .mne-stats > div:nth-child(2n) { border-right: 0; } }
.mne-themes {
  display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: baseline; align-content: flex-start;
}
.mne-themes-more { margin-top: 14px; }
.mne-themes-more summary { cursor: pointer; font-family: var(--mne-font-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--mne-accent); }
.mne-hero__hint { margin: 10px 0 0; font-size: 14px; color: var(--mne-ink-2); }
.mne-entry__illu { float: right; margin: 0 0 8px 12px; }
.mne-entry__illu img { width: 108px; height: 108px; object-fit: cover; display: block; }
.mne-entry--latest .mne-entry__illu { float: none; display: block; width: 108px; margin: 0 0 8px auto; }
.mne-dossiers-themes .mne-h2 { text-align: center; font-size: clamp(1.6rem, 2.4vw, 2.15rem); }
.mne-contenu-edit > summary { cursor: pointer; margin: 1.75rem 0 .75rem; }
.mne-contenu-edit > summary .mne-h2 { display: inline; margin: 0; }
.mne-picker__search { display: flex; gap: 8px; margin-bottom: 12px; }
.mne-picker__search .form-control { max-width: 420px; }
.mne-picker__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mne-picker__title { font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; }
.mne-picker__list { list-style: none; margin: 0; padding: 8px; min-height: 180px; max-height: 360px; overflow: auto; border: 1px solid var(--mne-line); background: var(--mne-surface); }
.mne-picker__list li { display: flex; align-items: baseline; gap: 8px; padding: 6px 4px; border-bottom: 1px solid var(--mne-line); }
.mne-picker__list li span:first-child { flex: 1; min-width: 0; }
.mne-picker__kind { font-family: var(--mne-font-mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--mne-muted); }
.mne-picker__move { border: 0; background: transparent; color: var(--mne-accent); cursor: pointer; font-size: 13px; }
@media (max-width: 767.98px) { .mne-picker__cols { grid-template-columns: 1fr; } }
.mne-embed-image img { max-width: 160px; max-height: 120px; width: auto; height: auto; object-fit: contain; }
.mne-themes a { font-family: var(--mne-font-head); font-weight: var(--mne-hw); font-size: 24px; letter-spacing: var(--mne-ls); color: var(--mne-ink); overflow-wrap: anywhere; max-width: 100%; line-height: 1.2; }
.mne-themes a small { font-family: var(--mne-font-mono); font-weight: 400; font-size: 11px; color: var(--mne-muted); letter-spacing: 0; margin-left: 4px; }
.mne-searchbox { display: flex; align-items: center; gap: 12px; max-width: 560px; padding: 14px 18px; border: 1px solid var(--mne-line-2); background: var(--mne-surface); border-radius: var(--mne-radius); }
.mne-searchbox input { flex: 1; border: 0; background: transparent; outline: none; color: var(--mne-ink); font-family: var(--mne-font-mono); font-size: 13px; }
/* Onglets (mon espace) */
.mne-tabs { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--mne-line-2); margin: 0; padding: 0; list-style: none; }
.mne-tabs a { display: block; padding: 12px 18px; margin-bottom: -1px; border-bottom: 2px solid transparent; font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--mne-muted); }
.mne-tabs .active a, .mne-tabs a.active { color: var(--mne-ink); border-bottom-color: var(--mne-ink); }
/* Prose (pages statiques) */
.mne-prose { max-width: 680px; font-size: 16px; line-height: 1.65; color: var(--mne-ink-2); }
#mne-ia-reply { text-align: justify; text-wrap: pretty; }
.mne-prose h2 { font-size: 22px; margin: 32px 0 10px; padding-top: 20px; border-top: 1px solid var(--mne-line); }
.mne-prose h2:first-of-type { border-top-color: var(--mne-line-2); }
.mne-prose h2 .num { font-family: var(--mne-font-mono); font-weight: 400; font-size: 11px; color: var(--mne-muted); margin-right: 12px; letter-spacing: .1em; }
.mne-prose p, .mne-prose ul { margin: 0 0 14px; }
.mne-prose p.mne-saut { padding-top: 1.65em; }
.mne-prose--justifie p { text-align: justify; text-wrap: pretty; }
.mne-prose--riche :is(h2, h3, h4) { text-align: start; }
.mne-prose--riche img { max-width: 100%; height: auto; }
.mne-prose--riche table { max-width: 100%; }
.mne-sous-menu a :is(strong, b, em, i, u, span) { color: inherit; }
.article-body { max-width: none; text-align: justify; text-wrap: pretty; }
.article-body :is(h1, h2, h3, h4) { text-align: start; }
.article-body img { max-width: 100%; height: auto; }
/* Un texte à côté d’une image ne doit pas ajouter une troisième colonne (rail, texte, image). */
.article-body [style*="float"] {
  float: none !important;
  width: auto !important;
  height: auto !important;
  max-width: 100%;
  margin-left: 0 !important;
}
.article-body .mne-article-visuel { text-align: center; margin: 1.25rem 0 0.35rem; }
.article-body .mne-article-visuel--premier { margin-top: 1cm; margin-bottom: 1cm; }
/* article_028 : 2 cm avant les images 2, 3 et 4. */
.article-body .mne-article-visuel:has(img[src*="article_028_03"]),
.article-body .mne-article-visuel:has(img[src*="article_028_04"]),
.article-body .mne-article-visuel:has(img[src*="article_028_07"]) { margin-top: 2cm; }
/* article_046 : 1 cm avant « Mausolée octogonal » et les 9 images suivantes. */
.article-body .mne-article-visuel:has(img[src*="shah_i_zinda_03"]),
.article-body .mne-article-visuel:has(img[src*="shah_i_zinda_05"]),
.article-body .mne-article-visuel:has(img[src*="shah_i_zinda_06"]),
.article-body .mne-article-visuel:has(img[src*="shah_i_zinda_07"]),
.article-body .mne-article-visuel:has(img[src*="shah_i_zinda_08"]),
.article-body .mne-article-visuel:has(img[src*="shah_i_zinda_09"]),
.article-body .mne-article-visuel:has(img[src*="shah_i_zinda_11"]),
.article-body .mne-article-visuel:has(img[src*="shah_i_zinda_12"]),
.article-body .mne-article-visuel:has(img[src*="shah_i_zinda_14"]),
.article-body .mne-article-visuel:has(img[src*="shah_i_zinda_15"]) { margin-top: 1cm; }
.article-body .mne-article-visuel img { display: inline-block; }
.article-body .mne-article-legende { text-align: center; margin: 0 0 1cm; }
.article-body .mne-article-signature { margin: 2.5cm 0 1.5cm; font-weight: 700; text-align: start; }
/* Galerie Portraits du Dahomey (article 083) — 3 colonnes comme l’ancien site. */
.article-body .mne-article-galerie {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem 1.25rem;
  margin: 1.5rem 0 0.5rem;
  justify-items: center;
}
.article-body .mne-article-galerie a {
  display: block;
  line-height: 0;
}
.article-body .mne-article-galerie img {
  width: 100%;
  max-width: 190px;
  height: auto;
  display: block;
}
.article-body .mne-article-galerie--plaids img { max-width: 310px; }
.article-body .mne-article-bicolonnes .mne-article-visuel { margin: 0.6rem 0; }
.article-body .mne-article-bicolonnes .mne-article-visuel img { max-width: 310px; }
/* Article 030 (Véronique Azéma) : 1,5 cm avant / après images et vidéos. */
.article-body--030 .mne-article-visuel,
.article-body--030 .mne-article-visuel--premier,
.article-body--030 .mne-article-galerie,
.article-body--030 .mne-article-embed,
.article-body--030 a:has(> img) {
  margin-top: 1.5cm;
  margin-bottom: 1.5cm;
}
.article-body--030 .mne-article-galerie a:has(> img) {
  margin-top: 0;
  margin-bottom: 0;
}
.article-body--030 p.mne-article-030-ba { margin-top: 2cm; }
.article-body--030 p.mne-article-030-klimt { margin-bottom: 1cm; }
.article-body--030 p.mne-article-030-klimt + a:has(> img) { margin-top: 0; }
/* Article 008 (Antonio Mora) : 1 cm après chaque image. */
.article-body--008 .mne-article-visuel { margin-bottom: 1cm; }
/* Article 022 (Bayeux) : deux scènes côte à côte. */
.article-body--022 .mne-article-visuel:has(#bayeux_car1) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}
@media (max-width: 767.98px) {
  .article-body--022 .mne-article-visuel:has(#bayeux_car1) { grid-template-columns: minmax(0, 1fr); }
}
/* Article 001 (Aymard) : 1 cm avant chaque image ; légendes sous composites. */
.article-body--001 .mne-article-visuel,
.article-body--001 .mne-article-visuel--premier,
.article-body--001 .mne-article-multi { margin-top: 1cm; }
.article-body--001 .mne-article-multi .mne-article-visuel,
.article-body--001 .mne-article-multi .mne-article-visuel--premier { margin-top: 0; }
.article-body .mne-article-multi { margin-bottom: 1cm; }
.article-body .mne-article-multi__legendes {
  display: grid;
  gap: 0.5rem 1rem;
  margin-top: 0.35rem;
  text-align: center;
}
.article-body .mne-article-multi--2 .mne-article-multi__legendes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.article-body .mne-article-multi--3 .mne-article-multi__legendes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.article-body .mne-article-multi .mne-article-legende { margin: 0; }
/* Article 060 (Marnie) : lecteur YouTube centré. */
.article-body--060 .mne-article-embed {
  display: block;
  width: min(100%, 720px);
  margin: 1.25rem auto 1.5rem;
}
/* Article 067 (Mishima) : 1,5 cm avant certains titres de chanson. */
.article-body--067 .mne-article-067-espace {
  margin-top: 1.5cm;
}
/* Article 027 : 1 cm avant / après les titres d’associations. */
.article-body--027 .mne-article-027-asso-titre {
  margin-top: 1cm;
  margin-bottom: 1cm;
}
/* Article 034 (Divine Comedy) : 4e / dernière ligne du sommaire à gauche. */
.article-body--034 .mne-article-034-menu {
  text-align: justify;
  text-align-last: left;
  /* pretty étire la dernière ligne malgré text-align-last. */
  text-wrap: wrap;
}
.article-body--034 .mne-article-034-menu a {
  display: inline-block;
  white-space: nowrap;
}
/* Article 054 : deux toiles côte à côte, 2 cm entre elles, sans chevauchement du texte. */
.article-body--054 .mne-article-054-feux {
  display: flex;
  flex-wrap: wrap;
  gap: 2cm;
  justify-content: center;
  align-items: flex-start;
  margin: 1.25rem 0 1.5rem;
  clear: both;
}
.article-body--054 .mne-article-054-feux img {
  display: block;
  max-width: min(100%, 542px);
  height: auto;
}
.article-body .mne-article-pagination {
  text-align: center;
  margin: 1rem 0 1.25rem;
  font-weight: 700;
}
/* Commentaires par artiste (article 032). */
.article-body .mne-artiste-com {
  margin: 0.35rem 0 1.35rem;
  text-align: start;
}
.article-body .mne-artiste-com__toggle {
  display: inline;
  padding: 0;
  border: 0;
  background: none;
  color: #61c338;
  text-decoration: underline;
  text-underline-offset: 2px;
  font: inherit;
  cursor: pointer;
}
.article-body .mne-artiste-com__toggle.is-filled { color: #0b57d0; }
.article-body .mne-artiste-com__toggle:hover,
.article-body .mne-artiste-com__toggle:focus-visible {
  color: var(--mne-ink);
}
.article-body .mne-artiste-com__panel {
  margin-top: 0.75rem;
  padding: 0.85rem 0 0.25rem;
  border-top: 1px solid var(--mne-line);
  max-width: 42rem;
}
.article-body .mne-artiste-com__list .mne-comment { padding: 12px 0; }
.article-body .mne-artiste-com__form { margin-top: 0.75rem; }
@media (max-width: 575.98px) {
  .article-body .mne-article-galerie {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
  }
}
.mne-toc a { color: var(--mne-muted); display: block; }
.mne-toc a.active, .mne-toc a:hover { color: var(--mne-ink); }
/* Layout vide : repères */
.mne-slot { border: 1px dashed var(--mne-line-2); min-height: 120px; display: flex; align-items: center; justify-content: center; text-align: center; font-family: var(--mne-font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--mne-muted); line-height: 1.8; padding: 12px; }

/* ---- 7. Pied de page --------------------------------------------------- */
.mne-footer { border-top: 1px solid var(--mne-line-2); margin-top: auto; }
.mne-footer__inner { display: grid; grid-template-columns: 140px minmax(0, 1fr) auto; column-gap: 40px; padding: 22px 0 28px; font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--mne-muted); }
.mne-footer__quote { font-family: var(--mne-font-body); text-transform: none; letter-spacing: 0; color: var(--mne-ink-2); font-size: 13px; }
.mne-footer__links { text-align: right; line-height: 1.9; }
.mne-footer__links a { color: var(--mne-muted); }
.mne-footer__links a:hover { color: var(--mne-ink); }
.mne-footer__meta { margin: 0; padding: 0 0 22px; font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--mne-muted); }
@media (max-width: 767.98px) {
  .mne-footer__inner { grid-template-columns: 1fr; row-gap: 10px; }
  .mne-footer__links { text-align: left; display: flex; flex-wrap: wrap; column-gap: 14px; row-gap: 4px; }
  .mne-footer__links br { display: none; }
  /* Accueil : barre noire entre la citation et Mode d’emploi. */
  .mne-home .mne-footer__quote {
    display: block;
    padding-bottom: 1.5em;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--mne-line-2);
  }
}
html, body { min-height: 100%; }
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: var(--mne-bg);
}
.mne-shell {
  width: 100%;
  max-width: var(--mne-page-width);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
  min-width: 0;
  min-height: 100vh;
  background: var(--mne-bg);
}

/* ---- 8. Mobile / tablette ---------------------------------------------- */
@media (max-width: 575.98px) {
  .mne-entry__body { grid-template-columns: 1fr; }
  .mne-thumb { width: 100%; height: 160px; }
  .mne-cover { height: 180px; }
  .mne-entry__title { font-size: 19px; }
  .mne-kv > div { grid-template-columns: 1fr; row-gap: 2px; }
  .mne-comment-form { flex-direction: column; align-items: stretch; gap: 12px; }
  .mne-comment-form .btn { align-self: flex-start; }
  .mne-searchbox { flex-wrap: wrap; }
  .mne-themes a { font-size: 19px; }
  .mne-stats > div { padding: 16px; }
  .mne-stats__n { font-size: 28px; }
  .mne-brand__name { font-size: 18px; }
  .mne-tabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .mne-tabs::-webkit-scrollbar { display: none; }
  .mne-tabs a { white-space: nowrap; }
}

/* Cibles tactiles : 44 px minimum sur écrans sans survol */
@media (hover: none) and (pointer: coarse) {
  .mne-theme-toggle { width: 44px; height: 44px; font-size: 15px; }
  .mne-nav a { min-height: 44px; }
  .mne-chip, .mne-tag--box, .page-link, .mne-tabs a {
    min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
  }
  .btn, .btn-mne, .btn-mne-outline { min-height: 44px; }
  .mne-topbar__right a, .mne-footer__links a, .mne-toc a, .mne-sidebar__more, .mne-comment__actions a {
    display: inline-flex; align-items: center; min-height: 32px;
  }
  .mne-people > li a, .mne-stack__title { display: inline-flex; align-items: center; min-height: 32px; }
  .mne-search input { padding: 11px 0; }
  .mne-field .form-control { padding: 12px 0; }
}

/* Confort de lecture sur écrans tactiles étroits */
@media (max-width: 991.98px) {
  .mne-section { padding-top: 24px; padding-bottom: 32px; }
  .mne-display { font-size: clamp(2rem, 9vw, 3rem); }
  .mne-prose { font-size: 15px; }
}


/* ---- 9. Navigation mobile & accessibilité ------------------------------ */
.mne-skip { position: absolute; left: -9999px; top: 0; z-index: 30; }
.mne-skip:focus {
  left: 8px; top: 8px; background: var(--mne-ink); color: var(--mne-bg); padding: 10px 14px;
  font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  border-radius: var(--mne-radius);
}
.mne-burger {
  width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--mne-line-2); background: var(--mne-surface); color: var(--mne-ink);
  border-radius: var(--mne-radius); font-size: 13px; line-height: 1; cursor: pointer;
}
.mne-topbar__tools { display: flex; align-items: center; gap: 8px; }
.mne-burger .mne-icon-close { display: none; }
.mne-burger[aria-expanded="true"] .mne-icon-close { display: inline; }
.mne-burger[aria-expanded="true"] .mne-icon-open { display: none; }
/* Panneau du hamburger : ce que la barre supérieure ne peut plus afficher */
.mne-menu { border-top: 1px solid var(--mne-line); background: var(--mne-bg-2); }
.mne-menu__list { list-style: none; margin: 0; padding: 4px 0 8px; }
.mne-menu__list > li + li { border-top: 1px solid var(--mne-line); }
.mne-menu__list a { display: flex; align-items: center; min-height: 44px; color: var(--mne-ink-2); }
.mne-menu__list a:hover, .mne-menu__list a:focus { color: var(--mne-ink); }
.mne-menu__lang { display: flex; align-items: center; gap: 4px; min-height: 44px; color: var(--mne-muted); }
.mne-menu__lang a { display: inline; min-height: 0; }
@media (min-width: 992px) { .mne-menu { display: none !important; } }
/* Icônes : jamais sous 11 px */
.mne-mono i, .mne-mono-xs i, .mne-entry__meta i, .mne-comment__actions i { font-size: 11px; }

/* ---- 10. Utilitaires de gabarit (ex-styles en ligne) ------------------- */
.mne-grid--flush { row-gap: 0; }
.mne-rule-top { border-top: 1px solid var(--mne-line-2); }
.mne-traitement-barre {
  width: calc(100% - 150px);
  text-align: right;
  margin: 12px 0 14px;
}
.mne-rule-top + .mne-traitement-barre { margin-top: calc(20px + 1cm); }
.mne-traitement-barre .btn { text-decoration: none; }
.mne-traitements {
  width: calc(100% - 150px);
  box-sizing: border-box;
  background: #fff;
  color: #141414;
  font-size: calc(1em + 1px);
  padding: 30px;
  margin: calc(20px + 1cm) 0 22px;
  text-align: justify;
}
.mne-traitement-barre + .mne-traitements { margin-top: 0; }
.mne-filtre-apres-traitement { padding-top: 1cm; }
.mne-traitement > p { margin: 0; }
.mne-traitement + .mne-traitement { margin-top: 1em; }
.mne-traitement__suite { margin: 15px 0 0; padding: 15px 0; line-height: 1.55; }
.mne-lire-suite {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: #141414;
  text-decoration: none;
  cursor: pointer;
}
.mne-lire-suite__label {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.mne-lire-suite:hover, .mne-lire-suite:focus { color: #141414; }
.mne-saisie-traitement { padding-top: 28px; }
.mne-paires { display: flex; flex-direction: column; align-items: flex-start; gap: 0; margin-top: 22px; }
.mne-paire + .mne-paire { margin-top: 44px; }
.mne-paire { display: flex; gap: 28px; align-items: flex-start; }
.mne-paire__col { display: flex; flex-direction: column; gap: 8px; }
.mne-paire__legend { min-height: 1.4em; line-height: 1.4; }
.mne-paire__zone {
  width: 500px;
  height: 250px;
  box-sizing: border-box;
  padding: 8px;
  resize: none;
  font: inherit;
  color: var(--mne-ink);
  background: #fff;
  border: 1px solid var(--mne-line-2);
}
.mne-paire-plus {
  background: none;
  border: 0;
  padding: 0;
  min-width: 44px;
  height: 44px;
  font: inherit;
  font-size: 1.75rem;
  line-height: 1;
  color: var(--mne-ink);
  cursor: pointer;
}
.mne-saisie-traitement__envoyer { margin: 25px 0 0; }
.mne-stack.mne-stack--sous-barre { padding-top: 1.5cm; }
.mne-stack.mne-stack--sous-barre > li:first-child { padding-top: 0; }
.mne-rule-top--thin { border-top: 1px solid var(--mne-line); }
.mne-rule-bottom { border-bottom: 1px solid var(--mne-line); }
.mne-hero { padding-top: 48px; padding-bottom: 44px; border-bottom: 1px solid var(--mne-line-2); }
.mne-hero__copy { min-width: 0; }
.mne-hero__title {
  max-width: none;
  font-size: clamp(1.55rem, 2.4vw, 2.15rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.mne-hero__lead { max-width: 46em; font-size: 16px; }
.mne-hero__aside {
  align-self: start;
  padding-top: 8px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--mne-ink-2);
}
/* Lien d'action en petites capitales, sans soulignement (accueil : fidélité ; fidélisation : « Connectez-vous ») */
.mne-hero__aside a, .mne-link-caps {
  font-family: var(--mne-font-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--mne-accent);
  text-decoration: none;
}
.mne-hero__aside a { display: inline-block; margin-top: 6px; }
.mne-hero__aside a:hover, .mne-link-caps:hover { color: var(--mne-ink); }
.mne-intro { max-width: 560px; line-height: 1.55; }
.mne-measure { max-width: 640px; }
.mne-auth { max-width: 640px; }
.mne-mono-xs { font-family: var(--mne-font-mono); font-size: 10px; letter-spacing: .08em; }
.mne-link-u { text-decoration: underline; text-underline-offset: 3px; }
.mne-url-lg { font-size: 13px; text-decoration: underline; text-underline-offset: 4px; }
.mne-plain { text-transform: none; letter-spacing: 0; }
.mne-badge--flush { margin-left: -8px; }
.mne-rail__value { font-family: var(--mne-font-body); font-weight: 600; font-size: 14px; letter-spacing: 0; text-transform: none; }
.mne-rail__score { font-size: 28px; }
.mne-stack__title--lg { font-size: 16px; }
.mne-stats__n--sm { font-size: 30px; }
.mne-card__name { font-weight: 600; font-size: 15px; }
.mne-card__note { font-size: 11px; }
.mne-callout__title { font-size: 16px; margin-bottom: 4px; }
.mne-callout__text { font-size: 13px; }
.mne-notes { font-size: 13px; line-height: 1.45; color: var(--mne-ink-2); }
.mne-note { font-size: 14px; line-height: 1.5; }
.mne-check-label { font-size: 13px; line-height: 1.5; }
.mne-tag-note { font-family: var(--mne-font-mono); font-size: 11px; }
.mne-links-list { font-weight: 500; font-size: 14px; line-height: 1.35; }
.mne-slot--rail { min-height: 200px; }
.mne-slot--tall { min-height: 520px; }

/* ---- 11. Adaptations sous 1200 px -------------------------------------- */
@media (max-width: 1199.98px) {
  /* Nav principale : bande défilante d'une seule ligne, bord à bord */
  .mne-nav {
    flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain;
    scrollbar-width: none; -ms-overflow-style: none; scroll-snap-type: x proximity;
    margin-left: calc(var(--mne-page-pad) * -1); margin-right: calc(var(--mne-page-pad) * -1); padding-left: var(--mne-page-pad); padding-right: var(--mne-page-pad);
  }
  .mne-nav::-webkit-scrollbar { display: none; }
  .mne-nav > li { flex: none; }
  .mne-nav a { white-space: nowrap; scroll-snap-align: start; }
  /* Liste des contributions : plus de colonne implicite quand la grille est à 1 colonne */
  .mne-list--span2 { grid-column: auto; }
  .mne-grid--flush { row-gap: 16px; }
  /* Traitement : pleine largeur sans la réserve de la colonne de droite. */
  .mne-traitement-barre,
  .mne-traitements { width: 100%; }
}
@media (max-width: 991.98px) {
  .mne-hero { padding-top: 36px; padding-bottom: 36px; }
}
@media (max-width: 767.98px) {
  .mne-nav { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; }
}

.mne-portable .mne-chip,
.mne-portable .list-group-item,
.mne-portable .btn {
  min-height: 44px;
}
.mne-portable .form-control {
  min-height: 44px;
  font-size: 16px;
}

.mne-meta { max-width: 720px; margin: 0 auto; }
.mne-meta__field { margin: 0 auto 22px; text-align: center; }
.mne-meta__label { font-weight: 700; margin-bottom: 8px; }
.mne-meta__eye {
  border: 0; background: transparent; padding: 0 0 0 8px; cursor: pointer; color: inherit;
}
.mne-meta__value, .mne-meta__field > input.form-control, .mne-meta__field > textarea.form-control {
  width: min(100%, 28rem); min-height: 2.75rem; margin: 0 auto; text-align: left; resize: both; display: block;
}
.mne-meta__value--long {
  min-height: 8rem; max-height: 24rem; overflow-y: auto;
}
.mne-meta__hint { margin-top: 4px; color: #444; font-size: 14px; }
.mne-meta__value[readonly] { background: #f4f4f4; cursor: default; resize: none; }
.mne-meta-complete {
  width: min(100%, 28rem); margin: 4px auto 0; padding: 0; list-style: none; text-align: left;
  background: #fff; color: #141414; border: 1px solid #111; max-height: 180px; overflow: auto;
}
.mne-meta-complete[hidden] { display: none !important; }
.mne-meta-complete li { padding: 6px 10px; cursor: pointer; }
.mne-meta-complete li:hover, .mne-meta-complete li:focus { background: #d7d7d7; }
.mne-meta__plus {
  display: block; margin: 8px auto 0; border: 0; background: transparent;
  font-size: 40px; font-weight: 600; line-height: 1; cursor: pointer; padding: 0 .35rem;
}
.mne-meta-attributs { border-top: 1px solid #ccc; margin-top: 8px; padding-top: 4px; }
.mne-meta-plus-attribut { margin: 0 0 1.25rem; }
.mne-meta-plus-sous { margin: 0 0 8px calc(4.5rem + 2cm); text-align: center; }
.mne-meta-pick {
  display: flex; align-items: stretch; gap: 10px; width: min(640px, 100%);
  margin: 8px auto 12px; padding: 12px; background: #d9d9d9;
}
.mne-meta-pick[hidden] { display: none !important; }
.mne-meta-pick__tools { display: flex; flex-direction: column; gap: 8px; width: 132px; flex: none; }
.mne-meta-pick__tools input {
  width: 100%; background: #fff; color: #141414; border: 1px solid #111; caret-color: #141414;
}
.mne-meta-pick__tools input::placeholder { color: #5c5c5c; }
.mne-meta-pick__tools button, .mne-meta-pick__side button, .mne-meta-pick__choose {
  background: #111; color: #fff; border: 0; padding: 8px 6px; font-size: 12px; letter-spacing: .04em; cursor: pointer;
}
.mne-meta-pick__list {
  flex: 1; min-height: 150px; max-height: 180px; overflow: auto; margin: 0; padding: 6px 10px;
  list-style: none; background: #fff; color: #141414; border: 1px solid #111; text-align: left;
}
.mne-meta-pick__list li { padding: 2px 4px; cursor: pointer; color: #141414; }
.mne-meta-pick__list li.is-on { background: #d7d7d7; color: #141414; }
.mne-meta-pick__list li.is-prioritaire { font-weight: 700; }
.mne-meta-pick__side { display: flex; flex-direction: column; justify-content: center; gap: 8px; width: 120px; flex: none; }
.mne-meta-pick__side .js-sort.is-on { background: #fff; color: #141414; border: 1px solid #111; }
.mne-meta-pick__choose { width: 100%; }
.mne-meta-pair { border-top: 1px solid #ccc; padding-top: 16px; margin-top: 8px; }
.mne-meta-pair:first-child { border-top: 0; margin-top: 0; padding-top: 0; }
/* Sous-éléments plus à droite (~2 cm). Les champs larges sont centrés :
   il faut 4 cm de marge pour que le bord gauche avance de 2 cm.
   Sur un petit écran le champ prend toute la largeur, 2 cm suffisent. */
.mne-meta-sous { margin-left: calc(4.5rem + 2cm); }
.mne-meta-sous .mne-meta-sous { margin-left: 3rem; }
@media (min-width: 992px) {
  .mne-meta-sous { margin-left: calc(4.5rem + 4cm); }
  .mne-meta-plus-sous { margin-left: calc(4.5rem + 4cm); }
}
@media (max-width: 575.98px) {
  .mne-meta-sous { margin-left: 2cm; }
  .mne-meta-plus-sous { margin-left: 2cm; }
}

/* Notes : ligne sous les commentaires d'une fiche, fenêtre de l'éditeur (Jodit), section Notes */
.mne-notes-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem}
.mne-notes-ligne__item{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.4rem}
.mne-notes-ligne__vis{font-size:.8125rem;color:var(--mne-ink-2,#6c757d)}
.mne-notes-table tbody tr{cursor:pointer}
.mne-prose.fr-view img{max-width:100%;height:auto}

/* Encyclopédie (indexs.php) : 9 entrées sur une ligne, puis trois colonnes titrées */
.mne-encyclo{max-width:none}
.mne-encyclo__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem;margin-bottom:1.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--mne-line)}
.mne-encyclo__title{margin:0 0 .35rem}
.mne-encyclo__intro{margin:0;color:var(--mne-ink-2)}
.mne-encyclo__search{flex:1 1 26rem;flex-wrap:wrap;max-width:100%;margin:0}
.mne-encyclo__search .form-control{flex:1 1 17rem;width:auto;max-width:100%;min-width:min(100%,17rem)}
.mne-encyclo__grid{list-style:none;margin:0 0 2.25rem;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:.5rem}
.mne-encyclo__item{display:flex;flex-direction:column;align-items:center;gap:.35rem;height:100%;padding:.9rem .35rem .75rem;text-align:center;color:var(--mne-ink-2);text-decoration:none;border:1px solid var(--mne-line);background:var(--mne-surface);transition:color .15s,border-color .15s,background-color .15s}
.mne-encyclo__item:hover,.mne-encyclo__item:focus-visible{color:var(--mne-accent);border-color:var(--mne-accent);background:var(--mne-accent-soft)}
.mne-encyclo__icon{width:40px;height:40px;background-color:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.mne-encyclo__label{font-size:.95rem;line-height:1.2;color:var(--mne-ink)}
.mne-encyclo__item:hover .mne-encyclo__label{color:inherit}
.mne-encyclo__count{font-family:var(--mne-font-mono);font-size:.75rem;color:var(--mne-muted)}
.mne-encyclo__groups{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:1.5rem 2.5rem}
.mne-encyclo__subtitle{font-family:var(--mne-font-mono);font-size:.75rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--mne-muted);margin:0 0 .6rem;padding-bottom:.4rem;border-bottom:1px solid var(--mne-line)}
.mne-encyclo__list{list-style:none;margin:0;padding:0}
.mne-encyclo__group--wide .mne-encyclo__list{column-width:220px;column-gap:2rem}
.mne-encyclo__list li{break-inside:avoid}
.mne-encyclo__list a{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.3rem 0;color:var(--mne-accent);text-decoration:none;border-bottom:1px dotted var(--mne-line)}
.mne-encyclo__list a:hover,.mne-encyclo__list a:focus-visible{color:var(--mne-ink);border-bottom-color:var(--mne-accent)}
.mne-encyclo__n{font-family:var(--mne-font-mono);font-size:.75rem;color:var(--mne-muted);flex:none}
@media (max-width:991.98px){.mne-encyclo__groups{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.mne-encyclo__group--wide{grid-column:1/-1}}
@media (max-width:575.98px){.mne-encyclo__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mne-encyclo__groups{grid-template-columns:minmax(0,1fr)}.mne-encyclo__search{flex-basis:100%}}

/* Accueil : accroche dans l'espace sous les onglets (partial/header, navIntro) */
.mne-navbar__main { display: flex; flex-direction: column; min-width: 0; }
.mne-navbar__intro { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 18px 32px 18px 0; }
.mne-navbar__intro--jour { display: grid; grid-template-columns: minmax(0, 1fr) 400px; column-gap: 32px; align-items: center; padding-left: 0; padding-right: 0; }
.mne-navbar__intro-copy { flex: 1; min-width: 0; grid-column: 1; grid-row: 1; }
.mne-jour { flex: 0 0 400px; width: 400px; max-width: 100%; margin: 0; display: contents; }
.mne-jour > a { grid-column: 2; grid-row: 1; display: block; }
.mne-jour img { display: block; width: 400px; max-width: 100%; height: auto; }
.mne-jour__caption { grid-column: 2; grid-row: 2; margin-top: 8px; line-height: 1.35; }
.mne-jour__label { margin-right: 10px; font-family: var(--mne-font-mono); font-size: 11px; letter-spacing: .12em; color: var(--mne-muted); white-space: nowrap; }
.mne-jour__titre { color: var(--mne-ink); font-size: 15px; text-decoration: none; }
.mne-jour__titre:hover, .mne-jour__titre:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.mne-navbar__title { margin: 0 0 .45rem; font-size: clamp(1.3rem, 1.9vw, 1.8rem); line-height: 1.2; letter-spacing: -0.02em; font-weight: 600; color: var(--mne-ink); }
.mne-navbar__quote { margin: 0; font-size: 15px; color: var(--mne-ink-2); }
.mne-hero:has(.mne-hero__copy > .mne-searchbox:first-child) { padding-top: 28px; padding-bottom: 28px; }
@media (max-width: 1199.98px) {
  .mne-navbar__intro { padding: 16px 0; }
}
@media (max-width: 767.98px) {
  /* Téléphones : pas d’image du jour dans le bandeau. */
  .mne-navbar__intro--jour { display: flex; flex-direction: column; align-items: flex-start; }
  .mne-jour { display: none; }
}

/* Catégories › valeurs : éléments catégorisés et détail des couples attribut / valeur */
.mne-eav-hit__pairs { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .15rem 1rem; margin: .5rem 0 .35rem; font-size: .9rem; }
.mne-eav-hit__pairs dd.mne-enonce-sous,
.mne-eav-hit__pairs dd.mne-enonce-justifie { grid-column: 1 / -1; }
.mne-eav-hit__pairs dd.mne-annexe-gauche {
  color: var(--mne-accent);
  text-align: justify;
  overflow-wrap: break-word;
}
.mne-enonce-liste dd.mne-enonce-sous + dd.mne-enonce-sous { margin-top: 1em; }
.mne-eav-hit__pairs dt { font-weight: 400; color: var(--mne-muted); }
.mne-eav-hit__pairs dt a:hover { text-decoration: underline; text-underline-offset: 3px; }
.mne-fiche-cat a { color: inherit; text-decoration: none; }
.mne-fiche-cat a:hover, .mne-fiche-cat a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.mne-eav-hit__pairs dt.mne-eav-sous { padding-left: 1.5rem; }
.mne-eav-hit__pairs dd.mne-eav-saut { grid-column: 1 / -1; height: 1em; padding: 0; }
.mne-eav-hit__pairs dd { margin: 0; overflow-wrap: anywhere; }
.mne-item-enonces { margin-top: .65rem; }
.mne-item-enonces .mne-enonce-decal,
.mne-enonce-liste .mne-enonce-decal { margin-left: 1.5cm; }
@media (max-width: 767.98px) {
  /* Commentaires verts et catégorisations : plus de retrait 1,5 cm (pleine largeur). */
  .mne-enonce-liste .mne-enonce-justifie,
  .mne-item-enonces .mne-enonce-decal,
  .mne-enonce-liste .mne-enonce-decal {
    margin-left: 0;
  }
}
/* Attribut et valeur restent sur une ligne aussi sur téléphone (Lieu | Chambéry). */
.mne-cat-item__citation { margin: .2rem 0; font-style: italic; color: var(--mne-ink-2); }
.mne-cat-item__pairs { color: var(--mne-accent); }

/* Catégories : attributs et sous-éléments en boutons, taille selon l'usage */
.mne-attr-tree { column-width: 230px; column-gap: 1.5rem; }
.mne-attr-tree__group { break-inside: avoid; margin-bottom: 1.1rem; padding-top: .6rem; border-top: 1px solid var(--mne-line); }
.mne-attr-tree__children { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .45rem; }
.mne-attr, .mne-attr-sub { display: inline-flex; align-items: baseline; gap: .35rem; text-decoration: none; border: 1px solid var(--mne-line); background: var(--mne-surface); color: var(--mne-accent); line-height: 1.25; transition: border-color .15s, background-color .15s; overflow-wrap: anywhere; }
.mne-attr:hover, .mne-attr-sub:hover, .mne-attr:focus-visible, .mne-attr-sub:focus-visible { border-color: var(--mne-accent); background: var(--mne-accent-soft); color: var(--mne-accent); }
.mne-attr { font-weight: 600; color: var(--mne-ink); }
.mne-attr--1 { font-size: .85rem; padding: .25rem .55rem; }
.mne-attr--2 { font-size: .95rem; padding: .3rem .65rem; }
.mne-attr--3 { font-size: 1.1rem; padding: .35rem .75rem; }
.mne-attr--4 { font-size: 1.3rem; padding: .4rem .85rem; border-color: var(--mne-ink); }
.mne-attr-sub--1 { font-size: .75rem; padding: .15rem .45rem; }
.mne-attr-sub--2 { font-size: .8125rem; padding: .2rem .5rem; }
.mne-attr-sub--3 { font-size: .9rem; padding: .22rem .55rem; font-weight: 600; }
.mne-attr__n { font-size: .75em; font-weight: 400; color: var(--mne-muted); }
/* Bandeau des pages hors menu : citation au hasard */
.mne-navbar__intro--citation { margin: 0; }
.mne-navbar__citation { margin: 0 0 .35rem; font-size: clamp(1rem, 1.35vw, 1.2rem); line-height: 1.35; font-style: italic; }
.mne-navbar__citation a { color: var(--mne-ink); text-decoration: none; }
.mne-navbar__citation a:hover { color: var(--mne-accent); }
/* Colonne de gauche : la rubrique ramène à son index */
.mne-rail__link { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; transition: color .15s, border-color .15s; }
.mne-rail__link:hover, .mne-rail__link:focus-visible { color: var(--mne-accent); border-bottom-color: currentColor; }

/* ---- 10. Accessibilité WCAG 2.2 AA (docs/ACCESSIBILITE.md) ------------- */
/* 1.4.10 : à 320 px, une adresse ou un mot trop long se coupe au lieu de faire défiler la page (sans effet ailleurs). */
a, code { overflow-wrap: anywhere; }
.mne-page :is(.small, .list-group-item) { overflow-wrap: break-word; }
.d-flex > code { min-width: 0; }
.mne-stats a, .mne-stats__l { overflow-wrap: normal; } /* étiquettes des compteurs : un mot ne se coupe pas */
/* 1.4.3 : rouge et jaune de Bootstrap remplacés par des teintes lisibles sur les fonds du site */
.btn-outline-danger, .btn-outline-warning {
  --bs-btn-color: var(--mne-c); --bs-btn-border-color: var(--mne-c);
  --bs-btn-hover-bg: var(--mne-c); --bs-btn-hover-border-color: var(--mne-c); --bs-btn-hover-color: var(--mne-bg);
  --bs-btn-active-bg: var(--mne-c); --bs-btn-active-border-color: var(--mne-c); --bs-btn-active-color: var(--mne-bg);
}
.btn-outline-danger { --mne-c: var(--mne-danger); }
.btn-outline-warning { --mne-c: var(--mne-warning); }
/* 1.4.3 : en thème sombre, les couleurs écrites en dur dans les anciens articles (bleu, noir…) deviennent illisibles */
[data-theme="dark"] .article-body [style*="color"] { color: inherit !important; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .article-body [style*="color"] { color: inherit !important; }
}
/* 2.5.8 : cibles d'au moins 24 px de haut ; rembourrage compensé par une marge négative (rien ne bouge à l'écran) */
.mne-cloud { row-gap: 8px; box-sizing: border-box; } /* cinq lignes de même hauteur : Autres thèmes ne décale plus le bloc */
.mne-cloud a { line-height: 28px; min-height: 28px; padding-block: 0; margin-block: 0; }
.mne-footer__links { line-height: 2.2; }
.mne-footer__links a { padding-block: 5px; }
a.mne-badge { padding-block: 3px; margin-bottom: 2px; }
.mne-cloud .is-3, .mne-cloud .is-4 { padding-block: 0; margin-block: 0; }
@media not ((hover: none) and (pointer: coarse)) { /* écrans tactiles : règles à 32-44 px plus haut */
  .mne-cloud-reload, .mne-sidebar__more { min-height: 24px; }
  dl > :is(dt, dd) > a { padding-block: 4px; }
  main ul:not([class*="mne-"]):not(.nav):not(.pagination) > li { line-height: 1.65; }
  main ul:not([class*="mne-"]):not(.nav):not(.pagination) > li > a:not([class]) { padding-block: 4px; }
  /* titre d'une liste : zone étendue vers le haut ; adresse en dessous : vers le bas (pas de chevauchement) */
  .mne-stack__title { padding-top: 8px; }
  .mne-stack__meta > a { padding-bottom: 10px; }
  dl > dt + dd { margin-top: 2px; }
}
/* cases à cocher et boutons radio : 24 px (les interrupteurs .form-switch gardent leur taille) */
.form-check:not(.form-switch) .form-check-input, .table .form-check-input { width: 1.5rem; height: 1.5rem; margin-top: 0; vertical-align: middle; }
.form-check:not(.form-switch) { display: flex; align-items: center; gap: .5rem; padding-left: 0; }
.form-check:not(.form-switch) .form-check-input { float: none; margin-left: 0; flex: none; }
/* 1.4.1 : un lien au milieu du texte se distingue autrement que par sa couleur (soulignement fin, plein au survol) */
:is(p, td, figcaption, .small, .text-muted) > a:not([class]),
:is(.markdown-body, .mne-prose) :is(li, h2, h3, h4) > a:not([class]) {
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
  text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
}
:is(p, td, figcaption, .small, .text-muted) > a:not([class]):hover,
:is(.markdown-body, .mne-prose) :is(li, h2, h3, h4) > a:not([class]):hover { text-decoration-color: currentColor; }
/* 1.4.3 : vert « succès » de Bootstrap (#198754, 3,9:1) remplacé par l'accent du site */
:root { --bs-success-rgb: 58, 112, 53; }
[data-theme="dark"] { --bs-success-rgb: 143, 194, 122; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --bs-success-rgb: 143, 194, 122; } }
.btn-outline-success { --mne-c: var(--mne-accent);
  --bs-btn-color: var(--mne-c); --bs-btn-border-color: var(--mne-c);
  --bs-btn-hover-bg: var(--mne-c); --bs-btn-hover-border-color: var(--mne-c); --bs-btn-hover-color: var(--mne-bg);
  --bs-btn-active-bg: var(--mne-c); --bs-btn-active-border-color: var(--mne-c); --bs-btn-active-color: var(--mne-bg); }
/* Œil « afficher le mot de passe » (mneseek-password-toggle.js) : dans le champ, à droite ; cible de 28 px */
.mne-pwd-wrap { position: relative; display: block; width: 100%; }
.mne-pwd-wrap input[type="password"], .mne-pwd-wrap input[type="text"] { padding-right: 2.6rem; }
.mne-pwd-toggle {
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0;
  border: 0; background: transparent; color: var(--mne-muted); cursor: pointer; line-height: 0; border-radius: var(--mne-radius);
}
.mne-pwd-toggle:hover, .mne-pwd-toggle:focus-visible { color: var(--mne-accent); }

/* ---- 11. Éditeur Jodit (notes, page Le projet) ------------------------ */
/* La zone de saisie Jodit est blanche et n'impose pas sa couleur de texte.
   En thème sombre, l'encre claire héritée du site y devient illisible.
   Fond et texte suivent le thème ; la barre d'outils garde ses icônes d'origine. */
body .jodit-container:not(.jodit_inline) .jodit-workplace,
body .jodit-container:not(.jodit_inline) .jodit-wysiwyg {
  background-color: var(--mne-surface);
  color: var(--mne-ink);
  caret-color: var(--mne-ink);
}
body .jodit-placeholder { color: var(--mne-muted); }
body .jodit-dialog__panel,
body .jodit-popup__content {
  background-color: var(--mne-surface);
  color: var(--mne-ink);
  --jd-color-icon: var(--mne-ink);
  --jd-color-text: var(--mne-ink);
  --jd-color-text-icons: var(--mne-ink);
  --jd-color-border: var(--mne-line-2);
  --jd-color-background-default: var(--mne-surface);
}
body .jodit-ui-input__input,
body .jodit-ui-text-area__input,
body .jodit-ui-select__input {
  color: var(--mne-ink);
  background-color: var(--mne-surface);
}
