.password-visibility {
    position: relative;
    width: 100%;
    min-width: 0;
}

.password-visibility > input {
    padding-right: 3rem !important;
}

.password-visibility > input::-ms-reveal {
    display: none;
}

.password-visibility__toggle {
    position: absolute;
    right: 0.25rem;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.25rem;
    padding: 0;
    border: 0;
    border-radius: 0.25rem;
    background: transparent;
    color: #64748b;
    cursor: pointer;
    font-size: 1.1rem;
}

.password-visibility__toggle:hover { color: #4338ca; }
.password-visibility__toggle:focus-visible {
    outline: 2px solid #4338ca;
    outline-offset: -2px;
}
.password-visibility__toggle:disabled { cursor: default; opacity: 0.5; }

.swal2-popup .password-visibility--swal {
    width: auto;
    margin: 1em 2em 3px;
}
.swal2-popup .password-visibility--swal > input {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
}
