.password-visibility-control {
    position: relative;
}

.password-visibility-control > .form-control {
    padding-right: 3rem;
}

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

.password-visibility-control > .form-control.is-valid,
.password-visibility-control > .form-control.is-invalid,
.was-validated .password-visibility-control > .form-control:valid,
.was-validated .password-visibility-control > .form-control:invalid {
    padding-right: 4.5rem;
    background-position: right 3rem center;
}

.password-visibility-toggle {
    position: absolute;
    top: 2px;
    right: 2px;
    bottom: 2px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    padding: 0;
    border: 0;
    border-radius: .25rem;
    color: #526174;
    background: transparent;
    cursor: pointer;
}

.password-visibility-toggle:hover,
.password-visibility-toggle:focus-visible {
    color: #315f8f;
    background: #eef5fb;
}

.password-visibility-toggle:focus-visible {
    outline: 2px solid #527fae;
    outline-offset: -2px;
}

.password-visibility-toggle svg {
    width: 1.25rem;
    height: 1.25rem;
    pointer-events: none;
}

.password-visibility-toggle [hidden] {
    display: none;
}
