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

.password-visibility-field > input.form-control {
    padding-right: 3.25rem;
}

.password-visibility-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    min-width: 2.65rem;
    color: #64748b;
    background: transparent;
    border: 0;
    border-radius: .5rem;
    cursor: pointer;
}

.password-visibility-field > .password-visibility-toggle {
    position: absolute;
    z-index: 4;
    top: .25rem;
    right: .25rem;
    bottom: .25rem;
}

.password-visibility-input-group > .password-visibility-toggle-group {
    position: relative;
    z-index: 3;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-left: 0;
    border-radius: 0 var(--bs-border-radius, .375rem) var(--bs-border-radius, .375rem) 0;
    background: var(--bs-tertiary-bg, #f8f9fa);
}

.password-visibility-input-group > input.form-control:not(:last-child) {
    border-radius: 0;
}

.password-visibility-toggle:hover {
    color: #172033;
    background: rgba(100, 116, 139, .1);
}

.password-visibility-toggle:focus-visible {
    outline: 3px solid rgba(13, 110, 253, .25);
    outline-offset: 1px;
}

.password-visibility-toggle svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
    display: none;
}
