/* connexion.css — pièces PROPRES au portal sur la carte de connexion N13.
   La carte elle-même (canvas, carte, marque, champs, CTA, bande système)
   est rendue et habillée par la gem undust-charte (layout
   `undust/charte/connexion`, feuille `connexion/connexion` importée en
   couche par charte.css, CH-21 c). Ne garder ici que ce que la gem n'a pas :
   le repli e-mail sous Fractal ID et son bouton sobre, le cadre Turbo du
   formulaire (le lien « Webinaires » est rendu SOUS la carte par la gem,
   `sous_carte:`). Tokens seulement, aucun hex. */

/* Geste secondaire (« Continuer » du repli e-mail) : variante sobre du CTA —
   pas d'aplat, LE geste de la carte reste « Se connecter avec Fractal ID »
   (N13 : un seul CTA aplat). */
.connexion-cta-sec {
  display: block;
  width: 100%;
  padding: var(--space-3) var(--space-6);
  background: transparent;
  color: var(--text-primary);
  border: var(--border-width-strong) solid var(--border-color-strong);
  border-radius: var(--radius-interactive);
  box-shadow: 6px 6px 0 var(--border-color-strong);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: var(--type-body-size);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  appearance: none;
  transition: transform var(--motion-duree-2) var(--motion-courbe-sortie),
              box-shadow var(--motion-duree-2) var(--motion-courbe-sortie);
}
.connexion-cta-sec:hover {
  transform: translate(-3px, -3px) rotate(-3.5deg);
  box-shadow: 9px 9px 0 var(--border-color-strong);
}
.connexion-cta-sec:focus-visible {
  outline: var(--border-width-strong) solid var(--focus-ring);
  outline-offset: 4px;
}

/* Repli « Pas de Fractal ID ? Recevoir un code par e-mail » (flkIQEG6 §A.1).
   `<details>` natif : l'état ouvert/fermé est porté par l'élément lui-même
   (exposé aux lecteurs d'écran, clavier Entrée/Espace) ; le chevron dessiné
   en ::after n'est qu'un repère visuel. Le résumé est une cible tactile
   pleine largeur de 44 px au moins (Pixel 4, pouce). */
.connexion-repli { width: 100%; }
.connexion-repli > summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  column-gap: 0.3em;
  min-height: 44px;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-interactive);
  list-style: none;
  cursor: pointer;
  font-size: var(--type-small-size);
  line-height: var(--type-small-leading);
  color: var(--text-secondary);
  text-align: center;
  -webkit-tap-highlight-color: transparent;
}
.connexion-repli > summary::-webkit-details-marker { display: none; }
/* Le geste reste d'un seul tenant (jamais « e- / mail »), chevron compris. */
.connexion-repli-geste {
  white-space: nowrap;
  text-decoration: underline;
  text-underline-offset: 2px;
}
/* Chevron : bas = replié, haut = ouvert. Trait 2, currentColor ; en
   inline-block, il n'hérite pas du soulignement du geste. */
.connexion-repli-geste::after {
  content: "";
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  margin-left: 0.55em;
  border-right: var(--border-width-strong) solid currentColor;
  border-bottom: var(--border-width-strong) solid currentColor;
  vertical-align: 0.2em;
  transform: rotate(45deg);
  transition: transform var(--motion-duree-2) var(--motion-courbe-sortie);
}
.connexion-repli[open] .connexion-repli-geste::after { transform: translateY(0.2em) rotate(-135deg); }
.connexion-repli > summary:hover,
.connexion-repli[open] > summary { color: var(--text-primary); }
.connexion-repli > summary:focus-visible {
  outline: var(--border-width-strong) solid var(--focus-ring);
  outline-offset: 2px;
}
/* Fermé : contenu hors rendu, explicitement. Chromium récent masque le
   contenu d'un <details> fermé par `content-visibility` — les boîtes gardent
   alors une géométrie, et une mesure (contrat mobile, `elementFromPoint`)
   les voit « recouvertes ». `display: none` = ni boîte, ni cible. */
.connexion-repli:not([open]) > :not(summary) { display: none; }
/* (spécificité > `.connexion-actions form { margin: 0 }`, plus bas) */
.connexion-actions .connexion-repli > form { margin-top: var(--space-2); }
@media (prefers-reduced-motion: reduce) {
  .connexion-repli-geste::after { transition: none; }
}

/* Formulaires et cadre Turbo pleine largeur dans la carte. */
.connexion-actions { display: flex; flex-direction: column; gap: var(--space-4); width: 100%; }
.connexion-actions form { margin: 0; width: 100%; }
.connexion-carte turbo-frame { display: block; width: 100%; }

/* Saisie du code (/verify) : six chiffres lisibles d'un coup d'œil. */
.connexion-champ--code {
  font-family: var(--font-mono);
  font-size: var(--type-h3-size);
  letter-spacing: 0.3em;
  text-align: center;
}

.connexion-aide a:hover { color: var(--accent-hover); }
