/* Botón mostrar/ocultar contraseña (ver assets/js/password-toggle.js) */

/*
 * El campo y el botón comparten una fila (flex). El botón se solapa con el
 * borde derecho del campo mediante un margen negativo, de modo que la
 * posición queda anclada al propio input y no al ancho del contenedor:
 * así funciona igual en formularios Bootstrap (input al 100%) y en el
 * formulario de acceso, cuyos campos tienen ancho automático.
 */
.password-toggle {
    display: flex;
    align-items: center;
}

.password-toggle > input {
    flex: 0 1 auto;
    min-width: 0;
    width: 100%;
    /* Reserva espacio para que el texto no quede bajo el botón */
    padding-right: 2.75rem;
}

.password-toggle-btn {
    flex: 0 0 auto;
    /* El solape (-2.5rem) y el margen derecho (0.5rem) se compensan: el
       botón queda dentro del campo, a 0.5rem de su borde, sin desbordar. */
    margin-left: -2.5rem;
    margin-right: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: inherit;
    font-size: 1.05rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.55;
    transition: opacity 0.15s ease;
}

.password-toggle-btn:hover {
    opacity: 1;
}

.password-toggle-btn:focus-visible {
    opacity: 1;
    outline: 2px solid currentColor;
    outline-offset: 1px;
}
