/* Login page – scoped styles, Site.Master header/footer remain untouched. */
#loginPage {
  --login-green: #a0cf52;
  --login-ink: #202d44;
  box-sizing: border-box;
  min-height: 760px;
  min-height: max(760px, calc(100vh - 120px));
  padding: 15px clamp(16px, 8.5vw, 140px) 26px;
  margin: 0;
  align-items: flex-start;
  text-align: left;
  background: #172044 url('../Resources/main_bg.png') center center / cover no-repeat;
  font-family: Arial, Helvetica, sans-serif;
}
#loginPage *, #loginPage *::before, #loginPage *::after { box-sizing: border-box; }
#loginPage .login-tile {
  position: relative;
  margin: 0;
  width: 560px;
  max-width: 100%;
  min-height: 762px;
  padding: 18px 51px 35px;
  background: #fff;
  border-radius: 9px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
#loginPage .login-eyebrow { display:flex; align-items:center; gap:20px; color:var(--login-green); font-size:28px; font-weight:700; letter-spacing:.4px; line-height:1.3; margin:0 0 67px -39px; }
#loginPage .login-eyebrow::before { content:""; display:block; width:83px; height:2px; background:var(--login-green); flex:none; }
#loginPage .login-heading { font-family:Arial, Helvetica, sans-serif; color:var(--login-ink); font-size:46px; font-weight:700; line-height:1.15; text-align:center; margin:0 0 12px; white-space:nowrap; }
#loginPage .login-subtitle { font-size:15px; line-height:1.5; text-align:center; margin:0 0 42px; color:#111; }
#loginPage .login-form-fields { width:100%; }
#loginPage .animated-placeholder { position:relative; width:100%; max-width:none; height:auto; margin:0 0 39px; display:flex; flex-direction:column; }
#loginPage .floating-label { position:static; order:-1; display:block; color:var(--login-green); font-size:16px; font-weight:700; line-height:1.3; margin:0 0 4px; padding:0; text-align:left; text-transform:uppercase; transform:none; pointer-events:auto; }
#loginPage .form-field { width:100%; height:40px; margin:0; padding:8px; font-family:inherit; border:1px solid #aaa; border-radius:8px; background:#fff; font-size:15px; color:#333; box-shadow:none; outline:none; }
#loginPage .form-field:focus { border-color:var(--login-green); box-shadow:0 0 0 2px rgba(160,207,82,.2); }
#loginPage .form-field::placeholder { color:#a9a9b0; opacity:1; }
#loginPage .login-password-field { margin-bottom:0; }
#loginPage .checkbox-container { margin:7px 0 0; text-align:left; font-size:15px; }
#loginPage a, #loginPage .checkbox-container a { color:#8fbe3e; text-decoration:underline; }
#loginPage .button-container { width:100%; max-width:none; text-align:center; margin:0; }
#loginPage .login-submit { margin-top:102px; }
#loginPage .login-button, #loginPage .btn-primary { display:inline-flex; justify-content:center; align-items:center; width:auto; max-width:100%; min-width:179px; min-height:77px; padding:15px 24px; background:var(--login-green); color:white; font-family:inherit; font-size:24px; font-weight:700; border:0; border-radius:12px 0 12px 0 !important; cursor:pointer; text-decoration:underline; }
#loginPage .login-button:hover, #loginPage .btn-primary:hover { background:#8cbb3e; }
#loginPage .no-credentials { margin:0; padding-top:65px; text-align:center; color:#111; font-size:15px; line-height:1.5; }
#loginPage .no-credentials a { font-weight:700; }
#loginPage .login-panel { display:flex; flex-direction:column; flex:1; margin-top:0; }
#loginPage .login-form { display:flex; flex-direction:column; flex:1; }
#loginPage .login-biometrics { margin-top:12px; }
#loginPage .biometric-button { background:none; border:0; cursor:pointer; padding:0; }
#loginPage .biometric-button img { width:60px; height:auto; }
#loginPage .text-danger { color:#b42318; }
#loginPage .otp-panel .form-group { margin-bottom:20px; }
#loginPage .otp-panel .control-label { display:block; margin-bottom:8px; color:var(--login-green); font-weight:700; }
#loginPage .otp-panel .form-field { max-width:100%; }
#loginPage .toggle-button { position:absolute; right:9px; top:8px; border:0; background:transparent; cursor:pointer; }
@media (max-width:700px) {
  #loginPage { padding:16px; min-height:calc(100vh - 80px); background-position:62% center; }
  #loginPage .login-tile { width:560px !important; min-height:680px; padding:22px 24px 30px; margin:0 auto; }
  #loginPage .login-eyebrow { margin:0 0 55px -12px; font-size:23px; gap:14px; }
  #loginPage .login-eyebrow::before { width:45px; }
  #loginPage .login-heading { font-size:clamp(26px, 7vw, 42px); white-space:normal; }
  #loginPage .login-subtitle { margin-bottom:38px; }
  #loginPage .login-submit { margin-top:70px; }
  #loginPage .no-credentials { padding-top:45px; }
}
/* Password recovery shares the login card, including its confirmation state. */
#loginPage.forgot-page .login-tile { min-height:786px; }
#loginPage.forgot-page .login-heading { font-size:30px; line-height:1.3; white-space:normal; margin-bottom:34px; }
#loginPage.forgot-page .login-subtitle { margin-bottom:58px; }
#loginPage.forgot-page .floating-label { margin-bottom:10px; }
#loginPage.forgot-page .login-submit { margin-top:auto; padding-top:40px; }
#loginPage.forgot-page .no-credentials { padding-top:75px; }
#loginPage.forgot-page .text-danger { margin-top:8px; }
#loginPage.forgot-page .forgot-confirmation {
  display:flex;
  flex-direction:column;
  flex:1 0 auto;
  min-height:448px;
}
#loginPage.forgot-page .forgot-confirmation .login-subtitle { margin:0; }
#loginPage.forgot-page .forgot-confirmation .login-submit { margin-top:auto; padding-top:40px; }
#loginPage.forgot-page .forgot-confirmation .login-button { white-space:normal; }
@media (max-width:700px) {
  #loginPage.forgot-page .forgot-confirmation { min-height:340px; }
  #loginPage.forgot-page .login-tile { min-height:680px; }
  #loginPage.forgot-page .login-heading { font-size:26px; }
  #loginPage.forgot-page .login-subtitle { margin-bottom:38px; }
  #loginPage.forgot-page .no-credentials { padding-top:45px; }
}
@media (max-width:380px) { #loginPage .login-tile { padding-left:18px; padding-right:18px; } }
