/* SPDX-FileCopyrightText: 2026 FTW.group Sàrl */
/* SPDX-License-Identifier: AGPL-3.0-or-later */
/* ==========================================================================
   SYSTEMIC.CLUB — module « Actualités » : liste publique, page d’un article, bloc
   du fil, « Mes articles », administration et formulaire de rédaction.
   Reprend les composants de systemic.css (boutons, champs, pastilles, étiquettes,
   état vide, en-tête de page) et ses jetons : aucune couleur écrite en dur, donc
   le thème sombre suit de lui-même. Paliers : ≤ 640 px, 641–1023 px, ≥ 1024 px.
   ========================================================================== */

@layer pages {
  /* ------------------------------------------------------------------ Éléments communs */
  .etiquette--membres { border-color: color-mix(in srgb, var(--attention) 40%, var(--filet)); color: var(--attention); }

  /* Textes saisis (titres, résumés, noms, adresses web collées) : un mot plus long que la
     colonne se coupe au lieu de faire déborder la page. « anywhere » compte aussi dans la
     largeur minimale des colonnes de grille, ce que « break-word » ne fait pas. */
  .carte-actualite__titre, .carte-actualite__resume, .carte-actualite__signature,
  .article__titre, .article__chapeau, .article__signature > span, .article__corps,
  .ligne-article__titre, .ligne-article__resume, .ligne-article__meta > span,
  .ligne-a-lire__texte > h3, .ligne-a-lire__texte > p, .fichiers-choisis { overflow-wrap: anywhere; }

  /* Visuel d’un article : image de couverture, ou cercle vivant du club sur un fond de panneau */
  .visuel-actualite { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--rayon-surface); background: var(--panneau); }
  .visuel-actualite--club { display: grid; place-items: center; border: 1px solid var(--filet); background: radial-gradient(120% 90% at 18% 12%, var(--selection), var(--panneau) 72%); color: var(--filet-appuye); }
  .visuel-actualite--club .marque { width: 30%; max-width: 112px; height: auto; }

  .vide--actualites { gap: var(--e3); padding: var(--e7) 0; }
  .vide--actualites > .icone { width: 28px; height: 28px; }
  .vide__titre { color: var(--encre); font-family: var(--police-titre); font-size: var(--titre-section); line-height: 1.2; -webkit-text-stroke: var(--contour-titre) currentColor; }
  .vide--actualites .bouton { margin-top: var(--e2); }

  /* ------------------------------------------------------------------ Liste publique */
  .actualites { width: min(100%, calc(var(--largeur-page) + 2 * var(--gouttiere))); margin-inline: auto; padding: var(--e7) var(--gouttiere) var(--e8); }
  .actualites__entete { margin-bottom: var(--e7); }
  .actualites__entete .titre-affiche > span { display: block; }
  .actualites__acces { display: flex; gap: var(--e2); align-items: flex-start; margin-top: var(--e3); color: var(--discret); font-size: var(--taille-petite); }
  .actualites__acces .icone { width: 16px; height: 16px; margin-top: 2px; }
  .actualites__acces a { color: var(--encre); font-weight: 500; }

  .cartes-actualites { border-top: 1px solid var(--filet-appuye); }
  .carte-actualite { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e4); padding: var(--e5) 0; border-bottom: 1px solid var(--filet); }
  .carte-actualite__visuel { order: -1; overflow: hidden; border-radius: var(--rayon-surface); }
  .carte-actualite__visuel .visuel-actualite { transition: scale var(--duree-lente) var(--courbe); }
  .carte-actualite__texte { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e3); align-content: start; min-width: 0; }
  .carte-actualite__meta { display: flex; flex-wrap: wrap; gap: var(--e2) var(--e3); align-items: center; color: var(--discret); font-size: var(--taille-petite); }
  .carte-actualite__titre { font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); line-height: 1.18; overflow-wrap: break-word; }
  .carte-actualite__titre a { color: var(--encre); text-decoration: none; }
  /* Toute la carte mène à l’article, par le seul lien du titre */
  .carte-actualite__titre a::after { content: ""; position: absolute; z-index: 1; inset: 0; }
  .carte-actualite__titre a:focus-visible { outline: none; }
  .carte-actualite:has(.carte-actualite__titre a:focus-visible) { outline: 2px solid var(--focus); outline-offset: 4px; border-radius: var(--rayon-surface); }
  .carte-actualite__resume { max-width: 62ch; color: var(--texte); }
  .carte-actualite__signature { display: inline-flex; align-items: center; gap: var(--e3); }
  .carte-actualite__signature::before { content: ""; width: 1px; height: 12px; background: var(--filet-appuye); }
  .carte-actualite__lire { display: inline-flex; justify-self: start; align-items: center; gap: var(--e2); margin-top: var(--e1); color: var(--encre); font-size: var(--taille-petite); font-weight: 500; }
  .carte-actualite__lire .icone { width: 16px; height: 16px; transition: translate var(--duree) var(--courbe); }
  .carte-actualite:hover .carte-actualite__titre a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .16em; }
  .carte-actualite:hover .carte-actualite__lire .icone { translate: 2px -2px; }
  .carte-actualite:hover .carte-actualite__visuel .visuel-actualite { scale: 1.025; }

  @media (width >= 641px) {
    .carte-actualite { grid-template-columns: minmax(0, 1fr) minmax(200px, 38%); gap: var(--e6); padding: var(--e6) 0; align-items: start; }
    .carte-actualite__visuel { order: 0; }
    /* À la une : l’image au-dessus, sur toute la largeur */
    .carte-actualite--une { grid-template-columns: minmax(0, 1fr); gap: var(--e5); }
    .carte-actualite--une .carte-actualite__visuel { order: -1; }
    .carte-actualite--une .visuel-actualite { aspect-ratio: 16 / 9; }
  }
  @media (width >= 1024px) {
    .carte-actualite { grid-template-columns: minmax(0, 1fr) 400px; gap: var(--e7); }
    .carte-actualite--une { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--e7); align-items: center; padding: var(--e7) 0; }
    .carte-actualite--une .carte-actualite__visuel { order: 0; }
    .carte-actualite--une .visuel-actualite { aspect-ratio: 3 / 2; }
    .carte-actualite--une .carte-actualite__titre { font-size: clamp(2rem, 1.3rem + 1.1vw, 2.5rem); line-height: 1.1; letter-spacing: var(--approche-titre); }
    .carte-actualite--une .carte-actualite__resume { font-size: var(--taille-chapeau); }
  }

  .pagination-actualites { display: flex; flex-wrap: wrap; gap: var(--e3); align-items: center; justify-content: space-between; margin-top: var(--e6); }
  .pagination-actualites__position { flex: 1 1 auto; color: var(--discret); font-size: var(--taille-petite); text-align: center; }
  .pagination-actualites [rel="prev"] { order: -1; }

  /* ------------------------------------------------------------------ Page d’un article */
  .article { width: min(100%, calc(var(--largeur-page) + 2 * var(--gouttiere))); margin-inline: auto; padding: var(--e5) var(--gouttiere) var(--e8); }
  .article__retour { margin-bottom: var(--e5); }
  .apercu-article { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--e3); align-items: start; max-width: var(--largeur-etroite); margin-bottom: var(--e6); padding: var(--e4); border: 1px solid color-mix(in srgb, var(--info) 35%, transparent); border-radius: var(--rayon); background: var(--info-doux); color: var(--info); font-size: var(--taille-petite); }
  .apercu-article > .icone { width: 18px; height: 18px; margin-top: 2px; }
  .apercu-article strong { color: inherit; }
  .apercu-article .bouton { grid-column: 2; justify-self: start; }
  @media (width >= 641px) {
    .apercu-article { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; }
    .apercu-article .bouton { grid-column: auto; }
  }
  .article__entete { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e3); max-width: var(--largeur-etroite); }
  .article__date { display: flex; flex-wrap: wrap; gap: var(--e2) var(--e3); align-items: center; }
  .article__titre { margin-top: var(--e1); overflow-wrap: break-word; }
  .article__chapeau { font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); }
  .article__signature { display: flex; flex-wrap: wrap; gap: var(--e2) var(--e4); align-items: center; padding-top: var(--e2); color: var(--discret); font-size: var(--taille-petite); }
  .article__signature > span:first-child { color: var(--encre); font-weight: 500; }
  .article__signature .lien-fleche { min-height: var(--hauteur-controle); }
  .article__visuel { margin: var(--e6) 0 0; }
  .article__image { width: 100%; height: auto; max-height: min(72vh, 720px); object-fit: cover; border-radius: var(--rayon-surface); background: var(--panneau); }
  .article__contenu { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e6); margin-top: var(--e6); padding-top: var(--e6); border-top: 1px solid var(--filet); }
  .article__corps { font-size: var(--taille-chapeau); line-height: 1.7; overflow-wrap: break-word; }
  @media (width >= 1024px) {
    .article__contenu--documents { grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: var(--e8); align-items: start; }
    .article__contenu--documents .documents-article { position: sticky; top: calc(72px + var(--e5)); }
  }

  .documents-article { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e3); align-content: start; }
  .documents-article__titre { display: flex; gap: var(--e2); align-items: center; color: var(--encre); font-family: var(--police); font-size: var(--taille-xs); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; -webkit-text-stroke: 0; }
  .documents-article__titre .icone { width: 16px; height: 16px; }
  .documents-article__liste { display: grid; gap: var(--e2); }
  .document { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--e3); align-items: center; min-height: 60px; padding: var(--e3) var(--e4); border: 1px solid var(--filet); border-radius: var(--rayon); background: var(--panneau); color: var(--encre); text-decoration: none; transition: border-color var(--duree-vive) var(--courbe), background-color var(--duree-vive) var(--courbe); }
  .document:hover { border-color: var(--bordure-controle); background: var(--selection); }
  .document__icone { width: 22px; height: 22px; color: var(--discret); }
  .document__texte { display: grid; gap: 2px; min-width: 0; }
  .document__nom { overflow-wrap: anywhere; font-size: var(--taille-petite); font-weight: 500; line-height: 1.35; }
  .document__meta { color: var(--discret); font-size: var(--taille-xs); }
  .document__action { width: 18px; height: 18px; color: var(--discret); transition: translate var(--duree) var(--courbe); }
  .document:hover .document__action { color: var(--encre); translate: 0 2px; }
  .article__pied { margin-top: var(--e7); padding-top: var(--e5); border-top: 1px solid var(--filet); }

  .actualite-introuvable { padding-block: var(--e8); }

  /* ------------------------------------------------------------------ Fil des membres : « La vie du club » */
  .fil-actualites { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e4); margin-top: var(--e7); padding-top: var(--e5); border-top: 1px solid var(--filet-appuye); }
  .fil-actualites__entete { display: flex; flex-wrap: wrap; gap: var(--e3); align-items: end; justify-content: space-between; }
  .fil-actualites__entete .lien-fleche { min-height: var(--hauteur-controle); }
  .fil-actualites__vide { padding: var(--e5) 0; border-block: 1px solid var(--filet); color: var(--discret); }
  .ligne-a-lire { position: relative; display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: var(--e4); padding: var(--e4) 0; border-bottom: 1px solid var(--filet); }
  .ligne-a-lire__texte { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e1); align-content: start; min-width: 0; }
  .ligne-a-lire h3 a { color: var(--encre); text-decoration: none; }
  .ligne-a-lire h3 a::after { content: ""; position: absolute; z-index: 1; inset: 0; }
  .ligne-a-lire h3 a:focus-visible { outline: none; }
  .ligne-a-lire:has(h3 a:focus-visible) { outline: 2px solid var(--focus); outline-offset: 4px; border-radius: var(--rayon); }
  .ligne-a-lire:hover h3 a { text-decoration: underline; text-decoration-thickness: 1px; }
  .ligne-a-lire__texte > p { color: var(--texte); font-size: var(--taille-petite); }
  .ligne-a-lire__texte > .ligne-a-lire__meta { color: var(--discret); font-size: var(--taille-xs); }
  .ligne-a-lire__lire { display: inline-flex; align-items: center; gap: 6px; margin-top: var(--e1); color: var(--encre); font-size: var(--taille-petite); font-weight: 500; }
  .ligne-a-lire__lire .icone { width: 14px; height: 14px; }
  @media (width >= 641px) { .ligne-a-lire { grid-template-columns: 160px minmax(0, 1fr); gap: var(--e5); } }

  /* ------------------------------------------------------------------ « Mes articles » et administration */
  .entete-redaction { display: flex; flex-wrap: wrap; gap: var(--e4) var(--e6); align-items: end; justify-content: space-between; margin-bottom: var(--e6); }
  .entete-redaction > .entete-page { margin-bottom: 0; }

  .filtres-actualites { max-width: 100%; margin-bottom: var(--e5); overflow-x: auto; overscroll-behavior-inline: contain; }
  .filtres-actualites ul { display: inline-flex; gap: 2px; padding: 2px; border: 1px solid var(--filet); border-radius: var(--rayon); }
  .filtres-actualites a { display: inline-flex; align-items: center; gap: var(--e2); min-height: 44px; padding: 0 var(--e4); border-radius: 4px; color: var(--texte); font-size: var(--taille-petite); font-weight: 500; text-decoration: none; white-space: nowrap; }
  .filtres-actualites a:hover { background: var(--survol); color: var(--encre); }
  .filtres-actualites a[aria-current] { background: var(--selection); color: var(--encre); }
  .filtres-actualites__nombre { min-width: 1.75em; padding: 0 6px; border-radius: 999px; background: var(--panneau); color: var(--discret); font-size: var(--taille-xs); font-variant-numeric: tabular-nums; line-height: 20px; text-align: center; }
  .filtres-actualites a[aria-current] .filtres-actualites__nombre { background: var(--fond); color: var(--encre); }
  @media (width <= 640px) {
    .filtres-actualites ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .filtres-actualites a { justify-content: space-between; }
  }

  .lignes-articles { border-top: 1px solid var(--filet-appuye); }
  .ligne-article { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: var(--e4); padding: var(--e5) 0; border-bottom: 1px solid var(--filet); }
  .ligne-article__texte { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e2); align-content: start; min-width: 0; }
  .ligne-article__etats { display: flex; flex-wrap: wrap; gap: var(--e2); }
  .ligne-article__titre { font-size: var(--titre-petit); line-height: 1.25; overflow-wrap: break-word; }
  .ligne-article__resume { max-width: 70ch; color: var(--texte); font-size: var(--taille-petite); }
  .ligne-article__resume--vide { color: var(--discret); font-style: italic; }
  .ligne-article__meta { display: flex; flex-wrap: wrap; gap: var(--e1) var(--e4); color: var(--discret); font-size: var(--taille-xs); }
  .ligne-article__meta > span { display: inline-flex; gap: 4px; align-items: center; }
  .ligne-article__meta .icone { width: 14px; height: 14px; }
  .ligne-article__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--e2); align-items: center; }
  .ligne-article__actions form { display: contents; }
  @media (width >= 641px) {
    .ligne-article { grid-template-columns: 160px minmax(0, 1fr); gap: var(--e3) var(--e5); }
    .ligne-article__actions { grid-column: 2; }
  }
  @media (width >= 1024px) {
    .ligne-article { grid-template-columns: 176px minmax(0, 1fr) auto; align-items: start; }
    .ligne-article__actions { grid-column: 3; flex-direction: column; align-items: stretch; min-width: 13rem; }
    .ligne-article__actions .bouton { justify-content: flex-start; }
  }

  /* ------------------------------------------------------------------ Formulaire de rédaction */
  .retour-redaction { margin: calc(-1 * var(--e3)) 0 var(--e3); }
  .redaction { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e6); margin-top: var(--e5); }
  .redaction__principal { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e6); align-content: start; min-width: 0; }
  .redaction__texte { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e5); }
  .champ--titre-article input { min-height: 56px; font-family: var(--police-titre); font-size: clamp(1.125rem, 1rem + .6vw, 1.375rem); letter-spacing: var(--approche-section); }
  .champ--corps textarea { min-height: 24rem; line-height: 1.65; }
  .compteur { justify-self: end; color: var(--discret); font-size: var(--taille-xs); font-variant-numeric: tabular-nums; }
  .compteur--limite { color: var(--attention); font-weight: 600; }

  .aide-mise-en-forme { border: 1px solid var(--filet); border-radius: var(--rayon); background: var(--panneau); font-size: var(--taille-petite); }
  .aide-mise-en-forme > summary { display: flex; gap: var(--e2); align-items: center; min-height: var(--hauteur-controle); padding: 0 var(--e4); color: var(--encre); font-weight: 500; list-style: none; cursor: pointer; }
  .aide-mise-en-forme > summary::-webkit-details-marker { display: none; }
  .aide-mise-en-forme > summary .icone { width: 16px; height: 16px; }
  .aide-mise-en-forme[open] > summary { border-bottom: 1px solid var(--filet); }
  .aide-mise-en-forme dl { display: grid; gap: var(--e2); padding: var(--e3) var(--e4); }
  .aide-mise-en-forme dl > div { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: var(--e3); align-items: baseline; }
  .aide-mise-en-forme dt code { padding: 1px 6px; border-radius: var(--rayon-xs); background: var(--selection); color: var(--encre); white-space: nowrap; }
  .aide-mise-en-forme dd { color: var(--texte); }
  .aide-mise-en-forme > p { padding: 0 var(--e4) var(--e3); color: var(--discret); }

  .redaction__section { display: grid; gap: var(--e4); padding-top: var(--e5); border-top: 1px solid var(--filet-appuye); }
  .redaction__section > h2 { font-size: var(--titre-section); }

  .couverture { display: grid; gap: var(--e4); }
  .couverture__image, .couverture__vide { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--rayon-surface); }
  .couverture__champs { display: grid; gap: var(--e4); align-content: start; min-width: 0; }
  .couverture__etat { display: flex; gap: var(--e2); align-items: flex-start; color: var(--discret); font-size: var(--taille-petite); }
  .couverture__etat .icone { width: 16px; height: 16px; margin-top: 2px; }
  @media (width >= 641px) { .couverture { grid-template-columns: minmax(0, 240px) minmax(0, 1fr); align-items: start; } }

  /* Champ de fichier : zone à filet tireté, bouton du sélecteur aux couleurs du site */
  .redaction .champ input[type="file"] { width: 100%; min-height: 60px; padding: var(--e2); border: 1px dashed var(--bordure-controle); border-radius: var(--rayon); background: var(--champ); color: var(--texte); font-size: var(--taille-petite); cursor: pointer; }
  .redaction .champ input[type="file"]:hover { border-color: var(--encre); background: var(--survol); }
  .redaction .champ input[type="file"]:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
  .redaction .champ input[type="file"]::file-selector-button { min-height: 42px; margin-right: var(--e3); padding: 0 var(--e4); border: 1px solid var(--bordure-controle); border-radius: var(--rayon); background: var(--fond); color: var(--encre); font: inherit; font-weight: 500; cursor: pointer; }
  .redaction .champ--erreur input[type="file"] { border-color: var(--danger); }
  .fichiers-choisis { padding: var(--e3) var(--e4); border: 1px solid var(--filet); border-radius: var(--rayon); background: var(--panneau); color: var(--encre); font-size: var(--taille-petite); white-space: pre-line; }
  .fichiers-choisis--erreur { border-color: color-mix(in srgb, var(--danger) 35%, transparent); background: var(--danger-doux); color: var(--danger); }
  /* Vide, la zone reste dans la page (sans rien montrer) pour que les lecteurs d’écran annoncent ce qui s’y inscrit. */
  .fichiers-choisis:empty { margin-top: calc(-1 * var(--e4)); padding: 0; border: 0; background: none; }

  .pieces-jointes { display: grid; gap: var(--e2); }
  .pieces-jointes__vide { color: var(--discret); font-size: var(--taille-petite); }
  .piece-jointe { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--e3); align-items: center; min-height: 60px; padding: var(--e1) var(--e2) var(--e1) var(--e4); border: 1px solid var(--filet); border-radius: var(--rayon); background: var(--panneau); transition: background-color var(--duree-vive) var(--courbe), border-color var(--duree-vive) var(--courbe); }
  .piece-jointe--attente { border-style: dashed; border-color: var(--bordure-controle); }
  .piece-jointe__icone { width: 20px; height: 20px; color: var(--discret); }
  .piece-jointe__texte { display: grid; gap: 2px; min-width: 0; }
  .piece-jointe__nom { overflow-wrap: anywhere; color: var(--encre); font-size: var(--taille-petite); font-weight: 500; }
  .piece-jointe__meta { color: var(--discret); font-size: var(--taille-xs); }
  .piece-jointe__retirer { display: inline-flex; align-items: center; gap: var(--e2); border-radius: var(--rayon); }
  .piece-jointe__retirer:hover { background: var(--survol); }
  .piece-jointe__retirer input { flex: none; width: 20px; height: 20px; margin: 0 0 0 var(--e3); accent-color: var(--danger); cursor: pointer; }
  .piece-jointe__retirer label { display: inline-flex; align-items: center; min-height: var(--hauteur-controle); padding-right: var(--e3); color: var(--texte); font-size: var(--taille-petite); cursor: pointer; }
  .piece-jointe:has(.piece-jointe__retirer input:checked) { border-color: color-mix(in srgb, var(--danger) 40%, var(--filet)); background: var(--danger-doux); }
  .piece-jointe:has(.piece-jointe__retirer input:checked) .piece-jointe__nom { color: var(--discret); text-decoration: line-through; }

  .redaction__cote { display: grid; gap: var(--e4); align-content: start; min-width: 0; padding: var(--e5); border: 1px solid var(--filet); border-radius: var(--rayon-surface); background: var(--panneau); }
  .redaction__cote > h2 { font-size: var(--titre-section); }
  .redaction__etat { display: grid; border-top: 1px solid var(--filet); }
  .redaction__etat > div { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: var(--e3); align-items: center; padding: var(--e2) 0; border-bottom: 1px solid var(--filet); font-size: var(--taille-petite); }
  .redaction__etat dt { color: var(--discret); }
  .redaction__etat dd { display: flex; flex-wrap: wrap; gap: var(--e1) var(--e2); align-items: center; min-width: 0; color: var(--encre); overflow-wrap: anywhere; }
  .redaction__etat code { font-size: var(--taille-xs); }
  .redaction__fige { display: inline-flex; gap: 4px; align-items: center; color: var(--discret); font-size: var(--taille-xs); }
  .redaction__fige .icone { width: 12px; height: 12px; }
  /* Jour et heure côte à côte : chaque champ garde sa hauteur (une erreur sous l’un n’étire pas
     l’autre), et libellés, aides, champs et erreurs s’alignent d’une colonne à l’autre. */
  .redaction__programmation { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 0 var(--e3); align-items: start; }
  .redaction__programmation > .champ { align-content: start; }
  @supports (grid-template-rows: subgrid) {
    .redaction__programmation { grid-template-rows: repeat(4, auto); }
    .redaction__programmation > .champ { grid-row: span 4; grid-template-rows: subgrid; }
  }
  .pieces-jointes__lecteurs > span { display: flex; gap: var(--e2); align-items: flex-start; color: var(--discret); font-size: var(--taille-petite); }
  .pieces-jointes__lecteurs .icone { flex: none; width: 16px; height: 16px; margin-top: 2px; }
  .redaction__actions { display: grid; gap: var(--e2); padding-top: var(--e1); }
  .redaction__voir { display: flex; justify-content: center; }
  .redaction__voir .lien-fleche { min-height: var(--hauteur-controle); }
  .redaction__autres { display: grid; gap: var(--e2); padding-top: var(--e4); border-top: 1px solid var(--filet); }
  .redaction__autres .bouton { justify-content: center; }

  @media (width >= 1024px) {
    .redaction { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: var(--e7); align-items: start; }
    /* La colonne « Publication » reste à portée pendant l’écriture d’un long texte */
    .redaction__cote { position: sticky; top: calc(var(--hauteur-barre) + var(--e4)); max-height: calc(100dvh - var(--hauteur-barre) - 2 * var(--e4)); overflow-y: auto; overscroll-behavior: contain; }
  }
}
