/* SPDX-FileCopyrightText: 2026 FTW.group Sàrl */
/* SPDX-License-Identifier: AGPL-3.0-or-later */
/* ==========================================================================
   SYSTEMIC.CLUB — module « Adhésion » : parcours d’adhésion (/adhesion), cotisation et
   parrainage dans l’espace, candidatures et parrainages dans l’administration.
   Classes propres au module, préfixées adhesion-, parrainage-, parrainages-, candidature-
   et candidatures- (DEVELOPPEMENT.md § 4) ; tout le reste vient de systemic.css.
   Identité de la maquette : cadre d’accès en deux colonnes, filets fins, titres en Prata,
   couleur réservée aux états. Paliers : ≤ 640 px, 641–1023 px, ≥ 1024 px (le cadre en deux
   colonnes s’ouvre à 900 px, comme celui de la connexion).
   ========================================================================== */

@layer pages {
  /* ------------------------------------------------------------ Parcours : cadre */
  .parcours { display: grid; gap: var(--e6); width: min(100%, 1120px); }
  .parcours__presentation { display: grid; align-content: start; gap: var(--e3); }
  .parcours__presentation .chapeau { max-width: 44ch; color: var(--discret); }
  .parcours__carte { display: grid; gap: var(--e4); min-width: 0; padding: var(--e5); border: 1px solid var(--filet); border-radius: var(--rayon-surface); background: var(--panneau); }
  .parcours__tete h2 { font-size: 1.625rem; }
  .parcours__mention { display: flex; gap: var(--e2); align-items: flex-start; color: var(--discret); font-size: var(--taille-petite); }
  .parcours__mention .icone { width: 16px; height: 16px; margin-top: 2px; }
  .parcours__carte .formulaire { gap: var(--e4); }
  .parcours__tete { display: grid; gap: var(--e2); }
  .parcours__tete > p:not(.surtitre) { display: flex; }
  .parcours__texte { color: var(--texte); }
  .parcours__texte strong { overflow-wrap: anywhere; }
  .parcours__actions { display: grid; gap: var(--e3); }
  .parcours__note { display: flex; gap: var(--e3); align-items: flex-start; padding-top: var(--e4); border-top: 1px solid var(--filet); color: var(--discret); font-size: var(--taille-petite); }
  .parcours__note > .icone { width: 18px; height: 18px; margin-top: 1px; }
  .parcours__note a { color: var(--encre); font-weight: 500; }
  .parcours__note-discrete { color: var(--discret); font-size: var(--taille-petite); }
  .parcours .carte-acces__pied .icone { width: 16px; height: 16px; }
  @media (width >= 641px) { .parcours__carte { padding: var(--e6); } }
  @media (width >= 900px) {
    .parcours:not(.parcours--large) { grid-template-columns: minmax(0, 1fr) minmax(0, 500px); gap: var(--e8); }
    .parcours:not(.parcours--large)::before { content: ""; grid-column: 1 / -1; margin-bottom: calc(-1 * var(--e6)); border-top: 1px solid var(--filet-appuye); }
    .parcours__presentation { padding-top: var(--e2); }
  }

  /* ------------------------------------------------------------ Indicateur d’étapes */
  .parcours-etapes { display: grid; gap: var(--e2); }
  .parcours-etapes__liste { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; }
  .parcours-etapes__etape { height: 4px; border-radius: 2px; background: var(--filet-appuye); }
  .parcours-etapes__etape--faite, .parcours-etapes__etape--courante { background: var(--encre); }
  .parcours-etapes__marque { display: none; }
  .parcours-etapes__nom { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  @media (width >= 900px) {
    .parcours:not(.parcours--large) .parcours-etapes { margin-top: var(--e5); }
    .parcours:not(.parcours--large) .parcours-etapes__liste { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .parcours:not(.parcours--large) .parcours-etapes__etape {
      position: relative; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: var(--e3); align-items: center;
      height: auto; min-height: 44px; border-radius: 0; background: none; color: var(--discret); font-size: var(--taille-petite);
    }
    .parcours:not(.parcours--large) .parcours-etapes__etape:not(:last-child)::after { content: ""; position: absolute; top: 36px; bottom: -8px; left: 13.5px; width: 1px; background: var(--filet-appuye); }
    .parcours:not(.parcours--large) .parcours-etapes__etape--faite:not(:last-child)::after { background: var(--encre); }
    .parcours:not(.parcours--large) .parcours-etapes__marque { display: inline-grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--bordure-controle); border-radius: 50%; background: var(--fond); font-size: var(--taille-xs); font-weight: 600; font-variant-numeric: tabular-nums; }
    .parcours:not(.parcours--large) .parcours-etapes__marque .icone { width: 14px; height: 14px; stroke-width: 2.25; }
    .parcours:not(.parcours--large) .parcours-etapes__etape--faite .parcours-etapes__marque { border-color: var(--encre); background: var(--encre); color: var(--sur-encre); }
    .parcours:not(.parcours--large) .parcours-etapes__etape--faite { color: var(--texte); }
    .parcours:not(.parcours--large) .parcours-etapes__etape--courante { color: var(--encre); font-weight: 600; }
    .parcours:not(.parcours--large) .parcours-etapes__etape--courante .parcours-etapes__marque { border: 2px solid var(--encre); color: var(--encre); box-shadow: 0 0 0 4px var(--selection); }
    .parcours:not(.parcours--large) .parcours-etapes__nom { position: static; width: auto; height: auto; overflow: visible; clip-path: none; white-space: normal; }
  }
  /* Page large (profil) : les étapes en ligne, nommées, dès le palier intermédiaire */
  @media (width >= 641px) {
    .parcours--large .parcours-etapes__liste { gap: var(--e2); }
    .parcours--large .parcours-etapes__etape { display: flex; gap: var(--e2); align-items: center; height: auto; padding-top: var(--e3); border-top: 3px solid var(--filet-appuye); border-radius: 0; background: none; color: var(--discret); font-size: var(--taille-petite); }
    .parcours--large .parcours-etapes__etape--faite { border-top-color: var(--encre); color: var(--texte); }
    .parcours--large .parcours-etapes__etape--courante { border-top-color: var(--encre); color: var(--encre); font-weight: 600; }
    .parcours--large .parcours-etapes__marque { display: inline-grid; flex: none; place-items: center; width: 22px; height: 22px; border: 1px solid var(--bordure-controle); border-radius: 50%; font-size: var(--taille-xs); font-variant-numeric: tabular-nums; }
    .parcours--large .parcours-etapes__marque .icone { width: 12px; height: 12px; stroke-width: 2.5; }
    .parcours--large .parcours-etapes__etape--faite .parcours-etapes__marque { border-color: var(--encre); background: var(--encre); color: var(--sur-encre); }
    .parcours--large .parcours-etapes__etape--courante .parcours-etapes__marque { border-color: var(--encre); color: var(--encre); }
    .parcours--large .parcours-etapes__nom { position: static; width: auto; height: auto; overflow: visible; clip-path: none; white-space: normal; }
  }

  /* ------------------------------------------------------------ Étapes 1 et 2 */
  .parcours-champ-code input { font-family: var(--police-chasse-fixe); font-size: 1.125rem !important; letter-spacing: .08em; text-transform: uppercase; }
  .parcours-invitation { display: flex; gap: var(--e3); align-items: center; padding: var(--e3) var(--e4); border: 1px solid color-mix(in srgb, var(--succes) 30%, transparent); border-radius: var(--rayon); background: var(--succes-doux); }
  .parcours-invitation__icone { display: inline-grid; flex: none; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--fond); color: var(--succes); }
  .parcours-invitation__icone .icone { width: 20px; height: 20px; }
  .parcours-invitation__titre { color: var(--encre); font-weight: 600; overflow-wrap: anywhere; }
  .parcours-invitation__code { color: var(--texte); font-size: var(--taille-petite); }
  .parcours-invitation__code code { color: var(--encre); font-weight: 600; letter-spacing: .04em; }
  .parcours-invitation__code a { color: var(--encre); }

  /* ------------------------------------------------------------ Étape 3 : profil */
  .parcours--large { gap: var(--e5); width: min(100%, 960px); }
  .parcours__entete { display: grid; gap: var(--e5); }
  .parcours__entete > div { display: grid; gap: var(--e2); }
  .parcours__entete .chapeau { color: var(--discret); }
  .parcours-reperes { display: grid; gap: var(--e3); padding: var(--e4) 0; border-block: 1px solid var(--filet); color: var(--texte); font-size: var(--taille-petite); }
  .parcours-reperes li { display: flex; gap: var(--e3); align-items: flex-start; }
  .parcours-reperes .icone { width: 18px; height: 18px; margin-top: 1px; color: var(--encre); }
  @media (width >= 1024px) {
    .parcours-reperes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e5); }
  }
  .parcours-reponse { display: flex; gap: var(--e3); align-items: flex-start; }
  .parcours-reponse > div { display: grid; gap: var(--e2); }
  .parcours-reponse__motif { color: var(--encre); font-family: var(--police-titre); font-size: 1.0625rem; line-height: 1.45; -webkit-text-stroke: var(--contour-titre) currentColor; }
  .parcours-complet a { color: inherit; font-weight: 600; }
  /* La barre d’enregistrement du profil n’a pas de dock à éviter dans une page seule */
  @media (width <= 640px) {
    .parcours-profil .profil-actions { bottom: calc(var(--e3) + var(--marge-bas)); }
    :root:has(.parcours-profil .profil-actions) { scroll-padding-bottom: calc(var(--marge-bas) + var(--hauteur-controle) + 4 * var(--e4)); }
  }

  /* ------------------------------------------------------------ Relire et envoyer */
  .parcours-apercu { display: grid; gap: var(--e4); padding: var(--e4); border: 1px solid var(--filet); border-radius: var(--rayon); background: var(--fond); }
  .parcours-apercu__identite { display: flex; gap: var(--e3); align-items: center; }
  .parcours-apercu__identite .avatar { width: 56px; height: 56px; font-size: 1rem; }
  .parcours-apercu__nom { color: var(--encre); font-family: var(--police-titre); font-size: var(--titre-petit); line-height: 1.2; -webkit-text-stroke: var(--contour-titre) currentColor; overflow-wrap: anywhere; }
  .parcours-apercu__presentation { color: var(--texte); font-size: var(--taille-petite); overflow-wrap: anywhere; }
  .parcours-apercu__domaines { display: flex; flex-wrap: wrap; gap: var(--e2); }
  .parcours-apercu__details { display: grid; border-top: 1px solid var(--filet); }
  .parcours-apercu__details > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; padding: var(--e2) 0; border-bottom: 1px solid var(--filet); font-size: var(--taille-petite); }
  .parcours-apercu__details dt { color: var(--discret); }
  .parcours-apercu__details dd { color: var(--encre); overflow-wrap: anywhere; }
  @container (width >= 380px) { .parcours-apercu__details > div { grid-template-columns: 150px minmax(0, 1fr); gap: var(--e3); } }
  .parcours__carte { container-type: inline-size; }
  .parcours-suite { display: grid; gap: var(--e3); color: var(--texte); font-size: var(--taille-petite); }
  .parcours-suite li { display: flex; gap: var(--e3); align-items: flex-start; }
  .parcours-suite .icone { width: 18px; height: 18px; margin-top: 1px; color: var(--encre); }

  /* ------------------------------------------------------------ Statut */
  .parcours-statut__intertitre { color: var(--encre); font-family: var(--police); font-size: var(--taille); font-weight: 600; line-height: var(--interligne); -webkit-text-stroke: 0; }
  .parcours-motif { padding: var(--e2) 0 var(--e2) var(--e4); border-left: 2px solid var(--encre); color: var(--encre); font-family: var(--police-titre); font-size: 1.0625rem; line-height: 1.5; -webkit-text-stroke: var(--contour-titre) currentColor; overflow-wrap: anywhere; }
  .parcours-faits { display: grid; border-top: 1px solid var(--filet); }
  .parcours-faits > div { display: flex; flex-wrap: wrap; gap: var(--e1) var(--e4); justify-content: space-between; padding: var(--e3) 0; border-bottom: 1px solid var(--filet); font-size: var(--taille-petite); }
  .parcours-faits dt { color: var(--discret); }
  .parcours-faits dd { color: var(--encre); font-weight: 500; }
  .parcours-statut__pied { justify-content: space-between; padding-top: var(--e4); border-top: 1px solid var(--filet); }
  .parcours-nouveau-code { padding-top: var(--e4); border-top: 1px solid var(--filet); }

  /* ------------------------------------------------------------ Cotisation */
  .parcours-montant { display: grid; gap: var(--e3); padding: var(--e4) 0; border-block: 1px solid var(--filet-appuye); }
  .parcours-montant__valeur { color: var(--encre); font-family: var(--police-titre); font-size: clamp(2.25rem, 1.8rem + 1.6vw, 3rem); line-height: 1; letter-spacing: -.02em; -webkit-text-stroke: var(--contour-titre) currentColor; font-variant-numeric: lining-nums; }
  .parcours-montant__faits { display: grid; gap: var(--e2); color: var(--texte); font-size: var(--taille-petite); }
  .parcours-montant__faits li { display: flex; gap: var(--e2); align-items: flex-start; }
  .parcours-montant__faits .icone { width: 16px; height: 16px; margin-top: 2px; color: var(--encre); }
  .parcours-renouveler { display: grid; gap: var(--e5); max-width: var(--largeur-etroite); margin-bottom: var(--e5); padding-top: var(--e5); border-top: 1px solid var(--filet-appuye); }
  .parcours-renouveler__montant { display: grid; gap: var(--e3); }
  .parcours-renouveler__action { display: grid; gap: var(--e2); justify-items: start; }
  @media (width >= 641px) {
    .parcours-renouveler { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
    .parcours-renouveler__action { justify-items: end; text-align: right; }
  }

  /* ------------------------------------------------------------ Espace : parrainage */
  .parrainage-alerte { margin-bottom: var(--e5); }
  .parrainage-invitation { display: grid; gap: var(--e5); max-width: 1000px; padding-top: var(--e5); border-top: 1px solid var(--filet-appuye); }
  .parrainage-invitation__entete { display: flex; flex-wrap: wrap; gap: var(--e4); align-items: end; justify-content: space-between; }
  .parrainage-invitation__entete h2 { font-size: var(--titre-page); line-height: var(--interligne-titre); }
  .parrainage-compteur { display: flex; gap: var(--e2); align-items: baseline; }
  .parrainage-compteur__valeur { color: var(--encre); font-family: var(--police-titre); font-size: 2rem; line-height: 1; -webkit-text-stroke: var(--contour-titre) currentColor; }
  .parrainage-compteur__libelle { color: var(--discret); font-size: var(--taille-petite); }
  .parrainage-code { display: grid; gap: var(--e5); padding: var(--e5); border: 1px solid var(--filet); border-radius: var(--rayon-surface); background: var(--panneau); }
  .parrainage-code__principal { display: grid; align-content: start; gap: var(--e2); }
  /* Le code se recopie : une chasse fixe distingue sans faute chaque signe (Prata confond 1 et l). */
  .parrainage-code__valeur { color: var(--encre); font-family: var(--police-chasse-fixe); font-size: clamp(1.625rem, 1.2rem + 1.8vw, 2.25rem); font-weight: 600; line-height: 1.15; letter-spacing: .08em; overflow-wrap: anywhere; }
  .parrainage-code__validite { display: flex; gap: var(--e2); align-items: flex-start; color: var(--discret); font-size: var(--taille-petite); }
  .parrainage-code__validite .icone { width: 16px; height: 16px; margin-top: 2px; }
  .parrainage-code__partage { display: grid; align-content: start; gap: var(--e4); }
  .parrainage-lien input { font-family: var(--police-chasse-fixe); }
  .parrainage-lien .champ-avec-bouton { flex-wrap: wrap; }
  .parrainage-lien .champ-avec-bouton input { flex: 1 1 240px; }
  .parrainage-lien .champ-avec-bouton .bouton { flex: none; }
  .parrainage-code__pied { display: flex; flex-wrap: wrap; gap: var(--e4); align-items: flex-end; justify-content: space-between; padding-top: var(--e4); border-top: 1px solid var(--filet); }
  .parrainage-etapes { display: grid; gap: var(--e1); max-width: 60ch; padding-left: 1.25em; color: var(--texte); font-size: var(--taille-petite); list-style: decimal outside; }
  .parrainage-etapes li::marker { color: var(--discret); font-variant-numeric: tabular-nums; }
  .parrainage-revoquer { color: var(--danger); }
  .parrainage-revoquer:hover { background: var(--danger-doux); color: var(--danger); }
  @media (width >= 1024px) {
    .parrainage-code { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: var(--e5) var(--e6); padding: var(--e6); }
    .parrainage-code__pied { grid-column: 1 / -1; }
  }
  .parrainage-creer { display: flex; flex-wrap: wrap; gap: var(--e4); align-items: center; justify-content: space-between; }
  .parrainage-creer > p { flex: 1 1 320px; max-width: 60ch; color: var(--texte); }
  .parrainage-creer--attente > p { color: var(--discret); }
  .parrainage-historique { display: grid; gap: var(--e4); max-width: 1000px; margin-top: var(--e7); padding-top: var(--e5); border-top: 1px solid var(--filet-appuye); }
  .parrainage-historique__entete { display: flex; flex-wrap: wrap; gap: var(--e2) var(--e4); align-items: baseline; justify-content: space-between; }
  .parrainage-liste { display: grid; border-top: 1px solid var(--filet); }
  .parrainage-ligne { display: grid; gap: var(--e2) var(--e4); padding: var(--e4) 0; border-bottom: 1px solid var(--filet); }
  .parrainage-ligne__code { display: flex; flex-wrap: wrap; gap: var(--e3); align-items: center; }
  .parrainage-ligne__code code { color: var(--encre); font-size: 1rem; font-weight: 600; letter-spacing: .04em; }
  .parrainage-ligne__dates { color: var(--discret); font-size: var(--taille-petite); }
  .parrainage-ligne__filleuls { display: grid; gap: var(--e2); }
  .parrainage-ligne__filleuls li { display: flex; gap: var(--e3); align-items: center; font-size: var(--taille-petite); }
  @media (width >= 641px) {
    .parrainage-ligne { grid-template-columns: minmax(0, 1fr) auto; }
    .parrainage-ligne > :not(.parrainage-ligne__action) { grid-column: 1; }
    .parrainage-ligne__action { grid-column: 2; grid-row: 1 / span 3; align-self: center; }
  }

  /* ------------------------------------------------------------ Administration : candidatures */
  .candidatures-barre, .parrainages-barre { display: flex; flex-wrap: wrap; gap: var(--e4); align-items: center; justify-content: space-between; margin-bottom: var(--e5); }
  .candidatures-barre__nombre { display: inline-grid; min-width: 22px; height: 22px; margin-left: var(--e1); padding: 0 6px; place-items: center; border-radius: 999px; background: var(--selection); color: var(--encre); font-size: var(--taille-xs); font-weight: 600; font-variant-numeric: tabular-nums; }
  .puces a[aria-current] .candidatures-barre__nombre { background: var(--sur-encre); color: var(--encre); }
  .candidatures-barre__total { display: flex; gap: var(--e2); align-items: baseline; color: var(--discret); font-size: var(--taille-petite); }
  .candidatures-barre__chiffre { color: var(--encre); font-family: var(--police-titre); font-size: 2rem; line-height: 1; -webkit-text-stroke: var(--contour-titre) currentColor; }
  .candidatures-liste { display: grid; gap: var(--e4); }
  @media (width >= 1024px) { .candidatures-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  .candidature-carte { display: grid; align-content: start; gap: var(--e3); padding: var(--e5); border: 1px solid var(--filet); border-radius: var(--rayon-surface); background: var(--fond); transition: border-color var(--duree-vive) var(--courbe); }
  .candidature-carte:hover { border-color: var(--bordure-controle); }
  .candidature-carte--alerte { box-shadow: inset 3px 0 0 var(--attention); }
  .candidature-carte__tete { display: flex; flex-wrap: wrap; gap: var(--e3) var(--e4); align-items: center; }
  .candidature-carte__identite { display: grid; flex: 1 1 200px; gap: 2px; min-width: 0; }
  .candidature-carte__nom { font-size: var(--titre-petit); line-height: 1.25; overflow-wrap: anywhere; }
  .candidature-carte__nom a { text-decoration: none; }
  .candidature-carte__nom a:hover { text-decoration: underline; }
  .candidature-carte__meta { color: var(--discret); font-size: var(--taille-petite); }
  .candidature-carte__presentation { display: -webkit-box; overflow: hidden; color: var(--texte); font-size: var(--taille-petite); -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow-wrap: anywhere; }
  .candidature-carte__etiquettes { display: flex; flex-wrap: wrap; gap: var(--e2); }
  .candidature-carte__action { margin-top: var(--e1); }

  .candidature-entete { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--e4) var(--e5); align-items: center; margin-bottom: var(--e6); }
  .candidature-entete__texte { display: grid; gap: var(--e2); min-width: 0; }
  .candidature-entete h1 { overflow-wrap: anywhere; }
  .candidature-entete__meta { display: flex; flex-wrap: wrap; gap: var(--e2) var(--e4); align-items: center; color: var(--discret); font-size: var(--taille-petite); }
  @media (width <= 640px) {
    .candidature-entete { grid-template-columns: minmax(0, 1fr); }
    .candidature-entete .avatar--grand { width: 72px; height: 72px; font-size: 1.375rem; }
  }
  .candidature-alertes { margin-bottom: var(--e5); }
  .candidature-alertes > div { display: grid; gap: var(--e2); }
  .candidature-alertes ul { padding-left: 1.1em; }
  /* Mobile : profil, décision, puis historique ; bureau : profil et historique à gauche, décision à droite */
  .candidature-fiche { display: grid; gap: var(--e6); align-items: start; }
  @media (width >= 1024px) {
    .candidature-fiche { grid-template-columns: minmax(0, 1fr) minmax(0, 400px); grid-template-rows: auto 1fr; grid-template-areas: "profil decision" "historique decision"; }
    .candidature-fiche__profil { grid-area: profil; }
    .candidature-fiche__decision { grid-area: decision; }
    .candidature-fiche__historique { grid-area: historique; }
  }
  .candidature-fiche__profil { display: grid; gap: var(--e6); min-width: 0; }
  .candidature-fiche__decision { display: grid; gap: var(--e5); min-width: 0; }
  .candidature-section { display: grid; gap: var(--e4); padding-top: var(--e5); border-top: 1px solid var(--filet-appuye); container-type: inline-size; }
  .candidature-section h3.intitule { margin-top: var(--e2); font-family: var(--police); -webkit-text-stroke: 0; }
  .candidature-presentation { max-width: var(--mesure); color: var(--encre); overflow-wrap: anywhere; }
  .candidature-presentation p + p { margin-top: var(--e3); }
  .candidature-domaines, .candidature-liens { display: flex; flex-wrap: wrap; gap: var(--e2) var(--e4); }
  .candidature-liens a { overflow-wrap: anywhere; }
  .candidature-adresse { display: block !important; }
  .candidature-historique { display: grid; border-top: 1px solid var(--filet); }
  .candidature-historique > li { display: grid; gap: var(--e2); padding: var(--e3) 0; border-bottom: 1px solid var(--filet); }
  .candidature-historique__tete { display: flex; flex-wrap: wrap; gap: var(--e1) var(--e3); align-items: baseline; font-size: var(--taille-petite); }
  .candidature-historique__details { display: grid; gap: var(--e1); font-size: var(--taille-petite); }
  .candidature-historique__details > div { display: grid; grid-template-columns: minmax(0, 1fr); }
  @container (width >= 480px) { .candidature-historique__details > div { grid-template-columns: 120px minmax(0, 1fr); gap: var(--e3); } }
  .candidature-historique__details dt { color: var(--discret); }
  .candidature-historique__details dd { color: var(--encre); overflow-wrap: anywhere; }
  .candidature-panneau { display: grid; gap: var(--e4); padding: var(--e5); border: 1px solid var(--filet); border-radius: var(--rayon-surface); background: var(--panneau); container-type: inline-size; }
  .candidature-panneau > .intitule { font-family: var(--police); -webkit-text-stroke: 0; }
  .candidature-parrain { display: flex; gap: var(--e3); align-items: center; }
  .candidature-parrain > .avatar { width: 44px; height: 44px; font-size: .875rem; }
  .candidature-code { display: flex; flex-wrap: wrap; gap: var(--e2); align-items: center; font-size: var(--taille-petite); }
  .candidature-code code { color: var(--encre); font-weight: 600; letter-spacing: .04em; }
  .candidature-decision__formulaire { gap: var(--e4); }
  .candidature-decision__formulaire h3 { font-size: var(--titre-petit); }
  .candidature-decision__formulaire + .candidature-decision__formulaire { padding-top: var(--e5); border-top: 1px solid var(--filet-appuye); }
  .candidature-offre { display: grid; gap: var(--e3); padding: var(--e4); border: 1px solid var(--filet); border-radius: var(--rayon); background: var(--fond); }
  .candidature-offre:not(:has(input[name="offrir"]:checked)) .candidature-offre__date:not(.champ--erreur) { display: none; }
  .candidature-options { display: grid; gap: var(--e2); }
  .candidature-options .option { background: var(--fond); }
  .candidature-texte { display: block !important; }
  .candidature-decision__resume .pastille { white-space: normal; }

  /* ------------------------------------------------------------ Administration : parrainages */
  .parrainages-info { margin-bottom: var(--e5); }
  .parrainages-barre { align-items: end; }
  .parrainages-recherche { display: flex; flex: 1 1 420px; flex-wrap: wrap; gap: var(--e2); align-items: end; max-width: 560px; }
  .parrainages-recherche .champ { flex: 1 1 240px; }
  .parrainages-recherche .bouton { flex: none; }
  .parrainages-code { color: var(--encre); font-size: .9375rem; font-weight: 600; letter-spacing: .04em; white-space: nowrap; }
  .parrainages-cellule-discrete { color: var(--discret); font-size: var(--taille-xs); }
  td > .parrainages-cellule-discrete:not(:first-child) { display: block; margin-top: 2px; }
  .parrainages-filleuls { display: grid; gap: var(--e1); }
  .parrainages-filleuls li { display: flex; flex-wrap: wrap; gap: 2px var(--e2); align-items: center; }
  .parrainages-actions { text-align: right; }
  @media (width <= 640px) { .parrainages-actions { grid-column: 1 / -1; text-align: left; } }
}
