.login-page-body,.forgot-page-body{
  min-height:100vh;
  padding:28px 14px 38px;
  background:
    radial-gradient(circle at 12% 8%,rgba(124,58,237,.11),transparent 28%),
    radial-gradient(circle at 88% 18%,rgba(79,143,247,.11),transparent 30%),
    linear-gradient(145deg,#fff 0%,#faf8ff 58%,#f5f2fb 100%);
  align-items:center;
}
.login-shell{width:min(100%,500px);margin:auto}
.login-page-body .auth-brand,.forgot-page-body .auth-brand{display:none!important}
.login-logo-only{width:78px;height:78px;margin:0 auto 18px;border-radius:24px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#7c3aed 0%,#6c4ff3 52%,#4f8ff7 100%);box-shadow:0 18px 42px rgba(103,70,222,.24);border:4px solid rgba(255,255,255,.9)}
.login-logo-only span{font:800 31px/1 system-ui,sans-serif;color:#fff;text-transform:uppercase}
.login-logo-only.has-image{width:min(82vw,280px);height:auto;min-height:0;max-height:none;margin:0 auto 18px;padding:0;border:0;border-radius:0;overflow:visible;background:transparent;box-shadow:none;display:flex;align-items:center;justify-content:center}
.login-logo-only.has-image img{display:block;width:auto;height:auto;max-width:100%;max-height:150px;object-fit:contain;object-position:center;border:0;border-radius:0;background:transparent;box-shadow:none}
.login-card{border:1px solid #e4deeb!important;border-radius:28px!important;padding:26px!important;background:rgba(255,255,255,.985)!important;box-shadow:0 28px 70px rgba(74,52,111,.13),0 5px 20px rgba(124,58,237,.06)!important}
.login-heading{text-align:center;margin:0 0 23px}
.login-heading>span{display:inline-flex;padding:6px 10px;border:1px solid #e1d7f2;border-radius:999px;background:linear-gradient(90deg,#f1eaff,#eef4ff);color:#7141d7;font-size:11px;font-weight:800}
.login-heading h2{margin:10px 0 4px!important;color:#2b2235;font-size:26px!important;line-height:1.25}
.login-heading p{margin:0;color:#8a8193;font-size:13px;line-height:1.65}
.login-form{display:grid;gap:15px}
.login-field{display:grid;gap:7px}
.login-label{color:#4c4057;font-size:13px;font-weight:700}
.login-input-wrap{min-height:52px;display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid #e2dce8;border-radius:15px;background:#fbfaff;transition:.18s ease}
.login-input-wrap:focus-within{border-color:#7c3aed;background:#fff;box-shadow:0 0 0 4px rgba(124,58,237,.10)}
.login-input-icon{width:24px;height:24px;display:grid;place-items:center;flex:0 0 24px;color:#7b49d8}
.login-input-icon svg,.login-submit svg,.login-password-toggle svg{width:19px;height:19px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-input-wrap input{width:100%!important;min-width:0!important;height:50px!important;margin:0!important;padding:0!important;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;color:#2f2738!important;font-size:14px!important}
.login-input-wrap input::placeholder{color:#a29aaa}
.login-password-toggle{width:34px;height:34px;flex:0 0 34px;border:0;background:transparent;color:#7c6e8b;display:grid;place-items:center;border-radius:10px;padding:0}
.login-password-toggle:hover{background:#f1ecf9;color:#6d3fd0}
.login-password-toggle .eye-closed{display:none}
.login-password-toggle.is-visible .eye-open{display:none}
.login-password-toggle.is-visible .eye-closed{display:block}
.login-forgot-row{display:flex;justify-content:flex-end;margin-top:-4px}
.login-forgot-row a{font-size:12px;font-weight:800;color:#6d3fd0;text-decoration:none}
.login-forgot-row a:hover{text-decoration:underline}
.login-submit{height:54px;margin-top:0;border:0;border-radius:16px;display:flex;align-items:center;justify-content:center;gap:9px;color:#fff;font-size:14px;font-weight:800;background:linear-gradient(100deg,#7c3aed 0%,#6b4df1 48%,#4f8ff7 100%);box-shadow:0 14px 30px rgba(103,70,222,.24);transition:.18s ease;text-decoration:none}
.login-submit:hover{transform:translateY(-1px);box-shadow:0 17px 34px rgba(103,70,222,.30)}
.login-submit:active{transform:none}
.login-switch{text-align:center;margin:18px 0 0;color:#8a8193;font-size:13px}
.login-switch a{color:#6d3fd0!important;font-weight:800;text-decoration:none!important}
.login-page-body .alert,.forgot-page-body .alert{border-radius:15px;margin-bottom:13px}
.forgot-placeholder-card{max-width:500px;margin:0 auto}
.login-back-link{width:100%;box-sizing:border-box}
@media(min-width:700px){.login-logo-only.has-image{width:min(42vw,320px)}.login-logo-only.has-image img{max-height:180px}}
@media(max-width:560px){
  .login-page-body,.forgot-page-body{padding:20px 11px 28px;align-items:start}
  .login-shell{width:100%}
  .login-logo-only{width:68px;height:68px;border-radius:21px;margin-bottom:14px}
  .login-logo-only span{font-size:27px}
  .login-logo-only.has-image{width:min(84vw,260px);margin-bottom:14px}
  .login-logo-only.has-image img{max-height:130px}
  .login-card{padding:21px 16px!important;border-radius:24px!important}
  .login-heading{margin-bottom:20px}.login-heading h2{font-size:23px!important}
  .login-form{gap:13px}.login-input-wrap{min-height:50px;height:50px}
}
@media(max-width:390px){.login-card{padding:19px 14px!important}.login-heading h2{font-size:22px!important}}

/* Password reset OTP flow */
.forgot-card{max-width:500px;margin:0 auto}
.forgot-heading p{max-width:360px;margin-left:auto;margin-right:auto}
.forgot-timer-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-3px 0 14px;padding:11px 13px;border:1px solid #e6e0ec;border-radius:14px;background:linear-gradient(100deg,#faf7ff,#f7f9ff);color:#746b80;font-size:12px}
.forgot-timer-row strong{font-size:13px;color:#6f42d8;font-variant-numeric:tabular-nums}
.forgot-otp-wrap input{font-size:20px!important;font-weight:800!important;letter-spacing:.32em;text-align:center;padding-left:.32em!important}
.forgot-resend-block{display:grid;gap:9px;margin-top:15px;text-align:center}
.forgot-resend-form{margin:0}
.forgot-resend-button{width:100%;min-height:46px;border:1px solid #e3dced;border-radius:14px;background:#faf8fd;color:#6d3fd0;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 12px;transition:.18s ease}
.forgot-resend-button:not(:disabled):hover{background:#f1ebff;border-color:#d9cef0}
.forgot-resend-button:disabled{cursor:not-allowed;color:#9b93a4;background:#fafafa}
.forgot-resend-button strong{font-variant-numeric:tabular-nums;color:inherit}
.forgot-change-number{font-size:12px;font-weight:800;color:#6d3fd0;text-decoration:none}
.forgot-change-number:hover{text-decoration:underline}
@media(max-width:560px){.forgot-timer-row{margin-bottom:12px}.forgot-otp-wrap input{font-size:18px!important}.forgot-resend-button{min-height:44px}}


/* 2026-09-29 OTP centered/balanced layout fix */
.forgot-card[data-forgot-step="otp"] .forgot-heading{
  margin-bottom:18px;
}
.forgot-card[data-forgot-step="otp"] .forgot-timer-row{
  width:100%;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:12px;
  margin:0 0 16px;
  padding:11px 14px;
}
.forgot-otp-form{
  width:100%;
}
.forgot-otp-field{
  width:100%;
  display:grid;
  gap:8px;
  text-align:center;
}
.forgot-otp-label{
  text-align:center;
}
.forgot-otp-wrap{
  width:100%;
  height:66px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #ddd5e8;
  border-radius:17px;
  background:#fbfaff;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.forgot-otp-wrap:focus-within{
  border-color:#7c3aed;
  background:#fff;
  box-shadow:0 0 0 4px rgba(124,58,237,.10);
}
.forgot-otp-wrap input{
  width:100%!important;
  height:64px!important;
  box-sizing:border-box!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  margin:0!important;
  padding:0 14px!important;
  color:#2b2235!important;
  font-size:27px!important;
  line-height:1!important;
  font-weight:800!important;
  text-align:center!important;
  letter-spacing:.52em!important;
  text-indent:.52em;
  font-variant-numeric:tabular-nums;
}
.forgot-otp-wrap input::placeholder{
  color:#bbb2c4;
  opacity:.9;
}
.forgot-otp-help{
  display:block;
  margin:0;
  text-align:center;
  color:#958b9f;
  font-size:11px;
  line-height:1.45;
  font-weight:500;
}
.forgot-card[data-forgot-step="otp"] .login-submit{
  width:100%;
  margin-top:2px;
}
.forgot-card[data-forgot-step="otp"] .forgot-resend-block{
  width:100%;
  margin-top:14px;
  gap:10px;
}
.forgot-card[data-forgot-step="otp"] .forgot-resend-button{
  width:100%;
  min-height:48px;
  border-radius:15px;
}
@media(max-width:560px){
  .forgot-card[data-forgot-step="otp"] .forgot-timer-row{
    padding:10px 12px;
    margin-bottom:14px;
  }
  .forgot-otp-wrap{
    height:62px;
    border-radius:15px;
  }
  .forgot-otp-wrap input{
    height:60px!important;
    font-size:24px!important;
    letter-spacing:.46em!important;
    text-indent:.46em;
  }
  .forgot-otp-help{font-size:10.5px}
}
