.fs-password-control { display:grid; align-content:start; gap:6px; min-width:0; }
.fs-password-field { position:relative; display:block; width:100%; min-width:0; }
/* Independiente de type=password/text: al pulsar el ojo nunca cambia el espacio reservado. */
.fs-password-field > input[data-password-toggle] { box-sizing:border-box; width:100%; min-width:0; min-height:46px; padding-right:54px; }
.fs-password-field > .fs-password-eye { position:absolute; right:2px; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:44px; height:44px; min-height:44px; padding:0; margin:0; border:0; border-radius:9px; background:transparent; color:var(--ca-muted,var(--muted,#9696a6)); cursor:pointer; }
.fs-password-eye svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.fs-password-eye .fs-password-slash { display:none; }
.fs-password-eye[aria-pressed="true"] .fs-password-slash { display:block; }
.fs-password-field > .fs-password-eye:hover { color:var(--ca-text,var(--text,#f0f0f5)); }
.fs-password-field > .fs-password-eye:focus-visible { outline:2px solid var(--ca-gold,var(--gold,#f5c518)); outline-offset:-3px; }
/* Evita un segundo ojo nativo superpuesto en navegadores que lo proporcionan. */
.fs-password-field > input::-ms-reveal { display:none; }
