.password-field {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
}
.password-field > input {
    width: 100%;
    padding-right: 52px !important;
}
.input-group > .password-field {
    flex: 1 1 auto;
    width: 1%;
}
.password-visibility-toggle {
    position: absolute;
    inset: 0 2px 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #60758a;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}
.password-visibility-toggle svg {
    width: 22px;
    height: 22px;
    pointer-events: none;
}
.password-visibility-toggle:hover,
.password-visibility-toggle[aria-pressed="true"] {
    color: #007fb5;
    background: rgba(0, 127, 181, .07);
}
.password-visibility-toggle:focus-visible {
    outline: 2px solid #007fb5;
    outline-offset: -3px;
}
.password-visibility-toggle:disabled {
    opacity: .45;
    cursor: default;
}
.input-group-custom:has(> .password-field) > .input-icon {
    display: none;
}
/* Native browser reveal controls would otherwise overlap our eye. */
.password-field > input::-ms-reveal,
.password-field > input::-ms-clear {
    display: none;
}
