/* Scoped control; preserve each form's existing field size and layout. */
.password-visibility {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
}
.password-visibility > input {
  box-sizing: border-box;
  width: 100%;
  padding-inline-end: 3.25rem !important;
}
.password-visibility > input::-ms-reveal { display: none; }
body .password-visibility > button.password-visibility__toggle {
  position: absolute !important;
  inset-inline-end: 3px;
  top: 50%;
  transform: translateY(-50%) !important;
  display: grid !important;
  place-items: center;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--brand-dark, #126f70) !important;
  cursor: pointer;
}
body .password-visibility > button.password-visibility__toggle:hover {
  background: rgba(18, 111, 112, 0.09) !important;
}
.password-visibility__toggle:focus-visible {
  outline: 2px solid #126f70;
  outline-offset: -3px;
}
.password-visibility__toggle:disabled { opacity: .45; cursor: default; }
.password-visibility__toggle svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.password-visibility__slash { display: none; }
.password-visibility__toggle[aria-pressed="true"] .password-visibility__slash { display: block; }
