body.login-page { overflow-y: auto; }
.login-shell { box-sizing: border-box; min-height: 100svh; }
.login-card { box-sizing: border-box; }
.password-field { display: grid; gap: 6px; min-width: 0; }
.password-input-wrap { position: relative; min-width: 0; }
.password-input-wrap input { box-sizing: border-box; width: 100%; min-height: 46px; padding-right: 50px; }
.login-form .password-toggle {
  position: absolute; top: 50%; right: 3px; transform: translateY(-50%);
  display: grid; place-items: center; width: 40px; height: 40px; padding: 8px;
  background: transparent; color: #526478; border-radius: 6px; cursor: pointer;
}
.login-form .password-toggle[hidden] { display: none; }
.password-toggle svg { width: 22px; height: 22px; }
.password-toggle[aria-pressed="false"] .password-eye-slash { display: none; }
.login-form .password-toggle:hover { color: #215e88; background: #edf4f9; }
.password-toggle:focus-visible { outline: 2px solid #2878ad; outline-offset: -2px; }
.password-input-wrap input::-ms-reveal { display: none; }
.password-feedback { display: flex; align-items: flex-start; gap: 7px; margin: -6px 0 0; font-size: 13px; line-height: 1.4; color: #526478; }
.password-feedback[data-state="valid"] { color: #21613e; }
.password-feedback[data-state="pending"] { color: #8a4a17; }
.password-feedback svg { flex: 0 0 17px; width: 17px; height: 17px; margin-top: 1px; }
.password-feedback:not([data-state="valid"]) .password-checkmark { display: none; }
