/**
 * FR - Rôle : positionne le contrôle d'affichage sans masquer le texte ni réduire la cible tactile.
 * EN - Role: position the visibility control without obscuring text or reducing its touch target.
 * FR - Données et invariants : la largeur du champ reste celle du formulaire et une réserve protège sa saisie.
 * EN - Data and invariants: the field keeps the form width and reserved space protects its entered text.
 * FR - Effets externes : les états survol, focus clavier et contraste restent visibles dans les thèmes clairs et sombres.
 * EN - External effects: hover, keyboard focus, and contrast states remain visible in light and dark themes.
 */
.password-field-control { position: relative; display: block; grid-column: 1 / -1; width: 100%; min-width: 0; }
.password-field-control > input { width: 100%; padding-inline-end: 3.5rem !important; }
.password-visibility-toggle {
  position: absolute; inset-inline-end: 2px; top: 50%; translate: 0 -50%; display: inline-grid; place-items: center;
  width: 44px !important; min-width: 44px !important; height: 44px !important; min-height: 44px !important;
  margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 10px !important;
  background: transparent !important; color: currentColor !important; box-shadow: none !important; cursor: pointer; z-index: 1;
}
.password-visibility-toggle:hover { background: color-mix(in srgb, currentColor 10%, transparent) !important; }
.password-visibility-toggle:focus-visible { outline: 3px solid #b97924 !important; outline-offset: -3px; }
.password-visibility-icon {
  position: relative;
  display: block;
  width: 22px;
  height: 14px;
  border: 2px solid currentColor;
  border-radius: 75% 12%;
  transform: rotate(45deg);
}
.password-visibility-icon::before {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  inset: 2px auto auto 6px;
  border-radius: 50%;
  background: currentColor;
}
.password-visibility-toggle[aria-pressed="true"] .password-visibility-icon::after {
  content: "";
  position: absolute;
  width: 2px;
  height: 28px;
  left: 8px;
  top: -9px;
  border-radius: 2px;
  background: currentColor;
  transform: rotate(-45deg);
}
